summaryrefslogtreecommitdiff
path: root/sd/source/ui/inc/TaskPaneViewShell.hxx
diff options
context:
space:
mode:
authorRüdiger Timm <rt@openoffice.org>2004-07-13 13:02:32 +0000
committerRüdiger Timm <rt@openoffice.org>2004-07-13 13:02:32 +0000
commit24835ef0bc113abd9132c8c08e4bc2d264962494 (patch)
tree70c2c80b4d0a83492c690801dbcf74d30735bf50 /sd/source/ui/inc/TaskPaneViewShell.hxx
parente2255a4a6f881c9acd45e8741657d710860c2d06 (diff)
INTEGRATION: CWS impress2 (1.1.2); FILE ADDED
2004/06/12 12:18:53 af 1.1.2.2: #i22705# Replaced OuterResizePixel(), InnerResizePixel(), AdjustPosSizePixel() by GetBorder() and Resize(). Menu is displayed by PaneDockingWindow. 2004/06/04 04:44:39 af 1.1.2.1: #i22705# Initial revision.
Diffstat (limited to 'sd/source/ui/inc/TaskPaneViewShell.hxx')
-rw-r--r--sd/source/ui/inc/TaskPaneViewShell.hxx190
1 files changed, 190 insertions, 0 deletions
diff --git a/sd/source/ui/inc/TaskPaneViewShell.hxx b/sd/source/ui/inc/TaskPaneViewShell.hxx
new file mode 100644
index 000000000000..d8effbac1f35
--- /dev/null
+++ b/sd/source/ui/inc/TaskPaneViewShell.hxx
@@ -0,0 +1,190 @@
+/*************************************************************************
+ *
+ * $RCSfile: TaskPaneViewShell.hxx,v $
+ *
+ * $Revision: 1.2 $
+ *
+ * last change: $Author: rt $ $Date: 2004-07-13 14:02:32 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef SD_TOOLPANEL_TASK_PANE_VIEW_SHELL_HXX
+#define SD_TOOLPANEL_TASK_PANE_VIEW_SHELL_HXX
+
+#include "ViewShell.hxx"
+#include "glob.hxx"
+#include <vcl/button.hxx>
+#ifndef _SFX_SHELL_HXX
+#include <sfx2/shell.hxx>
+#endif
+#ifndef _VIEWFAC_HXX
+#include <sfx2/viewfac.hxx>
+#endif
+
+#ifndef _SFXDOCKWIN_HXX
+#include <sfx2/dockwin.hxx>
+#endif
+#include <memory>
+
+class PopupMenu;
+
+namespace sd { namespace toolpanel {
+
+class TaskPaneShellManager;
+class TitleToolBox;
+class TitleBar;
+class TitledControl;
+class ToolPanel;
+
+/** 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.
+ - A control in the tool panel that wants to show a context menu has to
+ do that over the dispatcher of a shell. These shells, usually
+ implemented by the controls themselves, have to be managed by someone.
+ If interpreted as object bars this can be handled by the
+ ObjectBarManager of the ViewShell.
+*/
+class TaskPaneViewShell
+ : public ViewShell
+{
+public:
+ TYPEINFO();
+ SFX_DECL_INTERFACE(SD_IF_SDTASKPANEVIEWSHELL);
+
+ TaskPaneViewShell (
+ SfxViewFrame* pFrame,
+ ViewShellBase& rViewShellBase,
+ ::Window* pParentWindow,
+ FrameView* pFrameView);
+ virtual ~TaskPaneViewShell (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
+ so on.
+ */
+ static void RegisterControls (void);
+
+ virtual void GetFocus (void);
+ virtual void LoseFocus (void);
+ virtual void KeyInput (const KeyEvent& rEvent);
+
+ virtual SdPage* GetActualPage (void);
+
+ void Execute (SfxRequest& rRequest);
+ void GetState (SfxItemSet& rItemSet);
+
+ virtual void ArrangeGUIElements (void);
+
+ virtual void GetLowerShellList (
+ ::std::vector<SfxShell*>& rShellList) const;
+ virtual void GetUpperShellList (
+ ::std::vector<SfxShell*>& rShellList) const;
+
+ 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.
+ */
+ DECL_LINK(ToolboxClickHandler, ToolBox*);
+ DECL_LINK(MenuSelectHandler, Menu*);
+
+private:
+ ::std::auto_ptr<ToolPanel> mpTaskPane;
+
+ // Control that displays the closer symbol in the title bar.
+ ::std::auto_ptr<TitleToolBox> mpTitleToolBox;
+
+ bool mbIsInitialized;
+
+ mutable ::std::auto_ptr<TaskPaneShellManager> mpSubShellManager;
+
+ /** The id of the menu in the menu bar/tool box of the parent docking
+ window.
+ */
+ USHORT mnMenuId;
+
+ /** Create a popup menu. it contains three 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.
+ @param bIsDocking
+ According to this flag one of the lock/unlock entries is
+ made disabled.
+ */
+ ::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);
+};
+
+
+} } // end of namespace ::sd::toolpanel
+
+#endif