diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-04-10 14:12:30 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-04-11 10:20:58 +0200 |
commit | bf6449230ad2b4dfb427a062663e5ff2b9ddf3b6 (patch) | |
tree | 75c9947c10b4685cb9caaaaf1b59ca3f679bcd4e /sw/inc/AnnotationWin.hxx | |
parent | 9fa75f677a7b48a2177fe11cca0d00f5a2deb7da (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.hxx | 221 |
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 |