summaryrefslogtreecommitdiff
path: root/framework/inc/classes/fwktabwindow.hxx
diff options
context:
space:
mode:
authorRĂ¼diger Timm <rt@openoffice.org>2008-12-16 16:42:03 +0000
committerRĂ¼diger Timm <rt@openoffice.org>2008-12-16 16:42:03 +0000
commitb1da5a57d93e8e9b43b9bba9fabc3b7e61289edc (patch)
treef98bde8d8f2b22d6f1685adb9fca28cb08aa1ccc /framework/inc/classes/fwktabwindow.hxx
parent4ee46e177a830739cdc57613784b99f29ec00bea (diff)
CWS-TOOLING: integrate CWS alf01
2008-12-10 09:35:35 +0100 as r265152 : #158798# hide internal service 2008-12-09 15:29:11 +0100 cd r265098 : #158857# Check index correctly, must be zero 2008-12-09 12:06:21 +0100 mhu r265075 : #158857# Fixed compiler warning(s). 2008-12-09 11:09:34 +0100 cd r265064 : #158857# Added access to the window state configuration to support setting title of internal docking windows via <Module>WindowState.xcu files 2008-12-09 10:43:53 +0100 as r265063 : #158798# make resizes working better 2008-12-08 17:08:05 +0100 mhu r265010 : #158857# Fixed compiler warning(s). 2008-12-08 15:19:04 +0100 as r264999 : #158857# make WindowContentFactories.xcs part of installation set 2008-12-08 13:23:37 +0100 as r264993 : #158857# actualize size on child window 2008-12-08 10:14:05 +0100 cd r264977 : #158857# More helper functions and support to show/hide internal docking windows 2008-12-08 10:13:08 +0100 cd r264976 : #158857# SfxTitleDockingWindow now uses a factory for content window. Additional documentation for special IDs 2008-12-05 07:58:07 +0100 as r264885 : remove obsolete code (not referenced inside makefile any longer) 2008-12-04 18:57:08 +0100 mhu r264871 : #158857# Fixed compiler warning. 2008-12-04 16:13:12 +0100 mhu r264851 : #158857# Fixed compiler warning. 2008-12-04 15:46:45 +0100 as r264849 : solve merge conflicts right 2008-12-04 09:20:26 +0100 cd r264818 : 2008-12-04 09:19:32 +0100 cd r264817 : 2008-12-04 09:19:07 +0100 cd r264816 : Resolved conflicts 2008-12-04 09:13:27 +0100 cd r264815 : New window content factory manager with configuration support added. 2008-12-03 15:15:50 +0100 as r264791 : #158798# make sure tab window will show its content the first time its made visible 2008-12-03 10:59:30 +0100 as r264752 : #158798# new helper service for a dockable tab control window 2008-12-02 15:39:48 +0100 as r264707 : #158798# fix crash in MouseButtonDown for TabControl 2008-12-02 10:28:20 +0100 cd r264665 : #158857# Resolved conflicts on merge 2008-12-02 09:58:36 +0100 cd r264662 : #158857# Added predefined slots for the internal docking windows. Currently only ten predefined docking windows are possible 2008-12-01 09:44:49 +0100 cd r264586 : #158857# Fix problem with close the floated docking window with closer 2008-11-28 13:42:34 +0100 cd r264550 : #158857# First additional code to create a docking window. Very preliminary and not near to final code 2008-11-28 11:53:51 +0100 cd r264538 : #158857# First additional code to create a docking window. Very preliminary and not near to final code 2008-11-28 11:32:38 +0100 cd r264534 : #158857# First version of docking window factory and additional helper classes 2008-11-21 09:46:36 +0100 jsc r264110 : #158798# remove warnings 2008-11-20 17:59:07 +0100 pb r264090 : fix: #158798# tabcontainerwindow.obj and tabdialog.obj added 2008-11-20 17:55:57 +0100 pb r264089 : fix: #i158798# implementation of service TabContainerWindow 2008-11-20 17:52:52 +0100 pb r264088 : fix: #158798# implementation of the TabDialog and its Pages for the TabContainerWindow service 2008-11-20 17:51:26 +0100 pb r264087 : fix: #i158798# TabContainerWindow added 2008-11-20 17:50:11 +0100 pb r264086 : fix: #158798# tabcontainerwindow.obj and tabdialog.obj added 2008-11-20 17:47:16 +0100 pb r264085 : fix: #158798# new resource: TabDialog DLG_TABCONTAINER 2008-11-20 17:46:06 +0100 pb r264084 : fix: #i158798# added ids for TABCONTAINER... 2008-11-20 17:43:19 +0100 pb r264082 : fix: #158798# IMPLEMENTATION/SERVICENAME_TABCONTAINERWINDOW added 2008-11-20 17:43:00 +0100 pb r264081 : fix: #i158798# implementation of service TabContainerWindow 2008-11-20 17:40:42 +0100 pb r264080 : fix: #158798# TabContainerWindow.idl added 2008-11-20 17:36:57 +0100 pb r264079 : fix: #158798# new service TabContainerWindow 2008-11-20 17:33:05 +0100 pb r264077 : fix: #158798# show tooltip if only a image is shown 2008-11-18 15:10:08 +0100 jsc r263770 : CWS-TOOLING: rebase CWS alf01 to trunk@263288 (milestone: DEV300:m35) 2008-11-18 09:55:21 +0100 jsc r263749 : merge from trunk 2008-11-18 09:54:30 +0100 jsc r263748 : merge from trunk 2008-11-13 17:01:17 +0100 pl r263655 : fix some warnings 2008-10-21 15:38:37 +0200 pl r262572 : #i95201# add: EnablePage 2008-10-20 18:57:53 +0200 pl r262335 : #i95201# add: images for tab items 2008-10-20 17:26:50 +0200 pl r262330 : #i95201# remove old tools list
Diffstat (limited to 'framework/inc/classes/fwktabwindow.hxx')
-rw-r--r--framework/inc/classes/fwktabwindow.hxx140
1 files changed, 140 insertions, 0 deletions
diff --git a/framework/inc/classes/fwktabwindow.hxx b/framework/inc/classes/fwktabwindow.hxx
new file mode 100644
index 000000000000..ed63e2d66afa
--- /dev/null
+++ b/framework/inc/classes/fwktabwindow.hxx
@@ -0,0 +1,140 @@
+/*************************************************************************
+ *
+ * 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: backingwindow.hxx,v $
+ * $Revision: 1.10 $
+ *
+ * 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 FRAMEWORK_TABWINDOW_HXX
+#define FRAMEWORK_TABWINDOW_HXX
+
+#include <general.h>
+
+#include <vector>
+
+#include <com/sun/star/uno/Reference.h>
+#include <vcl/tabctrl.hxx>
+#include <vcl/tabdlg.hxx>
+#include <vcl/tabpage.hxx>
+#include <vcl/button.hxx>
+
+namespace com { namespace sun { namespace star {
+ namespace awt {
+ class XWindow;
+ class XContainerWindowProvider;
+ class XContainerWindowEventHandler; }
+ namespace beans {
+ struct NamedValue; }
+} } }
+
+namespace framework
+{
+
+class FwkTabControl : public TabControl
+{
+public:
+ FwkTabControl( Window* pParent, const ResId& rResId );
+
+ void BroadcastEvent( ULONG nEvent );
+};
+
+class FwkTabPage : public TabPage
+{
+private:
+ rtl::OUString m_sPageURL;
+ rtl::OUString m_sEventHdl;
+ css::uno::Reference< css::awt::XWindow > m_xPage;
+ css::uno::Reference< css::awt::XContainerWindowEventHandler > m_xEventHdl;
+ css::uno::Reference< css::awt::XContainerWindowProvider > m_xWinProvider;
+
+ void CreateDialog();
+ sal_Bool CallMethod( const rtl::OUString& rMethod );
+
+public:
+ FwkTabPage(
+ Window* pParent,
+ const rtl::OUString& rPageURL,
+ const rtl::OUString& rEventHdl,
+ const css::uno::Reference< css::awt::XContainerWindowProvider >& rProvider );
+
+ virtual ~FwkTabPage();
+
+ virtual void ActivatePage();
+ virtual void DeactivatePage();
+ virtual void Resize();
+
+ void Reset();
+ void Save();
+};
+
+struct TabEntry
+{
+ sal_Int32 m_nIndex;
+ FwkTabPage* m_pPage;
+ ::rtl::OUString m_sPageURL;
+ ::rtl::OUString m_sEventHdl;
+
+ TabEntry() :
+ m_nIndex( -1 ), m_pPage( NULL ) {}
+
+ TabEntry( sal_Int32 nIndex, ::rtl::OUString sURL, ::rtl::OUString sEvent ) :
+ m_nIndex( nIndex ), m_pPage( NULL ), m_sPageURL( sURL ), m_sEventHdl( sEvent ) {}
+
+ ~TabEntry() { delete m_pPage; }
+};
+
+typedef std::vector< TabEntry* > TabEntryList;
+
+class FwkTabWindow : public Window
+{
+private:
+ FwkTabControl m_aTabCtrl;
+ TabEntryList m_TabList;
+
+ css::uno::Reference< css::awt::XContainerWindowProvider > m_xWinProvider;
+
+ void ClearEntryList();
+ TabEntry* FindEntry( sal_Int32 nIndex ) const;
+
+ DECL_DLLPRIVATE_LINK( ActivatePageHdl, TabControl * );
+ DECL_DLLPRIVATE_LINK( DeactivatePageHdl, TabControl * );
+ DECL_DLLPRIVATE_LINK( CloseHdl, PushButton * );
+
+public:
+ FwkTabWindow( Window* pParent );
+ ~FwkTabWindow();
+
+ void AddEventListener( const Link& rEventListener );
+ FwkTabPage* AddTabPage( sal_Int32 nIndex, const css::uno::Sequence< css::beans::NamedValue >& rProperties );
+ void ActivatePage( sal_Int32 nIndex );
+ void RemovePage( sal_Int32 nIndex );
+ sal_Int32 GetActivePageId() const;
+ virtual void Resize();
+};
+
+} // namespace framework
+
+#endif
+