fdo#52223 fix Object Catalog in Basic IDE when resizing

Change-Id: I96861bfcf7c0da6dd94c50acd673dedb14d15204
This commit is contained in:
Uray M. János 2012-07-23 18:48:47 +02:00 committed by Ivan Timofeev
parent b0a727729d
commit c55a4639d2
5 changed files with 27 additions and 30 deletions

View file

@ -1492,14 +1492,14 @@ void ModulWindowLayout::ArrangeWindows()
if ( ( nVSplitPos < nMinPos ) || ( nVSplitPos > nMaxPos ) )
nVSplitPos = ( nVSplitPos < nMinPos ) ? 0 : ( aSz.Height() - SPLIT_HEIGHT );
Size aXEWSz;
aXEWSz.Width() = aSz.Width() - OBJCAT_PANE_WIDTH;
aXEWSz.Height() = nVSplitPos + 1;
if ( m_pModulWindow )
{
DBG_CHKOBJ( m_pModulWindow, ModulWindow, 0 );
m_pModulWindow->SetPosSizePixel( Point( OBJCAT_PANE_WIDTH, 0 ), aXEWSz );
bool const bObjCat = aObjectCatalog.IsVisible();
m_pModulWindow->SetPosSizePixel(
Point(bObjCat ? OBJCAT_PANE_WIDTH : 0, 0),
Size(bObjCat ? aSz.Width() - OBJCAT_PANE_WIDTH : aSz.Width(), nVSplitPos + 1)
);
}
aVSplitter.SetDragRectPixel( Rectangle( Point( 0, 0 ), Size( aSz.Width(), aSz.Height() ) ) );
@ -1524,10 +1524,12 @@ void ModulWindowLayout::ArrangeWindows()
if ( !aStackWindow.IsFloatingMode() )
aStackWindow.SetPosSizePixel( aSWPos, aSWSz );
Size aOCSz( OBJCAT_PANE_WIDTH, aSz.Height() - aSWSz.Height() - 3 );
Point aOCPos( 0, 0 );
if ( !aObjectCatalog.IsFloatingMode() )
{
Size aOCSz( OBJCAT_PANE_WIDTH, aSz.Height() - aSWSz.Height() - 3 );
Point aOCPos( 0, 0 );
aObjectCatalog.SetPosSizePixel( aOCPos, aOCSz );
}
if ( aStackWindow.IsFloatingMode() && aWatchWindow.IsFloatingMode() )
aHSplitter.Hide();
@ -1717,4 +1719,16 @@ Image ModulWindowLayout::getImage(sal_uInt16 nId) const
return m_aImagesNormal.GetImage(nId);
}
// shows or hides the Object Catalog window (depending on its state)
void ModulWindowLayout::ToggleObjectCatalog ()
{
// show or hide?
bool const bShow = !aObjectCatalog.IsVisible();
bShow ? aObjectCatalog.Show() : aObjectCatalog.Hide();
if (m_pModulWindow)
m_pModulWindow->SetObjectCatalogDisplay(bShow);
// refreshing
ArrangeWindows();
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */

View file

@ -477,6 +477,8 @@ public:
inline Color const & getSyntaxColor(TokenTypes eType) const
{ return m_aSyntaxColors[eType]; }
void ToggleObjectCatalog ();
};
#endif // _BASIDE2_HXX

View file

@ -439,26 +439,11 @@ void BasicIDEShell::ExecuteGlobal( SfxRequest& rReq )
pWin->EditMacro( rInfo.GetMethod() );
}
break;
case SID_BASICIDE_OBJCAT:
{
if ( bObjectCatalogDisplay )
{
pModulLayout->GetObjectCatalog().Hide();
dynamic_cast<ModulWindow*>(pCurWin)->SetPosPixel( Point( 0, 0 ) );
dynamic_cast<ModulWindow*>(pCurWin)->SetSizePixel( Size( pCurWin->GetSizePixel().Width() + OBJCAT_PANE_WIDTH, pCurWin->GetSizePixel().Height() ) );
dynamic_cast<ModulWindow*>(pCurWin)->SetObjectCatalogDisplay( false );
bObjectCatalogDisplay = sal_False;
}
else
{
pModulLayout->GetObjectCatalog().Show();
dynamic_cast<ModulWindow*>(pCurWin)->SetPosPixel( Point( OBJCAT_PANE_WIDTH, 0 ) );
dynamic_cast<ModulWindow*>(pCurWin)->SetSizePixel( Size( pCurWin->GetSizePixel().Width() - OBJCAT_PANE_WIDTH, pCurWin->GetSizePixel().Height() ) );
dynamic_cast<ModulWindow*>(pCurWin)->SetObjectCatalogDisplay( true );
bObjectCatalogDisplay = sal_True;
}
}
break;
pModulLayout->ToggleObjectCatalog();
break;
case SID_BASICIDE_NAMECHANGEDONTAB:
{
DBG_ASSERT( rReq.GetArgs(), "arguments expected" );

View file

@ -193,8 +193,6 @@ void BasicIDEShell::Init()
pObjectCatalog = 0;
bCreatingWindow = sal_False;
bObjectCatalogDisplay = sal_True;
pTabBar = new BasicIDETabBar( &GetViewFrame()->GetWindow() );
pTabBar->SetSplitHdl( LINK( this, BasicIDEShell, TabBarSplitHdl ) );
bTabBarSplitted = sal_False;

View file

@ -91,8 +91,6 @@ friend class LocalizationMgr;
friend class ContainerListenerImpl;
::com::sun::star::uno::Reference< ::com::sun::star::container::XContainerListener > m_xLibListener;
sal_Bool bObjectCatalogDisplay;
#if _SOLAR__PRIVATE
void Init();
void InitTabBar();