LibreOffice Module sw (master) 1
frame.hxx
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 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#ifndef INCLUDED_SW_SOURCE_CORE_INC_FRAME_HXX
21#define INCLUDED_SW_SOURCE_CORE_INC_FRAME_HXX
22
25#include <svl/poolitem.hxx>
26#include <swtypes.hxx>
27#include <swrect.hxx>
28#include <calbck.hxx>
31#include <com/sun/star/style/TabStop.hpp>
33#include <vcl/outdev.hxx>
34
35#include <memory>
36#include <optional>
37
38namespace drawinglayer::processor2d { class BaseProcessor2D; }
39
40class SwLayoutFrame;
41class SwRootFrame;
42class SwPageFrame;
43class SwBodyFrame;
44class SwFlyFrame;
45class SwSectionFrame;
46class SwFootnoteFrame;
48class SwTabFrame;
49class SwRowFrame;
50class SwContentFrame;
51class SwAttrSet;
52class Color;
53class SwBorderAttrs;
54class SwCache;
55class SvxBrushItem;
58class SwSelectionList;
59struct SwPosition;
61class SwFormat;
62class SwPrintData;
63class SwSortedObjs;
65enum class SvxFrameDirection;
67class SwTextFrame;
68
69// Each FrameType is represented here as a bit.
70// The bits must be set in a way that it can be determined with masking of
71// which kind of FrameType an instance is _and_ from what classes it was derived.
72// Each frame has in its base class a member that must be set by the
73// constructors accordingly.
74enum class SwFrameType
75{
76 None = 0x0000,
77 Root = 0x0001,
78 Page = 0x0002,
79 Column = 0x0004,
80 Header = 0x0008,
81 Footer = 0x0010,
82 FtnCont = 0x0020,
83 Ftn = 0x0040,
84 Body = 0x0080,
85 Fly = 0x0100,
86 Section = 0x0200,
87// UNUSED 0x0400
88 Tab = 0x0800,
89 Row = 0x1000,
90 Cell = 0x2000,
91 Txt = 0x4000,
92 NoTxt = 0x8000,
93};
94
95namespace o3tl
96{
97 template<> struct typed_flags<SwFrameType> : is_typed_flags<SwFrameType, 0xfbff> {};
98};
99
100// for internal use some common combinations
101#define FRM_LAYOUT SwFrameType(0x3bFF)
102#define FRM_ALL SwFrameType(0xfbff)
103#define FRM_CNTNT (SwFrameType::Txt | SwFrameType::NoTxt)
104#define FRM_FTNBOSS (SwFrameType::Page | SwFrameType::Column)
105#define FRM_ACCESSIBLE (SwFrameType::Root | SwFrameType::Page | SwFrameType::Header | SwFrameType::Footer | SwFrameType::Ftn | SwFrameType::Fly | SwFrameType::Tab | SwFrameType::Cell | SwFrameType::Txt)
106#define FRM_NEIGHBOUR (SwFrameType::Column | SwFrameType::Cell)
107#define FRM_NOTE_VERT (SwFrameType::FtnCont | SwFrameType::Ftn | SwFrameType::Section | SwFrameType::Tab | SwFrameType::Row | SwFrameType::Cell | SwFrameType::Txt)
108#define FRM_HEADFOOT (SwFrameType::Header | SwFrameType::Footer)
109#define FRM_BODYFTNC (SwFrameType::FtnCont | SwFrameType::Body)
110
111// for GetNextLeaf/GetPrevLeaf.
113{
114 MAKEPAGE_NONE, // do not create page/footnote
115 MAKEPAGE_APPEND, // only append page if needed
116 MAKEPAGE_INSERT, // add or append page if needed
117 MAKEPAGE_FTN, // add footnote if needed
118 MAKEPAGE_NOSECTION // Don't create section frames
120
121namespace drawinglayer::attribute {
122 class SdrAllFillAttributesHelper;
123 typedef std::shared_ptr< SdrAllFillAttributesHelper > SdrAllFillAttributesHelperPtr;
124}
125
132class SAL_DLLPUBLIC_RTTI SwFrameAreaDefinition
133{
134private:
136
137 // The absolute position and size of the SwFrame in the document.
138 // This values are set by the layouter implementations
140
141 // The 'inner' Frame Area defined by a SwRect relative to FrameArea:
142 // When identical to FrameArea, Pos() will be (0, 0) and Size identical.
144
145 // bitfield
149
150 // #i65250#
151 // frame ID is now in general available - used for layout loop control
152 static sal_uInt32 snLastFrameId;
153 const sal_uInt32 mnFrameId;
154
155protected:
156 // write access to mb*Valid flags
157 void setFrameAreaPositionValid(bool bNew);
158 void setFrameAreaSizeValid(bool bNew);
159 void setFramePrintAreaValid(bool bNew);
160
161public:
163 virtual ~SwFrameAreaDefinition();
164
165 // read access to mb*Valid flags
166 bool isFrameAreaPositionValid() const { return mbFrameAreaPositionValid; }
167 bool isFrameAreaSizeValid() const { return mbFrameAreaSizeValid; }
168 bool isFramePrintAreaValid() const { return mbFramePrintAreaValid; }
169
170 // syntactic sugar: test whole FrameAreaDefinition
171 bool isFrameAreaDefinitionValid() const { return isFrameAreaPositionValid() && isFrameAreaSizeValid() && isFramePrintAreaValid(); }
172
173 // #i65250#
174 sal_uInt32 GetFrameId() const { return mnFrameId; }
175
176 // read accesses to FrameArea definitions - only const access allowed.
177 // Do *not* const_cast results, it is necessary to track changes. use
178 // the below offered WriteAccess helper classes instead
179 const SwRect& getFrameArea() const { return maFrameArea; }
180 const SwRect& getFramePrintArea() const { return maFramePrintArea; }
181
182 // helper class(es) for FrameArea manipulation. These
183 // have to be used to apply changes to FrameAreas. They hold a copy of the
184 // SwRect for manipulation. It gets written back at destruction. Thus, this
185 // mechanism depends on scope usage, take care. It prevents errors using
186 // different instances of SwFrame in get/set methods which is more safe
188 {
189 private:
191
194
195 public:
196 FrameAreaWriteAccess(SwFrameAreaDefinition& rTarget) : SwRect(rTarget.getFrameArea()), mrTarget(rTarget) {}
198 void setSwRect(const SwRect& rNew) { *static_cast< SwRect* >(this) = rNew; }
199 };
200
201 // same helper for FramePrintArea
203 {
204 private:
206
209
210 public:
211 FramePrintAreaWriteAccess(SwFrameAreaDefinition& rTarget) : SwRect(rTarget.getFramePrintArea()), mrTarget(rTarget) {}
213 void setSwRect(const SwRect& rNew) { *static_cast< SwRect* >(this) = rNew; }
214 };
215
216 // RotateFlyFrame3 - Support for Transformations
217 // Hand out the Transformations for the current FrameAreaDefinition
218 // for the FrameArea and FramePrintArea.
219 // FramePrintArea is not relative to FrameArea in this
220 // transformation representation (to make it easier to use and understand).
221 // There is no 'set' method since SwFrame is a layout object. For
222 // some cases rotation will be included (used for SwGrfNode in inner
223 // SwFrame of a SwFlyFrame)
224 virtual basegfx::B2DHomMatrix getFrameAreaTransformation() const;
225 virtual basegfx::B2DHomMatrix getFramePrintAreaTransformation() const;
226
227 // RotateFlyFrame3 - Support for Transformations
228 // Modify current transformations by applying given translation
229 virtual void transform_translate(const Point& rOffset);
230};
231
236{
237private:
238 // The SwFrameAreaDefinition to work on
240
241 // FrameAreaTransformation and FramePrintAreaTransformation
242 // !identity when needed (translate/scale is used (e.g. rotation))
245
246public:
248 : mrSwFrameAreaDefinition(rSwFrameAreaDefinition),
251 {
252 }
253
254 // get SwFrameArea in transformation form
256 {
258 }
259
260 // get SwFramePrintArea in transformation form
262 {
264 }
265
266 // Helpers to re-create the untransformed SwRect(s) originally
267 // in the SwFrameAreaDefinition, based on the current Transformations.
270
271 // Helper method to re-create FrameAreaTransformations based on the
272 // current FrameAreaDefinition transformed by given rotation and Center
274 double fRotation,
275 const basegfx::B2DPoint& rCenter);
276
277 // Tooling method to reset the SwRect(s) in the current
278 // SwFrameAreaDefinition which are already adapted to
279 // Transformation back to the untransformed state, using
280 // the getUntransformedFrame*Area calls above when needed.
281 // Only the SwRect(s) are changed back, not the transformations.
282 void restoreFrameAreas();
283
284 // Re-Creates the SwRect(s) as BoundAreas based on the current
285 // set Transformations.
287
288 // Modify current definitions by applying the given transformation
289 void transform(const basegfx::B2DHomMatrix& aTransform);
290};
291
293{
294 NONE = 0x00,
295 InvalidatePrt = 0x01,
296 InvalidateSize = 0x02,
297 InvalidatePos = 0x04,
298 SetCompletePaint = 0x08,
299 NextInvalidatePos = 0x10,
301};
302
303namespace o3tl {
304 template<> struct typed_flags<SwFrameInvFlags> : is_typed_flags<SwFrameInvFlags, 0x003f> {};
305}
306
315{
316 // the hidden Frame
317 friend class SwFlowFrame;
318 friend class SwLayoutFrame;
319 friend class SwLooping;
320 friend class SwDeletionChecker; // for GetDep()
321
322 // voids lower during creation of a column
323 friend SwFrame *SaveContent( SwLayoutFrame *, SwFrame* pStart );
324 friend void RestoreContent( SwFrame *, SwLayoutFrame *, SwFrame *pSibling );
325
326 // for validating a mistakenly invalidated one in SwContentFrame::MakeAll
327 friend void ValidateSz( SwFrame *pFrame );
328 // implemented in text/txtftn.cxx, prevents Footnote oscillation
329 friend void ValidateText( SwFrame *pFrame );
330
331 friend void MakeNxt( SwFrame *pFrame, SwFrame *pNxt );
332
333 // cache for (border) attributes
335
340
341 // sw_redlinehide: hide these dangerous SwClient functions
344
345 SwFrame *FindNext_();
346 SwFrame *FindPrev_();
347
375 SwContentFrame* FindNextCnt_( const bool _bInSameFootnote );
376
402 SwContentFrame* FindPrevCnt_();
403
404 void UpdateAttrFrame( const SfxPoolItem*, const SfxPoolItem*, SwFrameInvFlags & );
405 SwFrame* GetIndNext_();
406 void SetDirFlags( bool bVert );
407
408 const SwLayoutFrame* ImplGetNextLayoutLeaf( bool bFwd ) const;
409
410 SwPageFrame* ImplFindPageFrame();
411
412protected:
413 std::unique_ptr<SwSortedObjs> m_pDrawObjs; // draw objects, can be null
415
416 bool mbInDtor : 1;
417 bool mbInvalidR2L : 1;
418 bool mbDerivedR2L : 1;
422 bool mbVertical : 1;
423
424 bool mbVertLR : 1;
425 bool mbVertLRBT : 1;
426
428 bool mbFixSize : 1;
429
430 // if true, frame will be painted completely even content was changed
431 // only partially. For ContentFrames a border (from Action) will exclusively
432 // painted if <mbCompletePaint> is true.
434
435 bool mbRetouche : 1; // frame is responsible for retouching
436
437 bool mbInfInvalid : 1; // InfoFlags are invalid
438 bool mbInfBody : 1; // Frame is in document body
439 bool mbInfTab : 1; // Frame is in a table
440 bool mbInfFly : 1; // Frame is in a Fly
441 bool mbInfFootnote : 1; // Frame is in a footnote
442 bool mbInfSct : 1; // Frame is in a section
443 bool mbColLocked : 1; // lock Grow/Shrink for column-wise section
444 // or fly frames, will be set in Format
447
448 void ColLock() { mbColLocked = true; }
449 void ColUnlock() { mbColLocked = false; }
450
451 virtual void DestroyImpl();
452 virtual ~SwFrame() override;
453
454 // Only used by SwRootFrame Ctor to get 'this' into mpRoot...
455 void setRootFrame( SwRootFrame* pRoot ) { mpRoot = pRoot; }
456
457 SwPageFrame *InsertPage( SwPageFrame *pSibling, bool bFootnote );
458 void PrepareMake(vcl::RenderContext* pRenderContext);
459 void OptPrepareMake();
462 virtual void MakePos();
463 // Format next frame of table frame to assure keeping attributes.
464 // In case of nested tables method <SwFrame::MakeAll()> is called to
465 // avoid formatting of superior table frame.
466 friend SwFrame* sw_FormatNextContentForKeep( SwTabFrame* pTabFrame );
467
468 virtual void MakeAll(vcl::RenderContext* pRenderContext) = 0;
469 // adjust frames of a page
470 SwTwips AdjustNeighbourhood( SwTwips nDiff, bool bTst = false );
471
472 // change only frame size not the size of PrtArea
473 virtual SwTwips ShrinkFrame( SwTwips, bool bTst = false, bool bInfo = false ) = 0;
474 virtual SwTwips GrowFrame ( SwTwips, bool bTst = false, bool bInfo = false ) = 0;
475
478 sw::BroadcastingModify* GetDep()
479 { return static_cast<sw::BroadcastingModify*>(GetRegisteredInNonConst()); }
480 const sw::BroadcastingModify* GetDep() const
481 { return static_cast<const sw::BroadcastingModify*>(GetRegisteredIn()); }
482
483 SwFrame( sw::BroadcastingModify*, SwFrame* );
484
485 void CheckDir( SvxFrameDirection nDir, bool bVert, bool bOnlyBiDi, bool bBrowse );
486
491 {
492 INVALID_SIZE, INVALID_PRTAREA, INVALID_POS, INVALID_LINENUM, INVALID_ALL
493 };
494
498 virtual bool InvalidationAllowed( const InvalidationType _nInvalid ) const;
499
506 virtual void ActionOnInvalidation( const InvalidationType _nInvalid );
507
508 // draw shadow and borders
509 void PaintShadow( const SwRect&, SwRect&, const SwBorderAttrs& ) const;
510 virtual void SwClientNotify(const SwModify&, const SfxHint&) override;
511
512 virtual const IDocumentDrawModelAccess& getIDocumentDrawModelAccess( );
513
514public:
515 virtual css::uno::Sequence< css::style::TabStop > GetTabStopInfo( SwTwips )
516 {
517 return css::uno::Sequence< css::style::TabStop >();
518 }
519
520
521 SwFrameType GetType() const { return mnFrameType; }
522
523 static SwCache &GetCache() { return *spCache; }
524 static SwCache *GetCachePtr() { return spCache; }
525 static void SetCache( SwCache *pNew ) { spCache = pNew; }
526
527 // change PrtArea size and FrameSize
528 SwTwips Shrink( SwTwips, bool bTst = false, bool bInfo = false );
529 SwTwips Grow ( SwTwips, bool bTst = false, bool bInfo = false );
530
531 // different methods for inserting in layout tree (for performance reasons)
532
533 // insert before pBehind or at the end of the chain below mpUpper
534 void InsertBefore( SwLayoutFrame* pParent, SwFrame* pBehind );
535 // insert after pBefore or at the beginning of the chain below mpUpper
536 void InsertBehind( SwLayoutFrame *pParent, SwFrame *pBefore );
537 // insert before pBehind or at the end of the chain while considering
538 // the siblings of pSct
539 bool InsertGroupBefore( SwFrame* pParent, SwFrame* pWhere, SwFrame* pSct );
540 void RemoveFromLayout();
541
542 // For internal use only - who ignores this will be put in a sack and has
543 // to stay there for two days
544 // Does special treatment for Get_[Next|Prev]Leaf() (for tables).
545 SwLayoutFrame *GetLeaf( MakePageType eMakePage, bool bFwd );
546 SwLayoutFrame *GetNextLeaf ( MakePageType eMakePage );
547 SwLayoutFrame *GetNextFootnoteLeaf( MakePageType eMakePage );
548 SwLayoutFrame *GetNextSctLeaf( MakePageType eMakePage );
549 SwLayoutFrame *GetNextFlyLeaf( MakePageType eMakePage );
550 SwLayoutFrame *GetNextCellLeaf();
551 SwLayoutFrame *GetPrevLeaf ();
552 SwLayoutFrame *GetPrevFootnoteLeaf( MakePageType eMakeFootnote );
553 SwLayoutFrame *GetPrevSctLeaf();
554 SwLayoutFrame *GetPrevFlyLeaf();
555 SwLayoutFrame *GetPrevCellLeaf();
556 const SwLayoutFrame *GetLeaf ( MakePageType eMakePage, bool bFwd,
557 const SwFrame *pAnch ) const;
558
559 bool WrongPageDesc( SwPageFrame* pNew );
560
561 //#i28701# - new methods to append/remove drawing objects
562 void AppendDrawObj( SwAnchoredObject& _rNewObj );
563 void RemoveDrawObj( SwAnchoredObject& _rToRemoveObj );
564
565 // work with chain of FlyFrames
566 void AppendFly( SwFlyFrame *pNew );
567 void RemoveFly( SwFlyFrame *pToRemove );
568 const SwSortedObjs *GetDrawObjs() const { return m_pDrawObjs.get(); }
569 SwSortedObjs *GetDrawObjs() { return m_pDrawObjs.get(); }
570 void SetDrawObjsAsDeleted( bool bDeleted ); // change tracking of objects anchored to character
571 // #i28701# - change purpose of method and adjust its name
572 void InvalidateObjs( const bool _bNoInvaOfAsCharAnchoredObjs = true );
573
574 virtual void PaintSwFrameShadowAndBorder(
575 const SwRect&,
576 const SwPageFrame* pPage,
577 const SwBorderAttrs&) const;
578 void PaintBaBo( const SwRect&, const SwPageFrame *pPage,
579 const bool bOnlyTextBackground = false) const;
580 void PaintSwFrameBackground( const SwRect&, const SwPageFrame *pPage,
581 const SwBorderAttrs &,
582 const bool bLowerMode = false,
583 const bool bLowerBorder = false,
584 const bool bOnlyTextBackground = false ) const;
585 void PaintBorderLine( const SwRect&, const SwRect&, const SwPageFrame*,
586 const Color *pColor,
587 const SvxBorderLineStyle = SvxBorderLineStyle::SOLID ) const;
588
589 std::unique_ptr<drawinglayer::processor2d::BaseProcessor2D> CreateProcessor2D( ) const;
590 void ProcessPrimitives( const drawinglayer::primitive2d::Primitive2DContainer& rSequence ) const;
591
592 // retouch, not in the area of the given Rect!
593 void Retouch( const SwPageFrame *pPage, const SwRect &rRect ) const;
594
595 bool GetBackgroundBrush(
597 const SvxBrushItem*& rpBrush,
598 std::optional<Color>& rxColor,
599 SwRect &rOrigRect,
600 bool bLowerMode,
601 bool bConsiderTextBox ) const;
602
603 inline void SetCompletePaint() const;
604 inline void ResetCompletePaint() const;
605 bool IsCompletePaint() const { return mbCompletePaint; }
606
607 inline void SetRetouche() const;
608 inline void ResetRetouche() const;
609 bool IsRetouche() const { return mbRetouche; }
610
611 void SetInfFlags();
612 void InvalidateInfFlags() { mbInfInvalid = true; }
613 inline bool IsInDocBody() const; // use InfoFlags, determine flags
614 inline bool IsInFootnote() const; // if necessary
615 inline bool IsInTab() const;
616 inline bool IsInFly() const;
617 inline bool IsInSct() const;
618
619 // If frame is inside a split table row, this function returns
620 // the corresponding row frame in the follow table.
621 const SwRowFrame* IsInSplitTableRow() const;
622
623 // If frame is inside a follow flow row, this function returns
624 // the corresponding row frame master table
625 const SwRowFrame* IsInFollowFlowRow() const;
626
627 bool IsInBalancedSection() const;
628
629 inline bool IsVertical() const;
630 inline bool IsVertLR() const;
631 inline bool IsVertLRBT() const;
632
633 void SetDerivedVert( bool bNew ){ mbDerivedVert = bNew; }
634 void SetInvalidVert( bool bNew) { mbInvalidVert = bNew; }
635 inline bool IsRightToLeft() const;
636 void SetDerivedR2L( bool bNew ) { mbDerivedR2L = bNew; }
637
638 void CheckDirChange();
639 // returns upper left frame position for LTR and
640 // upper right frame position for Asian / RTL frames
641 Point GetFrameAnchorPos( bool bIgnoreFlysAnchoredAtThisFrame ) const;
642
656 bool IsMoveable( const SwLayoutFrame* _pLayoutFrame = nullptr ) const;
657
658 // Is it permitted for the (Text)Frame to add a footnote in the current
659 // environment (not e.g. for repeating table headlines)
660 bool IsFootnoteAllowed() const;
661
664 virtual void Format( vcl::RenderContext* pRenderContext, const SwBorderAttrs *pAttrs = nullptr );
665
666 virtual void CheckDirection( bool bVert );
667
668 void ReinitializeFrameSizeAttrFlags();
669
672 const SwAttrSet *GetAttrSet() const;
673 virtual const SvxFormatBreakItem& GetBreakItem() const;
674 virtual const SwFormatPageDesc& GetPageDescItem() const;
675
676 bool HasFixSize() const { return mbFixSize; }
677
678 // check all pages (starting from the given) and correct them if needed
679 static void CheckPageDescs( SwPageFrame *pStart, bool bNotifyFields = true, SwPageFrame** ppPrev = nullptr);
680
681 // might return 0, with and without const
682 SwFrame *GetNext() { return mpNext; }
683 SwFrame *GetPrev() { return mpPrev; }
684 SwLayoutFrame *GetUpper() { return mpUpper; }
686 SwPageFrame *FindPageFrame() { return IsPageFrame() ? reinterpret_cast<SwPageFrame*>(this) : ImplFindPageFrame(); }
687 SwFrame *FindColFrame();
688 SwRowFrame *FindRowFrame();
689 SwFootnoteBossFrame *FindFootnoteBossFrame( bool bFootnotes = false );
690 SwTabFrame *ImplFindTabFrame();
691 SwFootnoteFrame *ImplFindFootnoteFrame();
692 SwFlyFrame *ImplFindFlyFrame();
693 SwSectionFrame *ImplFindSctFrame();
694 const SwBodyFrame *ImplFindBodyFrame() const;
695 SwFrame *FindFooterOrHeader();
696 SwFrame *GetLower();
697 const SwFrame *GetNext() const { return mpNext; }
698 const SwFrame *GetPrev() const { return mpPrev; }
699 const SwLayoutFrame *GetUpper() const { return mpUpper; }
700 const SwRootFrame *getRootFrame() const { return mpRoot; }
701 inline SwTabFrame *FindTabFrame();
702 inline SwFootnoteFrame *FindFootnoteFrame();
703 inline SwFlyFrame *FindFlyFrame();
704 inline SwSectionFrame *FindSctFrame();
705 inline SwFrame *FindNext();
706 // #i27138# - add parameter <_bInSameFootnote>
707 SwContentFrame* FindNextCnt( const bool _bInSameFootnote = false );
708 inline SwFrame *FindPrev();
709 inline const SwPageFrame *FindPageFrame() const;
710 inline const SwFootnoteBossFrame *FindFootnoteBossFrame( bool bFootnote = false ) const;
711 inline const SwFrame *FindColFrame() const;
712 inline const SwFrame *FindFooterOrHeader() const;
713 inline const SwTabFrame *FindTabFrame() const;
714 inline const SwFootnoteFrame *FindFootnoteFrame() const;
715 inline const SwFlyFrame *FindFlyFrame() const;
716 inline const SwSectionFrame *FindSctFrame() const;
717 inline const SwBodyFrame *FindBodyFrame() const;
718 inline const SwFrame *FindNext() const;
719 // #i27138# - add parameter <_bInSameFootnote>
720 const SwContentFrame* FindNextCnt( const bool _bInSameFootnote = false ) const;
721 inline const SwFrame *FindPrev() const;
722 const SwFrame *GetLower() const;
723
724 SwContentFrame* FindPrevCnt();
725
726 const SwContentFrame* FindPrevCnt() const;
727
728 // #i79774#
729 SwFrame* GetIndPrev_() const;
731 { return ( mpPrev || !IsInSct() ) ? mpPrev : GetIndPrev_(); }
732
734 { return ( mpNext || !IsInSct() ) ? mpNext : GetIndNext_(); }
735 const SwFrame* GetIndNext() const { return const_cast<SwFrame*>(this)->GetIndNext(); }
736
737 sal_uInt16 GetPhyPageNum() const; // page number without offset
738 sal_uInt16 GetVirtPageNum() const; // page number with offset
739 bool OnRightPage() const { return 0 != GetPhyPageNum() % 2; };
740 bool WannaRightPage() const;
741 bool OnFirstPage() const;
742
743 inline const SwLayoutFrame *GetPrevLayoutLeaf() const;
744 inline const SwLayoutFrame *GetNextLayoutLeaf() const;
745 inline SwLayoutFrame *GetPrevLayoutLeaf();
746 inline SwLayoutFrame *GetNextLayoutLeaf();
747
748 virtual void Calc(vcl::RenderContext* pRenderContext) const; // here might be "formatted"
749 inline void OptCalc() const; // here we assume (for optimization) that
750 // the predecessors are already formatted
751 Point GetRelPos() const;
752
753 // PaintArea is the area where content might be displayed.
754 // The margin of a page or the space between columns belongs to it.
755 SwRect GetPaintArea() const;
756
757 // UnionFrame is the union of Frame- and PrtArea, normally identical
758 // to the FrameArea except in case of negative Prt margins.
759 SwRect UnionFrame( bool bBorder = false ) const;
760
761 virtual Size ChgSize( const Size& aNewSize );
762
763 virtual void Cut() = 0;
764 virtual void Paste( SwFrame* pParent, SwFrame* pSibling = nullptr ) = 0;
765
766 void ValidateLineNum() { mbValidLineNum = true; }
767
768 bool GetValidLineNumFlag()const { return mbValidLineNum; }
769
770 // Only invalidate Frame
771 // #i28701# - add call to method <ActionOnInvalidation(..)>
772 // for all invalidation methods.
773 // #i28701# - use method <InvalidationAllowed(..)> to
774 // decide, if invalidation will to be performed or not.
775 // #i26945# - no additional invalidation, if it's already
776 // invalidate.
778 {
779 if ( isFrameAreaSizeValid() && InvalidationAllowed( INVALID_SIZE ) )
780 {
782 ActionOnInvalidation( INVALID_SIZE );
783 }
784 }
786 {
787 if ( isFramePrintAreaValid() && InvalidationAllowed( INVALID_PRTAREA ) )
788 {
790 ActionOnInvalidation( INVALID_PRTAREA );
791 }
792 }
794 {
795 if ( isFrameAreaPositionValid() && InvalidationAllowed( INVALID_POS ) )
796 {
798 ActionOnInvalidation( INVALID_POS );
799 }
800 }
802 {
803 if ( mbValidLineNum && InvalidationAllowed( INVALID_LINENUM ) )
804 {
805 mbValidLineNum = false;
806 ActionOnInvalidation( INVALID_LINENUM );
807 }
808 }
810 {
811 if ( ( isFrameAreaSizeValid() || isFramePrintAreaValid() || isFrameAreaPositionValid() ) && InvalidationAllowed( INVALID_ALL ) )
812 {
816 ActionOnInvalidation( INVALID_ALL );
817 }
818 }
819 // also notify page at the same time
820 inline void InvalidateSize();
821 inline void InvalidatePrt();
822 inline void InvalidatePos();
823 inline void InvalidateLineNum();
824 inline void InvalidateAll();
825 void ImplInvalidateSize();
826 void ImplInvalidatePrt();
827 void ImplInvalidatePos();
828 void ImplInvalidateLineNum();
829
830 inline void InvalidateNextPos( bool bNoFootnote = false );
831 void ImplInvalidateNextPos( bool bNoFootnote );
832
836 void InvalidateNextPrtArea();
837
838 void InvalidatePage( const SwPageFrame *pPage = nullptr ) const;
839
840 virtual bool FillSelection( SwSelectionList& rList, const SwRect& rRect ) const;
841
842 virtual bool GetModelPositionForViewPoint( SwPosition *, Point&,
843 SwCursorMoveState* = nullptr, bool bTestBackground = false ) const;
844 virtual bool GetCharRect( SwRect &, const SwPosition&,
845 SwCursorMoveState* = nullptr, bool bAllowFarAway = true ) const;
846 virtual void PaintSwFrame( vcl::RenderContext& rRenderContext, SwRect const&,
847 SwPrintData const*const pPrintData = nullptr ) const;
848
849 // HACK: shortcut between frame and formatting
850 // It's your own fault if you cast void* incorrectly! In any case check
851 // the void* for 0.
852 virtual bool Prepare( const PrepareHint ePrep = PrepareHint::Clear,
853 const void *pVoid = nullptr, bool bNotify = true );
854
855 // true if it is the correct class, false otherwise
856 inline bool IsLayoutFrame() const;
857 inline bool IsRootFrame() const;
858 inline bool IsPageFrame() const;
859 inline bool IsColumnFrame() const;
860 inline bool IsFootnoteBossFrame() const; // footnote bosses might be PageFrames or ColumnFrames
861 inline bool IsHeaderFrame() const;
862 inline bool IsFooterFrame() const;
863 inline bool IsFootnoteContFrame() const;
864 inline bool IsFootnoteFrame() const;
865 inline bool IsBodyFrame() const;
866 inline bool IsColBodyFrame() const; // implemented in layfrm.hxx, BodyFrame above ColumnFrame
867 inline bool IsPageBodyFrame() const; // implemented in layfrm.hxx, BodyFrame above PageFrame
868 inline bool IsFlyFrame() const;
869 inline bool IsSctFrame() const;
870 inline bool IsTabFrame() const;
871 inline bool IsRowFrame() const;
872 inline bool IsCellFrame() const;
873 inline bool IsContentFrame() const;
874 inline bool IsTextFrame() const;
875 SwTextFrame* DynCastTextFrame();
876 const SwTextFrame* DynCastTextFrame() const;
877 inline bool IsNoTextFrame() const;
878 // Frames where its PrtArea depends on their neighbors and that are
879 // positioned in the content flow
880 inline bool IsFlowFrame() const;
881 // Frames that are capable of retouching or that might need to retouch behind
882 // themselves
883 inline bool IsRetoucheFrame() const;
884 inline bool IsAccessibleFrame() const;
885
886 void PrepareCursor(); // CursorShell is allowed to call this
887
888 // Is the Frame (or the section containing it) protected? Same for Fly in
889 // Fly in ... and footnotes
890 bool IsProtected() const;
891
892 bool IsColLocked() const { return mbColLocked; }
893 virtual bool IsDeleteForbidden() const { return mnForbidDelete > 0; }
894
896 static void DestroyFrame(SwFrame *const pFrame);
897
898 bool IsInDtor() const { return mbInDtor; }
899
900 // No inline cause we need the function pointers
901 tools::Long GetTopMargin() const;
902 tools::Long GetBottomMargin() const;
904 tools::Long GetRightMargin() const;
905 void SetTopBottomMargins( tools::Long, tools::Long );
906 void SetLeftRightMargins( tools::Long, tools::Long );
907 void SetRightLeftMargins( tools::Long, tools::Long );
908 tools::Long GetPrtLeft() const;
909 tools::Long GetPrtBottom() const;
910 tools::Long GetPrtRight() const;
911 tools::Long GetPrtTop() const;
912 bool SetMinLeft( tools::Long );
913 bool SetMaxBottom( tools::Long );
914 bool SetMaxRight( tools::Long );
915 void MakeBelowPos( const SwFrame*, const SwFrame*, bool );
916 void MakeLeftPos( const SwFrame*, const SwFrame*, bool );
917 void MakeRightPos( const SwFrame*, const SwFrame*, bool );
918 bool IsNeighbourFrame() const
919 { return bool(GetType() & FRM_NEIGHBOUR); }
920
921 // NEW TABLES
922 // Some functions for covered/covering table cells. This way unnecessary
923 // includes can be avoided
924 virtual bool IsLeaveUpperAllowed() const;
925 virtual bool IsCoveredCell() const;
926 bool IsInCoveredCell() const;
927
928 // #i81146# new loop control
929 bool KnowsFormat( const SwFormat& rFormat ) const;
930 void RegisterToFormat( SwFormat& rFormat );
931 void ValidateThisAndAllLowers( const sal_uInt16 nStage );
932
933 void ForbidDelete() { ++mnForbidDelete; }
934 void AllowDelete() { assert(mnForbidDelete > 0); --mnForbidDelete; }
935
936 drawinglayer::attribute::SdrAllFillAttributesHelperPtr getSdrAllFillAttributesHelper() const;
937 bool supportsFullDrawingLayerFillAttributeSet() const;
938
939public:
940 // if writer is NULL, dumps the layout structure as XML in layout.xml
941 virtual void dumpAsXml(xmlTextWriterPtr writer = nullptr) const = 0;
942 void dumpTopMostAsXml(xmlTextWriterPtr writer = nullptr) const;
943 void dumpInfosAsXml(xmlTextWriterPtr writer) const;
944 virtual void dumpAsXmlAttributes(xmlTextWriterPtr writer) const;
945 void dumpChildrenAsXml(xmlTextWriterPtr writer) const;
946 bool IsCollapse() const;
947};
948
949inline bool SwFrame::IsInDocBody() const
950{
951 if ( mbInfInvalid )
952 const_cast<SwFrame*>(this)->SetInfFlags();
953 return mbInfBody;
954}
955inline bool SwFrame::IsInFootnote() const
956{
957 if ( mbInfInvalid )
958 const_cast<SwFrame*>(this)->SetInfFlags();
959 return mbInfFootnote;
960}
961inline bool SwFrame::IsInTab() const
962{
963 if ( mbInfInvalid )
964 const_cast<SwFrame*>(this)->SetInfFlags();
965 return mbInfTab;
966}
967inline bool SwFrame::IsInFly() const
968{
969 if ( mbInfInvalid )
970 const_cast<SwFrame*>(this)->SetInfFlags();
971 return mbInfFly;
972}
973inline bool SwFrame::IsInSct() const
974{
975 if ( mbInfInvalid )
976 const_cast<SwFrame*>(this)->SetInfFlags();
977 return mbInfSct;
978}
980{
981 if( mbInvalidVert )
982 const_cast<SwFrame*>(this)->SetDirFlags( true );
983 return mbVertical;
984}
985inline bool SwFrame::IsVertLR() const
986{
987 return mbVertLR;
988}
989inline bool SwFrame::IsVertLRBT() const
990{
991 return mbVertLRBT;
992}
993inline bool SwFrame::IsRightToLeft() const
994{
995 if( mbInvalidR2L )
996 const_cast<SwFrame*>(this)->SetDirFlags( false );
997 return mbRightToLeft;
998}
999
1000inline void SwFrame::SetCompletePaint() const
1001{
1002 const_cast<SwFrame*>(this)->mbCompletePaint = true;
1003}
1005{
1006 const_cast<SwFrame*>(this)->mbCompletePaint = false;
1007}
1008
1009inline void SwFrame::SetRetouche() const
1010{
1011 const_cast<SwFrame*>(this)->mbRetouche = true;
1012}
1013inline void SwFrame::ResetRetouche() const
1014{
1015 const_cast<SwFrame*>(this)->mbRetouche = false;
1016}
1017
1019{
1020 return const_cast<SwLayoutFrame*>(static_cast<const SwFrame*>(this)->GetNextLayoutLeaf());
1021}
1023{
1024 return const_cast<SwLayoutFrame*>(static_cast<const SwFrame*>(this)->GetPrevLayoutLeaf());
1025}
1027{
1028 return ImplGetNextLayoutLeaf( true );
1029}
1031{
1032 return ImplGetNextLayoutLeaf( false );
1033}
1034
1036{
1037 if ( isFrameAreaSizeValid() )
1038 {
1040 }
1041}
1043{
1044 if ( isFramePrintAreaValid() )
1045 {
1047 }
1048}
1050{
1052 {
1054 }
1055}
1057{
1058 if ( mbValidLineNum )
1060}
1062{
1064 {
1066 {
1068 }
1069
1070 setFrameAreaSizeValid(false);
1073
1074 // #i28701#
1076 }
1077}
1078inline void SwFrame::InvalidateNextPos( bool bNoFootnote )
1079{
1080 if ( mpNext && !mpNext->IsSctFrame() )
1082 else
1083 ImplInvalidateNextPos( bNoFootnote );
1084}
1085
1086inline void SwFrame::OptCalc() const
1087{
1089 {
1090 const_cast<SwFrame*>(this)->OptPrepareMake();
1091 }
1092}
1094{
1095 return const_cast<SwFrame*>(this)->FindPageFrame();
1096}
1097inline const SwFrame *SwFrame::FindColFrame() const
1098{
1099 return const_cast<SwFrame*>(this)->FindColFrame();
1100}
1102{
1103 return const_cast<SwFrame*>(this)->FindFooterOrHeader();
1104}
1106{
1107 return IsInTab() ? ImplFindTabFrame() : nullptr;
1108}
1110{
1111 return const_cast<SwFrame*>(this)->FindFootnoteBossFrame( bFootnote );
1112}
1114{
1115 return IsInFootnote() ? ImplFindFootnoteFrame() : nullptr;
1116}
1118{
1119 return IsInFly() ? ImplFindFlyFrame() : nullptr;
1120}
1122{
1123 return IsInSct() ? ImplFindSctFrame() : nullptr;
1124}
1125
1127{
1128 return IsInDocBody() ? ImplFindBodyFrame() : nullptr;
1129}
1130
1132{
1133 return IsInTab() ? const_cast<SwFrame*>(this)->ImplFindTabFrame() : nullptr;
1134}
1136{
1137 return IsInFootnote() ? const_cast<SwFrame*>(this)->ImplFindFootnoteFrame() : nullptr;
1138}
1140{
1141 return IsInFly() ? const_cast<SwFrame*>(this)->ImplFindFlyFrame() : nullptr;
1142}
1144{
1145 return IsInSct() ? const_cast<SwFrame*>(this)->ImplFindSctFrame() : nullptr;
1146}
1148{
1149 if ( mpNext )
1150 return mpNext;
1151 else
1152 return FindNext_();
1153}
1154inline const SwFrame *SwFrame::FindNext() const
1155{
1156 if ( mpNext )
1157 return mpNext;
1158 else
1159 return const_cast<SwFrame*>(this)->FindNext_();
1160}
1162{
1163 if ( mpPrev && !mpPrev->IsSctFrame() )
1164 return mpPrev;
1165 else
1166 return FindPrev_();
1167}
1168inline const SwFrame *SwFrame::FindPrev() const
1169{
1170 if ( mpPrev && !mpPrev->IsSctFrame() )
1171 return mpPrev;
1172 else
1173 return const_cast<SwFrame*>(this)->FindPrev_();
1174}
1175
1176inline bool SwFrame::IsLayoutFrame() const
1177{
1178 return bool(GetType() & FRM_LAYOUT);
1179}
1180inline bool SwFrame::IsRootFrame() const
1181{
1183}
1184inline bool SwFrame::IsPageFrame() const
1185{
1187}
1188inline bool SwFrame::IsColumnFrame() const
1189{
1191}
1193{
1194 return bool(GetType() & FRM_FTNBOSS);
1195}
1196inline bool SwFrame::IsHeaderFrame() const
1197{
1199}
1200inline bool SwFrame::IsFooterFrame() const
1201{
1203}
1205{
1207}
1208inline bool SwFrame::IsFootnoteFrame() const
1209{
1210 return mnFrameType == SwFrameType::Ftn;
1211}
1212inline bool SwFrame::IsBodyFrame() const
1213{
1215}
1216inline bool SwFrame::IsFlyFrame() const
1217{
1218 return mnFrameType == SwFrameType::Fly;
1219}
1220inline bool SwFrame::IsSctFrame() const
1221{
1223}
1224inline bool SwFrame::IsTabFrame() const
1225{
1226 return mnFrameType == SwFrameType::Tab;
1227}
1228inline bool SwFrame::IsRowFrame() const
1229{
1230 return mnFrameType == SwFrameType::Row;
1231}
1232inline bool SwFrame::IsCellFrame() const
1233{
1235}
1236inline bool SwFrame::IsContentFrame() const
1237{
1238 return bool(GetType() & FRM_CNTNT);
1239}
1240inline bool SwFrame::IsTextFrame() const
1241{
1242 return mnFrameType == SwFrameType::Txt;
1243}
1244inline bool SwFrame::IsNoTextFrame() const
1245{
1247}
1248inline bool SwFrame::IsFlowFrame() const
1249{
1251}
1252inline bool SwFrame::IsRetoucheFrame() const
1253{
1255}
1257{
1258 return bool(GetType() & FRM_ACCESSIBLE);
1259}
1260
1261//use this to protect a SwFrame for a given scope from getting deleted
1263{
1264private:
1266public:
1267 //Flag pFrame for SwFrameDeleteGuard lifetime that we shouldn't delete
1268 //it in e.g. SwSectionFrame::MergeNext etc because we will need it
1269 //again after the SwFrameDeleteGuard dtor
1270 explicit SwFrameDeleteGuard(SwFrame* pFrame)
1271 : m_pForbidFrame(pFrame)
1272 {
1273 if (m_pForbidFrame)
1275 }
1276
1278
1280 {
1281 if (m_pForbidFrame)
1283 }
1284
1286};
1287
1288typedef tools::Long (SwFrame::*SwFrameGet)() const;
1289typedef bool (SwFrame::*SwFrameMax)( tools::Long );
1290typedef void (SwFrame::*SwFrameMakePos)( const SwFrame*, const SwFrame*, bool );
1293
1295{
1304
1311
1318
1321
1338
1345
1348};
1349
1351
1352// This class allows to use proper methods regardless of orientation (LTR/RTL, horizontal or vertical)
1355public:
1356 explicit SwRectFnSet(const SwFrame *pFrame)
1357 : m_bVert(pFrame->IsVertical())
1358 , m_bVertL2R(pFrame->IsVertLR())
1359 , m_bVertL2RB2T(pFrame->IsVertLRBT())
1360 {
1362 }
1363
1364 void Refresh(const SwFrame *pFrame)
1365 {
1366 m_bVert = pFrame->IsVertical();
1367 m_bVertL2R = pFrame->IsVertLR();
1368 m_bVertL2RB2T = pFrame->IsVertLRBT();
1370 }
1371
1372 bool IsVert() const { return m_bVert; }
1373 bool IsVertL2R() const { return m_bVertL2R; }
1374 SwRectFn FnRect() const { return m_fnRect; }
1375
1376 bool PosDiff(const SwRect &rRect1, const SwRect &rRect2) const
1377 {
1378 return ((rRect1.*m_fnRect->fnGetTop)() != (rRect2.*m_fnRect->fnGetTop)()
1379 || (rRect1.*m_fnRect->fnGetLeft)() != (rRect2.*m_fnRect->fnGetLeft)());
1380 }
1381
1382 tools::Long GetTop (const SwRect& rRect) const { return (rRect.*m_fnRect->fnGetTop) (); }
1383 tools::Long GetBottom(const SwRect& rRect) const { return (rRect.*m_fnRect->fnGetBottom)(); }
1384 tools::Long GetLeft (const SwRect& rRect) const { return (rRect.*m_fnRect->fnGetLeft) (); }
1385 tools::Long GetRight (const SwRect& rRect) const { return (rRect.*m_fnRect->fnGetRight) (); }
1386 tools::Long GetWidth (const SwRect& rRect) const { return (rRect.*m_fnRect->fnGetWidth) (); }
1387 tools::Long GetHeight(const SwRect& rRect) const { return (rRect.*m_fnRect->fnGetHeight)(); }
1388 Point GetPos (const SwRect& rRect) const { return (rRect.*m_fnRect->fnGetPos) (); }
1389 Size GetSize (const SwRect& rRect) const { return (rRect.*m_fnRect->fnGetSize) (); }
1390
1391 void SetTop (SwRect& rRect, tools::Long nNew) const { (rRect.*m_fnRect->fnSetTop) (nNew); }
1392 void SetBottom(SwRect& rRect, tools::Long nNew) const { (rRect.*m_fnRect->fnSetBottom)(nNew); }
1393 void SetLeft (SwRect& rRect, tools::Long nNew) const { (rRect.*m_fnRect->fnSetLeft) (nNew); }
1394 void SetRight (SwRect& rRect, tools::Long nNew) const { (rRect.*m_fnRect->fnSetRight) (nNew); }
1395 void SetWidth (SwRect& rRect, tools::Long nNew) const { (rRect.*m_fnRect->fnSetWidth) (nNew); }
1396 void SetHeight(SwRect& rRect, tools::Long nNew) const { (rRect.*m_fnRect->fnSetHeight)(nNew); }
1397
1398 void SubTop (SwRect& rRect, tools::Long nNew) const { (rRect.*m_fnRect->fnSubTop) (nNew); }
1399 void AddBottom(SwRect& rRect, tools::Long nNew) const { (rRect.*m_fnRect->fnAddBottom)(nNew); }
1400 void SubLeft (SwRect& rRect, tools::Long nNew) const { (rRect.*m_fnRect->fnSubLeft) (nNew); }
1401 void AddRight (SwRect& rRect, tools::Long nNew) const { (rRect.*m_fnRect->fnAddRight) (nNew); }
1402 void AddWidth (SwRect& rRect, tools::Long nNew) const { (rRect.*m_fnRect->fnAddWidth) (nNew); }
1403 void AddHeight(SwRect& rRect, tools::Long nNew) const { (rRect.*m_fnRect->fnAddHeight)(nNew); }
1404
1405 void SetPosX(SwRect& rRect, tools::Long nNew) const { (rRect.*m_fnRect->fnSetPosX)(nNew); }
1406 void SetPosY(SwRect& rRect, tools::Long nNew) const { (rRect.*m_fnRect->fnSetPosY)(nNew); }
1407
1408 tools::Long GetTopMargin (const SwFrame& rFrame) const { return (rFrame.*m_fnRect->fnGetTopMargin) (); }
1409 tools::Long GetBottomMargin(const SwFrame& rFrame) const { return (rFrame.*m_fnRect->fnGetBottomMargin)(); }
1410 tools::Long GetLeftMargin (const SwFrame& rFrame) const { return (rFrame.*m_fnRect->fnGetLeftMargin) (); }
1411 tools::Long GetRightMargin (const SwFrame& rFrame) const { return (rFrame.*m_fnRect->fnGetRightMargin) (); }
1412 void SetXMargins(SwFrame& rFrame, tools::Long nLeft, tools::Long nRight) const { (rFrame.*m_fnRect->fnSetXMargins)(nLeft, nRight); }
1413 void SetYMargins(SwFrame& rFrame, tools::Long nTop, tools::Long nBottom) const { (rFrame.*m_fnRect->fnSetYMargins)(nTop, nBottom); }
1414 tools::Long GetPrtTop (const SwFrame& rFrame) const { return (rFrame.*m_fnRect->fnGetPrtTop) (); }
1415 tools::Long GetPrtBottom (const SwFrame& rFrame) const { return (rFrame.*m_fnRect->fnGetPrtBottom) (); }
1416 tools::Long GetPrtLeft (const SwFrame& rFrame) const { return (rFrame.*m_fnRect->fnGetPrtLeft) (); }
1417 tools::Long GetPrtRight (const SwFrame& rFrame) const { return (rFrame.*m_fnRect->fnGetPrtRight) (); }
1418 tools::Long TopDist (const SwRect& rRect, tools::Long nPos) const { return (rRect.*m_fnRect->fnTopDist) (nPos); }
1419 tools::Long BottomDist(const SwRect& rRect, tools::Long nPos) const { return (rRect.*m_fnRect->fnBottomDist) (nPos); }
1420 tools::Long LeftDist (const SwRect& rRect, tools::Long nPos) const { return (rRect.*m_fnRect->fnLeftDist) (nPos); }
1421 tools::Long RightDist (const SwRect& rRect, tools::Long nPos) const { return (rRect.*m_fnRect->fnRightDist) (nPos); }
1422 void SetLimit (SwFrame& rFrame, tools::Long nNew) const { (rFrame.*m_fnRect->fnSetLimit) (nNew); }
1423 bool OverStep (const SwRect& rRect, tools::Long nPos) const { return (rRect.*m_fnRect->fnOverStep) (nPos); }
1424
1425 void SetPos(SwRect& rRect, const Point& rNew) const { (rRect.*m_fnRect->fnSetPos)(rNew); }
1426 void MakePos(SwFrame& rFrame, const SwFrame* pUp, const SwFrame* pPrv, bool bNotify) const { (rFrame.*m_fnRect->fnMakePos)(pUp, pPrv, bNotify); }
1429 tools::Long XInc (tools::Long n1, tools::Long n2) const { return (m_fnRect->fnXInc) (n1, n2); }
1430 tools::Long YInc (tools::Long n1, tools::Long n2) const { return (m_fnRect->fnYInc) (n1, n2); }
1431
1432 void SetLeftAndWidth(SwRect& rRect, tools::Long nLeft, tools::Long nWidth) const { (rRect.*m_fnRect->fnSetLeftAndWidth)(nLeft, nWidth); }
1433 void SetTopAndHeight(SwRect& rRect, tools::Long nTop, tools::Long nHeight) const { (rRect.*m_fnRect->fnSetTopAndHeight)(nTop, nHeight); }
1434
1435private:
1440};
1441
1442#endif
1443
1444/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
struct _ADOColumn Column
EdgeEntry * mpNext
SvxBorderLineStyle
void MakeNxt(SwFrame *pFrame, SwFrame *pNxt)
Definition: calcmove.cxx:1902
void ValidateSz(SwFrame *pFrame)
Definition: calcmove.cxx:1201
wrapper class for the positioning of Writer fly frames and drawing objects
Container of body content (i.e.
Definition: bodyfrm.hxx:29
const SwModify * GetRegisteredIn() const
Definition: calbck.hxx:166
virtual void SwClientNotify(const SwModify &, const SfxHint &rHint) override
Definition: calbck.cxx:120
SwModify * GetRegisteredInNonConst() const
Definition: calbck.hxx:148
SwContentFrame is the layout for content nodes: a common base class for text (paragraph) and non-text...
Definition: cntfrm.hxx:59
helper class to check if a frame has been deleted during an operation WARNING! This should only be us...
Definition: frmtool.hxx:608
general base class for all free-flowing frames
Definition: flyfrm.hxx:79
Represents one footnote or endnote in the layout.
Definition: ftnfrm.hxx:84
Pagedescriptor Client of SwPageDesc that is "described" by the attribute.
Definition: fmtpdsc.hxx:36
Base class for various Writer styles.
Definition: format.hxx:47
FrameAreaWriteAccess(const FrameAreaWriteAccess &)=delete
FrameAreaWriteAccess(SwFrameAreaDefinition &rTarget)
Definition: frame.hxx:196
SwFrameAreaDefinition & mrTarget
Definition: frame.hxx:190
void setSwRect(const SwRect &rNew)
Definition: frame.hxx:198
FrameAreaWriteAccess & operator=(const FrameAreaWriteAccess &)=delete
FramePrintAreaWriteAccess & operator=(const FramePrintAreaWriteAccess &)=delete
FramePrintAreaWriteAccess(SwFrameAreaDefinition &rTarget)
Definition: frame.hxx:211
FramePrintAreaWriteAccess(const FramePrintAreaWriteAccess &)=delete
Helper class to isolate geometry-defining members of SwFrame and to control their accesses.
Definition: frame.hxx:133
const SwRect & getFrameArea() const
Definition: frame.hxx:179
bool isFrameAreaDefinitionValid() const
Definition: frame.hxx:171
bool isFrameAreaPositionValid() const
Definition: frame.hxx:166
const SwRect & getFramePrintArea() const
Definition: frame.hxx:180
void setFramePrintAreaValid(bool bNew)
Definition: wsfrm.cxx:102
void setFrameAreaPositionValid(bool bNew)
Definition: wsfrm.cxx:86
const sal_uInt32 mnFrameId
Definition: frame.hxx:153
SwRect maFramePrintArea
Definition: frame.hxx:143
static sal_uInt32 snLastFrameId
Definition: frame.hxx:152
bool mbFrameAreaPositionValid
Definition: frame.hxx:146
bool isFramePrintAreaValid() const
Definition: frame.hxx:168
bool isFrameAreaSizeValid() const
Definition: frame.hxx:167
bool mbFramePrintAreaValid
Definition: frame.hxx:148
sal_uInt32 GetFrameId() const
Definition: frame.hxx:174
void setFrameAreaSizeValid(bool bNew)
Definition: wsfrm.cxx:94
SwFrameDeleteGuard & operator=(const SwFrameDeleteGuard &)=delete
SwFrameDeleteGuard(SwFrame *pFrame)
Definition: frame.hxx:1270
SwFrameDeleteGuard(const SwFrameDeleteGuard &)=delete
SwFrame * m_pForbidFrame
Definition: frame.hxx:1265
Base class of the Writer layout elements.
Definition: frame.hxx:315
bool mbFixSize
Definition: frame.hxx:428
bool OnRightPage() const
Definition: frame.hxx:739
bool IsRowFrame() const
Definition: frame.hxx:1228
virtual void Cut()=0
const sw::BroadcastingModify * GetDep() const
Definition: frame.hxx:480
bool IsCellFrame() const
Definition: frame.hxx:1232
bool mbInDtor
Definition: frame.hxx:416
void InvalidateInfFlags()
Definition: frame.hxx:612
SwFrame * mpPrev
Definition: frame.hxx:339
const SwBodyFrame * FindBodyFrame() const
Definition: frame.hxx:1126
bool mbDerivedVert
Definition: frame.hxx:421
const SwLayoutFrame * ImplGetNextLayoutLeaf(bool bFwd) const
Finds the next layout leaf.
Definition: findfrm.cxx:348
const SwFrame * GetPrev() const
Definition: frame.hxx:698
SwSectionFrame * ImplFindSctFrame()
Definition: findfrm.cxx:566
bool mbDerivedR2L
Definition: frame.hxx:418
bool IsFootnoteContFrame() const
Definition: frame.hxx:1204
SwFrame * FindPrev_()
Definition: findfrm.cxx:1241
std::unique_ptr< SwSortedObjs > m_pDrawObjs
Definition: frame.hxx:413
void ImplInvalidatePrt()
Definition: wsfrm.cxx:1979
void InvalidateLineNum_()
Definition: frame.hxx:801
bool mbRetouche
Definition: frame.hxx:435
static void SetCache(SwCache *pNew)
Definition: frame.hxx:525
bool IsTextFrame() const
Definition: frame.hxx:1240
bool GetValidLineNumFlag() const
Definition: frame.hxx:768
void SetDerivedR2L(bool bNew)
Definition: frame.hxx:636
SwFrame * GetIndPrev() const
Definition: frame.hxx:730
bool IsInDtor() const
Definition: frame.hxx:898
const SwFrame * GetNext() const
Definition: frame.hxx:697
void InvalidateAll()
Definition: frame.hxx:1061
void ImplInvalidatePos()
Definition: wsfrm.cxx:1995
SwFrame * FindNext_()
Definition: findfrm.cxx:860
void InvalidateLineNum()
Definition: frame.hxx:1056
bool IsInDocBody() const
Definition: frame.hxx:949
const SwRootFrame * getRootFrame() const
Definition: frame.hxx:700
SwFlyFrame * FindFlyFrame()
Definition: frame.hxx:1117
bool IsAccessibleFrame() const
Definition: frame.hxx:1256
void ImplInvalidateSize()
Definition: wsfrm.cxx:1963
SwSectionFrame * FindSctFrame()
Definition: frame.hxx:1121
bool mbValidLineNum
Definition: frame.hxx:427
SwTabFrame * FindTabFrame()
Definition: frame.hxx:1105
SwFrame * FindNext()
Definition: frame.hxx:1147
SwFrame * GetNext()
Definition: frame.hxx:682
void ResetCompletePaint() const
Definition: frame.hxx:1004
int mnForbidDelete
Definition: frame.hxx:446
bool HasFixSize() const
Definition: frame.hxx:676
void SetDirFlags(bool bVert)
Updates the vertical or the righttoleft-flags.
Definition: findfrm.cxx:1553
virtual SwTwips ShrinkFrame(SwTwips, bool bTst=false, bool bInfo=false)=0
bool IsPageFrame() const
Definition: frame.hxx:1184
SwTabFrame * ImplFindTabFrame()
Definition: findfrm.cxx:554
const SwFrame * GetIndNext() const
Definition: frame.hxx:735
bool IsColLocked() const
Definition: frame.hxx:892
bool IsColumnFrame() const
Definition: frame.hxx:1188
bool mbCompletePaint
Definition: frame.hxx:433
const SwBodyFrame * ImplFindBodyFrame() const
Definition: findfrm.cxx:578
SwFrameType mnFrameType
Definition: frame.hxx:414
void OptCalc() const
Definition: frame.hxx:1086
void InvalidateNextPos(bool bNoFootnote=false)
Definition: frame.hxx:1078
bool IsVertLRBT() const
Definition: frame.hxx:989
void SetInfFlags()
Definition: findfrm.cxx:1516
InvalidationType
enumeration for the different invalidations #i28701#
Definition: frame.hxx:491
@ INVALID_LINENUM
Definition: frame.hxx:492
@ INVALID_ALL
Definition: frame.hxx:492
bool IsTabFrame() const
Definition: frame.hxx:1224
virtual bool InvalidationAllowed(const InvalidationType _nInvalid) const
method to determine, if an invalidation is allowed.
Definition: wsfrm.cxx:1957
void ColUnlock()
Definition: frame.hxx:449
void InvalidatePos_()
Definition: frame.hxx:793
SwFrameType GetType() const
Definition: frame.hxx:521
bool IsInFootnote() const
Definition: frame.hxx:955
virtual void dumpAsXml(xmlTextWriterPtr writer=nullptr) const =0
bool IsHeaderFrame() const
Definition: frame.hxx:1196
bool mbInvalidVert
Definition: frame.hxx:420
void ImplInvalidateLineNum()
Definition: wsfrm.cxx:2015
bool IsRetoucheFrame() const
Definition: frame.hxx:1252
const SwSortedObjs * GetDrawObjs() const
Definition: frame.hxx:568
bool IsInTab() const
Definition: frame.hxx:961
void ForbidDelete()
Definition: frame.hxx:933
void ResetRetouche() const
Definition: frame.hxx:1013
SwFrame * FindPrev()
Definition: frame.hxx:1161
bool mbVertical
Definition: frame.hxx:422
static SwCache & GetCache()
Definition: frame.hxx:523
SwLayoutFrame * mpUpper
Definition: frame.hxx:337
bool IsRightToLeft() const
Definition: frame.hxx:993
bool IsInFly() const
Definition: frame.hxx:967
virtual bool IsDeleteForbidden() const
Definition: frame.hxx:893
SwFlyFrame * ImplFindFlyFrame()
Definition: findfrm.cxx:602
bool IsFlowFrame() const
Definition: frame.hxx:1248
static SwCache * spCache
Definition: frame.hxx:334
void InvalidatePrt()
Definition: frame.hxx:1042
bool mbInfTab
Definition: frame.hxx:439
void ColLock()
Definition: frame.hxx:448
virtual void Paste(SwFrame *pParent, SwFrame *pSibling=nullptr)=0
bool m_isInDestroy
Definition: frame.hxx:445
SwFootnoteFrame * ImplFindFootnoteFrame()
Definition: findfrm.cxx:590
bool mbRightToLeft
Definition: frame.hxx:419
bool mbInfBody
Definition: frame.hxx:438
bool IsRootFrame() const
Definition: frame.hxx:1180
bool IsFooterFrame() const
Definition: frame.hxx:1200
void InvalidatePos()
Definition: frame.hxx:1049
bool IsFootnoteFrame() const
Definition: frame.hxx:1208
void ValidateLineNum()
Definition: frame.hxx:766
const SwLayoutFrame * GetUpper() const
Definition: frame.hxx:699
SwLayoutFrame * GetUpper()
Definition: frame.hxx:684
bool mbInfFly
Definition: frame.hxx:440
const SwLayoutFrame * GetNextLayoutLeaf() const
Definition: frame.hxx:1026
bool IsCompletePaint() const
Definition: frame.hxx:605
bool IsVertical() const
Definition: frame.hxx:979
bool mbColLocked
Definition: frame.hxx:443
SwFrame * mpNext
Definition: frame.hxx:338
SwRootFrame * mpRoot
Definition: frame.hxx:336
SwRootFrame * getRootFrame()
Definition: frame.hxx:685
bool IsNoTextFrame() const
Definition: frame.hxx:1244
bool IsRetouche() const
Definition: frame.hxx:609
void SetCompletePaint() const
Definition: frame.hxx:1000
bool IsFlyFrame() const
Definition: frame.hxx:1216
virtual css::uno::Sequence< css::style::TabStop > GetTabStopInfo(SwTwips)
Definition: frame.hxx:515
bool IsContentFrame() const
Definition: frame.hxx:1236
bool mbInfInvalid
Definition: frame.hxx:437
bool mbInvalidR2L
Definition: frame.hxx:417
bool mbInfSct
Definition: frame.hxx:442
void InvalidatePrt_()
Definition: frame.hxx:785
bool IsFootnoteBossFrame() const
Definition: frame.hxx:1192
SwFrame * GetPrev()
Definition: frame.hxx:683
virtual SwTwips GrowFrame(SwTwips, bool bTst=false, bool bInfo=false)=0
void InvalidateSize_()
Definition: frame.hxx:777
SwFrame * FindColFrame()
Definition: findfrm.cxx:615
bool IsSctFrame() const
Definition: frame.hxx:1220
bool IsVertLR() const
Definition: frame.hxx:985
void InvalidateSize()
Definition: frame.hxx:1035
const SwLayoutFrame * GetPrevLayoutLeaf() const
Definition: frame.hxx:1030
bool mbVertLRBT
Definition: frame.hxx:425
void SetInvalidVert(bool bNew)
Definition: frame.hxx:634
SwPageFrame * FindPageFrame()
Definition: frame.hxx:686
sw::BroadcastingModify * GetDep()
use these so we can grep for SwFrame's GetRegisteredIn accesses beware that SwTextFrame may return sw...
Definition: frame.hxx:478
void ImplInvalidateNextPos(bool bNoFootnote)
Definition: findfrm.cxx:1318
SwFrame * FindFooterOrHeader()
Definition: findfrm.cxx:633
bool mbVertLR
Definition: frame.hxx:424
SwFootnoteFrame * FindFootnoteFrame()
Definition: frame.hxx:1113
SwFrame * GetIndNext()
Definition: frame.hxx:733
virtual void ActionOnInvalidation(const InvalidationType _nInvalid)
method to perform additional actions on an invalidation
Definition: wsfrm.cxx:1951
SwSortedObjs * GetDrawObjs()
Definition: frame.hxx:569
SwFootnoteBossFrame * FindFootnoteBossFrame(bool bFootnotes=false)
Definition: findfrm.cxx:491
virtual void MakeAll(vcl::RenderContext *pRenderContext)=0
void InvalidateAll_()
Definition: frame.hxx:809
void OptPrepareMake()
Definition: calcmove.cxx:378
void SetRetouche() const
Definition: frame.hxx:1009
bool mbInfFootnote
Definition: frame.hxx:441
void AllowDelete()
Definition: frame.hxx:934
static SwCache * GetCachePtr()
Definition: frame.hxx:524
void setRootFrame(SwRootFrame *pRoot)
Definition: frame.hxx:455
void SetDerivedVert(bool bNew)
Definition: frame.hxx:633
bool IsLayoutFrame() const
Definition: frame.hxx:1176
bool IsBodyFrame() const
Definition: frame.hxx:1212
bool IsNeighbourFrame() const
Definition: frame.hxx:918
bool IsInSct() const
Definition: frame.hxx:973
A layout frame is a frame that contains other frames (m_pLower), e.g. SwPageFrame or SwTabFrame.
Definition: layfrm.hxx:36
A page of the document layout.
Definition: pagefrm.hxx:60
bool IsVert() const
Definition: frame.hxx:1372
tools::Long GetHeight(const SwRect &rRect) const
Definition: frame.hxx:1387
tools::Long YInc(tools::Long n1, tools::Long n2) const
Definition: frame.hxx:1430
void SetWidth(SwRect &rRect, tools::Long nNew) const
Definition: frame.hxx:1395
void SetPosX(SwRect &rRect, tools::Long nNew) const
Definition: frame.hxx:1405
void SetPos(SwRect &rRect, const Point &rNew) const
Definition: frame.hxx:1425
void AddHeight(SwRect &rRect, tools::Long nNew) const
Definition: frame.hxx:1403
void SetLeftAndWidth(SwRect &rRect, tools::Long nLeft, tools::Long nWidth) const
Definition: frame.hxx:1432
tools::Long GetRightMargin(const SwFrame &rFrame) const
Definition: frame.hxx:1411
tools::Long RightDist(const SwRect &rRect, tools::Long nPos) const
Definition: frame.hxx:1421
SwRectFn m_fnRect
Definition: frame.hxx:1439
tools::Long GetTopMargin(const SwFrame &rFrame) const
Definition: frame.hxx:1408
void SetBottom(SwRect &rRect, tools::Long nNew) const
Definition: frame.hxx:1392
void SetRight(SwRect &rRect, tools::Long nNew) const
Definition: frame.hxx:1394
tools::Long GetWidth(const SwRect &rRect) const
Definition: frame.hxx:1386
tools::Long TopDist(const SwRect &rRect, tools::Long nPos) const
Definition: frame.hxx:1418
void SetYMargins(SwFrame &rFrame, tools::Long nTop, tools::Long nBottom) const
Definition: frame.hxx:1413
bool m_bVert
Definition: frame.hxx:1436
void SetHeight(SwRect &rRect, tools::Long nNew) const
Definition: frame.hxx:1396
bool m_bVertL2RB2T
Definition: frame.hxx:1438
tools::Long GetTop(const SwRect &rRect) const
Definition: frame.hxx:1382
SwRectFn FnRect() const
Definition: frame.hxx:1374
void SubTop(SwRect &rRect, tools::Long nNew) const
Definition: frame.hxx:1398
Size GetSize(const SwRect &rRect) const
Definition: frame.hxx:1389
void AddWidth(SwRect &rRect, tools::Long nNew) const
Definition: frame.hxx:1402
bool IsVertL2R() const
Definition: frame.hxx:1373
tools::Long XDiff(tools::Long n1, tools::Long n2) const
Definition: frame.hxx:1427
tools::Long GetPrtRight(const SwFrame &rFrame) const
Definition: frame.hxx:1417
Point GetPos(const SwRect &rRect) const
Definition: frame.hxx:1388
void SetLimit(SwFrame &rFrame, tools::Long nNew) const
Definition: frame.hxx:1422
void SetXMargins(SwFrame &rFrame, tools::Long nLeft, tools::Long nRight) const
Definition: frame.hxx:1412
void SetPosY(SwRect &rRect, tools::Long nNew) const
Definition: frame.hxx:1406
tools::Long XInc(tools::Long n1, tools::Long n2) const
Definition: frame.hxx:1429
tools::Long LeftDist(const SwRect &rRect, tools::Long nPos) const
Definition: frame.hxx:1420
void SetTopAndHeight(SwRect &rRect, tools::Long nTop, tools::Long nHeight) const
Definition: frame.hxx:1433
tools::Long GetBottomMargin(const SwFrame &rFrame) const
Definition: frame.hxx:1409
void AddBottom(SwRect &rRect, tools::Long nNew) const
Definition: frame.hxx:1399
bool OverStep(const SwRect &rRect, tools::Long nPos) const
Definition: frame.hxx:1423
tools::Long YDiff(tools::Long n1, tools::Long n2) const
Definition: frame.hxx:1428
void SubLeft(SwRect &rRect, tools::Long nNew) const
Definition: frame.hxx:1400
tools::Long GetLeftMargin(const SwFrame &rFrame) const
Definition: frame.hxx:1410
tools::Long GetLeft(const SwRect &rRect) const
Definition: frame.hxx:1384
tools::Long GetPrtTop(const SwFrame &rFrame) const
Definition: frame.hxx:1414
void MakePos(SwFrame &rFrame, const SwFrame *pUp, const SwFrame *pPrv, bool bNotify) const
Definition: frame.hxx:1426
void AddRight(SwRect &rRect, tools::Long nNew) const
Definition: frame.hxx:1401
tools::Long GetPrtLeft(const SwFrame &rFrame) const
Definition: frame.hxx:1416
SwRectFnSet(const SwFrame *pFrame)
Definition: frame.hxx:1356
tools::Long GetBottom(const SwRect &rRect) const
Definition: frame.hxx:1383
bool m_bVertL2R
Definition: frame.hxx:1437
tools::Long BottomDist(const SwRect &rRect, tools::Long nPos) const
Definition: frame.hxx:1419
void SetTop(SwRect &rRect, tools::Long nNew) const
Definition: frame.hxx:1391
void Refresh(const SwFrame *pFrame)
Definition: frame.hxx:1364
tools::Long GetRight(const SwRect &rRect) const
Definition: frame.hxx:1385
tools::Long GetPrtBottom(const SwFrame &rFrame) const
Definition: frame.hxx:1415
void SetLeft(SwRect &rRect, tools::Long nNew) const
Definition: frame.hxx:1393
bool PosDiff(const SwRect &rRect1, const SwRect &rRect2) const
Definition: frame.hxx:1376
Of course Writer needs its own rectangles.
Definition: swrect.hxx:35
The root element of a Writer document layout.
Definition: rootfrm.hxx:85
SwRowFrame is one table row in the document layout.
Definition: rowfrm.hxx:29
This class is used as parameter for creation of a block cursor selection.
class for collecting anchored objects
Definition: sortedobjs.hxx:49
SwTabFrame is one table in the document layout, containing rows (which contain cells).
Definition: tabfrm.hxx:49
Represents the visualization of a paragraph.
Definition: txtfrm.hxx:168
RotateFlyFrame3: Helper class when you want to make your SwFrame derivate transformable.
Definition: frame.hxx:236
SwRect getUntransformedFramePrintArea() const
Definition: wsfrm.cxx:191
TransformableSwFrame(SwFrameAreaDefinition &rSwFrameAreaDefinition)
Definition: frame.hxx:247
void adaptFrameAreasToTransformations()
Definition: wsfrm.cxx:236
void restoreFrameAreas()
Definition: wsfrm.cxx:271
SwFrameAreaDefinition & mrSwFrameAreaDefinition
Definition: frame.hxx:239
const basegfx::B2DHomMatrix & getLocalFrameAreaTransformation() const
Definition: frame.hxx:255
void transform(const basegfx::B2DHomMatrix &aTransform)
Definition: wsfrm.cxx:289
basegfx::B2DHomMatrix maFramePrintAreaTransformation
Definition: frame.hxx:244
basegfx::B2DHomMatrix maFrameAreaTransformation
Definition: frame.hxx:243
SwRect getUntransformedFrameArea() const
Definition: wsfrm.cxx:167
const basegfx::B2DHomMatrix & getLocalFramePrintAreaTransformation() const
Definition: frame.hxx:261
void createFrameAreaTransformations(double fRotation, const basegfx::B2DPoint &rCenter)
Definition: wsfrm.cxx:216
@ Shrink
struct _xmlTextWriter * xmlTextWriterPtr
FilterGroup & rTarget
FormulaTreeNodeRef mpRoot
bool(SwFrame::* SwFrameMax)(tools::Long)
Definition: frame.hxx:1289
SwRectFn fnRectVert
Definition: frame.hxx:1353
#define FRM_CNTNT
Definition: frame.hxx:103
void(SwFrame::* SwFrameSet)(tools::Long, tools::Long)
Definition: frame.hxx:1292
#define FRM_FTNBOSS
Definition: frame.hxx:104
SwFrameInvFlags
Definition: frame.hxx:293
SwRectFnCollection * SwRectFn
Definition: frame.hxx:1350
tools::Long(* SwOperator)(tools::Long, tools::Long)
Definition: frame.hxx:1291
SwFrameType
Definition: frame.hxx:75
#define FRM_NEIGHBOUR
Definition: frame.hxx:106
void(SwFrame::* SwFrameMakePos)(const SwFrame *, const SwFrame *, bool)
Definition: frame.hxx:1290
#define FRM_LAYOUT
Definition: frame.hxx:101
SwRectFn fnRectVertL2RB2T
Definition: frame.hxx:1353
tools::Long(SwFrame::* SwFrameGet)() const
Definition: frame.hxx:1288
MakePageType
Definition: frame.hxx:113
@ MAKEPAGE_INSERT
Definition: frame.hxx:116
@ MAKEPAGE_FTN
Definition: frame.hxx:117
@ MAKEPAGE_NONE
Definition: frame.hxx:114
@ MAKEPAGE_NOSECTION
Definition: frame.hxx:118
@ MAKEPAGE_APPEND
Definition: frame.hxx:115
SwRectFn fnRectHori
Definition: newfrm.cxx:287
#define FRM_ACCESSIBLE
Definition: frame.hxx:105
SwRectFn fnRectVertL2R
Definition: frame.hxx:1353
SvxFrameDirection
void ValidateText(SwFrame *pFrame)
Definition: frmform.cxx:75
void RestoreContent(SwFrame *pSav, SwLayoutFrame *pParent, SwFrame *pSibling)
Definition: frmtool.cxx:3035
SwFrame * SaveContent(SwLayoutFrame *pLay, SwFrame *pStart=nullptr)
Definition: frmtool.cxx:2873
static bool bFootnote
Definition: insfnote.cxx:33
sal_uInt16 nPos
int n2
int n1
NONE
std::shared_ptr< SdrAllFillAttributesHelper > SdrAllFillAttributesHelperPtr
Definition: format.hxx:41
Header
None
Footer
long Long
Marks a position in the document model.
Definition: pam.hxx:38
SwFrameGet fnGetPrtTop
Definition: frame.hxx:1328
SwOperator fnYDiff
Definition: frame.hxx:1342
SwRectSet fnSetBottom
Definition: frame.hxx:1306
SwRectSet fnSetTop
Definition: frame.hxx:1305
SwRectSet fnSetWidth
Definition: frame.hxx:1309
SwFrameGet fnGetPrtLeft
Definition: frame.hxx:1330
SwRectGet fnGetWidth
Definition: frame.hxx:1300
SwRectGet fnGetLeft
Definition: frame.hxx:1298
SwFrameMax fnSetLimit
Definition: frame.hxx:1336
SwRectDist fnLeftDist
Definition: frame.hxx:1334
SwRectDist fnBottomDist
Definition: frame.hxx:1333
SwFrameGet fnGetLeftMargin
Definition: frame.hxx:1324
SwRectGet fnGetBottom
Definition: frame.hxx:1297
SwRectSet fnAddWidth
Definition: frame.hxx:1316
SwRectSet fnSetLeft
Definition: frame.hxx:1307
SwRectSet fnSetRight
Definition: frame.hxx:1308
SwFrameSet fnSetYMargins
Definition: frame.hxx:1327
SwRectSet fnSetPosX
Definition: frame.hxx:1319
SwFrameGet fnGetBottomMargin
Definition: frame.hxx:1323
SwRectSet fnAddHeight
Definition: frame.hxx:1317
SwFrameGet fnGetTopMargin
Definition: frame.hxx:1322
SwRectSetTwice fnSetLeftAndWidth
Definition: frame.hxx:1346
SwRectSet fnAddRight
Definition: frame.hxx:1315
SwRectSet fnSetPosY
Definition: frame.hxx:1320
SwRectSize fnGetSize
Definition: frame.hxx:1303
SwFrameMakePos fnMakePos
Definition: frame.hxx:1340
SwRectSet fnSubTop
Definition: frame.hxx:1312
SwRectDist fnRightDist
Definition: frame.hxx:1335
SwRectGet fnGetHeight
Definition: frame.hxx:1301
SwRectSet fnSetHeight
Definition: frame.hxx:1310
SwRectPoint fnGetPos
Definition: frame.hxx:1302
SwOperator fnYInc
Definition: frame.hxx:1344
SwRectDist fnTopDist
Definition: frame.hxx:1332
SwRectGet fnGetRight
Definition: frame.hxx:1299
SwRectSet fnAddBottom
Definition: frame.hxx:1313
SwFrameSet fnSetXMargins
Definition: frame.hxx:1326
SwFrameGet fnGetPrtBottom
Definition: frame.hxx:1329
SwRectGet fnGetTop
Definition: frame.hxx:1296
SwFrameGet fnGetPrtRight
Definition: frame.hxx:1331
SwRectMax fnOverStep
Definition: frame.hxx:1337
SwRectSet fnSubLeft
Definition: frame.hxx:1314
SwRectSetPos fnSetPos
Definition: frame.hxx:1339
SwOperator fnXInc
Definition: frame.hxx:1343
SwOperator fnXDiff
Definition: frame.hxx:1341
SwFrameGet fnGetRightMargin
Definition: frame.hxx:1325
SwRectSetTwice fnSetTopAndHeight
Definition: frame.hxx:1347
#define SW_DLLPUBLIC
Definition: swdllapi.h:28
tools::Long(SwRect::* SwRectDist)(tools::Long) const
Definition: swrect.hxx:161
tools::Long(SwRect::* SwRectGet)() const
Definition: swrect.hxx:157
bool(SwRect::* SwRectMax)(tools::Long) const
Definition: swrect.hxx:160
Point(SwRect::* SwRectPoint)() const
Definition: swrect.hxx:158
void(SwRect::* SwRectSetTwice)(tools::Long, tools::Long)
Definition: swrect.hxx:162
void(SwRect::* SwRectSetPos)(const Point &)
Definition: swrect.hxx:163
Size(SwRect::* SwRectSize)() const
Definition: swrect.hxx:159
void(SwRect::* SwRectSet)(const tools::Long nNew)
Definition: swrect.hxx:156
tools::Long SwTwips
Definition: swtypes.hxx:51
PrepareHint
Definition: swtypes.hxx:206
void FriendHackInvalidateRowFrame(SwFrameAreaDefinition &rRowFrame)
Definition: tabfrm.cxx:1886
SwFrame * sw_FormatNextContentForKeep(SwTabFrame *pTabFrame)
Definition: tabfrm.cxx:1835
css::uno::Reference< css::i18n::XExtendedTransliteration > Body
unsigned char sal_uInt8
Page
static tools::Long GetLeftMargin(SwView const &rView)
Definition: viewport.cxx:66