diff options
author | Uray M. János <uray.janos@gmail.com> | 2012-07-23 18:48:47 +0200 |
---|---|---|
committer | Ivan Timofeev <timofeev.i.s@gmail.com> | 2012-07-24 10:42:23 +0400 |
commit | c55a4639d27957ee96c59269d894d169fa2b7b34 (patch) | |
tree | 2e8072c0f7bd65c09c59ce5d6fc61c6930438293 /basctl | |
parent | b0a727729d909fc26898dd0fd29a81834111a147 (diff) |
fdo#52223 fix Object Catalog in Basic IDE when resizing
Change-Id: I96861bfcf7c0da6dd94c50acd673dedb14d15204
Diffstat (limited to 'basctl')
-rw-r--r-- | basctl/source/basicide/baside2.cxx | 28 | ||||
-rw-r--r-- | basctl/source/basicide/baside2.hxx | 2 | ||||
-rw-r--r-- | basctl/source/basicide/basides1.cxx | 23 | ||||
-rw-r--r-- | basctl/source/basicide/basidesh.cxx | 2 | ||||
-rw-r--r-- | basctl/source/inc/basidesh.hxx | 2 |
5 files changed, 27 insertions, 30 deletions
diff --git a/basctl/source/basicide/baside2.cxx b/basctl/source/basicide/baside2.cxx index dc0f1823c0a5..579b7068ae97 100644 --- a/basctl/source/basicide/baside2.cxx +++ b/basctl/source/basicide/baside2.cxx @@ -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: */ diff --git a/basctl/source/basicide/baside2.hxx b/basctl/source/basicide/baside2.hxx index 5e3a06c4e37a..e8f0cb693e68 100644 --- a/basctl/source/basicide/baside2.hxx +++ b/basctl/source/basicide/baside2.hxx @@ -477,6 +477,8 @@ public: inline Color const & getSyntaxColor(TokenTypes eType) const { return m_aSyntaxColors[eType]; } + + void ToggleObjectCatalog (); }; #endif // _BASIDE2_HXX diff --git a/basctl/source/basicide/basides1.cxx b/basctl/source/basicide/basides1.cxx index d11ece3767c4..ae9443faa9b0 100644 --- a/basctl/source/basicide/basides1.cxx +++ b/basctl/source/basicide/basides1.cxx @@ -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" ); diff --git a/basctl/source/basicide/basidesh.cxx b/basctl/source/basicide/basidesh.cxx index b6cad4c6dceb..c51cb0a123ba 100644 --- a/basctl/source/basicide/basidesh.cxx +++ b/basctl/source/basicide/basidesh.cxx @@ -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; diff --git a/basctl/source/inc/basidesh.hxx b/basctl/source/inc/basidesh.hxx index 7ec8c8472041..9caf92144a39 100644 --- a/basctl/source/inc/basidesh.hxx +++ b/basctl/source/inc/basidesh.hxx @@ -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(); |