summaryrefslogtreecommitdiff
path: root/sw/inc/AnnotationWin.hxx
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2017-04-10 14:12:30 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2017-04-11 10:20:58 +0200
commitbf6449230ad2b4dfb427a062663e5ff2b9ddf3b6 (patch)
tree75c9947c10b4685cb9caaaaf1b59ca3f679bcd4e /sw/inc/AnnotationWin.hxx
parent9fa75f677a7b48a2177fe11cca0d00f5a2deb7da (diff)
loplugin:mergeclasses merge SwAnnotationWin and SwSidebarWin
Change-Id: Idaf7d7e8e4da37e0ba423dca3e22dc6711ba806a Reviewed-on: https://gerrit.libreoffice.org/36380 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'sw/inc/AnnotationWin.hxx')
-rw-r--r--sw/inc/AnnotationWin.hxx221
1 files changed, 204 insertions, 17 deletions
diff --git a/sw/inc/AnnotationWin.hxx b/sw/inc/AnnotationWin.hxx
index 04122ce9f70b..256441bc9dfb 100644
--- a/sw/inc/AnnotationWin.hxx
+++ b/sw/inc/AnnotationWin.hxx
@@ -20,15 +20,44 @@
#ifndef INCLUDED_SW_INC_ANNOTATIONWIN_HXX
#define INCLUDED_SW_INC_ANNOTATIONWIN_HXX
+#include <basegfx/polygon/b2dpolygon.hxx>
+#include <basegfx/range/b2drange.hxx>
+#include <editeng/editstat.hxx>
+#include <tools/date.hxx>
+#include <vcl/lineinfo.hxx>
+#include <vcl/window.hxx>
+
#include <docufld.hxx>
-#include <SidebarWin.hxx>
+#include <postithelper.hxx>
+#include <swrect.hxx>
+#include <SidebarWindowsTypes.hxx>
class PopupMenu;
class OutlinerParaObject;
+class SwPostItMgr;
+class SwPostItField;
+class OutlinerView;
+class Outliner;
+class ScrollBar;
+class SwEditWin;
+class SwView;
+class Edit;
+class MenuButton;
+class SwFrame;
+
+namespace sw { namespace overlay {
+ class OverlayRanges;
+}}
+
+namespace sw { namespace sidebarwindows {
+ class SidebarTextControl;
+ class AnchorOverlayObject;
+ class ShadowOverlayObject;
+}}
namespace sw { namespace annotation {
-class SwAnnotationWin : public sw::sidebarwindows::SwSidebarWin
+class SwAnnotationWin : public vcl::Window
{
public:
SwAnnotationWin( SwEditWin& rEditWin,
@@ -39,36 +68,194 @@ class SwAnnotationWin : public sw::sidebarwindows::SwSidebarWin
virtual ~SwAnnotationWin() override;
virtual void dispose() override;
- virtual void UpdateData() override;
- virtual void SetPostItText() override;
- virtual void Delete() override;
- virtual void GotoPos() override;
+ void UpdateData();
+ void SetPostItText();
+ void Delete();
+ void GotoPos();
const SwPostItField* GetPostItField() { return mpField; }
void UpdateText(const OUString& aText);
- virtual OUString GetAuthor() override;
- virtual Date GetDate() override;
- virtual tools::Time GetTime() override;
+ OUString GetAuthor();
+ Date GetDate();
+ tools::Time GetTime();
- virtual sal_uInt32 MoveCaret() override;
+ sal_uInt32 MoveCaret();
/// Calculate parent postit id of current annotation window
- virtual sal_uInt32 CalcParent() override;
- void InitAnswer(OutlinerParaObject* pText);
+ sal_uInt32 CalcParent();
+ void InitAnswer(OutlinerParaObject* pText);
+
+ bool IsProtected();
+
+ void SetSize( const Size& rNewSize );
+ void SetPosSizePixelRect( long nX,
+ long nY,
+ long nWidth,
+ long nHeight,
+ const SwRect& aAnchorRect,
+ const long PageBorder);
+ void SetPosAndSize();
+ void TranslateTopPosition(const long aAmount);
+ void CheckMetaText();
+
+ Point GetAnchorPos() { return mAnchorRect.Pos(); }
+ const SwRect& GetAnchorRect() { return mAnchorRect; }
+ bool IsAnchorRectChanged() { return mbAnchorRectChanged; }
+ void ResetAnchorRectChanged() { mbAnchorRectChanged = false; }
+ const std::vector<basegfx::B2DRange>& GetAnnotationTextRanges() { return maAnnotationTextRanges; }
+ SwEditWin& EditWin();
+ SwSidebarItem& GetSidebarItem() { return mrSidebarItem; }
+
+ OutlinerView* GetOutlinerView() { return mpOutlinerView;}
+ bool HasScrollbar() const;
+ bool IsScrollbarVisible() const;
+ ScrollBar* Scrollbar() { return mpVScrollbar; }
+ ::sw::sidebarwindows::AnchorOverlayObject* Anchor() { return mpAnchor;}
+ ::sw::sidebarwindows::ShadowOverlayObject* Shadow() { return mpShadow;}
+ ::sw::overlay::OverlayRanges* TextRange() { return mpTextRangeOverlay;}
+
+ long GetPostItTextHeight();
+
+ void SwitchToPostIt(sal_uInt16 aDirection);
+ void SwitchToFieldPos();
+
+ void ExecuteCommand(sal_uInt16 nSlot);
+ void InitControls();
+ void DoResize();
+ void ResizeIfNecessary(long aOldHeight, long aNewHeight);
+ void SetScrollbar();
+
+ void SetVirtualPosSize( const Point& aPoint, const Size& aSize);
+ const Point VirtualPos() { return mPosSize.TopLeft(); }
+ const Size VirtualSize() { return mPosSize.GetSize(); }
+
+ void ShowAnchorOnly(const Point &aPoint);
+ void ShowNote();
+ void HideNote();
+ void InvalidateControl();
+
+ void ResetAttributes();
+
+ void SetSidebarPosition(sw::sidebarwindows::SidebarPosition eSidebarPosition);
+ void SetReadonly(bool bSet);
+ bool IsReadOnly()
+ {
+ return mbReadonly;
+ }
+
+ void SetColor(Color aColorDark,Color aColorLight, Color aColorAnchor);
+ const Color& ColorAnchor() { return mColorAnchor; }
+ const Color& ColorDark() { return mColorDark; }
+ const Color& ColorLight() { return mColorLight; }
+ void Rescale();
+
+ void SetViewState(::sw::sidebarwindows::ViewState bViewState);
+
+ bool IsFollow() { return mbIsFollow; }
+ void SetFollow( bool bIsFollow) { mbIsFollow = bIsFollow; };
+
+ sal_Int32 GetMetaHeight();
+ sal_Int32 GetMinimumSizeWithMeta();
+ sal_Int32 GetMinimumSizeWithoutMeta();
+ sal_Int32 GetMetaButtonAreaWidth();
+ sal_Int32 GetScrollbarWidth();
+
+ void SetSpellChecking();
+
+ void ToggleInsMode();
+
+ void ActivatePostIt();
+ void DeactivatePostIt();
- virtual bool IsProtected() override;
+ void SetChangeTracking( const SwPostItHelper::SwLayoutStatus aStatus,
+ const Color& aColor);
+ SwPostItHelper::SwLayoutStatus GetLayoutStatus() { return mLayoutStatus; }
+ const Color& GetChangeColor() { return mChangeColor; }
- protected:
- virtual VclPtr<MenuButton> CreateMenuButton() override;
+ DECL_LINK( WindowEventListener, VclWindowEvent&, void );
+ bool IsMouseOverSidebarWin() const { return mbMouseOver; }
+
+ void SetLanguage(const SvxLanguageItem& rNewItem);
+
+ void ChangeSidebarItem( SwSidebarItem& rSidebarItem );
+ virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessible() override;
+
+ virtual void Draw(OutputDevice* pDev, const Point&, const Size&, DrawFlags) override;
+ virtual void KeyInput(const KeyEvent& rKeyEvt) override;
+ virtual void MouseButtonDown(const MouseEvent& rMouseEvent) override;
+ virtual void MouseButtonUp(const MouseEvent& rMouseEvent) override;
+ virtual void MouseMove(const MouseEvent& rMouseEvent) override;
+ void PaintTile(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect);
+ /// Is there a matching sub-widget inside this sidebar widget for rPointLogic?
+ bool IsHitWindow(const Point& rPointLogic);
+ /// Allows adjusting the point or mark of the selection to a document coordinate.
+ void SetCursorLogicPosition(const Point& rPosition, bool bPoint, bool bClearMark);
private:
- virtual SvxLanguageItem GetLanguage() override;
+ VclPtr<MenuButton> CreateMenuButton();
+ virtual void LoseFocus() override;
+ virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) override;
+ virtual void GetFocus() override;
+
+ void SetSizePixel( const Size& rNewSize ) override;
+ SfxItemSet DefaultItem();
+
+ DECL_LINK(ModifyHdl, LinkParamNone*, void);
+ DECL_LINK(ScrollHdl, ScrollBar*, void);
+ DECL_LINK(DeleteHdl, void*, void);
+
+ SwView& DocView() { return mrView;}
+ SwPostItMgr& Mgr() { return mrMgr; }
+ Outliner* Engine() { return mpOutliner;}
+
sal_uInt32 CountFollowing();
+ SwAnnotationWin* GetTopReplyNote();
+ SvxLanguageItem GetLanguage();
+
+ SwPostItMgr& mrMgr;
+ SwView& mrView;
+
+ ImplSVEvent * mnEventId;
+
+ OutlinerView* mpOutlinerView;
+ Outliner* mpOutliner;
+
+ VclPtr<sw::sidebarwindows::SidebarTextControl> mpSidebarTextControl;
+ VclPtr<ScrollBar> mpVScrollbar;
+ VclPtr<Edit> mpMetadataAuthor;
+ VclPtr<Edit> mpMetadataDate;
+ VclPtr<MenuButton> mpMenuButton;
+
+ sw::sidebarwindows::AnchorOverlayObject* mpAnchor;
+ sw::sidebarwindows::ShadowOverlayObject* mpShadow;
+ sw::overlay::OverlayRanges* mpTextRangeOverlay;
+
+ Color mColorAnchor;
+ Color mColorDark;
+ Color mColorLight;
+ Color mChangeColor;
+
+ sw::sidebarwindows::SidebarPosition meSidebarPosition;
+
+ tools::Rectangle mPosSize;
+ SwRect mAnchorRect;
+ long mPageBorder;
+ bool mbAnchorRectChanged;
+
+ std::vector<basegfx::B2DRange> maAnnotationTextRanges;
+
+ bool mbMouseOver;
+ SwPostItHelper::SwLayoutStatus mLayoutStatus;
+
+ bool mbReadonly;
+ bool mbIsFollow;
+
+ SwSidebarItem& mrSidebarItem;
+ const SwFrame* mpAnchorFrame;
SwFormatField* mpFormatField;
SwPostItField* mpField;
VclPtr<PopupMenu> mpButtonPopup;
-
};
} } // end of namespace sw::annotation