LibreOffice Module sw (master)  1
PageBreakWin.cxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  */
9 
10 #include <globals.hrc>
11 #include <bitmaps.hlst>
12 
13 #include <cmdid.h>
14 #include <cntfrm.hxx>
15 #include <txtfrm.hxx>
16 #include <notxtfrm.hxx>
17 #include <ndtxt.hxx>
18 #include <DashedLine.hxx>
19 #include <doc.hxx>
20 #include <edtwin.hxx>
21 #include <fmtpdsc.hxx>
22 #include <IDocumentUndoRedo.hxx>
24 #include <PageBreakWin.hxx>
25 #include <pagefrm.hxx>
26 #include <PostItMgr.hxx>
27 #include <FrameControlsManager.hxx>
28 #include <uiitems.hxx>
29 #include <view.hxx>
30 #include <viewopt.hxx>
31 #include <wrtsh.hxx>
32 
45 #include <sfx2/dispatch.hxx>
46 #include <sfx2/viewfrm.hxx>
47 #include <svl/stritem.hxx>
48 #include <svx/svxids.hrc>
49 #include <vcl/canvastools.hxx>
50 #include <vcl/event.hxx>
51 #include <vcl/svapp.hxx>
52 #include <vcl/settings.hxx>
53 #include <memory>
54 
55 #define BUTTON_WIDTH 30
56 #define BUTTON_HEIGHT 19
57 #define ARROW_WIDTH 9
58 
59 using namespace basegfx;
60 using namespace basegfx::utils;
61 
62 namespace
63 {
64  class SwBreakDashedLine : public SwDashedLine
65  {
66  private:
68 
69  public:
70  SwBreakDashedLine( vcl::Window* pParent, Color& ( *pColorFn )(), SwPageBreakWin* pWin ) :
71  SwDashedLine( pParent, pColorFn ),
72  m_pWin( pWin ) {};
73  virtual ~SwBreakDashedLine() override { disposeOnce(); }
74  virtual void dispose() override { m_pWin.clear(); SwDashedLine::dispose(); }
75 
76  virtual void MouseMove( const MouseEvent& rMEvt ) override;
77  };
78 
79  void SwBreakDashedLine::MouseMove( const MouseEvent& rMEvt )
80  {
81  if ( rMEvt.IsLeaveWindow() )
82  {
83  // don't fade if we just move to the 'button'
84  Point aEventPos( GetPosPixel() + rMEvt.GetPosPixel() );
85  if ( !m_pWin->Contains( aEventPos ) || !m_pWin->IsVisible() )
86  m_pWin->Fade( false );
87  }
88  else if ( !m_pWin->IsVisible() )
89  {
90  m_pWin->Fade( true );
91  }
92 
93  if ( !rMEvt.IsSynthetic() && !m_pWin->IsVisible() )
94  {
95  m_pWin->UpdatePosition( rMEvt.GetPosPixel() );
96  }
97  }
98 }
99 
100 SwPageBreakWin::SwPageBreakWin( SwEditWin* pEditWin, const SwFrame *pFrame ) :
101  SwFrameMenuButtonBase( pEditWin, pFrame ),
102  m_aBuilder(nullptr, VclBuilderContainer::getUIRootDir(), "modules/swriter/ui/pagebreakmenu.ui", ""),
103  m_pPopupMenu(m_aBuilder.get_menu("menu")),
104  m_pLine( nullptr ),
105  m_bIsAppearing( false ),
106  m_nFadeRate( 100 ),
107  m_nDelayAppearing( 0 ),
108  m_bDestroyed( false )
109 {
110  // Use pixels for the rest of the drawing
111  SetMapMode( MapMode ( MapUnit::MapPixel ) );
112 
113  // Create the line control
115 
116  // Set the popup menu
117  m_pPopupMenu->SetDeactivateHdl( LINK( this, SwPageBreakWin, HideHandler ) );
119 
120  m_aFadeTimer.SetTimeout( 50 );
121  m_aFadeTimer.SetInvokeHandler( LINK( this, SwPageBreakWin, FadeHandler ) );
122 }
123 
125 {
126  disposeOnce();
127 }
128 
130 {
131  m_bDestroyed = true;
132  m_aFadeTimer.Stop();
133 
137 
139 }
140 
141 void SwPageBreakWin::Paint(vcl::RenderContext& rRenderContext, const ::tools::Rectangle&)
142 {
143  const ::tools::Rectangle aRect(::tools::Rectangle(Point(0, 0), rRenderContext.PixelToLogic(GetSizePixel())));
144 
145  // Properly paint the control
147 
148  BColor aHslLine = rgb2hsl(aColor);
149  double nLuminance = aHslLine.getZ();
150  nLuminance += (1.0 - nLuminance) * 0.75;
151  if ( aHslLine.getZ() > 0.7 )
152  nLuminance = aHslLine.getZ() * 0.7;
153  aHslLine.setZ(nLuminance);
154  BColor aOtherColor = hsl2rgb(aHslLine);
155 
157  if (rSettings.GetHighContrastMode())
158  {
159  aColor = rSettings.GetDialogTextColor().getBColor();
160  aOtherColor = rSettings.GetDialogColor().getBColor();
161  }
162 
163  bool bRtl = AllSettings::GetLayoutRTL();
164 
167  B2DPolygon aPolygon = createPolygonFromRect(aBRect, 3.0 / BUTTON_WIDTH, 3.0 / BUTTON_HEIGHT);
168 
169  // Create the polygon primitives
171  B2DPolyPolygon(aPolygon), aOtherColor));
173  aPolygon, aColor));
174 
175  // Create the primitive for the image
176  BitmapEx aBmpEx(RID_BMP_PAGE_BREAK);
177  double nImgOfstX = 3.0;
178  if (bRtl)
179  nImgOfstX = aRect.Right() - aBmpEx.GetSizePixel().Width() - 3.0;
181  aBmpEx, B2DPoint(nImgOfstX, 1.0)));
182 
183  double nTop = double(aRect.getHeight()) / 2.0;
184  double nBottom = nTop + 4.0;
185  double nLeft = aRect.getWidth() - ARROW_WIDTH - 6.0;
186  if (bRtl)
187  nLeft = ARROW_WIDTH - 2.0;
188  double nRight = nLeft + 8.0;
189 
190  B2DPolygon aTriangle;
191  aTriangle.append(B2DPoint(nLeft, nTop));
192  aTriangle.append(B2DPoint(nRight, nTop));
193  aTriangle.append(B2DPoint((nLeft + nRight) / 2.0, nBottom));
194  aTriangle.setClosed(true);
195 
196  BColor aTriangleColor = COL_BLACK.getBColor();
197  if (Application::GetSettings().GetStyleSettings().GetHighContrastMode())
198  aTriangleColor = COL_WHITE.getBColor();
199 
200  aSeq.emplace_back();
202  B2DPolyPolygon(aTriangle), aTriangleColor));
203 
205  double nFadeRate = double(m_nFadeRate) / 100.0;
206  const basegfx::BColorModifierSharedPtr aBColorModifier(
208  1.0 - nFadeRate));
210  aSeq, aBColorModifier));
211 
212  // Create the processor and process the primitives
213  const drawinglayer::geometry::ViewInformation2D aNewViewInfos;
214  std::unique_ptr<drawinglayer::processor2d::BaseProcessor2D> pProcessor(
216 
217  pProcessor->process(aGhostedSeq);
218 }
219 
221 {
223 
224  OString sIdent = GetCurItemIdent();
225  if (sIdent == "edit")
226  {
227  const SwLayoutFrame* pBodyFrame = static_cast< const SwLayoutFrame* >( GetPageFrame()->Lower() );
228  while ( pBodyFrame && !pBodyFrame->IsBodyFrame() )
229  pBodyFrame = static_cast< const SwLayoutFrame* >( pBodyFrame->GetNext() );
230 
231  SwEditWin* pEditWin = GetEditWin();
232 
233  if ( pBodyFrame )
234  {
235  SwWrtShell& rSh = pEditWin->GetView().GetWrtShell();
236  bool bOldLock = rSh.IsViewLocked();
237  rSh.LockView( true );
238 
239  if ( pBodyFrame->Lower()->IsTabFrame() )
240  {
241  rSh.Push( );
242  rSh.ClearMark();
243 
244  SwContentFrame *pCnt = const_cast< SwContentFrame* >( pBodyFrame->ContainsContent() );
245  SwContentNode* pNd = pCnt->IsTextFrame()
246  ? static_cast<SwTextFrame*>(pCnt)->GetTextNodeFirst()
247  : static_cast<SwNoTextFrame*>(pCnt)->GetNode();
248  rSh.SetSelection( *pNd );
249 
250  SfxStringItem aItem(pEditWin->GetView().GetPool().GetWhich(FN_FORMAT_TABLE_DLG), "textflow");
251  pEditWin->GetView().GetViewFrame()->GetDispatcher()->ExecuteList(
253  SfxCallMode::SYNCHRON | SfxCallMode::RECORD,
254  { &aItem });
255 
257  }
258  else
259  {
260  SwContentFrame *pCnt = const_cast< SwContentFrame* >( pBodyFrame->ContainsContent() );
261  SwContentNode* pNd = pCnt->IsTextFrame()
262  ? static_cast<SwTextFrame*>(pCnt)->GetTextNodeFirst()
263  : static_cast<SwNoTextFrame*>(pCnt)->GetNode();
264 
265  SwPaM aPaM( *pNd );
266  SwPaMItem aPaMItem( pEditWin->GetView().GetPool( ).GetWhich( FN_PARAM_PAM ), &aPaM );
267  SfxStringItem aItem( pEditWin->GetView().GetPool( ).GetWhich( SID_PARA_DLG ), "textflow" );
268  pEditWin->GetView().GetViewFrame()->GetDispatcher()->ExecuteList(
269  SID_PARA_DLG,
270  SfxCallMode::SYNCHRON | SfxCallMode::RECORD,
271  { &aItem, &aPaMItem });
272  }
273  rSh.LockView( bOldLock );
274  pEditWin->GrabFocus( );
275  }
276  }
277  else if (sIdent == "delete")
278  {
279  const SwLayoutFrame* pBodyFrame = static_cast< const SwLayoutFrame* >( GetPageFrame()->Lower() );
280  while ( pBodyFrame && !pBodyFrame->IsBodyFrame() )
281  pBodyFrame = static_cast< const SwLayoutFrame* >( pBodyFrame->GetNext() );
282 
283  if ( pBodyFrame )
284  {
285 
286  SwContentFrame *pCnt = const_cast< SwContentFrame* >( pBodyFrame->ContainsContent() );
287  SwContentNode* pNd = pCnt->IsTextFrame()
288  ? static_cast<SwTextFrame*>(pCnt)->GetTextNodeFirst()
289  : static_cast<SwNoTextFrame*>(pCnt)->GetNode();
290 
292 
293  SfxItemSet aSet(
294  GetEditWin()->GetView().GetWrtShell().GetAttrPool(),
296  aSet.Put( SvxFormatBreakItem( SvxBreak::NONE, RES_BREAK ) );
297  aSet.Put( SwFormatPageDesc( nullptr ) );
298 
299  SwPaM aPaM( *pNd );
301  aPaM, aSet, SetAttrMode::DEFAULT, GetPageFrame()->getRootFrame());
302 
304  }
305  }
306 
307  // Only fade if there is more than this temporary shared pointer:
308  // The main reference has been deleted due to a page break removal
309  if ( pThis.use_count() > 1 )
310  Fade( false );
311 }
312 
314 {
315  if ( rMEvt.IsLeaveWindow() )
316  {
317  // don't fade if we just move to the 'line', or the popup menu is open
318  Point aEventPos( rMEvt.GetPosPixel() + rMEvt.GetPosPixel() );
319  if ( !Contains( aEventPos ) && !PopupMenu::IsInExecute() )
320  Fade( false );
321  }
322  else if ( !IsVisible() )
323  Fade( true );
324 }
325 
327 {
328  Fade( true );
330 }
331 
333 {
334  if ( xEvtPt )
335  {
336  if ( xEvtPt == m_xMousePt )
337  return;
338  m_xMousePt = xEvtPt;
339  }
340 
341  const SwPageFrame* pPageFrame = GetPageFrame();
342  const SwFrame* pPrevPage = pPageFrame;
343  do
344  {
345  pPrevPage = pPrevPage->GetPrev();
346  }
347  while ( pPrevPage && ( ( pPrevPage->getFrameArea().Top( ) == pPageFrame->getFrameArea().Top( ) )
348  || static_cast< const SwPageFrame* >( pPrevPage )->IsEmptyPage( ) ) );
349 
350  ::tools::Rectangle aBoundRect = GetEditWin()->LogicToPixel( pPageFrame->GetBoundRect(GetEditWin()).SVRect() );
351  ::tools::Rectangle aFrameRect = GetEditWin()->LogicToPixel( pPageFrame->getFrameArea().SVRect() );
352 
353  long nYLineOffset = ( aBoundRect.Top() + aFrameRect.Top() ) / 2;
354  if ( pPrevPage )
355  {
356  ::tools::Rectangle aPrevFrameRect = GetEditWin()->LogicToPixel( pPrevPage->getFrameArea().SVRect() );
357  nYLineOffset = ( aPrevFrameRect.Bottom() + aFrameRect.Top() ) / 2;
358  }
359 
360  // Get the page + sidebar coords
361  long nPgLeft = aFrameRect.Left();
362  long nPgRight = aFrameRect.Right();
363 
364  unsigned long nSidebarWidth = 0;
365  const SwPostItMgr* pPostItMngr = GetEditWin()->GetView().GetWrtShell().GetPostItMgr();
366  if ( pPostItMngr && pPostItMngr->HasNotes() && pPostItMngr->ShowNotes() )
367  nSidebarWidth = pPostItMngr->GetSidebarBorderWidth( true ) + pPostItMngr->GetSidebarWidth( true );
368 
370  nPgLeft -= nSidebarWidth;
371  else if ( pPageFrame->SidebarPosition( ) == sw::sidebarwindows::SidebarPosition::RIGHT )
372  nPgRight += nSidebarWidth;
373 
375 
376  // Place the button on the left or right?
377  ::tools::Rectangle aVisArea = GetEditWin()->LogicToPixel( GetEditWin()->GetView().GetVisArea() );
378 
379  long nLineLeft = std::max( nPgLeft, aVisArea.Left() );
380  long nLineRight = std::min( nPgRight, aVisArea.Right() );
381  long nBtnLeft = nLineLeft;
382 
383  if ( m_xMousePt )
384  {
385  nBtnLeft = nLineLeft + m_xMousePt->X() - aBtnSize.getWidth() / 2;
386 
387  if ( nBtnLeft < nLineLeft )
388  nBtnLeft = nLineLeft;
389  else if ( ( nBtnLeft + aBtnSize.getWidth() ) > nLineRight )
390  nBtnLeft = nLineRight - aBtnSize.getWidth();
391  }
392 
393  // Set the button position
394  Point aBtnPos( nBtnLeft, nYLineOffset - BUTTON_HEIGHT / 2 );
395  SetPosSizePixel( aBtnPos, aBtnSize );
396 
397  // Set the line position
398  Point aLinePos( nLineLeft, nYLineOffset - 5 );
399  Size aLineSize( nLineRight - nLineLeft, 10 );
400  m_pLine->SetPosSizePixel( aLinePos, aLineSize );
401 }
402 
403 void SwPageBreakWin::ShowAll( bool bShow )
404 {
405  m_pLine->Show( bShow );
406 }
407 
408 bool SwPageBreakWin::Contains( const Point &rDocPt ) const
409 {
411  if ( aRect.IsInside( rDocPt ) )
412  return true;
413 
415  return aLineRect.IsInside( rDocPt );
416 }
417 
418 void SwPageBreakWin::SetReadonly( bool bReadonly )
419 {
420  ShowAll( !bReadonly );
421 }
422 
423 void SwPageBreakWin::Fade( bool bFadeIn )
424 {
425  m_bIsAppearing = bFadeIn;
426  if ( bFadeIn )
427  m_nDelayAppearing = 0;
428 
429  if ( !m_bDestroyed && m_aFadeTimer.IsActive( ) )
430  m_aFadeTimer.Stop();
431  if ( !m_bDestroyed )
432  m_aFadeTimer.Start( );
433 }
434 
435 IMPL_LINK_NOARG(SwPageBreakWin, HideHandler, Menu *, bool)
436 {
437  Fade( false );
438 
439  return false;
440 }
441 
442 IMPL_LINK_NOARG(SwPageBreakWin, FadeHandler, Timer *, void)
443 {
444  const int TICKS_BEFORE_WE_APPEAR = 10;
445  if ( m_bIsAppearing && m_nDelayAppearing < TICKS_BEFORE_WE_APPEAR )
446  {
447  ++m_nDelayAppearing;
448  m_aFadeTimer.Start();
449  return;
450  }
451 
452  if ( m_bIsAppearing && m_nFadeRate > 0 )
453  m_nFadeRate -= 25;
454  else if ( !m_bIsAppearing && m_nFadeRate < 100 )
455  m_nFadeRate += 25;
456 
457  if ( m_nFadeRate != 100 && !IsVisible() )
458  Show();
459  else if ( m_nFadeRate == 100 && IsVisible( ) )
460  Hide();
461  else
462  {
463  UpdatePosition();
464  Invalidate();
465  }
466 
467  if (IsVisible( ) && m_nFadeRate > 0 && m_nFadeRate < 100)
468  m_aFadeTimer.Start();
469 }
470 
471 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
virtual Point GetPosPixel() const
SfxViewFrame * GetViewFrame() const
long Width() const
Base class of the Writer layout elements.
Definition: frame.hxx:295
Represents the visualization of a paragraph.
Definition: txtfrm.hxx:149
const SfxPoolItem * ExecuteList(sal_uInt16 nSlot, SfxCallMode nCall, std::initializer_list< SfxPoolItem const * > args, std::initializer_list< SfxPoolItem const * > internalargs=std::initializer_list< SfxPoolItem const * >())
#define BUTTON_WIDTH
void append(const basegfx::B2DPoint &rPoint, sal_uInt32 nCount)
BColor rgb2hsl(const BColor &rRGBColor)
const Color & GetDialogColor() const
constexpr::Color COL_BLACK(0x00, 0x00, 0x00)
virtual void dispose() override
SwContentNode * GetNode(SwPaM &rPam, bool &rbFirst, SwMoveFnCollection const &fnMove, bool const bInReadOnly, SwRootFrame const *const i_pLayout)
This function returns the next node in direction of search.
Definition: pam.cxx:754
Pagedescriptor Client of SwPageDesc that is "described" by the attribute.
Definition: fmtpdsc.hxx:35
VclPtr< PopupMenu > m_pPopupMenu
virtual void InsertItemSet(const SwPaM &rRg, const SfxItemSet &, const SetAttrMode nFlags=SetAttrMode::DEFAULT, SwRootFrame const *pLayout=nullptr)=0
const SwView & GetView() const
Definition: edtwin.hxx:242
SfxDispatcher * GetDispatcher()
const StyleSettings & GetStyleSettings() const
static const AllSettings & GetSettings()
bool Pop(SwCursorShell::PopMode=SwCursorShell::PopMode::DeleteStack)
Definition: wrtsh1.cxx:1719
VclPtr< vcl::Window > m_pLine
virtual SwUndoId EndUndo(SwUndoId const eUndoId, SwRewriter const *const pRewriter)=0
Closes undo block.
virtual Size GetSizePixel() const
#define FN_FORMAT_TABLE_DLG
Definition: cmdid.h:305
void SetDeactivateHdl(const Link< Menu *, bool > &rLink)
double getZ() const
sw::sidebarwindows::SidebarPosition SidebarPosition() const
asks the page on which side a margin should be shown, e.g for notes returns true for left side...
Definition: pagechg.cxx:1372
IDocumentUndoRedo & GetIDocumentUndoRedo()
Definition: doc.cxx:176
virtual const SwFrame * GetFrame() override
unsigned long GetSidebarBorderWidth(bool bPx=false) const
Definition: PostItMgr.cxx:2098
Class for displaying a dashed line in the Writer GUI.
Definition: DashedLine.hxx:16
IDocumentContentOperations const & getIDocumentContentOperations() const
Definition: doc.cxx:347
void SetMapMode()
SwWrtShell & GetWrtShell() const
Definition: view.hxx:400
bool IsActive() const
Used by the UI to modify the document model.
Definition: wrtsh.hxx:88
long Right() const
SwFrameControlsManager & GetFrameControlsManager()
Definition: edtwin.cxx:6445
void Top(const long nTop)
Definition: swrect.hxx:202
const SwRect & getFrameArea() const
Definition: frame.hxx:175
std::shared_ptr< BColorModifier > BColorModifierSharedPtr
IMPL_LINK_NOARG(SwPageBreakWin, HideHandler, Menu *, bool)
Class for the page break control window.
void SetReadonly(bool bReadonly) override
int m_nDelayAppearing
Before we show the control, let it transparent for a few timer ticks to avoid appearing with every mo...
bool IsTextFrame() const
Definition: frame.hxx:1210
bool GetHighContrastMode() const
long Top() const
#define BUTTON_HEIGHT
SfxItemPool & GetPool() const
BColor hsl2rgb(const BColor &rHSLColor)
PaM is Point and Mark: a selection of the document model.
Definition: pam.hxx:136
void clear()
virtual bool Contains(const Point &rDocPt) const override
Returns true if the point is inside the control.
virtual SwUndoId StartUndo(SwUndoId const eUndoId, SwRewriter const *const pRewriter)=0
Opens undo block.
virtual void MouseMove(const MouseEvent &rMEvt) override
bool IsLeaveWindow() const
OString const & GetCurItemIdent() const
Window class for the Writer edit area, this is the one handling mouse and keyboard events and doing t...
Definition: edtwin.hxx:58
SwRect GetBoundRect(OutputDevice const *pOutputDevice) const
Definition: paintfrm.cxx:6060
virtual void Activate() override
virtual void dispose() override
void Push()
store a copy of the current cursor on the cursor stack
Definition: crsrsh.cxx:2221
const SwFrame * Lower() const
Definition: layfrm.hxx:100
B2DPolygon createPolygonFromRect(const B2DRectangle &rRect, double fRadiusX, double fRadiusY)
SwDoc * GetDoc()
Definition: node.hxx:702
void SetSelection(const SwPaM &rCursor)
Definition: crsrsh.cxx:3476
long Bottom() const
static bool GetLayoutRTL()
virtual void Start() override
SwFrame * GetPrev()
Definition: frame.hxx:655
bool IsInside(const Point &rPOINT) const
virtual void dispose() override
Class sharing some MenuButton code.
void SetTimeout(sal_uInt64 nTimeoutMs)
void GrabFocus()
A page of the document layout.
Definition: pagefrm.hxx:40
virtual void Paint(vcl::RenderContext &, const tools::Rectangle &rRect) override
static bool IsInExecute()
static Color & GetPageBreakColor()
Definition: viewopt.cxx:443
virtual void SetPosSizePixel(const Point &rNewPos, const Size &rNewSize)
basegfx::B2DRange b2DRectangleFromRectangle(const ::tools::Rectangle &rRect)
Point PixelToLogic(const Point &rDevicePt) const
Point LogicToPixel(const Point &rLogicPt) const
std::unique_ptr< drawinglayer::processor2d::BaseProcessor2D > createBaseProcessor2DFromOutputDevice(OutputDevice &rTargetOutDev, const drawinglayer::geometry::ViewInformation2D &rViewInformation2D)
virtual void Select() override
void setClosed(bool bNew)
void disposeBuilder()
tools::Rectangle SVRect() const
Definition: swrect.hxx:282
void Stop()
bool IsTabFrame() const
Definition: frame.hxx:1194
const SwPageFrame * GetPageFrame() const
sal_uInt16 GetWhich(sal_uInt16 nSlot, bool bDeep=true) const
bool IsSynthetic() const
void LockView(bool b)
Definition: viewsh.hxx:465
bool IsVisible() const
void SetPopupMenu(PopupMenu *pNewMenu)
static VclPtr< reference_type > Create(Arg &&...arg)
#define FN_PARAM_PAM
Definition: cmdid.h:801
SwFrameControlPtr GetControl(FrameControlType eType, const SwFrame *pFrame)
void SetInvokeHandler(const Link< Timer *, void > &rLink)
bool HasNotes() const
Definition: PostItMgr.cxx:2067
const Point & GetPosPixel() const
virtual void ShowAll(bool bShow) override
constexpr::Color COL_WHITE(0xFF, 0xFF, 0xFF)
long Left() const
void ClearMark()
Definition: crsrsh.cxx:926
basegfx::BColor getBColor() const
const SwPostItMgr * GetPostItMgr() const
Definition: viewsh.hxx:559
unsigned long GetSidebarWidth(bool bPx=false) const
Definition: PostItMgr.cxx:2072
void Fade(bool bFadeIn)
virtual ~SwPageBreakWin() override
bool ShowNotes() const
Definition: PostItMgr.cxx:2061
std::shared_ptr< SwFrameControl > SwFrameControlPtr
const Size & GetSizePixel() const
const Color & GetDialogTextColor() const
#define RES_BREAK
Definition: hintids.hxx:201
SwPageBreakWin(SwEditWin *pEditWin, const SwFrame *pFrame)
VclBuilder m_aBuilder
virtual SwEditWin * GetEditWin() override
const SwContentFrame * ContainsContent() const
Checks if the frame contains one or more ContentFrame's anywhere in his subsidiary structure; if so t...
Definition: findfrm.cxx:66
bool IsBodyFrame() const
Definition: frame.hxx:1182
long getWidth() const
#define ARROW_WIDTH
void setZ(double fZ)
boost::optional< Point > m_xMousePt
bool IsViewLocked() const
Definition: viewsh.hxx:464
virtual void Activate() override
void UpdatePosition(const boost::optional< Point > &xEvtPt=boost::optional< Point >())
void Show(bool bVisible=true, ShowFlags nFlags=ShowFlags::NONE)
SwFrame * GetNext()
Definition: frame.hxx:654