diff options
author | RĂ¼diger Timm <rt@openoffice.org> | 2008-12-16 16:42:03 +0000 |
---|---|---|
committer | RĂ¼diger Timm <rt@openoffice.org> | 2008-12-16 16:42:03 +0000 |
commit | b1da5a57d93e8e9b43b9bba9fabc3b7e61289edc (patch) | |
tree | f98bde8d8f2b22d6f1685adb9fca28cb08aa1ccc /framework/inc/classes/fwktabwindow.hxx | |
parent | 4ee46e177a830739cdc57613784b99f29ec00bea (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.hxx | 140 |
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 + |