summaryrefslogtreecommitdiff
path: root/sd/source/ui/inc/ToolBarManager.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sd/source/ui/inc/ToolBarManager.hxx')
-rw-r--r--sd/source/ui/inc/ToolBarManager.hxx286
1 files changed, 0 insertions, 286 deletions
diff --git a/sd/source/ui/inc/ToolBarManager.hxx b/sd/source/ui/inc/ToolBarManager.hxx
deleted file mode 100644
index bdf30db4d..000000000
--- a/sd/source/ui/inc/ToolBarManager.hxx
+++ /dev/null
@@ -1,286 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * 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_BAR_MANAGER_HXX
-#define SD_TOOL_BAR_MANAGER_HXX
-
-#include "ViewShell.hxx"
-#include "ShellFactory.hxx"
-#include <rtl/ustring.hxx>
-#include <com/sun/star/frame/XFrame.hpp>
-
-#include <sal/types.h>
-#include <boost/scoped_ptr.hpp>
-#include <boost/shared_ptr.hpp>
-#include <boost/enable_shared_from_this.hpp>
-
-class SdrView;
-
-namespace sd { namespace tools {
-class EventMultiplexer;
-} }
-
-
-namespace sd {
-
-class ViewShellBase;
-class ViewShellManager;
-
-/** Manage the set of visible tool bars (and object bars). Usually they
- belong to the current view in the center pane.
-
- Tool bars are managed in groups. Each group can be set, reset, or
- modified independently of the others. This allows for instance to
- replace the toolbars associated with the current function independently
- from those assoicated with the main view.
-
- The ToolBarManager has two high level methods which contain the
- knowledge about which tool bars to show in a specific context.
- When the view in the center pane changes then MainViewShellChanged()
- sets up the tool bars for the new view. On changes of the selection the
- SelectionHasChanged() method shows the tool bars for the new context.
-
- The update of the actually visible tool bars to the set currently
- required by the main view shell and its functions is divided into two
- parts, PreUpdate() and PostUpdate(). This are to be called before
- respectively after the update of the view shell stack. The reason for
- this is to save time by not updating tool bars that will not be visible
- in a short time on a view shell switch.
-*/
-class ToolBarManager
- : public ::boost::enable_shared_from_this<ToolBarManager>
-{
-public:
- /** Use this method instead of the constructor to create new objects of
- this class.
- */
- static ::boost::shared_ptr<ToolBarManager> Create (
- ViewShellBase& rBase,
- const ::boost::shared_ptr<tools::EventMultiplexer>& rpMultiplexer,
- const ::boost::shared_ptr<ViewShellManager>& rpViewShellManager);
-
- ~ToolBarManager (void);
-
- /** Call this method prior to the destructor to prevent the
- ToolBarManager from accessing the ViewShellManager or the
- XLayoutManager when those are possibly not well and alive anymore
- (like during the destruction of the ViewShellBase.)
- */
- void Shutdown (void);
-
- /** When the view in the center pane changes then this method sets up
- the initial set of tool bars for the new view.
- The ToolBarManager listenes for view switching itself and then calls
- MainViewShellChanged(). Calling this method from the outside should
- not be necessary.
- @param nShellType
- The type of the new main view shell.
- */
- void MainViewShellChanged (ViewShell::ShellType nShellType);
- void MainViewShellChanged (const ViewShell& rMainViewShell);
-
- /** Call this method when the selection has changed to update the more
- temporary tool bars (those in the TBG_FUNCTION group.)
- */
- void SelectionHasChanged (
- const ViewShell& rViewShell,
- const SdrView& rView);
-
- /** The set of tool bars that are handled by this manager class.
- */
- const static ::rtl::OUString msToolBar; // RID_DRAW_TOOLBOX, 23011
- // RID_GRAPHIC_TOOLBOX, 23025
- const static ::rtl::OUString msOptionsToolBar; // RID_DRAW_OPTIONS_TOOLBOX, 23020
- // RID_GRAPHIC_OPTIONS_TOOLBOX, 23026
- const static ::rtl::OUString msCommonTaskToolBar; // RID_DRAW_COMMONTASK_TOOLBOX, 23021
- const static ::rtl::OUString msViewerToolBar; // RID_DRAW_VIEWER_TOOLBOX, 23023
- // RID_GRAPHIC_VIEWER_TOOLBOX, 23024
- const static ::rtl::OUString msSlideSorterToolBar; // RID_SLIDE_TOOLBOX, 23012
- const static ::rtl::OUString msSlideSorterObjectBar; // RID_SLIDE_OBJ_TOOLBOX, 23014
- const static ::rtl::OUString msOutlineToolBar; // RID_OUTLINE_TOOLBOX, 23017
- const static ::rtl::OUString msMasterViewToolBar; // SID_MASTERPAGE, 27053
- const static ::rtl::OUString msDrawingObjectToolBar; // RID_DRAW_OBJ_TOOLBOX, 23013
- const static ::rtl::OUString msGluePointsToolBar; // RID_GLUEPOINTS_TOOLBOX, 23019
- const static ::rtl::OUString msTextObjectBar; // RID_DRAW_TEXT_TOOLBOX, 23016
- // RID_GRAPHIC_TEXT_TOOLBOX, 23028
- const static ::rtl::OUString msBezierObjectBar; // RID_BEZIER_TOOLBOX, 23015
- const static ::rtl::OUString msGraphicObjectBar; // RID_DRAW_GRAF_TOOLBOX, 23030
- const static ::rtl::OUString msMediaObjectBar; // RID_DRAW_MEDIA_TOOLBOX, 23031
- const static ::rtl::OUString msTableObjectBar; // RID_DRAW_TABLE_TOOLBOX
-
- /** The set of tool bar groups.
- */
- enum ToolBarGroup {
- TBG__FIRST,
-
- TBG_PERMANENT = TBG__FIRST,
- TBG_FUNCTION,
- TBG_MASTER_MODE,
-
- TBG__LAST = TBG_MASTER_MODE
- };
-
- /** Reset the set of visible object bars in the specified group. Tool
- bars in other groups are not affected.
- @param rParentShell
- When this shell is not the main view then the method returns
- immediately.
- @param eGroup
- Only the tool bars in this group are rest.
- */
- void ResetToolBars (ToolBarGroup eGroup);
-
- /** Reset all tool bars, regardless of the group they belong to.
- @param rParentShell
- When this shell is not the main view then the method returns
- immediately.
- */
- void ResetAllToolBars (void);
-
- /** Add the tool bar with the given name to the specified group of tool
- bars.
- @param rParentShell
- When this shell is not the main view then the method returns
- immediately.
- @param eGroup
- The new tool bar is added to this group.
- @param rsToolBarName
- The base name of the tool bar. A proper prefix (like
- private:resource/toolbar/) is added. The name may be one of the
- ones defined above. Other names are allowed as well.
- */
- void AddToolBar (
- ToolBarGroup eGroup,
- const ::rtl::OUString& rsToolBarName);
-
- /** Add the tool bar shell to the shell stack. This method basically
- forwards the call to the ViewShellManager.
- For some tool bar shells additional tool bars are made visible.
- @param rParentShell
- When this shell is not the main view then the method returns
- immediately.
- @param eGroup
- The group is used for the actual tool bars.
- @param nToolBarId
- Id of the tool bar shell.
- */
- void AddToolBarShell (
- ToolBarGroup eGroup,
- ShellId nToolBarId);
-
- /** Remove the tool bar with the given name from the specified group.
- If the tool bar is not visible then nothing happens.
- If the tool bar is a member of another group then nothing happens
- either.
- */
- void RemoveToolBar (
- ToolBarGroup eGroup,
- const ::rtl::OUString& rsToolBarName);
-
- /** This is basically a shortcut for ResetToolBars(),AddToolBar(). The
- main difference is, that all sub shells of the specified parent
- shell are deactivated as well.
- @param rParentShell
- When this shell is not the main view then the method returns
- immediately.
- @param eGroup
- The new tool bar is added to this group.
- @param rsToolBarName
- The base name of the tool bar. A proper prefix (like
- private:resource/toolbar/) is added. The name may be one of the
- ones defined above. Other names are allowed as well.
- */
- void SetToolBar (
- ToolBarGroup eGroup,
- const ::rtl::OUString& rsToolBarName);
-
- /** This is basically a shortcut for ResetToolBars(),AddToolBar(). The
- main difference is, that all sub shells of the specified parent
- shell are deactivated as well.
- @param rParentShell
- When this shell is not the main view then the method returns
- immediately.
- @param rParentShell
- When this shell is not the main view then the method returns
- immediately.
- @param eGroup
- The group is currently not used.
- @param nToolBarId
- Id of the tool bar shell.
- */
- void SetToolBarShell (
- ToolBarGroup eGroup,
- ShellId nToolBarId);
-
- void PreUpdate (void);
-
- /** Request an update of the active tool bars. The update is made
- asynchronously.
- */
- void RequestUpdate (void);
-
- /** This is a hint for the ToolBarManager to improve the performance
- when it updates its tool bars when its own lock is released. Taking
- control of the release of the update lock of the ViewShellManager
- avoids some shell stack modifications and tool bar updates.
- */
- void LockViewShellManager (void);
-
- /** Use this class to prevent the visible tool bars from being updated
- (and thus causing repaints and GUI rearrangements) when several tool
- bar operations are made in a row.
- */
- class UpdateLock { public:
- UpdateLock(const ::boost::shared_ptr<ToolBarManager>& rpManager)
- : mpManager(rpManager) { mpManager->LockUpdate(); }
- ~UpdateLock(void) { mpManager->UnlockUpdate(); }
- private:
- ::boost::shared_ptr<ToolBarManager> mpManager;
- };
- friend class UpdateLock;
-
- void ToolBarsDestroyed(void);
-
-private:
- class Implementation;
- ::boost::scoped_ptr<Implementation> mpImpl;
-
- /** The ViewShellBase is used to get the XLayoutManager and to determine
- the plug in mode.
- */
- ToolBarManager (void);
-
- void LockUpdate (void);
- void UnlockUpdate (void);
-};
-
-} // end of namespace sd
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */