summaryrefslogtreecommitdiff
path: root/sw/inc/fmtmeta.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/inc/fmtmeta.hxx')
-rwxr-xr-x[-rw-r--r--]sw/inc/fmtmeta.hxx22
1 files changed, 18 insertions, 4 deletions
diff --git a/sw/inc/fmtmeta.hxx b/sw/inc/fmtmeta.hxx
index f676469b908f..616c4cddc1b9 100644..100755
--- a/sw/inc/fmtmeta.hxx
+++ b/sw/inc/fmtmeta.hxx
@@ -31,6 +31,8 @@
#ifndef SW_FMTMETA_HXX
#define SW_FMTMETA_HXX
+#include <cppuhelper/weakref.hxx>
+
#include <svl/poolitem.hxx>
#include <sfx2/Metadatable.hxx>
@@ -122,8 +124,8 @@ public:
virtual SfxPoolItem * Clone( SfxItemPool *pPool = 0 ) const;
// TYPEINFO();
- // notify clients registered at m_pMeta that this meta is being removed
- void NotifyRemoval();
+ /// notify clients registered at m_pMeta that this meta is being (re-)moved
+ void NotifyChangeTxtNode(SwTxtNode *const pTxtNode);
static SwFmtMeta * CreatePoolDefault( const USHORT i_nWhich );
::sw::Meta * GetMeta() { return m_pMeta.get(); }
/// this method <em>must</em> be called when the hint is actually copied
@@ -140,8 +142,11 @@ class Meta
, public SwModify
{
protected:
- friend class ::SwFmtMeta; // SetFmtMeta
- friend class ::SwXMeta; // GetTxtNode, GetTxtAttr
+ friend class ::SwFmtMeta; // SetFmtMeta, NotifyChangeTxtNode
+ friend class ::SwXMeta; // GetTxtNode, GetTxtAttr, Get/SetXMeta
+
+ ::com::sun::star::uno::WeakReference<
+ ::com::sun::star::rdf::XMetadatable> m_wXMeta;
SwFmtMeta * m_pFmt;
@@ -151,6 +156,15 @@ protected:
SwFmtMeta * GetFmtMeta() const { return m_pFmt; }
void SetFmtMeta( SwFmtMeta * const i_pFmt ) { m_pFmt = i_pFmt; };
+ void NotifyChangeTxtNode();
+
+ ::com::sun::star::uno::WeakReference<
+ ::com::sun::star::rdf::XMetadatable> const& GetXMeta() const
+ { return m_wXMeta; }
+ void SetXMeta(::com::sun::star::uno::Reference<
+ ::com::sun::star::rdf::XMetadatable> const& xMeta)
+ { m_wXMeta = xMeta; }
+
public:
explicit Meta(SwFmtMeta * const i_pFmt = 0);
virtual ~Meta();