diff options
author | Oliver-Rainer Wittmann <orw@apache.org> | 2013-12-19 18:50:58 +0000 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2014-01-08 15:58:35 +0100 |
commit | 0761f81643a6890457e9ef7d913ab5c88c2593a4 (patch) | |
tree | 91bf122795dfac3f9263942ab3c5dee2b4ecea26 /sw/inc/postithelper.hxx | |
parent | These implementations could inherit from XInitialization too. (diff) | |
download | core-0761f81643a6890457e9ef7d913ab5c88c2593a4.tar.gz core-0761f81643a6890457e9ef7d913ab5c88c2593a4.zip |
123792: complete annotations on text ranges feature
- rely annotations on text ranges on new annotation marks
- support arbitrary text ranges for annotations
- fix undo/redo regarding annotations an text ranges
- support annotations on overlapping text ranges
- fix *.docx import for annotations on overlapping text ranges
- fix ODF import of annotations on text ranges
cherry-picked from branch ooxml-osba
(cherry picked from commit ebd2922ebd3cf2d3899fb80780d38f367197aadf)
Conflicts:
sw/Library_sw.mk
sw/inc/IDocumentMarkAccess.hxx
sw/inc/SidebarWin.hxx
sw/inc/doc.hxx
sw/inc/docufld.hxx
sw/inc/hintids.hxx
sw/inc/ndhints.hxx
sw/inc/txatbase.hxx
sw/inc/unobookmark.hxx
sw/inc/unofield.hxx
sw/inc/unoport.hxx
sw/source/core/access/accpara.cxx
sw/source/core/bastyp/init.cxx
sw/source/core/crsr/bookmrk.cxx
sw/source/core/crsr/findtxt.cxx
sw/source/core/doc/dbgoutsw.cxx
sw/source/core/doc/docbm.cxx
sw/source/core/doc/doccorr.cxx
sw/source/core/doc/docdde.cxx
sw/source/core/doc/docedt.cxx
sw/source/core/doc/docfld.cxx
sw/source/core/doc/doclay.cxx
sw/source/core/doc/tblrwcl.cxx
sw/source/core/docnode/ndcopy.cxx
sw/source/core/docnode/nodes.cxx
sw/source/core/docnode/section.cxx
sw/source/core/edit/edfld.cxx
sw/source/core/fields/docufld.cxx
sw/source/core/fields/postithelper.cxx
sw/source/core/fields/reffld.cxx
sw/source/core/inc/MarkManager.hxx
sw/source/core/inc/crossrefbookmark.hxx
sw/source/core/text/inftxt.cxx
sw/source/core/text/itratr.cxx
sw/source/core/text/txtfrm.cxx
sw/source/core/txtnode/atrfld.cxx
sw/source/core/txtnode/ndtxt.cxx
sw/source/core/txtnode/thints.cxx
sw/source/core/undo/undel.cxx
sw/source/core/undo/undobj.cxx
sw/source/core/unocore/unofield.cxx
sw/source/core/unocore/unoport.cxx
sw/source/core/unocore/unoportenum.cxx
sw/source/filter/html/htmlatr.cxx
sw/source/filter/html/htmlgrin.cxx
sw/source/filter/html/wrthtml.cxx
sw/source/filter/writer/writer.cxx
sw/source/filter/ww1/fltshell.cxx
sw/source/filter/ww8/wrtw8nds.cxx
sw/source/filter/ww8/ww8par.cxx
sw/source/ui/dialog/uiregionsw.cxx
sw/source/ui/dochdl/swdtflvr.cxx
sw/source/ui/docvw/PostItMgr.cxx
sw/source/ui/docvw/SidebarWin.cxx
sw/source/ui/fldui/fldmgr.cxx
sw/source/ui/fldui/fldref.cxx
sw/source/ui/inc/fldmgr.hxx
sw/source/ui/inc/wrtsh.hxx
sw/source/ui/shells/textfld.cxx
sw/source/ui/uiview/view2.cxx
sw/source/ui/utlui/navipi.cxx
sw/source/ui/wrtsh/wrtsh2.cxx
writerfilter/source/dmapper/DomainMapper_Impl.cxx
writerfilter/source/dmapper/DomainMapper_Impl.hxx
writerfilter/source/dmapper/PropertyMap.cxx
xmloff/inc/txtfldi.hxx
xmloff/source/text/txtfldi.cxx
xmloff/source/text/txtparae.cxx
Change-Id: Ie4cc467dbb837054c73742262ee20f35c151ff3f
Diffstat (limited to 'sw/inc/postithelper.hxx')
-rw-r--r-- | sw/inc/postithelper.hxx | 73 |
1 files changed, 52 insertions, 21 deletions
diff --git a/sw/inc/postithelper.hxx b/sw/inc/postithelper.hxx index 883fab8b7208..cfd3fb0472d9 100644 --- a/sw/inc/postithelper.hxx +++ b/sw/inc/postithelper.hxx @@ -43,15 +43,24 @@ struct SwLayoutInfo { const SwFrm* mpAnchorFrm; SwRect mPosition; + + // optional start of the annotation + sal_uLong mnStartNodeIdx; + sal_Int32 mnStartContent; + SwRect mPageFrame; SwRect mPagePrtArea; unsigned long mnPageNumber; + sw::sidebarwindows::SidebarPosition meSidebarPosition; + sal_uInt16 mRedlineAuthor; SwLayoutInfo() : mpAnchorFrm(0) , mPosition() + , mnStartNodeIdx( 0 ) + , mnStartContent( -1 ) , mPageFrame() , mPagePrtArea() , mnPageNumber(1) @@ -67,7 +76,11 @@ namespace SwPostItHelper INVISIBLE, VISIBLE, INSERTED, DELETED, NONE, HIDDEN }; - SwLayoutStatus getLayoutInfos( std::vector< SwLayoutInfo >&, SwPosition& ); + SwLayoutStatus getLayoutInfos( + SwLayoutInfo& o_rInfo, + const SwPosition& rAnchorPos, + const SwPosition* pAnnotationStartPos = NULL ); + long getLayoutHeight( const SwRootFrm* pRoot ); void setSidebarChanged( SwRootFrm* pRoot, bool bBrowseMode ); unsigned long getPageInfo( SwRect& rPageFrm, const SwRootFrm* , const Point& ); @@ -90,12 +103,17 @@ public: , bFocus(aFocus) , mLayoutStatus( SwPostItHelper::INVISIBLE ) , maLayoutInfo() - {} - virtual ~SwSidebarItem(){} + { + } + + virtual ~SwSidebarItem() + { + } + virtual SwPosition GetAnchorPosition() const = 0; virtual bool UseElement() = 0; - virtual SwFmtFld* GetFmtFld() const = 0; - virtual SfxBroadcaster* GetBroadCaster() const = 0; + virtual const SwFmtFld& GetFmtFld() const = 0; + virtual const SfxBroadcaster* GetBroadCaster() const = 0; virtual sw::sidebarwindows::SwSidebarWin* GetSidebarWindow( SwEditWin& rEditWin, WinBits nBits, SwPostItMgr& aMgr, @@ -104,25 +122,38 @@ public: class SwAnnotationItem: public SwSidebarItem { - private: - SwFmtFld* pFmtFld; - - public: - SwAnnotationItem( SwFmtFld* p, - const bool aShow, - const bool aFocus) +public: + SwAnnotationItem( + SwFmtFld& rFmtFld, + const bool aShow, + const bool aFocus) : SwSidebarItem( aShow, aFocus ) - , pFmtFld(p) - {} - virtual ~SwAnnotationItem() {} + , mrFmtFld( rFmtFld ) + { + } + + virtual ~SwAnnotationItem() + { + } + virtual SwPosition GetAnchorPosition() const; virtual bool UseElement(); - virtual SwFmtFld* GetFmtFld() const {return pFmtFld;} - virtual SfxBroadcaster* GetBroadCaster() const { return dynamic_cast<SfxBroadcaster *> (pFmtFld); } - virtual sw::sidebarwindows::SwSidebarWin* GetSidebarWindow( SwEditWin& rEditWin, - WinBits nBits, - SwPostItMgr& aMgr, - SwPostItBits aBits); + virtual const SwFmtFld& GetFmtFld() const + { + return mrFmtFld; + } + virtual const SfxBroadcaster* GetBroadCaster() const + { + return dynamic_cast<const SfxBroadcaster *> (&mrFmtFld); + } + virtual sw::sidebarwindows::SwSidebarWin* GetSidebarWindow( + SwEditWin& rEditWin, + WinBits nBits, + SwPostItMgr& aMgr, + SwPostItBits aBits ); + +private: + SwFmtFld& mrFmtFld; }; #endif // INCLUDED_SW_INC_POSTITHELPER_HXX |