diff options
author | Thomas Lange [tl] <tl@openoffice.org> | 2010-06-09 14:50:43 +0200 |
---|---|---|
committer | Thomas Lange [tl] <tl@openoffice.org> | 2010-06-09 14:50:43 +0200 |
commit | 75c38455522cd88bbf660c4d30b937ba905d9a05 (patch) | |
tree | 0f7462fe1a276e787e2b82e090107b176035c9c9 /sd/source/ui/inc | |
parent | ab76732221aaf59cc9df43fa99b1883cb7888049 (diff) | |
parent | 47b5ec4b0b48b7108715cb1e780ad3dca284cfa9 (diff) |
cws tl74: merge with DEV300_m81
Diffstat (limited to 'sd/source/ui/inc')
37 files changed, 389 insertions, 744 deletions
diff --git a/sd/source/ui/inc/AccessibleTaskPane.hxx b/sd/source/ui/inc/AccessibleTaskPane.hxx deleted file mode 100644 index 913609ecec87..000000000000 --- a/sd/source/ui/inc/AccessibleTaskPane.hxx +++ /dev/null @@ -1,70 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef SD_ACCESSIBILITY_ACCESSIBLE_TASK_PANE_HXX -#define SD_ACCESSIBILITY_ACCESSIBLE_TASK_PANE_HXX - -#include "AccessibleTreeNode.hxx" - -namespace sd { namespace toolpanel { -class ToolPanel; -} } - - -namespace accessibility { - -/** Make the task pane as implemented by sd::toolpanel::ToolPanel - accessible. - This derived class exists in order to disable the FOCUSED state. -*/ -class AccessibleTaskPane - : public AccessibleTreeNode -{ -public: - AccessibleTaskPane ( - const ::com::sun::star::uno::Reference< - ::com::sun::star::accessibility::XAccessible> & rxParent, - const ::rtl::OUString& rsName, - const ::rtl::OUString& rsDescription, - ::sd::toolpanel::ToolPanel& rTaskPane); - ~AccessibleTaskPane (void); - - //===== XServiceInfo ==================================================== - - /** Returns an identifier for the implementation of this object. - */ - virtual ::rtl::OUString SAL_CALL - getImplementationName (void) - throw (::com::sun::star::uno::RuntimeException); - -protected: - virtual void UpdateStateSet (void); -}; - -} // end of namespace accessibility - -#endif diff --git a/sd/source/ui/inc/DrawController.hxx b/sd/source/ui/inc/DrawController.hxx index 5afda083abbc..d2f56501f492 100644..100755 --- a/sd/source/ui/inc/DrawController.hxx +++ b/sd/source/ui/inc/DrawController.hxx @@ -104,7 +104,8 @@ public: PROPERTY_ACTIVE_LAYER = 5, PROPERTY_ZOOMTYPE = 6, PROPERTY_ZOOMVALUE = 7, - PROPERTY_VIEWOFFSET = 8 + PROPERTY_VIEWOFFSET = 8, + PROPERTY_DRAWVIEWMODE = 9 }; /** Create a new DrawController object for the given ViewShellBase. diff --git a/sd/source/ui/inc/DrawSubController.hxx b/sd/source/ui/inc/DrawSubController.hxx index 11816fa45902..22d3afb5dd4a 100644..100755 --- a/sd/source/ui/inc/DrawSubController.hxx +++ b/sd/source/ui/inc/DrawSubController.hxx @@ -29,12 +29,27 @@ #define SD_DRAW_SUB_CONTROLLER_HXX #include <com/sun/star/drawing/XDrawSubController.hpp> -#include <cppuhelper/compbase1.hxx> +#include <com/sun/star/lang/XServiceInfo.hpp> +#include <cppuhelper/compbase2.hxx> + +namespace sd { + + class DrawSubControllerInterfaceBase : public ::cppu::WeakComponentImplHelper2< + ::com::sun::star::drawing::XDrawSubController, + ::com::sun::star::lang::XServiceInfo > + { + public: + DrawSubControllerInterfaceBase( ::osl::Mutex& aMutex ) + : ::cppu::WeakComponentImplHelper2< + ::com::sun::star::drawing::XDrawSubController, + ::com::sun::star::lang::XServiceInfo >( aMutex ) {} + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw (::com::sun::star::uno::RuntimeException) = 0; + virtual ::sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException) = 0; + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException) = 0; + }; -namespace { - typedef ::cppu::WeakComponentImplHelper1 < - ::com::sun::star::drawing::XDrawSubController - > DrawSubControllerInterfaceBase; } diff --git a/sd/source/ui/inc/DrawViewShell.hxx b/sd/source/ui/inc/DrawViewShell.hxx index e48d3cef142b..51b8479dae1e 100644..100755 --- a/sd/source/ui/inc/DrawViewShell.hxx +++ b/sd/source/ui/inc/DrawViewShell.hxx @@ -57,6 +57,7 @@ class LayerTabBar; class Ruler; class SdUnoDrawView; class AnnotationManager; +class ViewOverlayManager; #define CHECK_RANGE(nMin, nValue, nMax) ((nValue >= nMin) && (nValue <= nMax)) @@ -496,6 +497,7 @@ private: using ViewShell::Notify; ::std::auto_ptr< AnnotationManager > mpAnnotationManager; + ::std::auto_ptr< ViewOverlayManager > mpViewOverlayManager; }; diff --git a/sd/source/ui/inc/PaneChildWindows.hxx b/sd/source/ui/inc/PaneChildWindows.hxx index 9995ed4b00c8..9ba0a1f03720 100644..100755 --- a/sd/source/ui/inc/PaneChildWindows.hxx +++ b/sd/source/ui/inc/PaneChildWindows.hxx @@ -29,6 +29,7 @@ #define SD_PANE_CHILD_WINDOWS_HXX #include <sfx2/childwin.hxx> +#include <sfx2/taskpane.hxx> namespace sd { @@ -41,8 +42,8 @@ public: USHORT nId, SfxBindings* pBindings, SfxChildWinInfo* pInfo, - const ResId& rResId, - const ::rtl::OUString& rsTitle, + const USHORT nDockWinTitleResId, + const USHORT nTitleBarResId, SfxChildAlignment eAlignment); virtual ~PaneChildWindow (void); }; @@ -74,16 +75,24 @@ public: -class RightPaneChildWindow - : public PaneChildWindow +//====================================================================================================================== +//= ToolPanelChildWindow +//====================================================================================================================== +class ToolPanelChildWindow :public PaneChildWindow + ,public ::sfx2::ITaskPaneToolPanelAccess { public: - RightPaneChildWindow (::Window*, USHORT, SfxBindings*, SfxChildWinInfo*); - - SFX_DECL_CHILDWINDOW(RightPaneChildWindow); -}; + ToolPanelChildWindow( + ::Window* i_pParentWindow, + USHORT i_nId, + SfxBindings* i_pBindings, + SfxChildWinInfo* i_pChildWindowInfo ); + SFX_DECL_CHILDWINDOW( ToolPanelChildWindow ); + // ::sfx2::ITaskPaneToolPanelAccess + virtual void ActivateToolPanel( const ::rtl::OUString& i_rPanelURL ); +}; } // end of namespace ::sd diff --git a/sd/source/ui/inc/PaneDockingWindow.hrc b/sd/source/ui/inc/PaneDockingWindow.hrc index e8e4a1fba597..eb7c23c075ec 100644..100755 --- a/sd/source/ui/inc/PaneDockingWindow.hrc +++ b/sd/source/ui/inc/PaneDockingWindow.hrc @@ -25,6 +25,6 @@ * ************************************************************************/ -#define FLT_LEFT_PANE_IMPRESS_DOCKING_WINDOW 792 -#define FLT_LEFT_PANE_DRAW_DOCKING_WINDOW 793 -#define FLT_RIGHT_PANE_DOCKING_WINDOW 794 +#define FLT_LEFT_PANE_IMPRESS_DOCKING_WINDOW 792 +#define FLT_LEFT_PANE_DRAW_DOCKING_WINDOW 793 +#define FLT_TOOL_PANEL_DOCKING_WINDOW 794 diff --git a/sd/source/ui/inc/PaneDockingWindow.hxx b/sd/source/ui/inc/PaneDockingWindow.hxx index 03e6cf96c0f0..1874df10dd53 100644..100755 --- a/sd/source/ui/inc/PaneDockingWindow.hxx +++ b/sd/source/ui/inc/PaneDockingWindow.hxx @@ -28,7 +28,7 @@ #ifndef SD_PANE_DOCKING_WINDOW_HXX #define SD_PANE_DOCKING_WINDOW_HXX -#include <sfx2/dockwin.hxx> +#include <sfx2/titledockwin.hxx> #include <sfx2/viewfrm.hxx> #include <boost/scoped_ptr.hpp> @@ -38,15 +38,10 @@ class ToolBox; namespace sd { -class PaneDockingWindow - : public SfxDockingWindow + class PaneDockingWindow : public ::sfx2::TitledDockingWindow { public: - /** Create a new docking window that will be displayed in the specified - pane. - The constructor will determine the ViewShellBase via the given - bindings and tell its PaneManager about the new window. It will ask - the PaneManager for a window title. + /** Create a new docking window. @param pBindings Used, among others, to determine the ViewShellBase and PaneManager that manage the new docking window. @@ -57,89 +52,19 @@ public: The parent window of the new docking window. @param rResId The resource is used to determine initial size and attributes. - @param ePane - The pane in which to show the docking window. + @param rsTitle + the initial title */ PaneDockingWindow ( SfxBindings *pBindings, SfxChildWindow *pChildWindow, ::Window* pParent, const ResId& rResId, - const ::rtl::OUString& rsPaneURL, const ::rtl::OUString& rsTitle); virtual ~PaneDockingWindow (void); - virtual void Paint (const Rectangle& rRectangle); - virtual void Resize (void); - - virtual long Notify( NotifyEvent& rNEvt ); virtual void StateChanged( StateChangedType nType ); - virtual void DataChanged( const DataChangedEvent& rDCEvt ); - - /** Initializing the title tool box either creates a new title tool box - or clears all items from an existing one. A closer is added as only - item. - */ - void InitializeTitleToolBox (void); - - /** Add a top down menu to the title bar or rather the top-level menu - entry. The given callback is called when the menu is clicked and it - is the task of the callback to show the menu. - @return - The id of the new menu is returned. It can be compared by the - callback to the value of GetCurItemId() when called at the given - tool box. - */ - USHORT AddMenu (const String& rsMenuName, ULONG nHelpId, const Link& rCallback); - - /** Set the title of the docking window to the given string. Use this - method when the title is not yet known at the time of construction - or can not be passed to the constructor. - */ - void SetTitle (const String& rsTitle); - - ::Window* GetContentWindow (void); - - ::boost::shared_ptr<ToolBox> GetTitleToolBox (void) const; - -private: - /** The pane which is represented by the docking window. - */ - ::rtl::OUString msPaneURL; - - /** Title that is shown at the top of the docking window. - */ - ::rtl::OUString msTitle; - - /** The tool box that is displayed in the window title area contains - menus and the closer button. - */ - ::boost::shared_ptr<ToolBox> mpTitleToolBox; - - /** The border that is painted arround the inner window. The bevel - shadow lines are part of the border, so where the border is 0 no - such line is painted. - */ - SvBorder maBorder; - - sal_uInt16 mnChildWindowId; - - ::boost::scoped_ptr< ::Window> mpContentWindow; - - /** Remember that a layout is pending, i.e. Resize() has been called - since the last Paint(). - */ - bool mbIsLayoutPending; - - DECL_LINK(ToolboxSelectHandler, ToolBox*); - - /** This does the actual placing and sizing of the title bar and the - content window after the size of the docking window has changed. - This method is called from withing the Paint() method when since its - last invocation the size of the docking window has changed. - */ - void Layout (void); }; } // end of namespace ::sd diff --git a/sd/source/ui/inc/PaneShells.hxx b/sd/source/ui/inc/PaneShells.hxx index c34d2ba632d8..de410c2565bf 100644..100755 --- a/sd/source/ui/inc/PaneShells.hxx +++ b/sd/source/ui/inc/PaneShells.hxx @@ -75,15 +75,14 @@ public: /** Shell that displays the right pane for both Impress and Draw. The shell does not do anything else and has especially no slots. */ -class RightPaneShell - : public SfxShell +class ToolPanelPaneShell : public SfxShell { public: TYPEINFO(); - SFX_DECL_INTERFACE(SD_IF_SDRIGHTPANESHELL) + SFX_DECL_INTERFACE( SD_IF_SDTOOLPANELPANESHELL ) - RightPaneShell (void); - virtual ~RightPaneShell (void); + ToolPanelPaneShell(); + virtual ~ToolPanelPaneShell(); }; } // end of namespace sd diff --git a/sd/source/ui/inc/SdUnoDrawView.hxx b/sd/source/ui/inc/SdUnoDrawView.hxx index afd03acd256f..d29ca3b09d32 100644..100755 --- a/sd/source/ui/inc/SdUnoDrawView.hxx +++ b/sd/source/ui/inc/SdUnoDrawView.hxx @@ -106,6 +106,11 @@ public: css::lang::WrappedTargetException, css::uno::RuntimeException); + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw (::com::sun::star::uno::RuntimeException); + virtual ::sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException); + protected: sal_Bool getMasterPageMode(void) const throw(); void setMasterPageMode(sal_Bool MasterPageMode_) throw(); @@ -133,6 +138,8 @@ protected: void SetZoomType( sal_Int16 nType ); + ::com::sun::star::uno::Any getDrawViewMode() const; + private: DrawController& mrController; DrawViewShell& mrDrawViewShell; diff --git a/sd/source/ui/inc/SdUnoOutlineView.hxx b/sd/source/ui/inc/SdUnoOutlineView.hxx index a8c97b2e2610..d2a4d4bfd39d 100644..100755 --- a/sd/source/ui/inc/SdUnoOutlineView.hxx +++ b/sd/source/ui/inc/SdUnoOutlineView.hxx @@ -111,6 +111,11 @@ public: disposing (const ::com::sun::star::lang::EventObject& rEventObject) throw (::com::sun::star::uno::RuntimeException); + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw (::com::sun::star::uno::RuntimeException); + virtual ::sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException); + private: DrawController& mrController; OutlineViewShell& mrOutlineViewShell; diff --git a/sd/source/ui/inc/SdUnoPresView.hxx b/sd/source/ui/inc/SdUnoPresView.hxx deleted file mode 100644 index 8edf171f60cc..000000000000 --- a/sd/source/ui/inc/SdUnoPresView.hxx +++ /dev/null @@ -1,54 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef SD_UNO_PRES_VIEW_HXX -#define SD_UNO_PRES_VIEW_HXX - -#include "SdUnoDrawView.hxx" - -namespace sd { - -/** The sub controller for the slide show (or preview?) It formerly reduced - the property set inherited from SdUnoDrawView to just 'CurrentPage'. - Now that we have to always support the whole set, we can as well try to - do that as best as we can. Therefore the inherited functionality is - provided as is. -*/ -class SdUnoPresView - : public SdUnoDrawView -{ -public: - SdUnoPresView ( - DrawController& rController, - DrawViewShell& rViewShell, - View& rView) throw(); - virtual ~SdUnoPresView (void) throw(); -}; - -} // end of namespace sd - -#endif diff --git a/sd/source/ui/inc/SdUnoSlideView.hxx b/sd/source/ui/inc/SdUnoSlideView.hxx index e468d416bf56..6005704ec895 100644..100755 --- a/sd/source/ui/inc/SdUnoSlideView.hxx +++ b/sd/source/ui/inc/SdUnoSlideView.hxx @@ -109,6 +109,11 @@ public: css::lang::WrappedTargetException, css::uno::RuntimeException); + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw (::com::sun::star::uno::RuntimeException); + virtual ::sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException); + private: DrawController& mrController; slidesorter::SlideSorter& mrSlideSorter; diff --git a/sd/source/ui/inc/ToolPanelChildWindow.hrc b/sd/source/ui/inc/ToolPanelChildWindow.hrc deleted file mode 100644 index 61dca11d21cc..000000000000 --- a/sd/source/ui/inc/ToolPanelChildWindow.hrc +++ /dev/null @@ -1,30 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#define FLT_WIN_TOOLPANEL 788 - -#define TOOLPANEL 1 diff --git a/sd/source/ui/inc/ToolPanelChildWindow.hxx b/sd/source/ui/inc/ToolPanelChildWindow.hxx deleted file mode 100644 index 721c9baee3ac..000000000000 --- a/sd/source/ui/inc/ToolPanelChildWindow.hxx +++ /dev/null @@ -1,55 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef SD_TOOL_PANEL_CHILD_WINDOW_HXX -#define SD_TOOL_PANEL_CHILD_WINDOW_HXX - -#include <sfx2/childwin.hxx> - -#define TOOLPANEL_CHILD_WINDOW() ( \ - static_cast< ::sd::toolpanel::ToolPanelChildWindow*>( \ - SfxViewFrame::Current()->GetChildWindow( \ - ::sd::toolpanel::ToolPanelChildWindow::GetChildWindowId() \ - )->GetWindow())) - - -namespace sd { namespace toolpanel { - -class ToolPanelChildWindow - : public SfxChildWindow -{ -public: - ToolPanelChildWindow (::Window*, USHORT, SfxBindings*, SfxChildWinInfo*); - virtual ~ToolPanelChildWindow (void); - - SFX_DECL_CHILDWINDOW (ToolPanelChildWindow); -}; - - -} } // end of namespaces ::sd::toolpanel - -#endif diff --git a/sd/source/ui/inc/View.hxx b/sd/source/ui/inc/View.hxx index a0d7bf179886..2b6c1a8abb77 100644..100755 --- a/sd/source/ui/inc/View.hxx +++ b/sd/source/ui/inc/View.hxx @@ -208,6 +208,7 @@ public: void SetMarkedPointsSmoothPossible( bool bSet ) { bSetMarkedPointsSmoothPossible = bSet; } void SetMarkedSegmentsKindPossible( bool bSet ) { bSetMarkedSegmentsKindPossible = bSet; } + SdrObject* GetEmptyPresentationObject( PresObjKind eKind ); protected: DECL_LINK( OnParagraphInsertedHdl, ::Outliner * ); DECL_LINK( OnParagraphRemovingHdl, ::Outliner * ); diff --git a/sd/source/ui/inc/ViewShell.hxx b/sd/source/ui/inc/ViewShell.hxx index 64bc5cbc02b7..64bc5cbc02b7 100644..100755 --- a/sd/source/ui/inc/ViewShell.hxx +++ b/sd/source/ui/inc/ViewShell.hxx diff --git a/sd/source/ui/inc/ViewShellBase.hxx b/sd/source/ui/inc/ViewShellBase.hxx index 5e1acbe2a6ac..bda748559399 100644..100755 --- a/sd/source/ui/inc/ViewShellBase.hxx +++ b/sd/source/ui/inc/ViewShellBase.hxx @@ -28,6 +28,8 @@ #ifndef SD_VIEW_SHELL_BASE_HXX #define SD_VIEW_SHELL_BASE_HXX +#include <com/sun/star/frame/XFrame.hpp> + #include "ViewShell.hxx" #include "glob.hxx" diff --git a/sd/source/ui/inc/ViewShellImplementation.hxx b/sd/source/ui/inc/ViewShellImplementation.hxx index 466e4e578cc2..f4f07b5549dd 100644..100755 --- a/sd/source/ui/inc/ViewShellImplementation.hxx +++ b/sd/source/ui/inc/ViewShellImplementation.hxx @@ -124,9 +124,7 @@ public: @param pPage If a NULL pointer is given then this call is ignored. */ - void AssignLayout ( - SdPage* pPage, - AutoLayout aLayout); + void AssignLayout ( SfxRequest& rRequest, PageKind ePageKind ); /** Determine the view id of the view shell. This corresponds to the view id stored in the SfxViewFrame class. diff --git a/sd/source/ui/inc/framework/FrameworkHelper.hxx b/sd/source/ui/inc/framework/FrameworkHelper.hxx index a25839b3e637..a25839b3e637 100644..100755 --- a/sd/source/ui/inc/framework/FrameworkHelper.hxx +++ b/sd/source/ui/inc/framework/FrameworkHelper.hxx diff --git a/sd/source/ui/inc/framework/PresentationFactory.hxx b/sd/source/ui/inc/framework/PresentationFactory.hxx index 4f35813a7205..a607542f2df0 100644..100755 --- a/sd/source/ui/inc/framework/PresentationFactory.hxx +++ b/sd/source/ui/inc/framework/PresentationFactory.hxx @@ -82,7 +82,7 @@ public: SAL_CALL createResource ( const css::uno::Reference< css::drawing::framework::XResourceId>& rxViewId) - throw(css::uno::RuntimeException); + throw (css::uno::RuntimeException, css::lang::IllegalArgumentException, css::lang::WrappedTargetException); virtual void SAL_CALL releaseResource ( const css::uno::Reference<css::drawing::framework::XResource>& xView) diff --git a/sd/source/ui/inc/framework/ViewShellWrapper.hxx b/sd/source/ui/inc/framework/ViewShellWrapper.hxx index 96846e5c08d7..12483f462d5e 100644..100755 --- a/sd/source/ui/inc/framework/ViewShellWrapper.hxx +++ b/sd/source/ui/inc/framework/ViewShellWrapper.hxx @@ -35,17 +35,17 @@ #include <com/sun/star/lang/XUnoTunnel.hpp> #include <osl/mutex.hxx> #include <cppuhelper/compbase4.hxx> +#include <cppuhelper/implbase1.hxx> #include <boost/shared_ptr.hpp> namespace { -typedef ::cppu::WeakComponentImplHelper4 < - ::com::sun::star::drawing::framework::XView, - ::com::sun::star::lang::XUnoTunnel, - ::com::sun::star::awt::XWindowListener, - ::com::sun::star::drawing::framework::XRelocatableResource - > ViewShellWrapperInterfaceBase; +typedef ::cppu::WeakComponentImplHelper4 < ::com::sun::star::lang::XUnoTunnel + , ::com::sun::star::awt::XWindowListener + , ::com::sun::star::drawing::framework::XRelocatableResource + , ::com::sun::star::drawing::framework::XView + > ViewShellWrapperInterfaceBase; } // end of anonymous namespace. @@ -57,9 +57,8 @@ namespace sd { namespace framework { Most importantly it provides a tunnel to the ViewShell implementation. Then it forwards size changes of the pane window to the view shell. */ -class ViewShellWrapper - : private sd::MutexOwner, - public ViewShellWrapperInterfaceBase +class ViewShellWrapper :private sd::MutexOwner + ,public ViewShellWrapperInterfaceBase { public: /** Create a new ViewShellWrapper object that wraps the given ViewShell @@ -90,23 +89,11 @@ public: */ ::boost::shared_ptr<ViewShell> GetViewShell (void); - /** Returns whether there is exactly one reference to the called - ViewShellWrapper object (the number of references to the wrapped - ViewShell object is not taken into account). This method is - typically used by the owner of a ViewShellWrapper object to verify - that, at the end of the ViewShellWrapper object's lifetime, the - owner holds the last reference and by releasing it will destroy the - object. - */ - bool IsUnique (void); - - // XUnoTunnel virtual sal_Int64 SAL_CALL getSomething (const com::sun::star::uno::Sequence<sal_Int8>& rId) throw (com::sun::star::uno::RuntimeException); - // XResource virtual ::com::sun::star::uno::Reference<com::sun::star::drawing::framework::XResourceId> @@ -151,10 +138,9 @@ public: throw (com::sun::star::uno::RuntimeException); private: - ::boost::shared_ptr<ViewShell> mpViewShell; - const ::com::sun::star::uno::Reference< - com::sun::star::drawing::framework::XResourceId> mxViewId; - ::com::sun::star::uno::Reference<com::sun::star::awt::XWindow> mxWindow; + ::boost::shared_ptr< ViewShell > mpViewShell; + const ::com::sun::star::uno::Reference< com::sun::star::drawing::framework::XResourceId > mxViewId; + ::com::sun::star::uno::Reference<com::sun::star::awt::XWindow > mxWindow; }; } } // end of namespace sd::framework diff --git a/sd/source/ui/inc/res_bmp.hrc b/sd/source/ui/inc/res_bmp.hrc index 9572d9da6960..1602dc698f3f 100644..100755 --- a/sd/source/ui/inc/res_bmp.hrc +++ b/sd/source/ui/inc/res_bmp.hrc @@ -67,36 +67,6 @@ #define RID_GRAFFILTERS RID_APP_START+29 #define RID_GRAFFILTERS_TBX RID_APP_START+30 -#define BMP_FOIL_00 RID_APP_START+10 -#define BMP_FOIL_01 RID_APP_START+11 -#define BMP_FOIL_02 RID_APP_START+12 -#define BMP_FOIL_03 RID_APP_START+13 -#define BMP_FOIL_04 RID_APP_START+14 -#define BMP_FOIL_05 RID_APP_START+15 -#define BMP_FOIL_06 RID_APP_START+16 -#define BMP_FOIL_07 RID_APP_START+17 -#define BMP_FOIL_08 RID_APP_START+18 -#define BMP_FOIL_09 RID_APP_START+19 -#define BMP_FOIL_10 RID_APP_START+20 -#define BMP_FOIL_11 RID_APP_START+21 -#define BMP_FOIL_12 RID_APP_START+22 -#define BMP_FOIL_13 RID_APP_START+23 -#define BMP_FOIL_14 RID_APP_START+24 -#define BMP_FOIL_15 RID_APP_START+25 -#define BMP_FOIL_16 RID_APP_START+26 -#define BMP_FOIL_17 RID_APP_START+27 -#define BMP_FOIL_18 RID_APP_START+28 -#define BMP_FOIL_19 RID_APP_START+29 -#define BMP_FOIL_20 RID_APP_START+30 -#define BMP_FOILH_01 RID_APP_START+31 -#define BMP_FOILH_02 RID_APP_START+32 -#define BMP_FOILH_03 RID_APP_START+33 -#define BMP_FOILH_04 RID_APP_START+34 -#define BMP_FOILH_06 RID_APP_START+35 -#define BMP_FOILH_09 RID_APP_START+36 -#define BMP_FOILN_01 RID_APP_START+40 -#define BMP_FOIL_25 RID_APP_START+41 - // Bitmaps fuer Tree-ListBox im Effekte-TabDialog #define BMP_PAGE RID_APP_START+42 #define BMP_PAGEOBJS RID_APP_START+43 @@ -111,8 +81,6 @@ #define BMP_COLLAPSE RID_APP_START+52 #define BMP_GRAPHIC RID_APP_START+53 -#define BMP_FOIL_26 RID_APP_START+54 - // Bimaps fuer ValueSet im EffekteWindow #define BMP_EFFECT_NONE RID_APP_START+105 #define BMP_TEXTEFFECT_DISCARD_FROM_T RID_APP_START+106 @@ -170,38 +138,6 @@ #define BMP_EFFECT_UNCOVER_TO_B RID_APP_START+171 #define BMP_EFFECT_UNCOVER_TO_LL RID_APP_START+172 -#define BMP_FOIL_00_H RID_SD_START+182 -#define BMP_FOIL_01_H RID_SD_START+183 -#define BMP_FOIL_02_H RID_SD_START+184 -#define BMP_FOIL_03_H RID_SD_START+185 -#define BMP_FOIL_04_H RID_SD_START+186 -#define BMP_FOIL_05_H RID_SD_START+187 -#define BMP_FOIL_06_H RID_SD_START+188 -#define BMP_FOIL_07_H RID_SD_START+189 -#define BMP_FOIL_08_H RID_SD_START+190 -#define BMP_FOIL_09_H RID_SD_START+191 -#define BMP_FOIL_10_H RID_SD_START+192 -#define BMP_FOIL_11_H RID_SD_START+193 -#define BMP_FOIL_12_H RID_SD_START+194 -#define BMP_FOIL_13_H RID_SD_START+195 -#define BMP_FOIL_14_H RID_SD_START+196 -#define BMP_FOIL_15_H RID_SD_START+197 -#define BMP_FOIL_16_H RID_SD_START+198 -#define BMP_FOIL_17_H RID_SD_START+199 -#define BMP_FOIL_18_H RID_SD_START+200 -#define BMP_FOIL_19_H RID_SD_START+201 -#define BMP_FOIL_20_H RID_SD_START+202 -#define BMP_FOIL_21_H RID_SD_START+203 -#define BMP_FOIL_22_H RID_SD_START+204 -#define BMP_FOIL_23_H RID_SD_START+205 -#define BMP_FOIL_24_H RID_SD_START+206 -#define BMP_FOILH_01_H RID_SD_START+207 -#define BMP_FOILH_02_H RID_SD_START+208 -#define BMP_FOILH_03_H RID_SD_START+209 -#define BMP_FOILH_04_H RID_SD_START+210 -#define BMP_FOILH_06_H RID_SD_START+211 -#define BMP_FOILN_01_H RID_SD_START+212 - #define BMP_PAGE_H RID_SD_START+213 #define BMP_PAGEOBJS_H RID_SD_START+214 #define BMP_OBJECTS_H RID_SD_START+215 @@ -219,24 +155,78 @@ #define BMP_GROUP_H RID_SD_START+226 #define BMP_WAIT_ICON_H RID_SD_START+229 -#define BMP_CLOSE_DOC RID_SD_START+325 -#define BMP_CLOSE_DOC_H RID_SD_START+326 -#define BMP_TRIANGLE_RIGHT RID_SD_START+327 -#define BMP_TRIANGLE_RIGHT_H RID_SD_START+328 -#define BMP_TRIANGLE_DOWN RID_SD_START+329 -#define BMP_TRIANGLE_DOWN_H RID_SD_START+330 #define BMP_FADE_EFFECT_INDICATOR RID_SD_START+331 #define BMP_FADE_EFFECT_INDICATOR_H RID_SD_START+332 -#define BMP_FOILH_09_H RID_SD_START+333 -#define BMP_FOIL_25_H RID_SD_START+334 -#define BMP_FOIL_26_H RID_SD_START+335 -#define BMP_FOIL_27 RID_SD_START+336 -#define BMP_FOIL_27_H RID_SD_START+337 - #define BMP_COMMENTS_INDICATOR RID_SD_START+338 #define BMP_COMMENTS_INDICATOR_H RID_SD_START+339 +#define BMP_LAYOUT_EMPTY RID_SD_START+340 +#define BMP_LAYOUT_EMPTY_H RID_SD_START+341 +#define BMP_LAYOUT_HEAD01 RID_SD_START+342 +#define BMP_LAYOUT_HEAD01_H RID_SD_START+343 +#define BMP_LAYOUT_HEAD02 RID_SD_START+344 +#define BMP_LAYOUT_HEAD02_H RID_SD_START+345 +#define BMP_LAYOUT_HEAD02A RID_SD_START+346 +#define BMP_LAYOUT_HEAD02A_H RID_SD_START+347 +#define BMP_LAYOUT_HEAD02B RID_SD_START+348 +#define BMP_LAYOUT_HEAD02B_H RID_SD_START+349 +#define BMP_LAYOUT_HEAD03 RID_SD_START+350 +#define BMP_LAYOUT_HEAD03_H RID_SD_START+351 +#define BMP_LAYOUT_HEAD03A RID_SD_START+352 +#define BMP_LAYOUT_HEAD03A_H RID_SD_START+353 +#define BMP_LAYOUT_HEAD03B RID_SD_START+354 +#define BMP_LAYOUT_HEAD03B_H RID_SD_START+355 +#define BMP_LAYOUT_HEAD03C RID_SD_START+356 +#define BMP_LAYOUT_HEAD03C_H RID_SD_START+357 +#define BMP_LAYOUT_HEAD04 RID_SD_START+358 +#define BMP_LAYOUT_HEAD04_H RID_SD_START+359 +#define BMP_LAYOUT_HEAD06 RID_SD_START+360 +#define BMP_LAYOUT_HEAD06_H RID_SD_START+361 +#define BMP_LAYOUT_TEXTONLY RID_SD_START+362 +#define BMP_LAYOUT_TEXTONLY_H RID_SD_START+363 +#define BMP_LAYOUT_VERTICAL01 RID_SD_START+364 +#define BMP_LAYOUT_VERTICAL01_H RID_SD_START+365 +#define BMP_LAYOUT_VERTICAL02 RID_SD_START+366 +#define BMP_LAYOUT_VERTICAL02_H RID_SD_START+367 + +#define BMP_FOILH_01 RID_SD_START+388 +#define BMP_FOILH_01_H RID_SD_START+389 +#define BMP_FOILH_02 RID_SD_START+390 +#define BMP_FOILH_02_H RID_SD_START+391 +#define BMP_FOILH_03 RID_SD_START+392 +#define BMP_FOILH_03_H RID_SD_START+393 +#define BMP_FOILH_04 RID_SD_START+394 +#define BMP_FOILH_04_H RID_SD_START+395 +#define BMP_FOILH_06 RID_SD_START+396 +#define BMP_FOILH_06_H RID_SD_START+397 +#define BMP_FOILH_09 RID_SD_START+398 +#define BMP_FOILH_09_H RID_SD_START+399 + +#define BMP_FOILN_01 RID_SD_START+400 +#define BMP_FOILN_01_H RID_SD_START+401 + +#define BMP_PLACEHOLDER_SMALL_START (RID_SD_START+402) // these ids must stay in order! +#define BMP_PLACEHOLDER_TABLE_SMALL (RID_SD_START+402) +#define BMP_PLACEHOLDER_CHART_SMALL (RID_SD_START+403) +#define BMP_PLACEHOLDER_IMAGE_SMALL (RID_SD_START+404) +#define BMP_PLACEHOLDER_MOVIE_SMALL (RID_SD_START+405) +#define BMP_PLACEHOLDER_TABLE_SMALL_HOVER (RID_SD_START+406) +#define BMP_PLACEHOLDER_CHART_SMALL_HOVER (RID_SD_START+407) +#define BMP_PLACEHOLDER_IMAGE_SMALL_HOVER (RID_SD_START+408) +#define BMP_PLACEHOLDER_MOVIE_SMALL_HOVER (RID_SD_START+409) +#define BMP_PLACEHOLDER_SMALL_END (RID_SD_START+410) +#define BMP_PLACEHOLDER_LARGE_START (RID_SD_START+410) +#define BMP_PLACEHOLDER_TABLE_LARGE (RID_SD_START+410) +#define BMP_PLACEHOLDER_CHART_LARGE (RID_SD_START+411) +#define BMP_PLACEHOLDER_IMAGE_LARGE (RID_SD_START+412) +#define BMP_PLACEHOLDER_MOVIE_LARGE (RID_SD_START+413) +#define BMP_PLACEHOLDER_TABLE_LARGE_HOVER (RID_SD_START+414) +#define BMP_PLACEHOLDER_CHART_LARGE_HOVER (RID_SD_START+415) +#define BMP_PLACEHOLDER_IMAGE_LARGE_HOVER (RID_SD_START+416) +#define BMP_PLACEHOLDER_MOVIE_LARGE_HOVER (RID_SD_START+417) +#define BMP_PLACEHOLDER_LARGE_END (RID_SD_START+418) // until here! + // ----------------------------------------------------------------------------- #define IMG_PIPETTE_H RID_APP_START+21 diff --git a/sd/source/ui/inc/smarttag.hxx b/sd/source/ui/inc/smarttag.hxx index 88faf5db8db8..15544c2b5221 100644..100755 --- a/sd/source/ui/inc/smarttag.hxx +++ b/sd/source/ui/inc/smarttag.hxx @@ -163,6 +163,7 @@ private: ::sd::View& mrView; SmartTagReference mxSelectedTag; + SmartTagReference mxMouseOverTag; }; /** a derivation from this handle is the visual representation for a smart tag. diff --git a/sd/source/ui/inc/strings.hrc b/sd/source/ui/inc/strings.hrc index ea7a06969d84..d9dc93a1ef20 100644..100755 --- a/sd/source/ui/inc/strings.hrc +++ b/sd/source/ui/inc/strings.hrc @@ -168,26 +168,20 @@ #define STR_DRAW_MEDIA_TOOLBOX RID_DRAW_MEDIA_TOOLBOX // IDs fuer Praesentationsfolien -#define STR_AUTOLAYOUT_NONE (RID_APP_START+210) -#define STR_AUTOLAYOUT_ONLY_TITLE (RID_APP_START+211) -#define STR_AUTOLAYOUT_TITLE (RID_APP_START+212) -#define STR_AUTOLAYOUT_OBJ (RID_APP_START+213) -#define STR_AUTOLAYOUT_ENUM (RID_APP_START+214) -#define STR_AUTOLAYOUT_CHART (RID_APP_START+215) -#define STR_AUTOLAYOUT_TAB (RID_APP_START+217) -#define STR_AUTOLAYOUT_CLIPTEXT (RID_APP_START+218) -#define STR_AUTOLAYOUT_2TEXT (RID_APP_START+219) -#define STR_AUTOLAYOUT_TEXTCHART (RID_APP_START+220) -#define STR_AUTOLAYOUT_TEXTCLIP (RID_APP_START+221) -#define STR_AUTOLAYOUT_CHARTTEXT (RID_APP_START+222) -#define STR_AUTOLAYOUT_TEXTOBJ (RID_APP_START+223) -#define STR_AUTOLAYOUT_TEXT2OBJ (RID_APP_START+224) -#define STR_AUTOLAYOUT_OBJTEXT (RID_APP_START+225) -#define STR_AUTOLAYOUT_OBJOVERTEXT (RID_APP_START+226) -#define STR_AUTOLAYOUT_2OBJTEXT (RID_APP_START+227) -#define STR_AUTOLAYOUT_2OBJOVERTEXT (RID_APP_START+228) -#define STR_AUTOLAYOUT_TEXTOVEROBJ (RID_APP_START+229) -#define STR_AUTOLAYOUT_4OBJ (RID_APP_START+230) +#define STR_AUTOLAYOUT_NONE (RID_APP_START+210) +#define STR_AUTOLAYOUT_ONLY_TITLE (RID_APP_START+211) +#define STR_AUTOLAYOUT_ONLY_TEXT (RID_APP_START+212) +#define STR_AUTOLAYOUT_TITLE (RID_APP_START+213) +#define STR_AUTOLAYOUT_CONTENT (RID_APP_START+214) +#define STR_AUTOLAYOUT_2CONTENT (RID_APP_START+215) +#define STR_AUTOLAYOUT_CONTENT_2CONTENT (RID_APP_START+217) +#define STR_AUTOLAYOUT_2CONTENT_CONTENT (RID_APP_START+218) +#define STR_AUTOLAYOUT_CONTENT_OVER_2CONTENT (RID_APP_START+219) +#define STR_AUTOLAYOUT_2CONTENT_OVER_CONTENT (RID_APP_START+220) +#define STR_AUTOLAYOUT_CONTENT_OVER_CONTENT (RID_APP_START+221) +#define STR_AUTOLAYOUT_4CONTENT (RID_APP_START+222) +#define STR_AUTOLAYOUT_6CONTENT (RID_APP_START+223) + #define STR_AUTOLAYOUT_HANDOUT1 (RID_APP_START+231) #define STR_AUTOLAYOUT_HANDOUT2 (RID_APP_START+232) #define STR_AUTOLAYOUT_HANDOUT3 (RID_APP_START+233) @@ -195,13 +189,9 @@ #define STR_AUTOLAYOUT_HANDOUT6 (RID_APP_START+235) #define STR_AUTOLAYOUT_NOTES (RID_APP_START+236) #define STR_AUTOLAYOUT_HANDOUT9 (RID_APP_START+237) -#define STR_AUTOLAYOUT_ONLY_TEXT (RID_APP_START+238) -#define STR_AUTOLAYOUT_4CLIPART (RID_APP_START+239) #define STR_TRANSFORM (RID_APP_START+240) -#define STR_AUTOLAYOUT_6CLIPART (RID_APP_START+241) - #define STR_EXPORT_HTML_NAME (RID_APP_START+244) #define STR_EXPORT_HTML_FILTER (RID_APP_START+245) #define STR_EXPORT_DIALOG_TITLE (RID_APP_START+261) @@ -512,6 +502,12 @@ #define STR_NAVIGATOR_SHOW_ALL_SHAPES (RID_APP_START+719) #define STR_NAVIGATOR_SHAPE_BASE_NAME (RID_APP_START+720) +#define STR_RESET_LAYOUT (RID_APP_START+721) +#define STR_INSERT_TABLE (RID_APP_START+722) +#define STR_INSERT_CHART (RID_APP_START+723) +#define STR_INSERT_PICTURE (RID_APP_START+724) +#define STR_INSERT_MOVIE (RID_APP_START+725) + /****************************************************************************** * The ids in glob.hrc start at RID_APP_START+750! ******************************************************************************/ diff --git a/sd/source/ui/inc/taskpane/ControlContainer.hxx b/sd/source/ui/inc/taskpane/ControlContainer.hxx index b4087da5b51b..9c1652f05887 100644..100755 --- a/sd/source/ui/inc/taskpane/ControlContainer.hxx +++ b/sd/source/ui/inc/taskpane/ControlContainer.hxx @@ -28,7 +28,6 @@ #ifndef SD_TOOLPANEL_CONTROL_CONTAINER_HXX #define SD_TOOLPANEL_CONTROL_CONTAINER_HXX -#include "TitleBar.hxx" #include <osl/mutex.hxx> #include <vector> diff --git a/sd/source/ui/inc/taskpane/ILayoutableWindow.hxx b/sd/source/ui/inc/taskpane/ILayoutableWindow.hxx index 7a85120e1ad6..5aad9fa29f78 100644..100755 --- a/sd/source/ui/inc/taskpane/ILayoutableWindow.hxx +++ b/sd/source/ui/inc/taskpane/ILayoutableWindow.hxx @@ -48,7 +48,7 @@ public: /** This interface has to be implemented by windows that want to be - layouted by a ToolPanel, SubToolPanel, or ScrollablePanel object. + layouted by a SubToolPanel or ScrollablePanel object. */ class ILayoutableWindow { diff --git a/sd/source/ui/inc/taskpane/PanelId.hxx b/sd/source/ui/inc/taskpane/PanelId.hxx new file mode 100644 index 000000000000..565745f97140 --- /dev/null +++ b/sd/source/ui/inc/taskpane/PanelId.hxx @@ -0,0 +1,62 @@ +/************************************************************************* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * +************************************************************************/ + +#ifndef SD_UI_TASKPANE_PANELID_HXX +#define SD_UI_TASKPANE_PANELID_HXX + +namespace rtl +{ + class OUString; +} + +//...................................................................................................................... +namespace sd { namespace toolpanel +{ +//...................................................................................................................... + + //================================================================================================================== + //= PanelId + //================================================================================================================== + /** List of top level panels that can be shown in the task pane. + */ + enum PanelId + { + PID_MASTER_PAGES = 0, + PID_LAYOUT = 1, + PID_TABLE_DESIGN = 2, + PID_CUSTOM_ANIMATION = 3, + PID_SLIDE_TRANSITION = 4, + + PID_UNKNOWN = 5 + }; + + PanelId GetStandardPanelId( const ::rtl::OUString& i_rTaskPanelResourceURL ); + +//...................................................................................................................... +} } // namespace sd::toolpanel +//...................................................................................................................... + +#endif // SD_UI_TASKPANE_PANELID_HXX diff --git a/sd/source/ui/inc/taskpane/ScrollPanel.hxx b/sd/source/ui/inc/taskpane/ScrollPanel.hxx index 019e06d9dd44..b3620255f913 100644..100755 --- a/sd/source/ui/inc/taskpane/ScrollPanel.hxx +++ b/sd/source/ui/inc/taskpane/ScrollPanel.hxx @@ -60,6 +60,10 @@ public: parent. This will usually be a child window. */ ScrollPanel (TreeNode* pParent); + /** Create a new scroll panel which itself is the root of a TreeNode hierarchy + parent. This will usually be a child window. + */ + ScrollPanel (::Window& i_rParentWindow); virtual ~ScrollPanel (void); /** Add a control to the sub panel. An title bar is added above the @@ -171,6 +175,10 @@ private: */ sal_Int32 LayoutChildren (void); + /** ctor-impl + */ + void Construct(); + Size SetupScrollBars (const Size& rRequiresSize); sal_Int32 SetupVerticalScrollBar (bool bShow, sal_Int32 nRange); sal_Int32 SetupHorizontalScrollBar (bool bShow, sal_Int32 nRange); diff --git a/sd/source/ui/inc/taskpane/SlideSorterCacheDisplay.hxx b/sd/source/ui/inc/taskpane/SlideSorterCacheDisplay.hxx index 7d5c4c996bc1..933a25f4067d 100644..100755 --- a/sd/source/ui/inc/taskpane/SlideSorterCacheDisplay.hxx +++ b/sd/source/ui/inc/taskpane/SlideSorterCacheDisplay.hxx @@ -54,7 +54,6 @@ class Window; namespace sd { namespace toolpanel { -class ControlFactory; class TreeNode; /** This panel demonstrates how to create a panel for the task pane. @@ -71,8 +70,6 @@ public: virtual void Paint (const Rectangle& rBoundingBox); virtual void Resize (void); - static std::auto_ptr<ControlFactory> CreateControlFactory (const SdDrawDocument* pDocument); - static SlideSorterCacheDisplay* Instance (const SdDrawDocument* pDocument); void SetPageCount (sal_Int32 nPageCount); diff --git a/sd/source/ui/inc/taskpane/SubToolPanel.hxx b/sd/source/ui/inc/taskpane/SubToolPanel.hxx index 9524cdddf748..94a73bc70996 100644..100755 --- a/sd/source/ui/inc/taskpane/SubToolPanel.hxx +++ b/sd/source/ui/inc/taskpane/SubToolPanel.hxx @@ -40,8 +40,6 @@ class Window; namespace sd { namespace toolpanel { -class ToolPanel; - /** The sub tool panel is in function similar to the tool panel. It differes in two points. First, it is a control that can be used as element in a tool panel and thus is actually a nested tool @@ -67,6 +65,7 @@ public: parent. This will usually be a child window. */ SubToolPanel (TreeNode* pParent); + SubToolPanel (Window& i_rParentWindow); virtual ~SubToolPanel (void); /** Add a control to the sub panel. diff --git a/sd/source/ui/inc/taskpane/TaskPaneControlFactory.hxx b/sd/source/ui/inc/taskpane/TaskPaneControlFactory.hxx index 483488b665ac..c86c496a770d 100644..100755 --- a/sd/source/ui/inc/taskpane/TaskPaneControlFactory.hxx +++ b/sd/source/ui/inc/taskpane/TaskPaneControlFactory.hxx @@ -58,37 +58,34 @@ public: ControlFactory (void); virtual ~ControlFactory (void); - /** Derived classes should overload InternalCreateControl(), not this - method. + /** creates a tree node which acts as root of an own tree + + Derived classes should overload InternalCreateControl. */ - ::std::auto_ptr<TreeNode> CreateControl (TreeNode* pTreeNode); + ::std::auto_ptr<TreeNode> CreateControl( ::Window& i_rParent ); protected: - /** This is the internal hook for derived classes to overload in order - to provide a new control instance. - */ - virtual TreeNode* InternalCreateControl (TreeNode* pTreeNode) = 0; + virtual TreeNode* InternalCreateControl( ::Window& i_rParent ) = 0; }; -/** A simple helper class that realizes a ControlFactory that provides its - newly created controls with one additional argument (additional to the - parent TreeNode). +/** A simple helper class that realizes a ControlFactory that is able to create root controls, providing + the to-be-created control with an additional parameter. */ template<class ControlType, class ArgumentType> -class ControlFactoryWithArgs1 +class RootControlFactoryWithArg : public ControlFactory { public: - ControlFactoryWithArgs1 (ArgumentType& rArgument) + RootControlFactoryWithArg (ArgumentType& rArgument) : mrArgument(rArgument) {} protected: - virtual TreeNode* InternalCreateControl (TreeNode* pTreeNode) + virtual TreeNode* InternalCreateControl( ::Window& i_rParent ) { - return new ControlType(pTreeNode, mrArgument); + return new ControlType( i_rParent, mrArgument ); } private: diff --git a/sd/source/ui/inc/taskpane/TaskPaneTreeNode.hxx b/sd/source/ui/inc/taskpane/TaskPaneTreeNode.hxx index 250e73124854..0dbec3b292c3 100644..100755 --- a/sd/source/ui/inc/taskpane/TaskPaneTreeNode.hxx +++ b/sd/source/ui/inc/taskpane/TaskPaneTreeNode.hxx @@ -53,9 +53,9 @@ enum TreeNodeStateChangeEventId { /** Base class for all members of the object hierarchy that makes up the - tool panel. There are usually at least three levels. At the top level - is the ToolPanel with one instance: the root of the tree. At the - middle level there are SubToolPanels and Window/Control objects. At the + tool panel. In the task pane, there are multiple hierarchies of such nodes, + with every panel having an own tree. The pane node is the root of the tree, below + that there are SubToolPanels and Window/Control objects. At the lowest level there are only Window or Control objects. This class provides the means of communication between objects on @@ -94,14 +94,6 @@ public: */ virtual sal_Int32 GetMinimumWidth (void); - /** Give each node access to the object bar manager of the tool panel. - - At least the root node has to overwrite this method since the - default implementation simply returns the object bar manager of the - parent. - */ - virtual ObjectBarManager* GetObjectBarManager (void); - /** The default implementaion always returns <FALSE/> */ virtual bool IsResizable (void); @@ -151,7 +143,7 @@ public: ControlContainer& GetControlContainer (void); /** Give each node access to a shell manage. This usually is the shell - manager of the TaskPaneViewShell. + manager of the ToolPanelViewShell. At least the root node has to overwrite this method since the default implementation simply returns the shell manager of its diff --git a/sd/source/ui/inc/taskpane/TitleBar.hxx b/sd/source/ui/inc/taskpane/TitleBar.hxx index b10adcef07e0..995117516529 100644..100755 --- a/sd/source/ui/inc/taskpane/TitleBar.hxx +++ b/sd/source/ui/inc/taskpane/TitleBar.hxx @@ -41,22 +41,13 @@ class VirtualDevice; namespace sd { namespace toolpanel { -/** The title bar above a control in a tool panel or sub tool panel. - The way the title bar is displayed depends on the TitleBarType - given to the constructor. TBT_CONTROL_TITLE and - TBT_SUB_CONTROL_HEADLINE both show a expansion indicator in front of - the title string that shows whether the associated control is - visible (expanded) or not. - A title bar with TBT_WINDOW_TITLE is typically used only once as the - title bar of the whole task pane. - - <p>The title bar shows three kinds of indicators: 1) Expansion is +/** The title bar above a control in a sub tool panel. + + <p>The title bar shows two kinds of indicators: 1) Expansion is displayed by two sets of two bitmaps, a triangle pointing to the right resp. a minus in a square indicates that the control is collapsed, a triangle pointing down resp. a plus in a square stands for an expanded - control. 2) Keyboard focus is indicated by a dotted rectangle. 3) An - underlined title string is a mouse over indicator for a - selectable/expandable control.</p> + control. 2) Keyboard focus is indicated by a dotted rectangle. */ class TitleBar : public ::Window, @@ -64,10 +55,8 @@ class TitleBar { public: enum TitleBarType { - TBT_WINDOW_TITLE, - TBT_CONTROL_TITLE, TBT_SUB_CONTROL_HEADLINE - }; + }; /** Create a new title bar whose content, the given title string, will be formatted according to the given type. @@ -90,8 +79,8 @@ public: virtual bool Expand (bool bFlag = true); virtual bool IsExpanded (void) const; virtual void SetEnabledState(bool bFlag); - - void SetFocus (bool bFlag); + virtual void GetFocus (void); + virtual void LoseFocus (void); virtual void MouseMove(const MouseEvent& rEvent); /** Empty implementation prevents forwarding to docking window. @@ -115,17 +104,10 @@ private: String msTitle; bool mbExpanded; bool mbFocused; - bool mbMouseOver; // Size of the bounding box that encloses the title string. - Size maStringBox; ::std::auto_ptr<VirtualDevice> mpDevice; bool mbIsExpandable; - /** Set the mbMouseOver flag to the given value and paint the - title bar accordingly. - */ - void SetMouseOver (bool bFlag); - /** Return whether this TitleBar object has an expansion indicator bitmap. It is safe to call GetExpansionIndicator() when this method returns <FALSE/> but unnecessary. @@ -159,8 +141,6 @@ private: const Rectangle& rTextBox, int nTitleBarWidth); - void PaintWindowTitleBar (void); - void PaintPanelControlTitle (void); void PaintSubPanelHeadLineBar (void); void PaintBackground (const Rectangle& rTextBox); @@ -168,12 +148,6 @@ private: /// Paint a focus indicator that encloses the given rectangle. void PaintFocusIndicator (const Rectangle& rIndicatorBox); - /** Paint a mouse over indicator. If the mouse is over the title - bar than the text enclosed by the given rectangle is - underlined. - */ - void PaintMouseOverIndicator (const Rectangle& rIndicatorBox); - Rectangle PaintExpansionIndicator (const Rectangle& rTextBox); void PaintText (const Rectangle& rTextBox); diff --git a/sd/source/ui/inc/taskpane/TitledControl.hxx b/sd/source/ui/inc/taskpane/TitledControl.hxx index a5a319ca5219..0aa63344fcd5 100644..100755 --- a/sd/source/ui/inc/taskpane/TitledControl.hxx +++ b/sd/source/ui/inc/taskpane/TitledControl.hxx @@ -45,7 +45,6 @@ class Window; namespace sd { namespace toolpanel { class ControlContainer; -class ControlFactory; /** This wrapper adds a title bar to a control. Both title bar and control are child windows. @@ -80,13 +79,6 @@ public: const ClickHandler& rClickHandler, TitleBar::TitleBarType eType); - TitledControl ( - TreeNode* pParent, - ::std::auto_ptr<ControlFactory> pControlFactory, - const String& rTitle, - const ClickHandler& rClickHandler, - TitleBar::TitleBarType eType); - virtual ~TitledControl (void); @@ -98,7 +90,6 @@ public: virtual void Resize (void); virtual void GetFocus (void); - virtual void LoseFocus (void); virtual void KeyInput (const KeyEvent& rEvent); // void Select (bool bExpansionState); @@ -108,8 +99,8 @@ public: the control has not yet been created and the given flag is <TRUE/> then the control is created. */ - TreeNode* GetControl (bool bCreate=true); - const TreeNode* GetConstControl (bool bCreate=true) const; + TreeNode* GetControl (void); + const TreeNode* GetConstControl () const; const String& GetTitle (void) const; @@ -156,15 +147,8 @@ private: String msTitle; bool mbVisible; void* mpUserData; - ::std::auto_ptr<ControlFactory> mpControlFactory; ::std::auto_ptr<ClickHandler> mpClickHandler; - /** Remember whether to toggle (true) the expansion state when the title - bar is clicked on. When set to false then the control is always - expanded. - */ - bool mbExpansionModeIsToggle; - /// Do not use! Assignment operator is not supported. const TitledControl& operator= ( const TitledControl& aDescriptor); diff --git a/sd/source/ui/inc/taskpane/ToolPanel.hxx b/sd/source/ui/inc/taskpane/ToolPanel.hxx deleted file mode 100644 index f2c573a21c06..000000000000 --- a/sd/source/ui/inc/taskpane/ToolPanel.hxx +++ /dev/null @@ -1,125 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef SD_TOOL_PANEL_HXX -#define SD_TOOL_PANEL_HXX - -#include "taskpane/TaskPaneTreeNode.hxx" -#include "taskpane/TitledControl.hxx" -#include <vcl/ctrl.hxx> - -#include <vector> -#include <memory> - -class Window; - -namespace sd { namespace toolpanel { - -class TaskPaneViewShell; -class ControlFactory; - -/** This control is basically a layout manager for the vertical - stacking of controls. At any one time there is exactly one of - them visible. For the others only their title bar is shown. - - <p>Each control is independant of both other controls and the tool - panel itself. To be usable by the tool panel they only have to be - derived from the vcl Window class.</p> -*/ -class ToolPanel - : public Control, - public TreeNode -{ -public: - /** Create a new tool panel with the given window as its parent. - This will usually be a child window. - */ - ToolPanel ( - ::Window* pParentWindow, - TaskPaneViewShell& rViewShell); - - virtual ~ToolPanel (void); - - /** Append the given control to the end of the list of controls that are - managed by the tool panel. - @param pControlFactory - Factory that provides the control on demand, typically when it - is expanded the first time. - @param rTitle - The string that is displayed in the title bar above the control. - @param nHelpId - The help id is set at the title bar not the actual control. - @param rClickHandler - The click handler typically expands a control when the user has - clicked on its title. - */ - sal_uInt32 AddControl ( - ::std::auto_ptr<ControlFactory> pControlFactory, - const String& rTitle, - ULONG nHelpId, - const TitledControl::ClickHandler& rClickHandler); - - virtual void Resize (void); - - virtual Size GetPreferredSize (void); - virtual sal_Int32 GetPreferredWidth (sal_Int32 nHeight); - virtual sal_Int32 GetPreferredHeight (sal_Int32 nWidth); - virtual bool IsResizable (void); - virtual ::Window* GetWindow (void); - - virtual void RequestResize (void); - - virtual TaskPaneShellManager* GetShellManager (void); - - virtual ::com::sun::star::uno::Reference< - ::com::sun::star::accessibility::XAccessible> CreateAccessibleObject ( - const ::com::sun::star::uno::Reference< - ::com::sun::star::accessibility::XAccessible>& rxParent); - - using Window::GetWindow; - -protected: - /** Initiate a rearrangement of the controls. - */ - void ListHasChanged (void); - -private: - TaskPaneViewShell& mrViewShell; - - /// Guard against recursive calls or Rearrange(). - bool mbRearrangeActive; - - /** Calculate position, size, and visibility of the controls. - Call this method after the list of controls has changed. - */ - void Rearrange (void); -}; - - - -} } // end of namespace ::sd::toolpanel - -#endif diff --git a/sd/source/ui/inc/TaskPaneViewShell.hxx b/sd/source/ui/inc/taskpane/ToolPanelViewShell.hxx index d9f432029dc2..5bd0cd877803 100644 --- a/sd/source/ui/inc/TaskPaneViewShell.hxx +++ b/sd/source/ui/inc/taskpane/ToolPanelViewShell.hxx @@ -2,10 +2,13 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2000, 2010 Oracle and/or its affiliates. + * Copyright 2008 by Sun Microsystems, Inc. * * OpenOffice.org - a multi-platform office productivity suite * + * $RCSfile: ToolPanelViewShell.hxx,v $ + * $Revision: 1.12 $ + * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify @@ -25,30 +28,36 @@ * ************************************************************************/ -#ifndef SD_TOOLPANEL_TASK_PANE_VIEW_SHELL_HXX -#define SD_TOOLPANEL_TASK_PANE_VIEW_SHELL_HXX +#ifndef SD_TOOL_PANEL_VIEW_SHELL_HXX +#define SD_TOOL_PANEL_VIEW_SHELL_HXX #include "ViewShell.hxx" #include "glob.hxx" +#include "taskpane/PanelId.hxx" #include "framework/FrameworkHelper.hxx" #include <vcl/button.hxx> #include <sfx2/shell.hxx> #include <sfx2/viewfac.hxx> #include <sfx2/dockwin.hxx> -#include <memory> #include <boost/shared_ptr.hpp> +#include <boost/scoped_ptr.hpp> class PopupMenu; -namespace sd { namespace toolpanel { +namespace com { namespace sun { namespace star { namespace ui { + class XUIElement; +} } } } + +namespace sd { +class PaneDockingWindow; +namespace toolpanel { class TaskPaneShellManager; class TitleToolBox; class TitleBar; class TitledControl; -class ToolPanel; - +class ToolPanelViewShell_Impl; /** The tool panel is a view shell for some very specific reasons: - It fits better into the concept of panes being docking windows whose content, a view shell, can be exchanged on runtime. @@ -58,34 +67,19 @@ class ToolPanel; If interpreted as object bars this can be handled by the ObjectBarManager of the ViewShell. */ -class TaskPaneViewShell +class ToolPanelViewShell : public ViewShell { public: TYPEINFO(); - SFX_DECL_INTERFACE(SD_IF_SDTASKPANEVIEWSHELL) + SFX_DECL_INTERFACE(SD_IF_SDTOOLPANELSHELL) - /** List of top level panels that can be shown in the task pane. - */ - enum PanelId - { - PID__START = 0, - PID_UNKNOWN = PID__START, - PID_MASTER_PAGES, - PID_LAYOUT, - PID_TABLE_DESIGN, - PID_ANIMATION_SCHEMES, - PID_CUSTOM_ANIMATION, - PID_SLIDE_TRANSITION, - PID__END = PID_SLIDE_TRANSITION - }; - - TaskPaneViewShell ( + ToolPanelViewShell ( SfxViewFrame* pFrame, ViewShellBase& rViewShellBase, ::Window* pParentWindow, FrameView* pFrameView); - virtual ~TaskPaneViewShell (void); + virtual ~ToolPanelViewShell (void); /** Register the SFX interfaces so that (some of) the controls can be pushed as SFX shells on the shell stack and process slot calls and @@ -108,37 +102,22 @@ public: TaskPaneShellManager& GetSubShellManager (void) const; - /** Called when a mouse button has been pressed but not yet - released, this handler is used to show the popup menu of the - title bar. + /** deactivates the given panel, bypassing the configuration controller. Only valid for tool panels which are + not under the drawing framework's control. */ - DECL_LINK(ToolboxClickHandler, ToolBox*); - DECL_LINK(MenuSelectHandler, Menu*); + void ActivatePanel( const ::rtl::OUString& i_rPanelResourceURL ); - /** Make the specified panel visible and expand it. - @param nId - The id of the panel that is to be made visible. + /** deactivates the given panel, bypassing the configuration controller */ - void ShowPanel (const PanelId nId); + void DeactivatePanel( const ::rtl::OUString& i_rPanelResourceURL ); - /** Hide and collapse the specified panel. - @param nId - The id of the panel that is to hide. - */ - void HidePanel (const PanelId nId); - - /** Expand the specified panel. Its visibility state is not modified. - @param nId - The id of the panel that is to expand. - */ - void ExpandPanel (const PanelId nId); - - /** Collapse the specified panel. Its visibility state is not - modified. - @param nId - The id of the panel that is to collapse. + /** Return a pointer to the docking window that is the parent or a + predecessor of the content window. + @return + When the view shell is not placed in a docking window, e.g. when + shown in the center pane, then <NULL?> is returned. */ - void CollapsePanel (const PanelId nId); + DockingWindow* GetDockingWindow (void); virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> @@ -150,13 +129,19 @@ public: */ virtual bool RelocateToParentWindow (::Window* pParentWindow); -private: - class Implementation; - ::std::auto_ptr<Implementation> mpImpl; + /// returns <TRUE/> if and only if the given window is the panel anchor window of our ToolPanelDeck + bool IsPanelAnchorWindow( const ::Window& i_rWindow ) const; - ::std::auto_ptr<ToolPanel> mpTaskPane; + /** creates an XUIElement for the given standard panel + */ + ::com::sun::star::uno::Reference< ::com::sun::star::ui::XUIElement > + CreatePanelUIElement( + const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& i_rDocFrame, + const ::rtl::OUString& i_rPanelResourceURL + ); - bool mbIsInitialized; +private: + ::boost::scoped_ptr< ToolPanelViewShell_Impl > mpImpl; ::boost::shared_ptr<TaskPaneShellManager> mpSubShellManager; @@ -165,10 +150,9 @@ private: */ USHORT mnMenuId; - /** Create a popup menu. it contains three sections, one for + /** Create a popup menu. it contains two sections, one for docking or un-docking the tool panel, one for toggling the - visibility state of the tool panel items, and one for bringing - up a customization dialog. + visibility state of the tool panel items. @param bIsDocking According to this flag one of the lock/unlock entries is made disabled. @@ -176,22 +160,6 @@ private: ::std::auto_ptr<PopupMenu> CreatePopupMenu (bool bIsDocking); - /** Make sure that as long as there is at least one visible - control there is exactly one expanded control. - If the currently expanded control is being hidden then try to - expand the control after the hidden one or if that does not - exist expand the one before. - */ - void EnsureExpandedControl (TitledControl* pHiddenControl); - - /** Return a pointer to the docking window that is the parent or a - predecessor of the content window. - @return - When the view shell is not placed in a docking window, e.g. when - shown in the center pane, then <NULL?> is returned. - */ - DockingWindow* GetDockingWindow (void); - /** Initialize the task pane view shell if that has not yet been done before. If mbIsInitialized is already set to <TRUE/> then this method returns immediately. @@ -202,25 +170,6 @@ private: -/** This functor makes visible a panel in the task pane. It can be used - with the FrameworkHelper to make a panel visible after an asynchonous - update of the configuration, e.g. after switching to another view. -*/ -class PanelActivation -{ -public: - /** Create a new object that, when its operator() method is called, will - make the specified panel visible in the task pane that belongs to - the application window specified by the given ViewShellBase. - */ - PanelActivation (ViewShellBase& rBase, TaskPaneViewShell::PanelId nPanelId); - void operator() (bool); -private: - ViewShellBase& mrBase; - TaskPaneViewShell::PanelId mnPanelId; -}; - - } } // end of namespace ::sd::toolpanel #endif diff --git a/sd/source/ui/inc/view/viewoverlaymanager.hxx b/sd/source/ui/inc/view/viewoverlaymanager.hxx new file mode 100755 index 000000000000..0693d1faea7a --- /dev/null +++ b/sd/source/ui/inc/view/viewoverlaymanager.hxx @@ -0,0 +1,76 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2008 by Sun Microsystems, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: $ + * $Revision: $ + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SD_VIEWOVERLAYMANAGER_HXX +#define _SD_VIEWOVERLAYMANAGER_HXX + +#include <vcl/image.hxx> +#include <svl/lstner.hxx> +#include "EventMultiplexer.hxx" +#include "ViewShellBase.hxx" +#include "res_bmp.hrc" + +namespace sd +{ + +typedef std::vector< rtl::Reference< SmartTag > > ViewTagVector; + +class ViewOverlayManager : public SfxListener +{ +public: + ViewOverlayManager( ViewShellBase& rViewShellBase ); + virtual ~ViewOverlayManager(); + + void onZoomChanged(); + void UpdateTags(); + + DECL_LINK(EventMultiplexerListener, tools::EventMultiplexerEvent*); + DECL_LINK(UpdateTagsHdl, void *); + + bool CreateTags(); + bool DisposeTags(); + + virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint); + + static BitmapEx maLargeButtonImages[BMP_PLACEHOLDER_LARGE_END - BMP_PLACEHOLDER_LARGE_START]; + static BitmapEx maSmallButtonImages[BMP_PLACEHOLDER_SMALL_END - BMP_PLACEHOLDER_SMALL_START]; + +private: + void UpdateImages(); + + ViewShellBase& mrBase; + ULONG mnUpdateTagsEvent; + + ViewTagVector maTagVector; +}; + +} + +#endif // _SD_VIEWOVERLAYMANAGER_HXX |