Author: af
Date: Tue Feb 19 13:29:47 2013
New Revision: 1447713
URL: http://svn.apache.org/r1447713
Log:
i121420: Cleanup.
Added:
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/IDisposable.hxx
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/ILayoutableWindow.hxx
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/ISidebarReceiver.hxx
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/SidebarShellManager.cxx
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/SidebarShellManager.hxx
Removed:
openoffice/branches/sidebar/main/sd/source/ui/sidebar/IDisposable.hxx
openoffice/branches/sidebar/main/sd/source/ui/sidebar/ILayoutableWindow.hxx
openoffice/branches/sidebar/main/sd/source/ui/sidebar/ISidebarReceiver.hxx
openoffice/branches/sidebar/main/sd/source/ui/sidebar/SidebarShellManager.cxx
openoffice/branches/sidebar/main/sd/source/ui/sidebar/SidebarShellManager.hxx
openoffice/branches/sidebar/main/sfx2/source/sidebar/ToolBoxBackground.hxx_
Modified:
openoffice/branches/sidebar/main/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu
openoffice/branches/sidebar/main/sd/source/ui/sidebar/SidebarViewShell.cxx
openoffice/branches/sidebar/main/sd/source/ui/sidebar/UIElementWrapper.cxx
openoffice/branches/sidebar/main/sd/source/ui/sidebar/makefile.mk
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/AllMasterPagesSelector.cxx
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/CurrentMasterPagesSelector.cxx
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/LayoutMenu.cxx
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/LayoutMenu.hxx
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/MasterPagesSelector.cxx
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/MasterPagesSelector.hxx
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/PanelBase.hxx
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/RecentMasterPagesSelector.cxx
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/makefile.mk
openoffice/branches/sidebar/main/sfx2/source/control/bindings.cxx
openoffice/branches/sidebar/main/svx/source/sidebar/PanelFactory.cxx
Modified:
openoffice/branches/sidebar/main/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu
URL:
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu?rev=1447713&r1=1447712&r2=1447713&view=diff
==============================================================================
Binary files - no diff available.
Modified:
openoffice/branches/sidebar/main/sd/source/ui/sidebar/SidebarViewShell.cxx
URL:
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sd/source/ui/sidebar/SidebarViewShell.cxx?rev=1447713&r1=1447712&r2=1447713&view=diff
==============================================================================
--- openoffice/branches/sidebar/main/sd/source/ui/sidebar/SidebarViewShell.cxx
(original)
+++ openoffice/branches/sidebar/main/sd/source/ui/sidebar/SidebarViewShell.cxx
Tue Feb 19 13:29:47 2013
@@ -23,7 +23,7 @@
#include "SidebarViewShell.hxx"
-#include "SidebarShellManager.hxx"
+#include "panels/SidebarShellManager.hxx"
#include "SidebarFocusManager.hxx"
#include "taskpane/SlideSorterCacheDisplay.hxx"
#include "panels/LayoutMenu.hxx"
Modified:
openoffice/branches/sidebar/main/sd/source/ui/sidebar/UIElementWrapper.cxx
URL:
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sd/source/ui/sidebar/UIElementWrapper.cxx?rev=1447713&r1=1447712&r2=1447713&view=diff
==============================================================================
--- openoffice/branches/sidebar/main/sd/source/ui/sidebar/UIElementWrapper.cxx
(original)
+++ openoffice/branches/sidebar/main/sd/source/ui/sidebar/UIElementWrapper.cxx
Tue Feb 19 13:29:47 2013
@@ -25,7 +25,7 @@
#include "framework/FrameworkHelper.hxx"
#include "framework/TaskPanelResource.hxx"
-#include "ILayoutableWindow.hxx"
+#include "panels/ILayoutableWindow.hxx"
#include "panels/LayoutMenu.hxx"
#include "DrawController.hxx"
#include <comphelper/make_shared_from_uno.hxx>
Modified: openoffice/branches/sidebar/main/sd/source/ui/sidebar/makefile.mk
URL:
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sd/source/ui/sidebar/makefile.mk?rev=1447713&r1=1447712&r2=1447713&view=diff
==============================================================================
--- openoffice/branches/sidebar/main/sd/source/ui/sidebar/makefile.mk (original)
+++ openoffice/branches/sidebar/main/sd/source/ui/sidebar/makefile.mk Tue Feb
19 13:29:47 2013
@@ -41,13 +41,8 @@ PRJINC=..
SLOFILES = \
$(SLO)$/SidebarFactory.obj \
$(SLO)$/UIElementWrapper.obj \
- $(SLO)$/SidebarShellManager.obj \
$(SLO)$/SidebarViewShell.obj \
-EXCEPTIONSFILES=
-#SRS2NAME = sidebar
-#SRC2FILES = SlsChildWindow.src
-
# --- Tagets -------------------------------------------------------
.INCLUDE : target.mk
Modified:
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/AllMasterPagesSelector.cxx
URL:
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/AllMasterPagesSelector.cxx?rev=1447713&r1=1447712&r2=1447713&view=diff
==============================================================================
---
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/AllMasterPagesSelector.cxx
(original)
+++
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/AllMasterPagesSelector.cxx
Tue Feb 19 13:29:47 2013
@@ -24,7 +24,7 @@
#include "AllMasterPagesSelector.hxx"
#include "PreviewValueSet.hxx"
#include "ViewShellBase.hxx"
-#include "../SidebarShellManager.hxx"
+#include "SidebarShellManager.hxx"
#include "MasterPageContainer.hxx"
#include "MasterPageDescriptor.hxx"
#include "app.hrc"
Modified:
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/CurrentMasterPagesSelector.cxx
URL:
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/CurrentMasterPagesSelector.cxx?rev=1447713&r1=1447712&r2=1447713&view=diff
==============================================================================
---
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/CurrentMasterPagesSelector.cxx
(original)
+++
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/CurrentMasterPagesSelector.cxx
Tue Feb 19 13:29:47 2013
@@ -24,7 +24,7 @@
#include "CurrentMasterPagesSelector.hxx"
#include "PreviewValueSet.hxx"
#include "ViewShellBase.hxx"
-#include "../SidebarShellManager.hxx"
+#include "SidebarShellManager.hxx"
#include "DrawViewShell.hxx"
#include "drawdoc.hxx"
#include "sdpage.hxx"
Added:
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/IDisposable.hxx
URL:
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/IDisposable.hxx?rev=1447713&view=auto
==============================================================================
---
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/IDisposable.hxx
(added)
+++
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/IDisposable.hxx
Tue Feb 19 13:29:47 2013
@@ -0,0 +1,44 @@
+/**************************************************************
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ *************************************************************/
+
+
+
+#ifndef SD_SIDEBAR_DISPOSABLE_INTERFACE_HXX
+#define SD_SIDEBAR_DISPOSABLE_INTERFACE_HXX
+
+#include <tools/gen.hxx>
+#include <sal/types.h>
+
+class Window;
+
+namespace sd { namespace sidebar {
+
+
+class IDisposable
+{
+public:
+ virtual void Dispose (void) = 0;
+};
+
+
+} } // end of namespace ::sd::sidebar
+
+#endif
Added:
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/ILayoutableWindow.hxx
URL:
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/ILayoutableWindow.hxx?rev=1447713&view=auto
==============================================================================
---
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/ILayoutableWindow.hxx
(added)
+++
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/ILayoutableWindow.hxx
Tue Feb 19 13:29:47 2013
@@ -0,0 +1,49 @@
+/**************************************************************
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ *************************************************************/
+
+
+
+#ifndef SD_SIDEBAR_LAYOUTABLE_WINDOW_INTERFACE_HXX
+#define SD_SIDEBAR_LAYOUTABLE_WINDOW_INTERFACE_HXX
+
+#include <tools/gen.hxx>
+#include <sal/types.h>
+
+#include <com/sun/star/ui/LayoutSize.hpp>
+
+class Window;
+
+namespace sd { namespace sidebar {
+
+
+class ILayoutableWindow
+{
+public:
+ /** Return the preferred height with the constraint, that the
+ window will be set to the given width.
+ */
+ virtual ::com::sun::star::ui::LayoutSize GetHeightForWidth (const
sal_Int32 nWidth) = 0;
+};
+
+
+} } // end of namespace ::sd::sidebar
+
+#endif
Added:
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/ISidebarReceiver.hxx
URL:
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/ISidebarReceiver.hxx?rev=1447713&view=auto
==============================================================================
---
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/ISidebarReceiver.hxx
(added)
+++
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/ISidebarReceiver.hxx
Tue Feb 19 13:29:47 2013
@@ -0,0 +1,40 @@
+/**************************************************************
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ *************************************************************/
+
+#ifndef SD_SIDEBAR_RECEIVER_INTERFACE_HXX
+#define SD_SIDEBAR_RECEIVER_INTERFACE_HXX
+
+#include <com/sun/star/ui/XSidebar.hpp>
+
+namespace sd { namespace sidebar {
+
+
+class ISidebarReceiver
+{
+public:
+ virtual void SetSidebar (const ::com::sun::star::uno::Reference<
+ ::com::sun::star::ui::XSidebar>& rxSidebar) = 0;
+};
+
+
+} } // end of namespace ::sd::sidebar
+
+#endif
Modified:
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/LayoutMenu.cxx
URL:
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/LayoutMenu.cxx?rev=1447713&r1=1447712&r2=1447713&view=diff
==============================================================================
--- openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/LayoutMenu.cxx
(original)
+++ openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/LayoutMenu.cxx
Tue Feb 19 13:29:47 2013
@@ -23,7 +23,7 @@
#include "LayoutMenu.hxx"
-#include "../SidebarShellManager.hxx"
+#include "SidebarShellManager.hxx"
#include "app.hrc"
#include "controller/SlideSorterController.hxx"
#include "controller/SlsPageSelector.hxx"
Modified:
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/LayoutMenu.hxx
URL:
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/LayoutMenu.hxx?rev=1447713&r1=1447712&r2=1447713&view=diff
==============================================================================
--- openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/LayoutMenu.hxx
(original)
+++ openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/LayoutMenu.hxx
Tue Feb 19 13:29:47 2013
@@ -24,9 +24,9 @@
#ifndef SD_SIDEBAR_LAYOUT_MENU_HXX
#define SD_SIDEBAR_LAYOUT_MENU_HXX
-#include "../IDisposable.hxx"
-#include "../ILayoutableWindow.hxx"
-#include "../ISidebarReceiver.hxx"
+#include "IDisposable.hxx"
+#include "ILayoutableWindow.hxx"
+#include "ISidebarReceiver.hxx"
#include "glob.hxx"
#include "pres.hxx"
Modified:
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/MasterPagesSelector.cxx
URL:
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/MasterPagesSelector.cxx?rev=1447713&r1=1447712&r2=1447713&view=diff
==============================================================================
---
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/MasterPagesSelector.cxx
(original)
+++
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/MasterPagesSelector.cxx
Tue Feb 19 13:29:47 2013
@@ -19,16 +19,13 @@
*
*************************************************************/
-
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sd.hxx"
#include "MasterPagesSelector.hxx"
#include "MasterPageContainer.hxx"
#include "DocumentHelper.hxx"
-#include "../SidebarShellManager.hxx"
+#include "SidebarShellManager.hxx"
#include "pres.hxx"
#include "drawdoc.hxx"
#include "DrawDocShell.hxx"
Modified:
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/MasterPagesSelector.hxx
URL:
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/MasterPagesSelector.hxx?rev=1447713&r1=1447712&r2=1447713&view=diff
==============================================================================
---
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/MasterPagesSelector.hxx
(original)
+++
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/MasterPagesSelector.hxx
Tue Feb 19 13:29:47 2013
@@ -25,8 +25,8 @@
#include "MasterPageContainer.hxx"
#include "SlideSorterViewShell.hxx"
#include "PreviewValueSet.hxx"
-#include "../ISidebarReceiver.hxx"
-#include "../ILayoutableWindow.hxx"
+#include "ISidebarReceiver.hxx"
+#include "ILayoutableWindow.hxx"
#include "pres.hxx"
#include <sfx2/shell.hxx>
Modified:
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/PanelBase.hxx
URL:
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/PanelBase.hxx?rev=1447713&r1=1447712&r2=1447713&view=diff
==============================================================================
--- openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/PanelBase.hxx
(original)
+++ openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/PanelBase.hxx
Tue Feb 19 13:29:47 2013
@@ -22,9 +22,9 @@
#ifndef SD_SIDEBAR_PANELS_PANEL_BASE_HXX
#define SD_SIDEBAR_PANELS_PANEL_BASE_HXX
-#include "../IDisposable.hxx"
-#include "../ILayoutableWindow.hxx"
-#include "../ISidebarReceiver.hxx"
+#include "IDisposable.hxx"
+#include "ILayoutableWindow.hxx"
+#include "ISidebarReceiver.hxx"
#include <vcl/ctrl.hxx>
Modified:
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/RecentMasterPagesSelector.cxx
URL:
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/RecentMasterPagesSelector.cxx?rev=1447713&r1=1447712&r2=1447713&view=diff
==============================================================================
---
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/RecentMasterPagesSelector.cxx
(original)
+++
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/RecentMasterPagesSelector.cxx
Tue Feb 19 13:29:47 2013
@@ -27,7 +27,7 @@
#include "RecentlyUsedMasterPages.hxx"
#include "MasterPageContainerProviders.hxx"
#include "MasterPageObserver.hxx"
-#include "../SidebarShellManager.hxx"
+#include "SidebarShellManager.hxx"
#include "sdpage.hxx"
#include "drawdoc.hxx"
#include "app.hrc"
Added:
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/SidebarShellManager.cxx
URL:
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/SidebarShellManager.cxx?rev=1447713&view=auto
==============================================================================
---
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/SidebarShellManager.cxx
(added)
+++
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/SidebarShellManager.cxx
Tue Feb 19 13:29:47 2013
@@ -0,0 +1,176 @@
+/**************************************************************
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ *************************************************************/
+
+#include "precompiled_sd.hxx"
+
+#include "SidebarShellManager.hxx"
+
+#include "ViewShellManager.hxx"
+#include <tools/diagnose_ex.h>
+#include <vcl/window.hxx>
+
+#include <algorithm>
+
+namespace sd { namespace sidebar {
+
+SidebarShellManager::SidebarShellManager (
+ const ::boost::shared_ptr<ViewShellManager>& rpViewShellManager,
+ const ViewShell& rViewShell)
+ : mpViewShellManager(rpViewShellManager),
+ mrViewShell(rViewShell),
+ maSubShells()
+{
+}
+
+
+
+
+SidebarShellManager::~SidebarShellManager (void)
+{
+ while ( ! maSubShells.empty())
+ RemoveSubShell(maSubShells.begin()->second.mpShell);
+}
+
+
+
+
+SfxShell* SidebarShellManager::CreateShell( ShellId nId, ::Window* ,
FrameView* )
+{
+ SubShells::const_iterator iShell (maSubShells.find(nId));
+ if (iShell != maSubShells.end())
+ return iShell->second.mpShell;
+ else
+ return NULL;
+}
+
+
+
+
+void SidebarShellManager::ReleaseShell (SfxShell* )
+{
+ // Nothing to do.
+}
+
+void SidebarShellManager::AddSubShell (
+ ShellId nId,
+ SfxShell* pShell,
+ ::Window* pWindow)
+{
+ if (pShell != NULL)
+ {
+ maSubShells[nId] = ShellDescriptor(pShell,pWindow);
+ if (pWindow != NULL)
+ {
+
pWindow->AddEventListener(LINK(this,SidebarShellManager,WindowCallback));
+ if (pWindow->IsReallyVisible())
+ mpViewShellManager->ActivateSubShell(mrViewShell, nId);
+ }
+ else
+ mpViewShellManager->ActivateSubShell(mrViewShell, nId);
+ }
+}
+
+
+
+
+void SidebarShellManager::RemoveSubShell (const ShellId i_nShellId)
+{
+ SubShells::iterator pos = maSubShells.find( i_nShellId );
+ ENSURE_OR_RETURN_VOID( pos != maSubShells.end(), "no shell for this ID" );
+ if ( pos->second.mpWindow != NULL )
+ {
+ pos->second.mpWindow->RemoveEventListener( LINK( this,
SidebarShellManager, WindowCallback ) );
+ }
+ mpViewShellManager->DeactivateSubShell( mrViewShell, pos->first );
+ maSubShells.erase( pos );
+}
+
+
+
+
+void SidebarShellManager::RemoveSubShell (const SfxShell* pShell)
+{
+ if (pShell != NULL)
+ {
+ SubShells::iterator iShell;
+ for (iShell=maSubShells.begin(); iShell!=maSubShells.end(); ++iShell)
+ if (iShell->second.mpShell == pShell)
+ {
+ if (iShell->second.mpWindow != NULL)
+ iShell->second.mpWindow->RemoveEventListener(
+ LINK(this,SidebarShellManager,WindowCallback));
+
mpViewShellManager->DeactivateSubShell(mrViewShell,iShell->first);
+ maSubShells.erase(iShell);
+ break;
+ }
+ }
+}
+
+
+
+
+void SidebarShellManager::MoveToTop (SfxShell* pShell)
+{
+ SubShells::const_iterator iShell;
+ for (iShell=maSubShells.begin(); iShell!=maSubShells.end(); ++iShell)
+ if (iShell->second.mpShell == pShell)
+ {
+ ViewShellManager::UpdateLock aLocker (mpViewShellManager);
+ mpViewShellManager->MoveSubShellToTop(mrViewShell,iShell->first);
+ mpViewShellManager->MoveToTop(mrViewShell);
+ break;
+ }
+}
+
+
+
+
+IMPL_LINK(SidebarShellManager, WindowCallback, VclWindowEvent*, pEvent)
+{
+ if (pEvent != NULL)
+ {
+ SubShells::const_iterator iShell;
+ ::Window* pWindow = pEvent->GetWindow();
+ for (iShell=maSubShells.begin(); iShell!=maSubShells.end(); ++iShell)
+ if (iShell->second.mpWindow == pWindow)
+ break;
+ if (iShell != maSubShells.end())
+ switch (pEvent->GetId())
+ {
+ case VCLEVENT_WINDOW_SHOW:
+
mpViewShellManager->ActivateSubShell(mrViewShell,iShell->first);
+ break;
+
+ case VCLEVENT_WINDOW_HIDE:
+ // Do not activate the sub shell. This leads to
+ // problems with shapes currently being in text edit
+ // mode: Deactivating the shell leads to leaving the
+ // text editing mode.
+ //
mpViewShellManager->DeactivateSubShell(mrViewShell,iShell->first);
+ break;
+ }
+ }
+
+ return 0;
+}
+
+
+} } // end of namespace ::sd::sidebar
Added:
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/SidebarShellManager.hxx
URL:
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/SidebarShellManager.hxx?rev=1447713&view=auto
==============================================================================
---
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/SidebarShellManager.hxx
(added)
+++
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/SidebarShellManager.hxx
Tue Feb 19 13:29:47 2013
@@ -0,0 +1,117 @@
+/**************************************************************
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ *************************************************************/
+
+
+
+#ifndef SD_SIDEBAR_SHELL_MANAGER_HXX
+#define SD_SIDEBAR_SHELL_MANAGER_HXX
+
+#include "ShellFactory.hxx"
+#include "ViewShellManager.hxx"
+#include <map>
+
+class FrameView;
+class SfxShell;
+class VclWindowEvent;
+class Window;
+
+namespace sd {
+class ViewShell;
+}
+
+namespace sd { namespace sidebar {
+
+/** The TaskPaneShellManager implements the ViewShellManager::ShellFactory
+ interface. However, it does not create or delete shells. It only
+ gives the ViewShellManager access to the sub shells of the
+ ToolPanelViewShell. Life time control of the sub shells is managed by
+ the sub shells themselves.
+*/
+class SidebarShellManager
+ : public ShellFactory<SfxShell>
+{
+public:
+ /** Create a shell manager that manages the stacked shells for the given
+ view shell. It works together with the given view shell manager.
+ */
+ SidebarShellManager (
+ const ::boost::shared_ptr<ViewShellManager>& rpViewShellManager,
+ const ViewShell& rViewShell);
+ ~SidebarShellManager (void);
+
+ /** Return the requested sub shell.
+ @param nId
+ The id of the requested sub shell.
+ @return
+ When there is no sub shell currently registered under the given
+ id then NULL is returned.
+ */
+ virtual SfxShell* CreateShell (
+ ShellId nId,
+ ::Window* pParentWindow,
+ FrameView* pFrameView = NULL);
+
+ virtual void ReleaseShell (SfxShell* pShell);
+
+ /** Add a sub shell to the set of sub shells managed by the
+ TaskPaneShellManager. Only shells added by this method are returned
+ by CreateShell().
+ */
+ void AddSubShell (ShellId nId, SfxShell* pShell, ::Window* pWindow);
+
+ /** Remove the given shell from the set of sub shells managed by the
+ TaskPaneShellManager. Following calls to CreateShell() will return
+ NULL when this shell is requested.
+ */
+ void RemoveSubShell (const SfxShell* pShell);
+ /** removes the shell given by its ID from the set of sub shells managed
by the
+ TaskPaneShellManager. Subsequent calls to CreateShell() will return
+ NULL when this shell is requested.
+ */
+ void RemoveSubShell (const ShellId i_nShellId);
+
+ /** Move the given sub-shell to the top of the local shell stack.
+ Furthermore move the view shell whose sub-shells this class manages
+ to the top of the global shell stack.
+ */
+ void MoveToTop (SfxShell* pShell);
+
+ DECL_LINK(WindowCallback,VclWindowEvent*);
+
+private:
+ ::boost::shared_ptr<ViewShellManager> mpViewShellManager;
+
+ /// The view shell whose sub-shells this class manages.
+ const ViewShell& mrViewShell;
+
+ class ShellDescriptor { public:
+ SfxShell* mpShell;
+ ::Window* mpWindow;
+ ShellDescriptor(void) : mpShell(NULL),mpWindow(NULL){}
+ ShellDescriptor(SfxShell*pShell,::Window*pWindow) :
mpShell(pShell),mpWindow(pWindow){}
+ };
+ typedef ::std::map<ShellId,ShellDescriptor> SubShells;
+ SubShells maSubShells;
+};
+
+} } // end of namespace ::sd::sidebar
+
+#endif
Modified:
openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/makefile.mk
URL:
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/makefile.mk?rev=1447713&r1=1447712&r2=1447713&view=diff
==============================================================================
--- openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/makefile.mk
(original)
+++ openoffice/branches/sidebar/main/sd/source/ui/sidebar/panels/makefile.mk
Tue Feb 19 13:29:47 2013
@@ -55,6 +55,7 @@ SLOFILES =
\
$(SLO)$/PreviewValueSet.obj \
$(SLO)$/RecentlyUsedMasterPages.obj \
$(SLO)$/RecentMasterPagesSelector.obj \
+ $(SLO)$/SidebarShellManager.obj \
$(SLO)$/SlideTransitionPanel.obj \
$(SLO)$/TableDesignPanel.obj
Modified: openoffice/branches/sidebar/main/sfx2/source/control/bindings.cxx
URL:
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/sfx2/source/control/bindings.cxx?rev=1447713&r1=1447712&r2=1447713&view=diff
==============================================================================
--- openoffice/branches/sidebar/main/sfx2/source/control/bindings.cxx (original)
+++ openoffice/branches/sidebar/main/sfx2/source/control/bindings.cxx Tue Feb
19 13:29:47 2013
@@ -1035,7 +1035,7 @@ void SfxBindings::Register( SfxControlle
void SfxBindings::Register_Impl( SfxControllerItem& rItem, sal_Bool bInternal )
{
DBG_MEMTEST();
- DBG_ASSERT( nRegLevel > 0, "registration without EnterRegistrations" );
+ // DBG_ASSERT( nRegLevel > 0, "registration without EnterRegistrations"
);
DBG_ASSERT( !pImp->bInNextJob, "SfxBindings::Register while
status-updating" );
// insert new cache if it does not already exist
Modified: openoffice/branches/sidebar/main/svx/source/sidebar/PanelFactory.cxx
URL:
http://svn.apache.org/viewvc/openoffice/branches/sidebar/main/svx/source/sidebar/PanelFactory.cxx?rev=1447713&r1=1447712&r2=1447713&view=diff
==============================================================================
--- openoffice/branches/sidebar/main/svx/source/sidebar/PanelFactory.cxx
(original)
+++ openoffice/branches/sidebar/main/svx/source/sidebar/PanelFactory.cxx Tue
Feb 19 13:29:47 2013
@@ -125,22 +125,20 @@ Reference<ui::XUIElement> SAL_CALL Panel
if (rsResourceURL.endsWithAsciiL("/TextPropertyPanel",
strlen("/TextPropertyPanel")))
{
TextPropertyPanel* pPanel = TextPropertyPanel::Create(pParentWindow,
xFrame, pBindings);
- pPanel->Show();
- pPanel->GetParent()->Show();
xElement = sfx2::sidebar::SidebarPanelBase::Create(
rsResourceURL,
xFrame,
pPanel,
::boost::bind(&TextPropertyPanel::ShowMenu, pPanel));
}
-
- if (rsResourceURL.endsWithAsciiL("/AreaPropertyPanel",
strlen("/AreaPropertyPanel")))
+ else if (rsResourceURL.endsWithAsciiL("/AreaPropertyPanel",
strlen("/AreaPropertyPanel")))
{
AreaPropertyPanel* pPanel = AreaPropertyPanel::Create(pParentWindow,
xFrame, pBindings);
xElement = sfx2::sidebar::SidebarPanelBase::Create(
rsResourceURL,
xFrame,
- pPanel);
+ pPanel,
+ ::boost::function<void(void)>());
}
return xElement;