summaryrefslogtreecommitdiff
path: root/sw/inc/unotext.hxx
diff options
context:
space:
mode:
authorMichael Stahl <mst@openoffice.org>2010-01-08 17:13:56 +0100
committerMichael Stahl <mst@openoffice.org>2010-01-08 17:13:56 +0100
commit817e682f25904005a810839d32a881df6760b8b6 (patch)
treebe62c40a3c655b5555c67587e246430e5ce30ba0 /sw/inc/unotext.hxx
parent456e9d587f26b98929d7821b6d9e14d328c024b5 (diff)
swunolocking1: #i105557#: fix locking for SwXText:
add Impl struct, and use UnoImplPtr to lock destructor. move all implementation details out of header, into Impl struct. use new XUnoTunnel and XServiceInfo helpers. clean up the implementation a little.
Diffstat (limited to 'sw/inc/unotext.hxx')
-rw-r--r--sw/inc/unotext.hxx63
1 files changed, 16 insertions, 47 deletions
diff --git a/sw/inc/unotext.hxx b/sw/inc/unotext.hxx
index 97a45ece73cf..3c805da5127c 100644
--- a/sw/inc/unotext.hxx
+++ b/sw/inc/unotext.hxx
@@ -40,8 +40,6 @@
#include <com/sun/star/text/XRelativeTextContentRemove.hpp>
#include <com/sun/star/text/XTextAppendAndConvert.hpp>
-#include <tools/debug.hxx>
-
#include <unobaseclass.hxx>
@@ -75,28 +73,24 @@ class SwXText
private:
- SwDoc* pDoc;
- BOOL bObjectValid;
- CursorType eCrsrType;
- const SfxItemPropertySet* m_pPropSet;
-
- virtual ::com::sun::star::uno::Reference<
- ::com::sun::star::text::XTextRange > SAL_CALL
- finishOrAppendParagraph(
- bool bFinish,
- const ::com::sun::star::uno::Sequence<
- ::com::sun::star::beans::PropertyValue >&
- rCharacterAndParagraphProperties)
- throw (::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::uno::RuntimeException);
+ class Impl;
+ ::sw::UnoImplPtr<Impl> m_pImpl;
virtual void PrepareForAttach(
::com::sun::star::uno::Reference<
::com::sun::star::text::XTextRange > & xRange,
SwPaM const & rPam);
+ virtual bool CheckForOwnMemberMeta(
+ const SwPaM & rPam, const bool bAbsorb)
+ throw (::com::sun::star::lang::IllegalArgumentException,
+ ::com::sun::star::uno::RuntimeException);
protected:
+ bool IsValid() const;
+ void Invalidate();
+ void SetDoc(SwDoc *const pDoc);
+
virtual ~SwXText();
public: /*not protected because C++ is retarded*/
@@ -104,41 +98,16 @@ public: /*not protected because C++ is retarded*/
public:
- SwXText(SwDoc* pDc, CursorType eType);
+ SwXText(SwDoc *const pDoc, const enum CursorType eType);
- const SwDoc* GetDoc() const { return pDoc; }
- SwDoc* GetDoc() { return pDoc; }
-
- // SwDoc is set when SwXText is attached
- void SetDoc(SwDoc* pDc) {
- DBG_ASSERT(!pDoc || !pDc, "Doc schon gesetzt?");
- pDoc = pDc;
- bObjectValid = 0 != pDc;
- }
-
- void Invalidate() { bObjectValid = sal_False; }
- BOOL IsValid() const { return bObjectValid; }
-
- CursorType GetTextType() { return eCrsrType; }
+ const SwDoc* GetDoc() const;
+ SwDoc* GetDoc();
virtual ::com::sun::star::uno::Reference<
- ::com::sun::star::text::XTextCursor > createCursor()
+ ::com::sun::star::text::XTextCursor >
+ CreateCursor()
throw (::com::sun::star::uno::RuntimeException);
- INT16 ComparePositions(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::text::XTextRange>& xPos1,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::text::XTextRange>& xPos2)
- throw (::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::uno::RuntimeException);
- BOOL CheckForOwnMember(const SwXTextRange* pRange1,
- const OTextCursorHelper* pCursor1)
- throw (::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::uno::RuntimeException);
- virtual bool CheckForOwnMemberMeta(
- const SwPaM & rPam, const bool bAbsorb)
- throw (::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::uno::RuntimeException);
+
// XInterface
virtual ::com::sun::star::uno::Any SAL_CALL queryInterface(