diff options
author | Kurt Zenker <kz@openoffice.org> | 2008-03-06 10:42:19 +0000 |
---|---|---|
committer | Kurt Zenker <kz@openoffice.org> | 2008-03-06 10:42:19 +0000 |
commit | f8cd96c9c20c7003c9e62297834fadb6cc5ecb2f (patch) | |
tree | e31d16ebbd18c1f4090fb192f16c6b2a16b4cf7a /toolkit | |
parent | 99424695db45102f334b3222284175381c5fd8ce (diff) |
INTEGRATION: CWS layout_DEV300 (1.1.2); FILE ADDED
2008/02/11 15:13:37 jcn 1.1.2.2: Make layout stuff in toolkit build with --enable-layout.
2008/02/08 18:44:43 jcn 1.1.2.1: Initial toolkit import from ee9a2fcc29d7e2f01cc80ef7c13bf7bc7d55ae7e.
layout/source/awt -> toolkit/source/awt
layout/source/core -> toolkit/source/layout
layout/source/wrapper -> toolkit/source/vclcompat
layout/inc/layout -> toolkit/inc/layout
layout/source/inc -> toolkit/inc/layout
layout/workben -> toolkit/workben/layout
That's ooo-build trunk r11539 @ ooh680-m5/src680-m245.
Diffstat (limited to 'toolkit')
-rw-r--r-- | toolkit/source/awt/vclxsplitter.hxx | 118 | ||||
-rw-r--r-- | toolkit/source/awt/vclxtabcontrol.hxx | 142 |
2 files changed, 260 insertions, 0 deletions
diff --git a/toolkit/source/awt/vclxsplitter.hxx b/toolkit/source/awt/vclxsplitter.hxx new file mode 100644 index 000000000000..478d09a6699a --- /dev/null +++ b/toolkit/source/awt/vclxsplitter.hxx @@ -0,0 +1,118 @@ +#ifndef LAYOUT_AWT_VCLXSPLITTER_HXX +#define LAYOUT_AWT_VCLXSPLITTER_HXX + +#ifndef _TOOLKIT_AWT_VCLXWINDOW_HXX_ +#include <toolkit/awt/vclxwindow.hxx> +#endif +#ifndef _TOOLKIT_HELPER_LISTENERMULTIPLEXER_HXX_ +#include <toolkit/helper/listenermultiplexer.hxx> +#endif +#ifndef _CPPUHELPER_IMPLBASE1_HXX_ +#include <cppuhelper/implbase1.hxx> +#endif +#ifndef _COMPHELPER_UNO3_HXX_ +#include <comphelper/uno3.hxx> +#endif +#include "../layout/container.hxx" + +#include <com/sun/star/awt/MaxChildrenException.hpp> +#include <com/sun/star/beans/XPropertySet.hpp> + +#include "forward.hxx" + +class Splitter; +using namespace toolkit; + +//........................................................................ +namespace layoutimpl +{ +//........................................................................ + +//==================================================================== +//= VCLXSplitter +//==================================================================== + +class VCLXSplitter :public VCLXWindow + ,public Container +{ +public: + VCLXSplitter( bool bHorizontal ); + +protected: + ~VCLXSplitter( ); + + // XInterface + DECLARE_XINTERFACE() + + // XTypeProvider + DECLARE_XTYPEPROVIDER() + + // XComponent + void SAL_CALL dispose( ) throw(::com::sun::star::uno::RuntimeException); + + // ::com::sun::star::awt::XLayoutContainer + virtual void SAL_CALL addChild( + const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XLayoutConstrains >& Child ) + throw (::com::sun::star::uno::RuntimeException, ::com::sun::star::awt::MaxChildrenException); + virtual void SAL_CALL removeChild( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XLayoutConstrains >& Child ) + throw (::com::sun::star::uno::RuntimeException); + + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference + < ::com::sun::star::awt::XLayoutConstrains > > SAL_CALL getChildren() + throw (::com::sun::star::uno::RuntimeException); + + virtual void SAL_CALL allocateArea( const ::com::sun::star::awt::Rectangle &rArea ) + throw (::com::sun::star::uno::RuntimeException); + + virtual ::com::sun::star::awt::Size SAL_CALL getMinimumSize() + throw(::com::sun::star::uno::RuntimeException); + + virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL getChildProperties( + const css::uno::Reference< css::awt::XLayoutConstrains >& Child ) + throw (css::uno::RuntimeException); + + // unimplemented: + virtual sal_Bool SAL_CALL hasHeightForWidth() + throw(css::uno::RuntimeException) + { return false; } + virtual sal_Int32 SAL_CALL getHeightForWidth( sal_Int32 /*nWidth*/ ) + throw(css::uno::RuntimeException) + { return maRequisition.Height; } + + // VclWindowPeer + virtual void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException); + + // VCLXWindow + void ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent ); + +private: + VCLXSplitter( const VCLXSplitter& ); // never implemented + VCLXSplitter& operator=( const VCLXSplitter& ); // never implemented + + // Maps page ids to child references + friend class SplitterChildProps; + struct ChildData + { + sal_Bool bShrink; + + css::uno::Reference< css::awt::XLayoutConstrains > xChild; + css::uno::Reference< css::beans::XPropertySet > xProps; + bool isVisible(); + }; + ChildData maChildren[ 2 ]; // some may be null + + float mnHandleRatio; + bool mbHandlePressed; + + DECL_LINK( HandleMovedHdl, Splitter* ); + bool mbHorizontal; + Splitter *mpSplitter; + void ensureSplitter(); +}; + +//........................................................................ +} // namespacetoolkit +//........................................................................ + +#endif /*LAYOUT_AWT_VCLXSPLITTER_HXX*/ diff --git a/toolkit/source/awt/vclxtabcontrol.hxx b/toolkit/source/awt/vclxtabcontrol.hxx new file mode 100644 index 000000000000..6fff54ad7d69 --- /dev/null +++ b/toolkit/source/awt/vclxtabcontrol.hxx @@ -0,0 +1,142 @@ +#ifndef LAYOUT_AWT_VCLXTABCONTROLLER_HXX +#define LAYOUT_AWT_VCLXTABCONTROLLER_HXX + +#ifndef _TOOLKIT_AWT_VCLXWINDOW_HXX_ +#include <toolkit/awt/vclxwindow.hxx> +#endif +#ifndef _TOOLKIT_HELPER_LISTENERMULTIPLEXER_HXX_ +#include <toolkit/helper/listenermultiplexer.hxx> +#endif +#ifndef _CPPUHELPER_IMPLBASE1_HXX_ +#include <cppuhelper/implbase1.hxx> +#endif +#ifndef _COMPHELPER_UNO3_HXX_ +#include <comphelper/uno3.hxx> +#endif +#ifndef _COM_SUN_STAR_AWT_XSIMPLETABCONTROLLER_HPP_ +#include <com/sun/star/awt/XSimpleTabController.hpp> +#endif +#include "../layout/container.hxx" + +#include <com/sun/star/awt/MaxChildrenException.hpp> +#include <com/sun/star/beans/XPropertySet.hpp> + +#include "forward.hxx" + +class TabControl; +using namespace toolkit; + +//........................................................................ +namespace layoutimpl +{ +//........................................................................ + +//==================================================================== +//= VCLXTabControl +//==================================================================== + +typedef ::cppu::ImplHelper1 < ::com::sun::star::awt::XSimpleTabController + > VCLXTabControl_Base; + +class VCLXTabControl :public VCLXWindow + ,public VCLXTabControl_Base + ,public Container +{ +public: + VCLXTabControl(); + +protected: + ~VCLXTabControl( ); + + // XInterface + DECLARE_XINTERFACE() + + // XTypeProvider + DECLARE_XTYPEPROVIDER() + + // XComponent + void SAL_CALL dispose( ) throw(::com::sun::star::uno::RuntimeException); + + virtual SAL_CALL void draw( sal_Int32 nX, sal_Int32 nY ) throw (::com::sun::star::uno::RuntimeException); + + // XSimpleTabController + virtual ::sal_Int32 SAL_CALL insertTab() throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeTab( ::sal_Int32 ID ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); + + virtual void SAL_CALL setTabProps( ::sal_Int32 ID, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& Properties ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue > SAL_CALL getTabProps( ::sal_Int32 ID ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); + + virtual void SAL_CALL activateTab( ::sal_Int32 ID ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); + virtual ::sal_Int32 SAL_CALL getActiveTabID( ) throw (::com::sun::star::uno::RuntimeException); + + virtual void SAL_CALL addTabListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTabListener >& Listener ) throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeTabListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTabListener >& Listener ) throw (::com::sun::star::uno::RuntimeException); + + // ::com::sun::star::awt::XLayoutContainer + virtual void SAL_CALL addChild( + const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XLayoutConstrains >& Child ) + throw (::com::sun::star::uno::RuntimeException, ::com::sun::star::awt::MaxChildrenException); + virtual void SAL_CALL removeChild( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XLayoutConstrains >& Child ) + throw (::com::sun::star::uno::RuntimeException); + + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference + < ::com::sun::star::awt::XLayoutConstrains > > SAL_CALL getChildren() + throw (::com::sun::star::uno::RuntimeException); + + virtual void SAL_CALL allocateArea( const ::com::sun::star::awt::Rectangle &rArea ) + throw (::com::sun::star::uno::RuntimeException); + + virtual ::com::sun::star::awt::Size SAL_CALL getMinimumSize() + throw(::com::sun::star::uno::RuntimeException); + + virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL getChildProperties( + const css::uno::Reference< css::awt::XLayoutConstrains >& Child ) + throw (css::uno::RuntimeException); + + // unimplemented: + virtual sal_Bool SAL_CALL hasHeightForWidth() + throw(css::uno::RuntimeException) + { return false; } + virtual sal_Int32 SAL_CALL getHeightForWidth( sal_Int32 /*nWidth*/ ) + throw(css::uno::RuntimeException) + { return maRequisition.Height; } + + // VclWindowPeer + virtual void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException); + + // VCLXWindow + void ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent ); + +private: + VCLXTabControl( const VCLXTabControl& ); // never implemented + VCLXTabControl& operator=( const VCLXTabControl& ); // never implemented + + // Each tab page needs an unique id. + int mnNextTabId; + + // Maps page ids to child references + friend class TabChildProps; + struct ChildData + { + rtl::OUString aTitle; + css::awt::Size aRequisition; + css::uno::Reference< css::awt::XLayoutConstrains > xChild; + css::uno::Reference< css::beans::XPropertySet > xProps; + bool isVisible(); + }; + std::vector< ChildData * > maChildren; // some may be null + int mnChildrenNb; + + // FIXME: we might want to use a Multiplexer + std::list< ::com::sun::star::uno::Reference + < ::com::sun::star::awt::XTabListener > > mxTabListeners; + + inline TabControl *getTabControl( ) const throw (::com::sun::star::uno::RuntimeException); +}; + +//........................................................................ +} // namespacetoolkit +//........................................................................ + +#endif /*LAYOUT_AWT_VCLXTABCONTROLLER_HXX*/ |