move SwXStyle entirely into compilation unit
Change-Id: Icfcb4320aef9ebe2c5fcc84106de005934d51a3f
diff --git a/sw/inc/unostyle.hxx b/sw/inc/unostyle.hxx
index ea7f7233..72b6b04 100644
--- a/sw/inc/unostyle.hxx
+++ b/sw/inc/unostyle.hxx
@@ -103,174 +103,24 @@ public:
static css::uno::Reference<css::style::XStyle> CreateStyleCondParagraph(SwDoc& rDoc);
};
class SwXStyle : public cppu::WeakImplHelper
<
css::style::XStyle,
css::beans::XPropertySet,
css::beans::XMultiPropertySet,
css::lang::XServiceInfo,
css::lang::XUnoTunnel,
css::beans::XPropertyState,
css::beans::XMultiPropertyStates
>,
public SfxListener,
public SwClient
namespace sw
{
friend class sw::XStyleFamily;
SwDoc* m_pDoc;
OUString m_sStyleName;
SfxStyleSheetBasePool* m_pBasePool;
SfxStyleFamily m_eFamily; // for Notify
bool m_bIsDescriptor : 1;
bool m_bIsConditional : 1;
OUString m_sParentStyleName;
SwStyleProperties_Impl* m_pPropertiesImpl;
void ApplyDescriptorProperties();
protected:
void Invalidate();
const SfxStyleSheetBasePool* GetBasePool() const {return m_pBasePool;}
SfxStyleSheetBasePool* GetBasePool() {return m_pBasePool;}
void SetStyleName(const OUString& rSet){ m_sStyleName = rSet;}
SwStyleProperties_Impl* GetPropImpl(){return m_pPropertiesImpl;}
css::uno::Reference< css::beans::XPropertySet > mxStyleData;
css::uno::Reference< css::container::XNameAccess > mxStyleFamily;
void SAL_CALL SetPropertyValues_Impl( const css::uno::Sequence< OUString >& aPropertyNames, const css::uno::Sequence< css::uno::Any >& aValues )
throw (css::beans::UnknownPropertyException,
css::beans::PropertyVetoException,
css::lang::IllegalArgumentException,
css::lang::WrappedTargetException,
css::uno::RuntimeException,
std::exception);
css::uno::Sequence< css::uno::Any > SAL_CALL GetPropertyValues_Impl( const css::uno::Sequence< OUString >& aPropertyNames ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception);
virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew) override;
public:
SwXStyle(SwDoc* pDoc, SfxStyleFamily eFam = SFX_STYLE_FAMILY_PARA, bool bConditional = false);
SwXStyle(SfxStyleSheetBasePool& rPool, SfxStyleFamily eFam,
SwDoc* pDoc,
const OUString& rStyleName);
virtual ~SwXStyle();
static const css::uno::Sequence< sal_Int8 > & getUnoTunnelId();
//XUnoTunnel
virtual sal_Int64 SAL_CALL getSomething( const css::uno::Sequence< sal_Int8 >& aIdentifier ) throw(css::uno::RuntimeException, std::exception) override;
//XNamed
virtual OUString SAL_CALL getName() throw( css::uno::RuntimeException, std::exception ) override;
virtual void SAL_CALL setName(const OUString& Name_) throw( css::uno::RuntimeException, std::exception ) override;
//XStyle
virtual sal_Bool SAL_CALL isUserDefined() throw( css::uno::RuntimeException, std::exception ) override;
virtual sal_Bool SAL_CALL isInUse() throw( css::uno::RuntimeException, std::exception ) override;
virtual OUString SAL_CALL getParentStyle() throw( css::uno::RuntimeException, std::exception ) override;
virtual void SAL_CALL setParentStyle(const OUString& aParentStyle) throw( css::container::NoSuchElementException, css::uno::RuntimeException, std::exception ) override;
//XPropertySet
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw(css::uno::RuntimeException, std::exception) override;
virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const css::uno::Any& aValue ) throw(css::beans::UnknownPropertyException, css::beans::PropertyVetoException, css::lang::IllegalArgumentException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
virtual css::uno::Any SAL_CALL getPropertyValue( const OUString& PropertyName ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
//XMultiPropertySet
virtual void SAL_CALL setPropertyValues( const css::uno::Sequence< OUString >& aPropertyNames, const css::uno::Sequence< css::uno::Any >& aValues ) throw(css::beans::PropertyVetoException, css::lang::IllegalArgumentException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
virtual css::uno::Sequence< css::uno::Any > SAL_CALL getPropertyValues( const css::uno::Sequence< OUString >& aPropertyNames ) throw(css::uno::RuntimeException, std::exception) override;
virtual void SAL_CALL addPropertiesChangeListener( const css::uno::Sequence< OUString >& aPropertyNames, const css::uno::Reference< css::beans::XPropertiesChangeListener >& xListener ) throw(css::uno::RuntimeException, std::exception) override;
virtual void SAL_CALL removePropertiesChangeListener( const css::uno::Reference< css::beans::XPropertiesChangeListener >& xListener ) throw(css::uno::RuntimeException, std::exception) override;
virtual void SAL_CALL firePropertiesChangeEvent( const css::uno::Sequence< OUString >& aPropertyNames, const css::uno::Reference< css::beans::XPropertiesChangeListener >& xListener ) throw(css::uno::RuntimeException, std::exception) override;
//XPropertyState
virtual css::beans::PropertyState SAL_CALL getPropertyState( const OUString& PropertyName ) throw(css::beans::UnknownPropertyException, css::uno::RuntimeException, std::exception) override;
virtual css::uno::Sequence< css::beans::PropertyState > SAL_CALL getPropertyStates( const css::uno::Sequence< OUString >& aPropertyName ) throw(css::beans::UnknownPropertyException, css::uno::RuntimeException, std::exception) override;
virtual void SAL_CALL setPropertyToDefault( const OUString& PropertyName ) throw(css::beans::UnknownPropertyException, css::uno::RuntimeException, std::exception) override;
virtual css::uno::Any SAL_CALL getPropertyDefault( const OUString& aPropertyName ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
//XMultiPropertyStates
virtual void SAL_CALL setAllPropertiesToDefault( ) throw (css::uno::RuntimeException, std::exception) override;
virtual void SAL_CALL setPropertiesToDefault( const css::uno::Sequence< OUString >& aPropertyNames ) throw (css::beans::UnknownPropertyException, css::uno::RuntimeException, std::exception) override;
virtual css::uno::Sequence< css::uno::Any > SAL_CALL getPropertyDefaults( const css::uno::Sequence< OUString >& aPropertyNames ) throw (css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
//XServiceInfo
virtual OUString SAL_CALL getImplementationName() throw( css::uno::RuntimeException, std::exception ) override;
virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) throw( css::uno::RuntimeException, std::exception ) override;
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw( css::uno::RuntimeException, std::exception ) override;
//SfxListener
virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) override;
OUString GetStyleName() const { return m_sStyleName;}
SfxStyleFamily GetFamily() const {return m_eFamily;}
bool IsDescriptor() const {return m_bIsDescriptor;}
bool IsConditional() const { return m_bIsConditional;}
OUString GetParentStyleName() const { return m_sParentStyleName;}
void SetDoc(SwDoc* pDc, SfxStyleSheetBasePool* pPool)
{
m_bIsDescriptor = false; m_pDoc = pDc;
m_pBasePool = pPool;
StartListening(*m_pBasePool);
}
SwDoc* GetDoc() const { return m_pDoc; }
};
class SwXFrameStyle : public SwXStyle,
public css::document::XEventsSupplier
{
public:
SwXFrameStyle(SfxStyleSheetBasePool& rPool,
SwDoc* pDoc,
const OUString& rStyleName) :
SwXStyle(rPool, SFX_STYLE_FAMILY_FRAME, pDoc, rStyleName){}
SwXFrameStyle( SwDoc *pDoc );
virtual ~SwXFrameStyle();
virtual void SAL_CALL acquire( ) throw() override {SwXStyle::acquire();}
virtual void SAL_CALL release( ) throw() override {SwXStyle::release();}
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes( ) throw(css::uno::RuntimeException, std::exception) override;
virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type& aType ) throw(css::uno::RuntimeException, std::exception) override;
virtual css::uno::Reference< css::container::XNameReplace > SAL_CALL getEvents( ) throw(css::uno::RuntimeException, std::exception) override;
friend class SwFrameStyleEventDescriptor;
};
class SwXPageStyle : public SwXStyle
{
protected:
void SAL_CALL SetPropertyValues_Impl( const css::uno::Sequence< OUString >& aPropertyNames, const css::uno::Sequence< css::uno::Any >& aValues )
throw (css::beans::UnknownPropertyException,
css::beans::PropertyVetoException,
css::lang::IllegalArgumentException,
css::lang::WrappedTargetException,
css::uno::RuntimeException,
std::exception);
css::uno::Sequence< css::uno::Any > SAL_CALL GetPropertyValues_Impl( const css::uno::Sequence< OUString >& aPropertyNames ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception);
public:
SwXPageStyle(SfxStyleSheetBasePool& rPool, SwDocShell* pDocSh, SfxStyleFamily eFam,
const OUString& rStyleName);
SwXPageStyle(SwDocShell* pDocSh);
virtual ~SwXPageStyle();
virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const css::uno::Any& aValue ) throw(css::beans::UnknownPropertyException, css::beans::PropertyVetoException, css::lang::IllegalArgumentException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
virtual css::uno::Any SAL_CALL getPropertyValue( const OUString& PropertyName ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
virtual void SAL_CALL setPropertyValues( const css::uno::Sequence< OUString >& aPropertyNames, const css::uno::Sequence< css::uno::Any >& aValues ) throw(css::beans::PropertyVetoException, css::lang::IllegalArgumentException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
virtual css::uno::Sequence< css::uno::Any > SAL_CALL getPropertyValues( const css::uno::Sequence< OUString >& aPropertyNames ) throw(css::uno::RuntimeException, std::exception) override;
};
class ICoreFrameStyle
{
public:
virtual void SetItem(enum RES_FRMATR eAtr, const SfxPoolItem& rItem) =0;
virtual const SfxPoolItem* GetItem(enum RES_FRMATR eAtr) =0;
virtual css::document::XEventsSupplier& GetEventsSupplier() =0;
virtual ~ICoreFrameStyle() {};
};
class ICoreParagraphStyle
{
public:
static const css::uno::Sequence<sal_Int8>& getUnoTunnelId();
virtual const SwTextFormatColl* GetFormatColl() =0;
virtual ~ICoreParagraphStyle() {};
};
}
// access to all automatic style families
class SwXAutoStyles :
diff --git a/sw/source/core/inc/unoevent.hxx b/sw/source/core/inc/unoevent.hxx
index 46c752f..d942c60 100644
--- a/sw/source/core/inc/unoevent.hxx
+++ b/sw/source/core/inc/unoevent.hxx
@@ -20,6 +20,7 @@
#define INCLUDED_SW_SOURCE_CORE_INC_UNOEVENT_HXX
#include <svtools/unoevent.hxx>
#include <unostyle.hxx>
#include <svl/macitem.hxx>
class SvxMacroItem;
@@ -82,10 +83,10 @@ class SwFrameStyleEventDescriptor : public SvEventDescriptor
{
OUString sSwFrameStyleEventDescriptor;
SwXFrameStyle& rStyle;
sw::ICoreFrameStyle& m_rStyle;
public:
SwFrameStyleEventDescriptor( SwXFrameStyle& rStyleRef );
SwFrameStyleEventDescriptor( sw::ICoreFrameStyle& rStyle );
virtual ~SwFrameStyleEventDescriptor();
diff --git a/sw/source/core/unocore/unoevent.cxx b/sw/source/core/unocore/unoevent.cxx
index d3652c6..53f311f 100644
--- a/sw/source/core/unocore/unoevent.cxx
+++ b/sw/source/core/unocore/unoevent.cxx
@@ -211,11 +211,11 @@ OUString SwFrameEventDescriptor::getImplementationName()
}
SwFrameStyleEventDescriptor::SwFrameStyleEventDescriptor(
SwXFrameStyle& rStyleRef ) :
SvEventDescriptor((document::XEventsSupplier&)rStyleRef,
sw::ICoreFrameStyle& rStyle ) :
SvEventDescriptor(rStyle.GetEventsSupplier(),
aFrameStyleEvents),
sSwFrameStyleEventDescriptor("SwFrameStyleEventDescriptor"),
rStyle(rStyleRef)
m_rStyle(rStyle)
{
}
@@ -225,43 +225,15 @@ SwFrameStyleEventDescriptor::~SwFrameStyleEventDescriptor()
void SwFrameStyleEventDescriptor::setMacroItem(const SvxMacroItem& rItem)
{
// As I was told, for some entirely unobvious reason getting an
// item from a style has to look as follows:
SfxStyleSheetBasePool* pBasePool = rStyle.GetBasePool();
if (pBasePool)
{
SfxStyleSheetBase* pBase = pBasePool->Find(rStyle.GetStyleName());
if (pBase)
{
rtl::Reference< SwDocStyleSheet > xStyle( new SwDocStyleSheet( *static_cast<SwDocStyleSheet*>(pBase) ) );
SfxItemSet& rStyleSet = xStyle->GetItemSet();
SfxItemSet aSet(*rStyleSet.GetPool(), RES_FRMMACRO, RES_FRMMACRO);
aSet.Put(rItem);
xStyle->SetItemSet(aSet);
}
}
m_rStyle.SetItem(RES_FRMMACRO, rItem);
}
static const SvxMacroItem aEmptyMacroItem(RES_FRMMACRO);
const SvxMacroItem& SwFrameStyleEventDescriptor::getMacroItem()
{
// As I was told, for some entirely unobvious reason getting an
// item from a style has to look as follows:
SfxStyleSheetBasePool* pBasePool = rStyle.GetBasePool();
if (pBasePool)
{
SfxStyleSheetBase* pBase = pBasePool->Find(rStyle.GetStyleName());
if (pBase)
{
rtl::Reference< SwDocStyleSheet > xStyle( new SwDocStyleSheet( *static_cast<SwDocStyleSheet*>(pBase)) );
return static_cast<const SvxMacroItem&>(xStyle->GetItemSet().Get(RES_FRMMACRO));
}
else
return aEmptyMacroItem;
}
else
return aEmptyMacroItem;
const SfxPoolItem* pItem(m_rStyle.GetItem(RES_FRMMACRO));
return pItem ? static_cast<const SvxMacroItem&>(*pItem) : aEmptyMacroItem;
}
OUString SwFrameStyleEventDescriptor::getImplementationName()
diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx
index d0efe3d..19dc497 100644
--- a/sw/source/core/unocore/unostyle.cxx
+++ b/sw/source/core/unocore/unostyle.cxx
@@ -145,8 +145,8 @@ namespace sw
lang::XServiceInfo,
container::XIndexAccess,
beans::XPropertySet
>,
public SfxListener
>
, public SfxListener
{
const StyleFamilyEntry& m_rEntry;
SfxStyleSheetBasePool* m_pBasePool;
@@ -238,6 +238,186 @@ namespace sw
};
}
class SwXStyle : public cppu::WeakImplHelper
<
css::style::XStyle,
css::beans::XPropertySet,
css::beans::XMultiPropertySet,
css::lang::XServiceInfo,
css::lang::XUnoTunnel,
css::beans::XPropertyState,
css::beans::XMultiPropertyStates
>
, public SfxListener
, public SwClient
{
friend class sw::XStyleFamily;
SwDoc* m_pDoc;
OUString m_sStyleName;
SfxStyleSheetBasePool* m_pBasePool;
SfxStyleFamily m_eFamily; // for Notify
bool m_bIsDescriptor : 1;
bool m_bIsConditional : 1;
OUString m_sParentStyleName;
SwStyleProperties_Impl* m_pPropertiesImpl;
void ApplyDescriptorProperties();
protected:
void Invalidate();
const SfxStyleSheetBasePool* GetBasePool() const {return m_pBasePool;}
SfxStyleSheetBasePool* GetBasePool() {return m_pBasePool;}
void SetStyleName(const OUString& rSet){ m_sStyleName = rSet;}
SwStyleProperties_Impl* GetPropImpl(){return m_pPropertiesImpl;}
css::uno::Reference< css::beans::XPropertySet > mxStyleData;
css::uno::Reference< css::container::XNameAccess > mxStyleFamily;
void SAL_CALL SetPropertyValues_Impl( const css::uno::Sequence< OUString >& aPropertyNames, const css::uno::Sequence< css::uno::Any >& aValues )
throw (css::beans::UnknownPropertyException,
css::beans::PropertyVetoException,
css::lang::IllegalArgumentException,
css::lang::WrappedTargetException,
css::uno::RuntimeException,
std::exception);
css::uno::Sequence< css::uno::Any > SAL_CALL GetPropertyValues_Impl( const css::uno::Sequence< OUString >& aPropertyNames ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception);
virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew) override;
public:
SwXStyle(SwDoc* pDoc, SfxStyleFamily eFam = SFX_STYLE_FAMILY_PARA, bool bConditional = false);
SwXStyle(SfxStyleSheetBasePool& rPool, SfxStyleFamily eFam,
SwDoc* pDoc,
const OUString& rStyleName);
virtual ~SwXStyle();
static const css::uno::Sequence< sal_Int8 > & getUnoTunnelId();
//XUnoTunnel
virtual sal_Int64 SAL_CALL getSomething( const css::uno::Sequence< sal_Int8 >& aIdentifier ) throw(css::uno::RuntimeException, std::exception) override;
//XNamed
virtual OUString SAL_CALL getName() throw( css::uno::RuntimeException, std::exception ) override;
virtual void SAL_CALL setName(const OUString& Name_) throw( css::uno::RuntimeException, std::exception ) override;
//XStyle
virtual sal_Bool SAL_CALL isUserDefined() throw( css::uno::RuntimeException, std::exception ) override;
virtual sal_Bool SAL_CALL isInUse() throw( css::uno::RuntimeException, std::exception ) override;
virtual OUString SAL_CALL getParentStyle() throw( css::uno::RuntimeException, std::exception ) override;
virtual void SAL_CALL setParentStyle(const OUString& aParentStyle) throw( css::container::NoSuchElementException, css::uno::RuntimeException, std::exception ) override;
//XPropertySet
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw(css::uno::RuntimeException, std::exception) override;
virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const css::uno::Any& aValue ) throw(css::beans::UnknownPropertyException, css::beans::PropertyVetoException, css::lang::IllegalArgumentException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
virtual css::uno::Any SAL_CALL getPropertyValue( const OUString& PropertyName ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
//XMultiPropertySet
virtual void SAL_CALL setPropertyValues( const css::uno::Sequence< OUString >& aPropertyNames, const css::uno::Sequence< css::uno::Any >& aValues ) throw(css::beans::PropertyVetoException, css::lang::IllegalArgumentException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
virtual css::uno::Sequence< css::uno::Any > SAL_CALL getPropertyValues( const css::uno::Sequence< OUString >& aPropertyNames ) throw(css::uno::RuntimeException, std::exception) override;
virtual void SAL_CALL addPropertiesChangeListener( const css::uno::Sequence< OUString >& aPropertyNames, const css::uno::Reference< css::beans::XPropertiesChangeListener >& xListener ) throw(css::uno::RuntimeException, std::exception) override;
virtual void SAL_CALL removePropertiesChangeListener( const css::uno::Reference< css::beans::XPropertiesChangeListener >& xListener ) throw(css::uno::RuntimeException, std::exception) override;
virtual void SAL_CALL firePropertiesChangeEvent( const css::uno::Sequence< OUString >& aPropertyNames, const css::uno::Reference< css::beans::XPropertiesChangeListener >& xListener ) throw(css::uno::RuntimeException, std::exception) override;
//XPropertyState
virtual css::beans::PropertyState SAL_CALL getPropertyState( const OUString& PropertyName ) throw(css::beans::UnknownPropertyException, css::uno::RuntimeException, std::exception) override;
virtual css::uno::Sequence< css::beans::PropertyState > SAL_CALL getPropertyStates( const css::uno::Sequence< OUString >& aPropertyName ) throw(css::beans::UnknownPropertyException, css::uno::RuntimeException, std::exception) override;
virtual void SAL_CALL setPropertyToDefault( const OUString& PropertyName ) throw(css::beans::UnknownPropertyException, css::uno::RuntimeException, std::exception) override;
virtual css::uno::Any SAL_CALL getPropertyDefault( const OUString& aPropertyName ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
//XMultiPropertyStates
virtual void SAL_CALL setAllPropertiesToDefault( ) throw (css::uno::RuntimeException, std::exception) override;
virtual void SAL_CALL setPropertiesToDefault( const css::uno::Sequence< OUString >& aPropertyNames ) throw (css::beans::UnknownPropertyException, css::uno::RuntimeException, std::exception) override;
virtual css::uno::Sequence< css::uno::Any > SAL_CALL getPropertyDefaults( const css::uno::Sequence< OUString >& aPropertyNames ) throw (css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
//XServiceInfo
virtual OUString SAL_CALL getImplementationName() throw( css::uno::RuntimeException, std::exception ) override;
virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) throw( css::uno::RuntimeException, std::exception ) override;
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw( css::uno::RuntimeException, std::exception ) override;
//SfxListener
virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) override;
OUString GetStyleName() const { return m_sStyleName;}
SfxStyleFamily GetFamily() const {return m_eFamily;}
bool IsDescriptor() const {return m_bIsDescriptor;}
bool IsConditional() const { return m_bIsConditional;}
OUString GetParentStyleName() const { return m_sParentStyleName;}
void SetDoc(SwDoc* pDc, SfxStyleSheetBasePool* pPool)
{
m_bIsDescriptor = false; m_pDoc = pDc;
m_pBasePool = pPool;
StartListening(*m_pBasePool);
}
SwDoc* GetDoc() const { return m_pDoc; }
virtual const SwTextFormatColl* GetFormatColl() const
{
assert(m_eFamily == SFX_STYLE_FAMILY_PARA);
return m_pDoc->FindTextFormatCollByName(GetStyleName());
}
};
class SwXFrameStyle
: public SwXStyle
, public css::document::XEventsSupplier
, public sw::ICoreFrameStyle
{
public:
SwXFrameStyle(SfxStyleSheetBasePool& rPool,
SwDoc* pDoc,
const OUString& rStyleName) :
SwXStyle(rPool, SFX_STYLE_FAMILY_FRAME, pDoc, rStyleName){}
SwXFrameStyle( SwDoc *pDoc );
virtual ~SwXFrameStyle();
virtual void SAL_CALL acquire( ) throw() override {SwXStyle::acquire();}
virtual void SAL_CALL release( ) throw() override {SwXStyle::release();}
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes( ) throw(css::uno::RuntimeException, std::exception) override;
virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type& aType ) throw(css::uno::RuntimeException, std::exception) override;
virtual css::uno::Reference< css::container::XNameReplace > SAL_CALL getEvents( ) throw(css::uno::RuntimeException, std::exception) override;
friend class SwFrameStyleEventDescriptor;
//ICoreStyle
virtual void SetItem(enum RES_FRMATR eAtr, const SfxPoolItem& rItem);
virtual const SfxPoolItem* GetItem(enum RES_FRMATR eAtr);
virtual css::document::XEventsSupplier& GetEventsSupplier()
{ return *this; };
};
class SwXPageStyle
: public SwXStyle
{
protected:
void SAL_CALL SetPropertyValues_Impl( const css::uno::Sequence< OUString >& aPropertyNames, const css::uno::Sequence< css::uno::Any >& aValues )
throw (css::beans::UnknownPropertyException,
css::beans::PropertyVetoException,
css::lang::IllegalArgumentException,
css::lang::WrappedTargetException,
css::uno::RuntimeException,
std::exception);
css::uno::Sequence< css::uno::Any > SAL_CALL GetPropertyValues_Impl( const css::uno::Sequence< OUString >& aPropertyNames ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception);
public:
SwXPageStyle(SfxStyleSheetBasePool& rPool, SwDocShell* pDocSh, SfxStyleFamily eFam,
const OUString& rStyleName);
SwXPageStyle(SwDocShell* pDocSh);
virtual ~SwXPageStyle();
virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const css::uno::Any& aValue ) throw(css::beans::UnknownPropertyException, css::beans::PropertyVetoException, css::lang::IllegalArgumentException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
virtual css::uno::Any SAL_CALL getPropertyValue( const OUString& PropertyName ) throw(css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
virtual void SAL_CALL setPropertyValues( const css::uno::Sequence< OUString >& aPropertyNames, const css::uno::Sequence< css::uno::Any >& aValues ) throw(css::beans::PropertyVetoException, css::lang::IllegalArgumentException, css::lang::WrappedTargetException, css::uno::RuntimeException, std::exception) override;
virtual css::uno::Sequence< css::uno::Any > SAL_CALL getPropertyValues( const css::uno::Sequence< OUString >& aPropertyNames ) throw(css::uno::RuntimeException, std::exception) override;
};
using sw::XStyleFamily;
@@ -830,22 +1010,32 @@ static SwGetPoolIdFromName lcl_GetSwEnumFromSfxEnum(SfxStyleFamily eFamily)
namespace
{
class theSwXStyleUnoTunnelId : public rtl::Static< UnoTunnelIdInit, theSwXStyleUnoTunnelId > {};
class theSwXStyleUnoTunnelId : public rtl::Static<UnoTunnelIdInit, theSwXStyleUnoTunnelId> {};
class theCoreParagraphUnoTunnelId : public rtl::Static<UnoTunnelIdInit, theCoreParagraphUnoTunnelId> {};
}
const uno::Sequence< sal_Int8 > & SwXStyle::getUnoTunnelId()
const uno::Sequence<sal_Int8>& SwXStyle::getUnoTunnelId()
{
return theSwXStyleUnoTunnelId::get().getSeq();
}
sal_Int64 SAL_CALL SwXStyle::getSomething( const uno::Sequence< sal_Int8 >& rId )
const uno::Sequence<sal_Int8>& sw::ICoreParagraphStyle::getUnoTunnelId()
{
return theCoreParagraphUnoTunnelId::get().getSeq();
}
sal_Int64 SAL_CALL SwXStyle::getSomething(const uno::Sequence<sal_Int8>& rId)
throw(uno::RuntimeException, std::exception)
{
if( rId.getLength() == 16
&& 0 == memcmp( getUnoTunnelId().getConstArray(),
rId.getConstArray(), 16 ) )
if(rId.getLength() != 16)
return 0;
if(0 == memcmp(getUnoTunnelId().getConstArray(), rId.getConstArray(), 16))
{
return sal::static_int_cast< sal_Int64 >( reinterpret_cast< sal_IntPtr >(this) );
return sal::static_int_cast<sal_Int64>(reinterpret_cast<sal_IntPtr>(this));
}
else if(0 == memcmp(sw::ICoreParagraphStyle::getUnoTunnelId().getConstArray(), rId.getConstArray(), 16))
{
return sal::static_int_cast<sal_Int64>(reinterpret_cast<sal_IntPtr>(dynamic_cast<sw::ICoreParagraphStyle*>(this)));
}
return 0;
}
@@ -3028,6 +3218,7 @@ void SwXStyle::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
}
}
void SwXStyle::Invalidate()
{
m_sStyleName.clear();
@@ -3694,6 +3885,38 @@ SwXFrameStyle::SwXFrameStyle ( SwDoc *pDoc )
SwXFrameStyle::~SwXFrameStyle()
{
}
void SwXFrameStyle::SetItem(enum RES_FRMATR eAtr, const SfxPoolItem& rItem)
{
// As I was told, for some entirely unobvious reason getting an
// item from a style has to look as follows:
SfxStyleSheetBasePool* pBasePool = GetBasePool();
if (pBasePool)
{
SfxStyleSheetBase* pBase = pBasePool->Find(GetStyleName());
if (pBase)
{
rtl::Reference< SwDocStyleSheet > xStyle( new SwDocStyleSheet( *static_cast<SwDocStyleSheet*>(pBase) ) );
SfxItemSet& rStyleSet = xStyle->GetItemSet();
SfxItemSet aSet(*rStyleSet.GetPool(), eAtr, eAtr);
aSet.Put(rItem);
xStyle->SetItemSet(aSet);
}
}
}
const SfxPoolItem* SwXFrameStyle::GetItem(enum RES_FRMATR eAtr)
{
// As I was told, for some entirely unobvious reason getting an
// item from a style has to look as follows:
SfxStyleSheetBasePool* pBasePool = GetBasePool();
if(!pBasePool)
return nullptr;
SfxStyleSheetBase* pBase = pBasePool->Find(GetStyleName());
if(!pBase)
return nullptr;
rtl::Reference< SwDocStyleSheet > xStyle( new SwDocStyleSheet( *static_cast<SwDocStyleSheet*>(pBase)) );
return &xStyle->GetItemSet().Get(eAtr);
}
uno::Sequence< uno::Type > SwXFrameStyle::getTypes( ) throw(uno::RuntimeException, std::exception)
{
diff --git a/sw/source/filter/xml/xmlfmt.cxx b/sw/source/filter/xml/xmlfmt.cxx
index aa728f9..46d858c 100644
--- a/sw/source/filter/xml/xmlfmt.cxx
+++ b/sw/source/filter/xml/xmlfmt.cxx
@@ -362,31 +362,23 @@ SvXMLImportContext *SwXMLTextStyleContext_Impl::CreateChildContext(
void SwXMLTextStyleContext_Impl::Finish( bool bOverwrite )
{
XMLTextStyleContext::Finish( bOverwrite );
if( !pConditions || XML_STYLE_FAMILY_TEXT_PARAGRAPH != GetFamily() )
if(!pConditions || XML_STYLE_FAMILY_TEXT_PARAGRAPH != GetFamily())
return;
uno::Reference < style::XStyle > xStyle = GetStyle();
if( !xStyle.is() )
uno::Reference<style::XStyle> xStyle = GetStyle();
if(!xStyle.is())
return;
const SwXStyle* pStyle = nullptr;
uno::Reference<lang::XUnoTunnel> xStyleTunnel( xStyle, uno::UNO_QUERY);
if( xStyleTunnel.is() )
{
pStyle = reinterpret_cast< SwXStyle * >(
sal::static_int_cast< sal_IntPtr >( xStyleTunnel->getSomething( SwXStyle::getUnoTunnelId() )));
}
if( !pStyle )
uno::Reference<lang::XUnoTunnel> xStyleTunnel(xStyle, uno::UNO_QUERY);
if(!xStyleTunnel.is())
return;
const SwDoc *pDoc = pStyle->GetDoc();
SwTextFormatColl *pColl = pDoc->FindTextFormatCollByName( pStyle->GetStyleName() );
sw::ICoreParagraphStyle* pCoreParagraphStyle(reinterpret_cast<sw::ICoreParagraphStyle*>(
xStyleTunnel->getSomething(sw::ICoreParagraphStyle::getUnoTunnelId())));
if(!pCoreParagraphStyle)
return;
SwTextFormatColl* pColl = const_cast<SwTextFormatColl*>(pCoreParagraphStyle->GetFormatColl());
OSL_ENSURE( pColl, "Text collection not found" );
if( !pColl || RES_CONDTXTFMTCOLL != pColl->Which() )
return;
SwDoc *pDoc = SwImport::GetDocFromXMLImport(GetImport());
const size_t nCount = pConditions->size();
OUString sName;
for( size_t i = 0; i < nCount; i++ )
diff --git a/sw/source/filter/xml/xmltexte.cxx b/sw/source/filter/xml/xmltexte.cxx
index fdfabd9..2ce19b9 100644
--- a/sw/source/filter/xml/xmltexte.cxx
+++ b/sw/source/filter/xml/xmltexte.cxx
@@ -83,88 +83,84 @@ void SwXMLTextParagraphExport::exportStyleContent(
const Reference< XStyle > & rStyle )
{
const SwXStyle* pStyle = nullptr;
Reference<XUnoTunnel> xStyleTunnel( rStyle, UNO_QUERY);
if( xStyleTunnel.is() )
Reference<XUnoTunnel> xStyleTunnel(rStyle, UNO_QUERY);
Reference<lang::XServiceInfo> xServiceInfo(rStyle, UNO_QUERY);
if(!xStyleTunnel.is() || !xServiceInfo.is() || !xServiceInfo->supportsService("com.sun.star.style.ParagraphStyle"))
return;
sw::ICoreParagraphStyle* pCoreParagraphStyle(reinterpret_cast<sw::ICoreParagraphStyle*>(
xStyleTunnel->getSomething(sw::ICoreParagraphStyle::getUnoTunnelId())));
if(!pCoreParagraphStyle)
return;
const SwTextFormatColl* pColl(pCoreParagraphStyle->GetFormatColl());
OSL_ENSURE( pColl, "There is the text collection?" );
if( pColl && RES_CONDTXTFMTCOLL == pColl->Which() )
{
pStyle = reinterpret_cast< SwXStyle * >(
sal::static_int_cast< sal_IntPtr >( xStyleTunnel->getSomething( SwXStyle::getUnoTunnelId() )));
}
if( pStyle && SFX_STYLE_FAMILY_PARA == pStyle->GetFamily() )
{
const SwDoc *pDoc = pStyle->GetDoc();
const SwTextFormatColl *pColl =
pDoc->FindTextFormatCollByName( pStyle->GetStyleName() );
OSL_ENSURE( pColl, "There is the text collection?" );
if( pColl && RES_CONDTXTFMTCOLL == pColl->Which() )
const SwFormatCollConditions& rConditions =
static_cast<const SwConditionTextFormatColl *>(pColl)->GetCondColls();
for( size_t i=0; i < rConditions.size(); ++i )
{
const SwFormatCollConditions& rConditions =
static_cast<const SwConditionTextFormatColl *>(pColl)->GetCondColls();
for( size_t i=0; i < rConditions.size(); ++i )
const SwCollCondition& rCond = *rConditions[i];
enum XMLTokenEnum eFunc = XML_TOKEN_INVALID;
OUString sVal;
switch( rCond.GetCondition() )
{
const SwCollCondition& rCond = *rConditions[i];
enum XMLTokenEnum eFunc = XML_TOKEN_INVALID;
OUString sVal;
switch( rCond.GetCondition() )
case PARA_IN_LIST:
eFunc = XML_LIST_LEVEL;
sVal = OUString::number(rCond.GetSubCondition()+1);
break;
case PARA_IN_OUTLINE:
eFunc = XML_OUTLINE_LEVEL;
sVal = OUString::number(rCond.GetSubCondition()+1);
break;
case PARA_IN_FRAME:
eFunc = XML_TEXT_BOX;
break;
case PARA_IN_TABLEHEAD:
eFunc = XML_TABLE_HEADER;
break;
case PARA_IN_TABLEBODY:
eFunc = XML_TABLE;
break;
case PARA_IN_SECTION:
eFunc = XML_SECTION;
break;
case PARA_IN_FOOTENOTE:
eFunc = XML_FOOTNOTE;
break;
case PARA_IN_FOOTER:
eFunc = XML_FOOTER;
break;
case PARA_IN_HEADER:
eFunc = XML_HEADER;
break;
case PARA_IN_ENDNOTE:
eFunc = XML_ENDNOTE;
break;
}
OSL_ENSURE( eFunc != XML_TOKEN_INVALID,
"SwXMLExport::ExportFormat: unknown condition" );
if( eFunc != XML_TOKEN_INVALID )
{
OUString sCond = GetXMLToken(eFunc) + "()";
if( !sVal.isEmpty() )
{
case PARA_IN_LIST:
eFunc = XML_LIST_LEVEL;
sVal = OUString::number(rCond.GetSubCondition()+1);
break;
case PARA_IN_OUTLINE:
eFunc = XML_OUTLINE_LEVEL;
sVal = OUString::number(rCond.GetSubCondition()+1);
break;
case PARA_IN_FRAME:
eFunc = XML_TEXT_BOX;
break;
case PARA_IN_TABLEHEAD:
eFunc = XML_TABLE_HEADER;
break;
case PARA_IN_TABLEBODY:
eFunc = XML_TABLE;
break;
case PARA_IN_SECTION:
eFunc = XML_SECTION;
break;
case PARA_IN_FOOTENOTE:
eFunc = XML_FOOTNOTE;
break;
case PARA_IN_FOOTER:
eFunc = XML_FOOTER;
break;
case PARA_IN_HEADER:
eFunc = XML_HEADER;
break;
case PARA_IN_ENDNOTE:
eFunc = XML_ENDNOTE;
break;
sCond += "=" + sVal;
}
OSL_ENSURE( eFunc != XML_TOKEN_INVALID,
"SwXMLExport::ExportFormat: unknown condition" );
if( eFunc != XML_TOKEN_INVALID )
{
OUString sCond = GetXMLToken(eFunc) + "()";
if( !sVal.isEmpty() )
{
sCond += "=" + sVal;
}
GetExport().AddAttribute( XML_NAMESPACE_STYLE,
XML_CONDITION, sCond );
OUString aString;
SwStyleNameMapper::FillProgName(
rCond.GetTextFormatColl()->GetName(),
aString,
nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL,
true);
aString = GetExport().EncodeStyleName( aString );
GetExport().AddAttribute( XML_NAMESPACE_STYLE,
XML_APPLY_STYLE_NAME, aString );
SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_STYLE,
XML_MAP, true, true );
}
GetExport().AddAttribute( XML_NAMESPACE_STYLE,
XML_CONDITION, sCond );
OUString aString;
SwStyleNameMapper::FillProgName(
rCond.GetTextFormatColl()->GetName(),
aString,
nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL,
true);
aString = GetExport().EncodeStyleName( aString );
GetExport().AddAttribute( XML_NAMESPACE_STYLE,
XML_APPLY_STYLE_NAME, aString );
SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_STYLE,
XML_MAP, true, true );
}
}
}