diff options
author | Rüdiger Timm <rt@openoffice.org> | 2008-03-12 10:22:39 +0000 |
---|---|---|
committer | Rüdiger Timm <rt@openoffice.org> | 2008-03-12 10:22:39 +0000 |
commit | 3706adf87fe0cf03845d3ef32fadb4a4fd4efbe3 (patch) | |
tree | 77a1ad883ac70026a07e3468ea8edfd6e74f36f2 /sd/inc/stlpool.hxx | |
parent | 9603118538a52f56927f78ce68db18224a179d0b (diff) |
INTEGRATION: CWS impresstables2 (1.5.44); FILE MERGED
2007/10/11 15:36:46 cl 1.5.44.2: #i68103# initial table style implemenation
2007/07/26 17:47:06 cl 1.5.44.1: #i68103# added cell styles
Diffstat (limited to 'sd/inc/stlpool.hxx')
-rw-r--r-- | sd/inc/stlpool.hxx | 112 |
1 files changed, 85 insertions, 27 deletions
diff --git a/sd/inc/stlpool.hxx b/sd/inc/stlpool.hxx index 0b3c1d1cae81..339542697deb 100644 --- a/sd/inc/stlpool.hxx +++ b/sd/inc/stlpool.hxx @@ -4,9 +4,9 @@ * * $RCSfile: stlpool.hxx,v $ * - * $Revision: 1.5 $ + * $Revision: 1.6 $ * - * last change: $Author: kz $ $Date: 2006-12-12 16:26:43 $ + * last change: $Author: rt $ $Date: 2008-03-12 11:22:39 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -36,40 +36,46 @@ #ifndef _SD_STLPOOL_HXX #define _SD_STLPOOL_HXX +#include <com/sun/star/lang/XServiceInfo.hpp> +#include <com/sun/star/container/XIndexAccess.hpp> +#include <com/sun/star/container/XNameContainer.hpp> +#include <com/sun/star/container/XNamed.hpp> +#include <com/sun/star/beans/XPropertySet.hpp> +#include <com/sun/star/lang/XComponent.hpp> +#include <com/sun/star/lang/XSingleServiceFactory.hpp> -#ifndef _SFXSTYLE_HXX //autogen -#include <svtools/style.hxx> -#endif +#include <cppuhelper/implbase4.hxx> +#include <cppuhelper/implbase7.hxx> +#include <map> +#include <vector> + +#include <stlfamily.hxx> +#include <stlsheet.hxx> class SdStyleSheet; class SdDrawDocument; +class SdPage; +typedef std::map< const SdPage*, SdStyleFamilyRef > SdStyleFamilyMap; -class SdStyleSheetPool : public SfxStyleSheetPool -{ -private: - SfxStyleSheetBase* mpActualStyleSheet; - SdDrawDocument* mpDoc; +typedef ::cppu::ImplInheritanceHelper4< SfxStyleSheetPool, + ::com::sun::star::lang::XServiceInfo, + ::com::sun::star::container::XIndexAccess, + ::com::sun::star::container::XNameAccess, + ::com::sun::star::lang::XComponent > SdStyleSheetPoolBase; -protected: - virtual SfxStyleSheetBase* Create(const String& rName, - SfxStyleFamily eFamily, - USHORT nMask); - virtual SfxStyleSheetBase* Create(const SdStyleSheet& rStyle); - - using SfxStyleSheetPool::Create; +class SdStyleSheetPool : public SdStyleSheetPoolBase, public SfxListener +{ public: - SdStyleSheetPool(SfxItemPool& rPool, SdDrawDocument* pDocument); - virtual ~SdStyleSheetPool(); + SdStyleSheetPool(SfxItemPool const& rPool, SdDrawDocument* pDocument); - void SetActualStyleSheet(SfxStyleSheetBase* pActStyleSheet) - { mpActualStyleSheet = pActStyleSheet; } - SfxStyleSheetBase* GetActualStyleSheet() { return mpActualStyleSheet; } + void SetActualStyleSheet(SfxStyleSheetBase* pActStyleSheet) { mpActualStyleSheet = pActStyleSheet; } + SfxStyleSheetBase* GetActualStyleSheet() { return mpActualStyleSheet; } SfxStyleSheetBase* GetTitleSheet(const String& rLayoutName); String GetLayoutName() const; - // Caller muss Liste loeschen + // Caller muss Liste loeschen List* CreateOutlineSheetList(const String& rLayoutName); /** creates all layout style sheets for the givin layout name if they @@ -83,11 +89,11 @@ public: void CreateLayoutStyleSheets(const String& rLayoutName, sal_Bool bCheck = sal_False ); void EraseLayoutStyleSheets(const String& rLayoutName); List* CreateLayoutSheetNames(const String& rLayoutName) const; - List* CreateLayoutSheetList(const String& rLayoutName); - void CopyLayoutSheets(const String& rLayoutName, - SdStyleSheetPool& rSourcePool, - List* pCreatedSheets = NULL); + void CreateLayoutSheetList(const String& rLayoutName, SdStyleSheetVector& rLayoutSheets); + void CopyLayoutSheets(const String& rLayoutName, SdStyleSheetPool& rSourcePool, SdStyleSheetVector& rCreatedSheets ); void CopyGraphicSheets(SdStyleSheetPool& rSourcePool); + void CopyCellSheets(SdStyleSheetPool& rSourcePool); + void CopyTableStyles(SdStyleSheetPool& rSourcePool); void CreatePseudosIfNecessary(); void UpdateStdNames(); @@ -95,6 +101,58 @@ public: Font GetBulletFont() const; SdDrawDocument* GetDoc() const { return mpDoc; } + + static SdStyleSheetVector CreateChildList( SdStyleSheet* pSheet ); + + +public: + void throwIfDisposed() throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName() throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException); + + // XNameAccess + virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw(::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + + // XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException) ; + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) throw(::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); + + // XComponent + virtual void SAL_CALL dispose( ) throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw (::com::sun::star::uno::RuntimeException); + +protected: + void CopySheets(SdStyleSheetPool& rSourcePool, SfxStyleFamily eFamily ); + + virtual SfxStyleSheetBase* Create(const String& rName, SfxStyleFamily eFamily, USHORT nMask); + virtual SfxStyleSheetBase* Create(const SdStyleSheet& rStyle); + + using SfxStyleSheetPool::Create; + virtual ~SdStyleSheetPool(); + + virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType, const SfxHint& rHint, const TypeId& rHintType ); + + void AddStyleFamily( const SdPage* pPage ); + void RemoveStyleFamily( const SdPage* pPage ); + +private: + SfxStyleSheetBase* mpActualStyleSheet; + SdDrawDocument* mpDoc; + SdStyleFamilyRef mxGraphicFamily; + SdStyleFamilyRef mxCellFamily; + SdStyleFamilyMap maStyleFamilyMap; + ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > mxTableFamily; + rtl::OUString msTableFamilyName; }; #endif // _SD_STLPOOL_HXX |