summaryrefslogtreecommitdiff
path: root/sw/inc/postithelper.hxx
diff options
context:
space:
mode:
authorOliver-Rainer Wittmann <orw@apache.org>2013-12-19 18:50:58 +0000
committerMiklos Vajna <vmiklos@collabora.co.uk>2014-01-08 15:58:35 +0100
commit0761f81643a6890457e9ef7d913ab5c88c2593a4 (patch)
tree91bf122795dfac3f9263942ab3c5dee2b4ecea26 /sw/inc/postithelper.hxx
parentdf002e39f7518036ae1c1d2afec7a525ef902327 (diff)
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.hxx73
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