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();
460 virtual void MakePos();
461 // Format next frame of table frame to assure keeping attributes.
462 // In case of nested tables method <SwFrame::MakeAll()> is called to
463 // avoid formatting of superior table frame.
464 friend SwFrame* sw_FormatNextContentForKeep( SwTabFrame* pTabFrame );
465
466 virtual void MakeAll(vcl::RenderContext* pRenderContext) = 0;
467 // adjust frames of a page
468 SwTwips AdjustNeighbourhood( SwTwips nDiff, bool bTst = false );
469
470 // change only frame size not the size of PrtArea
471 virtual SwTwips ShrinkFrame( SwTwips, bool bTst = false, bool bInfo = false ) = 0;
472 virtual SwTwips GrowFrame ( SwTwips, bool bTst = false, bool bInfo = false ) = 0;
473
477 { return static_cast<sw::BroadcastingModify*>(GetRegisteredInNonConst()); }
479 { return static_cast<const sw::BroadcastingModify*>(GetRegisteredIn()); }
480
482
483 void CheckDir( SvxFrameDirection nDir, bool bVert, bool bOnlyBiDi, bool bBrowse );
484
489 {
490 INVALID_SIZE, INVALID_PRTAREA, INVALID_POS, INVALID_LINENUM, INVALID_ALL
491 };
492
496 virtual bool InvalidationAllowed( const InvalidationType _nInvalid ) const;
497
504 virtual void ActionOnInvalidation( const InvalidationType _nInvalid );
505
506 // draw shadow and borders
507 void PaintShadow( const SwRect&, SwRect&, const SwBorderAttrs& ) const;
508 virtual void SwClientNotify(const SwModify&, const SfxHint&) override;
509
510 virtual const IDocumentDrawModelAccess& getIDocumentDrawModelAccess( );
511
512public:
513 virtual css::uno::Sequence< css::style::TabStop > GetTabStopInfo( SwTwips )
514 {
515 return css::uno::Sequence< css::style::TabStop >();
516 }
517
518
519 SwFrameType GetType() const { return mnFrameType; }
520
521 static SwCache &GetCache() { return *spCache; }
522 static SwCache *GetCachePtr() { return spCache; }
523 static void SetCache( SwCache *pNew ) { spCache = pNew; }
524
525 // change PrtArea size and FrameSize
526 SwTwips Shrink( SwTwips, bool bTst = false, bool bInfo = false );
527 SwTwips Grow ( SwTwips, bool bTst = false, bool bInfo = false );
528
529 // different methods for inserting in layout tree (for performance reasons)
530
531 // insert before pBehind or at the end of the chain below mpUpper
532 void InsertBefore( SwLayoutFrame* pParent, SwFrame* pBehind );
533 // insert after pBefore or at the beginning of the chain below mpUpper
534 void InsertBehind( SwLayoutFrame *pParent, SwFrame *pBefore );
535 // insert before pBehind or at the end of the chain while considering
536 // the siblings of pSct
537 bool InsertGroupBefore( SwFrame* pParent, SwFrame* pWhere, SwFrame* pSct );
538 void RemoveFromLayout();
539
540 // For internal use only - who ignores this will be put in a sack and has
541 // to stay there for two days
542 // Does special treatment for Get_[Next|Prev]Leaf() (for tables).
543 SwLayoutFrame *GetLeaf( MakePageType eMakePage, bool bFwd );
544 SwLayoutFrame *GetNextLeaf ( MakePageType eMakePage );
545 SwLayoutFrame *GetNextFootnoteLeaf( MakePageType eMakePage );
546 SwLayoutFrame *GetNextSctLeaf( MakePageType eMakePage );
547 SwLayoutFrame *GetNextCellLeaf();
548 SwLayoutFrame *GetPrevLeaf ();
549 SwLayoutFrame *GetPrevFootnoteLeaf( MakePageType eMakeFootnote );
550 SwLayoutFrame *GetPrevSctLeaf();
551 SwLayoutFrame *GetPrevCellLeaf();
552 const SwLayoutFrame *GetLeaf ( MakePageType eMakePage, bool bFwd,
553 const SwFrame *pAnch ) const;
554
555 bool WrongPageDesc( SwPageFrame* pNew );
556
557 //#i28701# - new methods to append/remove drawing objects
558 void AppendDrawObj( SwAnchoredObject& _rNewObj );
559 void RemoveDrawObj( SwAnchoredObject& _rToRemoveObj );
560
561 // work with chain of FlyFrames
562 void AppendFly( SwFlyFrame *pNew );
563 void RemoveFly( SwFlyFrame *pToRemove );
564 const SwSortedObjs *GetDrawObjs() const { return m_pDrawObjs.get(); }
565 SwSortedObjs *GetDrawObjs() { return m_pDrawObjs.get(); }
566 void SetDrawObjsAsDeleted( bool bDeleted ); // change tracking of objects anchored to character
567 // #i28701# - change purpose of method and adjust its name
568 void InvalidateObjs( const bool _bNoInvaOfAsCharAnchoredObjs = true );
569
570 virtual void PaintSwFrameShadowAndBorder(
571 const SwRect&,
572 const SwPageFrame* pPage,
573 const SwBorderAttrs&) const;
574 void PaintBaBo( const SwRect&, const SwPageFrame *pPage,
575 const bool bOnlyTextBackground = false) const;
576 void PaintSwFrameBackground( const SwRect&, const SwPageFrame *pPage,
577 const SwBorderAttrs &,
578 const bool bLowerMode = false,
579 const bool bLowerBorder = false,
580 const bool bOnlyTextBackground = false ) const;
581 void PaintBorderLine( const SwRect&, const SwRect&, const SwPageFrame*,
582 const Color *pColor,
583 const SvxBorderLineStyle = SvxBorderLineStyle::SOLID ) const;
584
585 std::unique_ptr<drawinglayer::processor2d::BaseProcessor2D> CreateProcessor2D( ) const;
586 void ProcessPrimitives( const drawinglayer::primitive2d::Primitive2DContainer& rSequence ) const;
587
588 // retouch, not in the area of the given Rect!
589 void Retouch( const SwPageFrame *pPage, const SwRect &rRect ) const;
590
591 bool GetBackgroundBrush(
593 const SvxBrushItem*& rpBrush,
594 std::optional<Color>& rxColor,
595 SwRect &rOrigRect,
596 bool bLowerMode,
597 bool bConsiderTextBox ) const;
598
599 inline void SetCompletePaint() const;
600 inline void ResetCompletePaint() const;
601 bool IsCompletePaint() const { return mbCompletePaint; }
602
603 inline void SetRetouche() const;
604 inline void ResetRetouche() const;
605 bool IsRetouche() const { return mbRetouche; }
606
607 void SetInfFlags();
608 void InvalidateInfFlags() { mbInfInvalid = true; }
609 inline bool IsInDocBody() const; // use InfoFlags, determine flags
610 inline bool IsInFootnote() const; // if necessary
611 inline bool IsInTab() const;
612 inline bool IsInFly() const;
613 inline bool IsInSct() const;
614
615 // If frame is inside a split table row, this function returns
616 // the corresponding row frame in the follow table.
617 const SwRowFrame* IsInSplitTableRow() const;
618
619 // If frame is inside a follow flow row, this function returns
620 // the corresponding row frame master table
621 const SwRowFrame* IsInFollowFlowRow() const;
622
623 bool IsInBalancedSection() const;
624
625 inline bool IsVertical() const;
626 inline bool IsVertLR() const;
627 inline bool IsVertLRBT() const;
628
629 void SetDerivedVert( bool bNew ){ mbDerivedVert = bNew; }
630 void SetInvalidVert( bool bNew) { mbInvalidVert = bNew; }
631 inline bool IsRightToLeft() const;
632 void SetDerivedR2L( bool bNew ) { mbDerivedR2L = bNew; }
633
634 void CheckDirChange();
635 // returns upper left frame position for LTR and
636 // upper right frame position for Asian / RTL frames
637 Point GetFrameAnchorPos( bool bIgnoreFlysAnchoredAtThisFrame ) const;
638
652 bool IsMoveable( const SwLayoutFrame* _pLayoutFrame = nullptr ) const;
653
654 // Is it permitted for the (Text)Frame to add a footnote in the current
655 // environment (not e.g. for repeating table headlines)
656 bool IsFootnoteAllowed() const;
657
658 virtual void Format( vcl::RenderContext* pRenderContext, const SwBorderAttrs *pAttrs = nullptr );
659
660 virtual void CheckDirection( bool bVert );
661
662 void ReinitializeFrameSizeAttrFlags();
663
666 const SwAttrSet *GetAttrSet() const;
667 virtual const SvxFormatBreakItem& GetBreakItem() const;
668 virtual const SwFormatPageDesc& GetPageDescItem() const;
669
670 bool HasFixSize() const { return mbFixSize; }
671
672 // check all pages (starting from the given) and correct them if needed
673 static void CheckPageDescs( SwPageFrame *pStart, bool bNotifyFields = true, SwPageFrame** ppPrev = nullptr);
674
675 // might return 0, with and without const
676 SwFrame *GetNext() { return mpNext; }
677 SwFrame *GetPrev() { return mpPrev; }
678 SwLayoutFrame *GetUpper() { return mpUpper; }
680 SwPageFrame *FindPageFrame() { return IsPageFrame() ? reinterpret_cast<SwPageFrame*>(this) : ImplFindPageFrame(); }
681 SwFrame *FindColFrame();
682 SwRowFrame *FindRowFrame();
683 SwFootnoteBossFrame *FindFootnoteBossFrame( bool bFootnotes = false );
684 SwTabFrame *ImplFindTabFrame();
685 SwFootnoteFrame *ImplFindFootnoteFrame();
686 SwFlyFrame *ImplFindFlyFrame();
687 SwSectionFrame *ImplFindSctFrame();
688 const SwBodyFrame *ImplFindBodyFrame() const;
689 SwFrame *FindFooterOrHeader();
690 SwFrame *GetLower();
691 const SwFrame *GetNext() const { return mpNext; }
692 const SwFrame *GetPrev() const { return mpPrev; }
693 const SwLayoutFrame *GetUpper() const { return mpUpper; }
694 const SwRootFrame *getRootFrame() const { return mpRoot; }
695 inline SwTabFrame *FindTabFrame();
696 inline SwFootnoteFrame *FindFootnoteFrame();
697 inline SwFlyFrame *FindFlyFrame();
698 inline SwSectionFrame *FindSctFrame();
699 inline SwFrame *FindNext();
700 // #i27138# - add parameter <_bInSameFootnote>
701 SwContentFrame* FindNextCnt( const bool _bInSameFootnote = false );
702 inline SwFrame *FindPrev();
703 inline const SwPageFrame *FindPageFrame() const;
704 inline const SwFootnoteBossFrame *FindFootnoteBossFrame( bool bFootnote = false ) const;
705 inline const SwFrame *FindColFrame() const;
706 inline const SwFrame *FindFooterOrHeader() const;
707 inline const SwTabFrame *FindTabFrame() const;
708 inline const SwFootnoteFrame *FindFootnoteFrame() const;
709 inline const SwFlyFrame *FindFlyFrame() const;
710 inline const SwSectionFrame *FindSctFrame() const;
711 inline const SwBodyFrame *FindBodyFrame() const;
712 inline const SwFrame *FindNext() const;
713 // #i27138# - add parameter <_bInSameFootnote>
714 const SwContentFrame* FindNextCnt( const bool _bInSameFootnote = false ) const;
715 inline const SwFrame *FindPrev() const;
716 const SwFrame *GetLower() const;
717
718 SwContentFrame* FindPrevCnt();
719
720 const SwContentFrame* FindPrevCnt() const;
721
722 // #i79774#
723 SwFrame* GetIndPrev_() const;
725 { return ( mpPrev || !IsInSct() ) ? mpPrev : GetIndPrev_(); }
726
728 { return ( mpNext || !IsInSct() ) ? mpNext : GetIndNext_(); }
729 const SwFrame* GetIndNext() const { return const_cast<SwFrame*>(this)->GetIndNext(); }
730
731 sal_uInt16 GetPhyPageNum() const; // page number without offset
732 sal_uInt16 GetVirtPageNum() const; // page number with offset
733 bool OnRightPage() const { return 0 != GetPhyPageNum() % 2; };
734 bool WannaRightPage() const;
735 bool OnFirstPage() const;
736
737 inline const SwLayoutFrame *GetPrevLayoutLeaf() const;
738 inline const SwLayoutFrame *GetNextLayoutLeaf() const;
739 inline SwLayoutFrame *GetPrevLayoutLeaf();
740 inline SwLayoutFrame *GetNextLayoutLeaf();
741
742 virtual void Calc(vcl::RenderContext* pRenderContext) const; // here might be "formatted"
743 inline void OptCalc() const; // here we assume (for optimization) that
744 // the predecessors are already formatted
745 Point GetRelPos() const;
746
747 // PaintArea is the area where content might be displayed.
748 // The margin of a page or the space between columns belongs to it.
749 SwRect GetPaintArea() const;
750
751 // UnionFrame is the union of Frame- and PrtArea, normally identical
752 // to the FrameArea except in case of negative Prt margins.
753 SwRect UnionFrame( bool bBorder = false ) const;
754
755 virtual Size ChgSize( const Size& aNewSize );
756
757 virtual void Cut() = 0;
758 virtual void Paste( SwFrame* pParent, SwFrame* pSibling = nullptr ) = 0;
759
760 void ValidateLineNum() { mbValidLineNum = true; }
761
762 bool GetValidLineNumFlag()const { return mbValidLineNum; }
763
764 // Only invalidate Frame
765 // #i28701# - add call to method <ActionOnInvalidation(..)>
766 // for all invalidation methods.
767 // #i28701# - use method <InvalidationAllowed(..)> to
768 // decide, if invalidation will to be performed or not.
769 // #i26945# - no additional invalidation, if it's already
770 // invalidate.
772 {
773 if ( isFrameAreaSizeValid() && InvalidationAllowed( INVALID_SIZE ) )
774 {
776 ActionOnInvalidation( INVALID_SIZE );
777 }
778 }
780 {
781 if ( isFramePrintAreaValid() && InvalidationAllowed( INVALID_PRTAREA ) )
782 {
784 ActionOnInvalidation( INVALID_PRTAREA );
785 }
786 }
788 {
789 if ( isFrameAreaPositionValid() && InvalidationAllowed( INVALID_POS ) )
790 {
792 ActionOnInvalidation( INVALID_POS );
793 }
794 }
796 {
797 if ( mbValidLineNum && InvalidationAllowed( INVALID_LINENUM ) )
798 {
799 mbValidLineNum = false;
800 ActionOnInvalidation( INVALID_LINENUM );
801 }
802 }
804 {
805 if ( ( isFrameAreaSizeValid() || isFramePrintAreaValid() || isFrameAreaPositionValid() ) && InvalidationAllowed( INVALID_ALL ) )
806 {
810 ActionOnInvalidation( INVALID_ALL );
811 }
812 }
813 // also notify page at the same time
814 inline void InvalidateSize();
815 inline void InvalidatePrt();
816 inline void InvalidatePos();
817 inline void InvalidateLineNum();
818 inline void InvalidateAll();
819 void ImplInvalidateSize();
820 void ImplInvalidatePrt();
821 void ImplInvalidatePos();
822 void ImplInvalidateLineNum();
823
824 inline void InvalidateNextPos( bool bNoFootnote = false );
825 void ImplInvalidateNextPos( bool bNoFootnote );
826
830 void InvalidateNextPrtArea();
831
832 void InvalidatePage( const SwPageFrame *pPage = nullptr ) const;
833
834 virtual bool FillSelection( SwSelectionList& rList, const SwRect& rRect ) const;
835
836 virtual bool GetModelPositionForViewPoint( SwPosition *, Point&,
837 SwCursorMoveState* = nullptr, bool bTestBackground = false ) const;
838 virtual bool GetCharRect( SwRect &, const SwPosition&,
839 SwCursorMoveState* = nullptr, bool bAllowFarAway = true ) const;
840 virtual void PaintSwFrame( vcl::RenderContext& rRenderContext, SwRect const&,
841 SwPrintData const*const pPrintData = nullptr ) const;
842
843 // HACK: shortcut between frame and formatting
844 // It's your own fault if you cast void* incorrectly! In any case check
845 // the void* for 0.
846 virtual bool Prepare( const PrepareHint ePrep = PrepareHint::Clear,
847 const void *pVoid = nullptr, bool bNotify = true );
848
849 // true if it is the correct class, false otherwise
850 inline bool IsLayoutFrame() const;
851 inline bool IsRootFrame() const;
852 inline bool IsPageFrame() const;
853 inline bool IsColumnFrame() const;
854 inline bool IsFootnoteBossFrame() const; // footnote bosses might be PageFrames or ColumnFrames
855 inline bool IsHeaderFrame() const;
856 inline bool IsFooterFrame() const;
857 inline bool IsFootnoteContFrame() const;
858 inline bool IsFootnoteFrame() const;
859 inline bool IsBodyFrame() const;
860 inline bool IsColBodyFrame() const; // implemented in layfrm.hxx, BodyFrame above ColumnFrame
861 inline bool IsPageBodyFrame() const; // implemented in layfrm.hxx, BodyFrame above PageFrame
862 inline bool IsFlyFrame() const;
863 inline bool IsSctFrame() const;
864 inline bool IsTabFrame() const;
865 inline bool IsRowFrame() const;
866 inline bool IsCellFrame() const;
867 inline bool IsContentFrame() const;
868 inline bool IsTextFrame() const;
869 SwTextFrame* DynCastTextFrame();
870 const SwTextFrame* DynCastTextFrame() const;
871 inline bool IsNoTextFrame() const;
872 // Frames where its PrtArea depends on their neighbors and that are
873 // positioned in the content flow
874 inline bool IsFlowFrame() const;
875 // Frames that are capable of retouching or that might need to retouch behind
876 // themselves
877 inline bool IsRetoucheFrame() const;
878 inline bool IsAccessibleFrame() const;
879
880 void PrepareCursor(); // CursorShell is allowed to call this
881
882 // Is the Frame (or the section containing it) protected? Same for Fly in
883 // Fly in ... and footnotes
884 bool IsProtected() const;
885
886 bool IsColLocked() const { return mbColLocked; }
887 virtual bool IsDeleteForbidden() const { return mnForbidDelete > 0; }
888
890 static void DestroyFrame(SwFrame *const pFrame);
891
892 bool IsInDtor() const { return mbInDtor; }
893
894 // No inline cause we need the function pointers
895 tools::Long GetTopMargin() const;
896 tools::Long GetBottomMargin() const;
898 tools::Long GetRightMargin() const;
899 void SetTopBottomMargins( tools::Long, tools::Long );
900 void SetLeftRightMargins( tools::Long, tools::Long );
901 void SetRightLeftMargins( tools::Long, tools::Long );
902 tools::Long GetPrtLeft() const;
903 tools::Long GetPrtBottom() const;
904 tools::Long GetPrtRight() const;
905 tools::Long GetPrtTop() const;
906 bool SetMinLeft( tools::Long );
907 bool SetMaxBottom( tools::Long );
908 bool SetMaxRight( tools::Long );
909 void MakeBelowPos( const SwFrame*, const SwFrame*, bool );
910 void MakeLeftPos( const SwFrame*, const SwFrame*, bool );
911 void MakeRightPos( const SwFrame*, const SwFrame*, bool );
912 bool IsNeighbourFrame() const
913 { return bool(GetType() & FRM_NEIGHBOUR); }
914
915 // NEW TABLES
916 // Some functions for covered/covering table cells. This way unnecessary
917 // includes can be avoided
918 virtual bool IsLeaveUpperAllowed() const;
919 virtual bool IsCoveredCell() const;
920 bool IsInCoveredCell() const;
921
922 // #i81146# new loop control
923 bool KnowsFormat( const SwFormat& rFormat ) const;
924 void RegisterToFormat( SwFormat& rFormat );
925 void ValidateThisAndAllLowers( const sal_uInt16 nStage );
926
927 void ForbidDelete() { ++mnForbidDelete; }
928 void AllowDelete() { assert(mnForbidDelete > 0); --mnForbidDelete; }
929
930 drawinglayer::attribute::SdrAllFillAttributesHelperPtr getSdrAllFillAttributesHelper() const;
931 bool supportsFullDrawingLayerFillAttributeSet() const;
932
933public:
934 // if writer is NULL, dumps the layout structure as XML in layout.xml
935 virtual void dumpAsXml(xmlTextWriterPtr writer = nullptr) const;
936 void dumpTopMostAsXml(xmlTextWriterPtr writer = nullptr) const;
937 void dumpInfosAsXml(xmlTextWriterPtr writer) const;
938 virtual void dumpAsXmlAttributes(xmlTextWriterPtr writer) const;
939 void dumpChildrenAsXml(xmlTextWriterPtr writer) const;
940 bool IsCollapse() const;
941};
942
943inline bool SwFrame::IsInDocBody() const
944{
945 if ( mbInfInvalid )
946 const_cast<SwFrame*>(this)->SetInfFlags();
947 return mbInfBody;
948}
949inline bool SwFrame::IsInFootnote() const
950{
951 if ( mbInfInvalid )
952 const_cast<SwFrame*>(this)->SetInfFlags();
953 return mbInfFootnote;
954}
955inline bool SwFrame::IsInTab() const
956{
957 if ( mbInfInvalid )
958 const_cast<SwFrame*>(this)->SetInfFlags();
959 return mbInfTab;
960}
961inline bool SwFrame::IsInFly() const
962{
963 if ( mbInfInvalid )
964 const_cast<SwFrame*>(this)->SetInfFlags();
965 return mbInfFly;
966}
967inline bool SwFrame::IsInSct() const
968{
969 if ( mbInfInvalid )
970 const_cast<SwFrame*>(this)->SetInfFlags();
971 return mbInfSct;
972}
974{
975 if( mbInvalidVert )
976 const_cast<SwFrame*>(this)->SetDirFlags( true );
977 return mbVertical;
978}
979inline bool SwFrame::IsVertLR() const
980{
981 return mbVertLR;
982}
983inline bool SwFrame::IsVertLRBT() const
984{
985 return mbVertLRBT;
986}
987inline bool SwFrame::IsRightToLeft() const
988{
989 if( mbInvalidR2L )
990 const_cast<SwFrame*>(this)->SetDirFlags( false );
991 return mbRightToLeft;
992}
993
994inline void SwFrame::SetCompletePaint() const
995{
996 const_cast<SwFrame*>(this)->mbCompletePaint = true;
997}
999{
1000 const_cast<SwFrame*>(this)->mbCompletePaint = false;
1001}
1002
1003inline void SwFrame::SetRetouche() const
1004{
1005 const_cast<SwFrame*>(this)->mbRetouche = true;
1006}
1007inline void SwFrame::ResetRetouche() const
1008{
1009 const_cast<SwFrame*>(this)->mbRetouche = false;
1010}
1011
1013{
1014 return const_cast<SwLayoutFrame*>(static_cast<const SwFrame*>(this)->GetNextLayoutLeaf());
1015}
1017{
1018 return const_cast<SwLayoutFrame*>(static_cast<const SwFrame*>(this)->GetPrevLayoutLeaf());
1019}
1021{
1022 return ImplGetNextLayoutLeaf( true );
1023}
1025{
1026 return ImplGetNextLayoutLeaf( false );
1027}
1028
1030{
1031 if ( isFrameAreaSizeValid() )
1032 {
1034 }
1035}
1037{
1038 if ( isFramePrintAreaValid() )
1039 {
1041 }
1042}
1044{
1046 {
1048 }
1049}
1051{
1052 if ( mbValidLineNum )
1054}
1056{
1058 {
1060 {
1062 }
1063
1064 setFrameAreaSizeValid(false);
1067
1068 // #i28701#
1070 }
1071}
1072inline void SwFrame::InvalidateNextPos( bool bNoFootnote )
1073{
1074 if ( mpNext && !mpNext->IsSctFrame() )
1076 else
1077 ImplInvalidateNextPos( bNoFootnote );
1078}
1079
1080inline void SwFrame::OptCalc() const
1081{
1083 {
1084 const_cast<SwFrame*>(this)->OptPrepareMake();
1085 }
1086}
1088{
1089 return const_cast<SwFrame*>(this)->FindPageFrame();
1090}
1091inline const SwFrame *SwFrame::FindColFrame() const
1092{
1093 return const_cast<SwFrame*>(this)->FindColFrame();
1094}
1096{
1097 return const_cast<SwFrame*>(this)->FindFooterOrHeader();
1098}
1100{
1101 return IsInTab() ? ImplFindTabFrame() : nullptr;
1102}
1104{
1105 return const_cast<SwFrame*>(this)->FindFootnoteBossFrame( bFootnote );
1106}
1108{
1109 return IsInFootnote() ? ImplFindFootnoteFrame() : nullptr;
1110}
1112{
1113 return IsInFly() ? ImplFindFlyFrame() : nullptr;
1114}
1116{
1117 return IsInSct() ? ImplFindSctFrame() : nullptr;
1118}
1119
1121{
1122 return IsInDocBody() ? ImplFindBodyFrame() : nullptr;
1123}
1124
1126{
1127 return IsInTab() ? const_cast<SwFrame*>(this)->ImplFindTabFrame() : nullptr;
1128}
1130{
1131 return IsInFootnote() ? const_cast<SwFrame*>(this)->ImplFindFootnoteFrame() : nullptr;
1132}
1134{
1135 return IsInFly() ? const_cast<SwFrame*>(this)->ImplFindFlyFrame() : nullptr;
1136}
1138{
1139 return IsInSct() ? const_cast<SwFrame*>(this)->ImplFindSctFrame() : nullptr;
1140}
1142{
1143 if ( mpNext )
1144 return mpNext;
1145 else
1146 return FindNext_();
1147}
1148inline const SwFrame *SwFrame::FindNext() const
1149{
1150 if ( mpNext )
1151 return mpNext;
1152 else
1153 return const_cast<SwFrame*>(this)->FindNext_();
1154}
1156{
1157 if ( mpPrev && !mpPrev->IsSctFrame() )
1158 return mpPrev;
1159 else
1160 return FindPrev_();
1161}
1162inline const SwFrame *SwFrame::FindPrev() const
1163{
1164 if ( mpPrev && !mpPrev->IsSctFrame() )
1165 return mpPrev;
1166 else
1167 return const_cast<SwFrame*>(this)->FindPrev_();
1168}
1169
1170inline bool SwFrame::IsLayoutFrame() const
1171{
1172 return bool(GetType() & FRM_LAYOUT);
1173}
1174inline bool SwFrame::IsRootFrame() const
1175{
1177}
1178inline bool SwFrame::IsPageFrame() const
1179{
1181}
1182inline bool SwFrame::IsColumnFrame() const
1183{
1185}
1187{
1188 return bool(GetType() & FRM_FTNBOSS);
1189}
1190inline bool SwFrame::IsHeaderFrame() const
1191{
1193}
1194inline bool SwFrame::IsFooterFrame() const
1195{
1197}
1199{
1201}
1202inline bool SwFrame::IsFootnoteFrame() const
1203{
1204 return mnFrameType == SwFrameType::Ftn;
1205}
1206inline bool SwFrame::IsBodyFrame() const
1207{
1209}
1210inline bool SwFrame::IsFlyFrame() const
1211{
1212 return mnFrameType == SwFrameType::Fly;
1213}
1214inline bool SwFrame::IsSctFrame() const
1215{
1217}
1218inline bool SwFrame::IsTabFrame() const
1219{
1220 return mnFrameType == SwFrameType::Tab;
1221}
1222inline bool SwFrame::IsRowFrame() const
1223{
1224 return mnFrameType == SwFrameType::Row;
1225}
1226inline bool SwFrame::IsCellFrame() const
1227{
1229}
1230inline bool SwFrame::IsContentFrame() const
1231{
1232 return bool(GetType() & FRM_CNTNT);
1233}
1234inline bool SwFrame::IsTextFrame() const
1235{
1236 return mnFrameType == SwFrameType::Txt;
1237}
1238inline bool SwFrame::IsNoTextFrame() const
1239{
1241}
1242inline bool SwFrame::IsFlowFrame() const
1243{
1245}
1246inline bool SwFrame::IsRetoucheFrame() const
1247{
1249}
1251{
1252 return bool(GetType() & FRM_ACCESSIBLE);
1253}
1254
1255//use this to protect a SwFrame for a given scope from getting deleted
1257{
1258private:
1260public:
1261 //Flag pFrame for SwFrameDeleteGuard lifetime that we shouldn't delete
1262 //it in e.g. SwSectionFrame::MergeNext etc because we will need it
1263 //again after the SwFrameDeleteGuard dtor
1264 explicit SwFrameDeleteGuard(SwFrame* pFrame)
1265 : m_pForbidFrame(pFrame)
1266 {
1267 if (m_pForbidFrame)
1269 }
1270
1272
1274 {
1275 if (m_pForbidFrame)
1277 }
1278
1280};
1281
1282typedef tools::Long (SwFrame::*SwFrameGet)() const;
1283typedef bool (SwFrame::*SwFrameMax)( tools::Long );
1284typedef void (SwFrame::*SwFrameMakePos)( const SwFrame*, const SwFrame*, bool );
1287
1289{
1298
1305
1312
1315
1332
1339
1342};
1343
1345
1346// This class allows to use proper methods regardless of orientation (LTR/RTL, horizontal or vertical)
1349public:
1350 explicit SwRectFnSet(const SwFrame *pFrame)
1351 : m_bVert(pFrame->IsVertical())
1352 , m_bVertL2R(pFrame->IsVertLR())
1353 , m_bVertL2RB2T(pFrame->IsVertLRBT())
1354 {
1356 }
1357
1358 void Refresh(const SwFrame *pFrame)
1359 {
1360 m_bVert = pFrame->IsVertical();
1361 m_bVertL2R = pFrame->IsVertLR();
1362 m_bVertL2RB2T = pFrame->IsVertLRBT();
1364 }
1365
1366 bool IsVert() const { return m_bVert; }
1367 bool IsVertL2R() const { return m_bVertL2R; }
1368 SwRectFn FnRect() const { return m_fnRect; }
1369
1370 bool PosDiff(const SwRect &rRect1, const SwRect &rRect2) const
1371 {
1372 return ((rRect1.*m_fnRect->fnGetTop)() != (rRect2.*m_fnRect->fnGetTop)()
1373 || (rRect1.*m_fnRect->fnGetLeft)() != (rRect2.*m_fnRect->fnGetLeft)());
1374 }
1375
1376 tools::Long GetTop (const SwRect& rRect) const { return (rRect.*m_fnRect->fnGetTop) (); }
1377 tools::Long GetBottom(const SwRect& rRect) const { return (rRect.*m_fnRect->fnGetBottom)(); }
1378 tools::Long GetLeft (const SwRect& rRect) const { return (rRect.*m_fnRect->fnGetLeft) (); }
1379 tools::Long GetRight (const SwRect& rRect) const { return (rRect.*m_fnRect->fnGetRight) (); }
1380 tools::Long GetWidth (const SwRect& rRect) const { return (rRect.*m_fnRect->fnGetWidth) (); }
1381 tools::Long GetHeight(const SwRect& rRect) const { return (rRect.*m_fnRect->fnGetHeight)(); }
1382 Point GetPos (const SwRect& rRect) const { return (rRect.*m_fnRect->fnGetPos) (); }
1383 Size GetSize (const SwRect& rRect) const { return (rRect.*m_fnRect->fnGetSize) (); }
1384
1385 void SetTop (SwRect& rRect, tools::Long nNew) const { (rRect.*m_fnRect->fnSetTop) (nNew); }
1386 void SetBottom(SwRect& rRect, tools::Long nNew) const { (rRect.*m_fnRect->fnSetBottom)(nNew); }
1387 void SetLeft (SwRect& rRect, tools::Long nNew) const { (rRect.*m_fnRect->fnSetLeft) (nNew); }
1388 void SetRight (SwRect& rRect, tools::Long nNew) const { (rRect.*m_fnRect->fnSetRight) (nNew); }
1389 void SetWidth (SwRect& rRect, tools::Long nNew) const { (rRect.*m_fnRect->fnSetWidth) (nNew); }
1390 void SetHeight(SwRect& rRect, tools::Long nNew) const { (rRect.*m_fnRect->fnSetHeight)(nNew); }
1391
1392 void SubTop (SwRect& rRect, tools::Long nNew) const { (rRect.*m_fnRect->fnSubTop) (nNew); }
1393 void AddBottom(SwRect& rRect, tools::Long nNew) const { (rRect.*m_fnRect->fnAddBottom)(nNew); }
1394 void SubLeft (SwRect& rRect, tools::Long nNew) const { (rRect.*m_fnRect->fnSubLeft) (nNew); }
1395 void AddRight (SwRect& rRect, tools::Long nNew) const { (rRect.*m_fnRect->fnAddRight) (nNew); }
1396 void AddWidth (SwRect& rRect, tools::Long nNew) const { (rRect.*m_fnRect->fnAddWidth) (nNew); }
1397 void AddHeight(SwRect& rRect, tools::Long nNew) const { (rRect.*m_fnRect->fnAddHeight)(nNew); }
1398
1399 void SetPosX(SwRect& rRect, tools::Long nNew) const { (rRect.*m_fnRect->fnSetPosX)(nNew); }
1400 void SetPosY(SwRect& rRect, tools::Long nNew) const { (rRect.*m_fnRect->fnSetPosY)(nNew); }
1401
1402 tools::Long GetTopMargin (const SwFrame& rFrame) const { return (rFrame.*m_fnRect->fnGetTopMargin) (); }
1403 tools::Long GetBottomMargin(const SwFrame& rFrame) const { return (rFrame.*m_fnRect->fnGetBottomMargin)(); }
1404 tools::Long GetLeftMargin (const SwFrame& rFrame) const { return (rFrame.*m_fnRect->fnGetLeftMargin) (); }
1405 tools::Long GetRightMargin (const SwFrame& rFrame) const { return (rFrame.*m_fnRect->fnGetRightMargin) (); }
1406 void SetXMargins(SwFrame& rFrame, tools::Long nLeft, tools::Long nRight) const { (rFrame.*m_fnRect->fnSetXMargins)(nLeft, nRight); }
1407 void SetYMargins(SwFrame& rFrame, tools::Long nTop, tools::Long nBottom) const { (rFrame.*m_fnRect->fnSetYMargins)(nTop, nBottom); }
1408 tools::Long GetPrtTop (const SwFrame& rFrame) const { return (rFrame.*m_fnRect->fnGetPrtTop) (); }
1409 tools::Long GetPrtBottom (const SwFrame& rFrame) const { return (rFrame.*m_fnRect->fnGetPrtBottom) (); }
1410 tools::Long GetPrtLeft (const SwFrame& rFrame) const { return (rFrame.*m_fnRect->fnGetPrtLeft) (); }
1411 tools::Long GetPrtRight (const SwFrame& rFrame) const { return (rFrame.*m_fnRect->fnGetPrtRight) (); }
1412 tools::Long TopDist (const SwRect& rRect, tools::Long nPos) const { return (rRect.*m_fnRect->fnTopDist) (nPos); }
1413 tools::Long BottomDist(const SwRect& rRect, tools::Long nPos) const { return (rRect.*m_fnRect->fnBottomDist) (nPos); }
1414 tools::Long LeftDist (const SwRect& rRect, tools::Long nPos) const { return (rRect.*m_fnRect->fnLeftDist) (nPos); }
1415 tools::Long RightDist (const SwRect& rRect, tools::Long nPos) const { return (rRect.*m_fnRect->fnRightDist) (nPos); }
1416 void SetLimit (SwFrame& rFrame, tools::Long nNew) const { (rFrame.*m_fnRect->fnSetLimit) (nNew); }
1417 bool OverStep (const SwRect& rRect, tools::Long nPos) const { return (rRect.*m_fnRect->fnOverStep) (nPos); }
1418
1419 void SetPos(SwRect& rRect, const Point& rNew) const { (rRect.*m_fnRect->fnSetPos)(rNew); }
1420 void MakePos(SwFrame& rFrame, const SwFrame* pUp, const SwFrame* pPrv, bool bNotify) const { (rFrame.*m_fnRect->fnMakePos)(pUp, pPrv, bNotify); }
1423 tools::Long XInc (tools::Long n1, tools::Long n2) const { return (m_fnRect->fnXInc) (n1, n2); }
1424 tools::Long YInc (tools::Long n1, tools::Long n2) const { return (m_fnRect->fnYInc) (n1, n2); }
1425
1426 void SetLeftAndWidth(SwRect& rRect, tools::Long nLeft, tools::Long nWidth) const { (rRect.*m_fnRect->fnSetLeftAndWidth)(nLeft, nWidth); }
1427 void SetTopAndHeight(SwRect& rRect, tools::Long nTop, tools::Long nHeight) const { (rRect.*m_fnRect->fnSetTopAndHeight)(nTop, nHeight); }
1428
1429private:
1434};
1435
1436#endif
1437
1438/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
struct _ADOColumn Column
struct _xmlTextWriter * xmlTextWriterPtr
Page
EdgeEntry * mpNext
SvxBorderLineStyle
void MakeNxt(SwFrame *pFrame, SwFrame *pNxt)
Definition: calcmove.cxx:1912
void ValidateSz(SwFrame *pFrame)
Definition: calcmove.cxx:1204
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:164
virtual void SwClientNotify(const SwModify &, const SfxHint &rHint) override
Definition: calbck.cxx:120
SwModify * GetRegisteredInNonConst() const
Definition: calbck.hxx:146
SwContentFrame is the layout for content nodes: a common base class for text (paragraph) and non-text...
Definition: cntfrm.hxx:58
helper class to check if a frame has been deleted during an operation WARNING! This should only be us...
Definition: frmtool.hxx:606
Base class that provides the general functionalities for frames that are allowed at page breaks (flow...
Definition: flowfrm.hxx:60
general base class for all free-flowing frames
Definition: flyfrm.hxx:79
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:100
void setFrameAreaPositionValid(bool bNew)
Definition: wsfrm.cxx:84
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:92
SwFrameDeleteGuard & operator=(const SwFrameDeleteGuard &)=delete
SwFrameDeleteGuard(SwFrame *pFrame)
Definition: frame.hxx:1264
SwFrameDeleteGuard(const SwFrameDeleteGuard &)=delete
SwFrame * m_pForbidFrame
Definition: frame.hxx:1259
Base class of the Writer layout elements.
Definition: frame.hxx:315
bool mbFixSize
Definition: frame.hxx:428
bool OnRightPage() const
Definition: frame.hxx:733
bool IsRowFrame() const
Definition: frame.hxx:1222
virtual void Cut()=0
const sw::BroadcastingModify * GetDep() const
Definition: frame.hxx:478
bool IsCellFrame() const
Definition: frame.hxx:1226
bool mbInDtor
Definition: frame.hxx:416
void InvalidateInfFlags()
Definition: frame.hxx:608
SwFrame * mpPrev
Definition: frame.hxx:339
const SwBodyFrame * FindBodyFrame() const
Definition: frame.hxx:1120
bool mbDerivedVert
Definition: frame.hxx:421
const SwLayoutFrame * ImplGetNextLayoutLeaf(bool bFwd) const
Finds the next layout leaf.
Definition: findfrm.cxx:334
const SwFrame * GetPrev() const
Definition: frame.hxx:692
SwSectionFrame * ImplFindSctFrame()
Definition: findfrm.cxx:535
bool mbDerivedR2L
Definition: frame.hxx:418
bool IsFootnoteContFrame() const
Definition: frame.hxx:1198
SwFrame * FindPrev_()
Definition: findfrm.cxx:1210
std::unique_ptr< SwSortedObjs > m_pDrawObjs
Definition: frame.hxx:413
void ImplInvalidatePrt()
Definition: wsfrm.cxx:1973
void InvalidateLineNum_()
Definition: frame.hxx:795
bool mbRetouche
Definition: frame.hxx:435
static void SetCache(SwCache *pNew)
Definition: frame.hxx:523
bool IsTextFrame() const
Definition: frame.hxx:1234
bool GetValidLineNumFlag() const
Definition: frame.hxx:762
void SetDerivedR2L(bool bNew)
Definition: frame.hxx:632
SwFrame * GetIndPrev() const
Definition: frame.hxx:724
bool IsInDtor() const
Definition: frame.hxx:892
const SwFrame * GetNext() const
Definition: frame.hxx:691
void InvalidateAll()
Definition: frame.hxx:1055
void ImplInvalidatePos()
Definition: wsfrm.cxx:1989
SwFrame * FindNext_()
Definition: findfrm.cxx:829
void InvalidateLineNum()
Definition: frame.hxx:1050
bool IsInDocBody() const
Definition: frame.hxx:943
const SwRootFrame * getRootFrame() const
Definition: frame.hxx:694
SwFlyFrame * FindFlyFrame()
Definition: frame.hxx:1111
bool IsAccessibleFrame() const
Definition: frame.hxx:1250
void ImplInvalidateSize()
Definition: wsfrm.cxx:1957
SwSectionFrame * FindSctFrame()
Definition: frame.hxx:1115
bool mbValidLineNum
Definition: frame.hxx:427
SwTabFrame * FindTabFrame()
Definition: frame.hxx:1099
SwFrame * FindNext()
Definition: frame.hxx:1141
SwFrame * GetNext()
Definition: frame.hxx:676
void ResetCompletePaint() const
Definition: frame.hxx:998
int mnForbidDelete
Definition: frame.hxx:446
bool HasFixSize() const
Definition: frame.hxx:670
void SetDirFlags(bool bVert)
Updates the vertical or the righttoleft-flags.
Definition: findfrm.cxx:1521
virtual SwTwips ShrinkFrame(SwTwips, bool bTst=false, bool bInfo=false)=0
bool IsPageFrame() const
Definition: frame.hxx:1178
SwTabFrame * ImplFindTabFrame()
Definition: findfrm.cxx:523
const SwFrame * GetIndNext() const
Definition: frame.hxx:729
bool IsColLocked() const
Definition: frame.hxx:886
bool IsColumnFrame() const
Definition: frame.hxx:1182
bool mbCompletePaint
Definition: frame.hxx:433
const SwBodyFrame * ImplFindBodyFrame() const
Definition: findfrm.cxx:547
SwFrameType mnFrameType
Definition: frame.hxx:414
void OptCalc() const
Definition: frame.hxx:1080
void InvalidateNextPos(bool bNoFootnote=false)
Definition: frame.hxx:1072
bool IsVertLRBT() const
Definition: frame.hxx:983
void SetInfFlags()
Definition: findfrm.cxx:1484
InvalidationType
enumeration for the different invalidations #i28701#
Definition: frame.hxx:489
@ INVALID_LINENUM
Definition: frame.hxx:490
@ INVALID_ALL
Definition: frame.hxx:490
bool IsTabFrame() const
Definition: frame.hxx:1218
virtual bool InvalidationAllowed(const InvalidationType _nInvalid) const
method to determine, if an invalidation is allowed.
Definition: wsfrm.cxx:1951
void ColUnlock()
Definition: frame.hxx:449
void InvalidatePos_()
Definition: frame.hxx:787
SwFrameType GetType() const
Definition: frame.hxx:519
bool IsInFootnote() const
Definition: frame.hxx:949
bool IsHeaderFrame() const
Definition: frame.hxx:1190
bool mbInvalidVert
Definition: frame.hxx:420
void ImplInvalidateLineNum()
Definition: wsfrm.cxx:2009
bool IsRetoucheFrame() const
Definition: frame.hxx:1246
const SwSortedObjs * GetDrawObjs() const
Definition: frame.hxx:564
bool IsInTab() const
Definition: frame.hxx:955
void ForbidDelete()
Definition: frame.hxx:927
void ResetRetouche() const
Definition: frame.hxx:1007
SwFrame * FindPrev()
Definition: frame.hxx:1155
bool mbVertical
Definition: frame.hxx:422
static SwCache & GetCache()
Definition: frame.hxx:521
SwLayoutFrame * mpUpper
Definition: frame.hxx:337
bool IsRightToLeft() const
Definition: frame.hxx:987
bool IsInFly() const
Definition: frame.hxx:961
virtual bool IsDeleteForbidden() const
Definition: frame.hxx:887
SwFlyFrame * ImplFindFlyFrame()
Definition: findfrm.cxx:571
bool IsFlowFrame() const
Definition: frame.hxx:1242
static SwCache * spCache
Definition: frame.hxx:334
void InvalidatePrt()
Definition: frame.hxx:1036
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:559
bool mbRightToLeft
Definition: frame.hxx:419
bool mbInfBody
Definition: frame.hxx:438
bool IsRootFrame() const
Definition: frame.hxx:1174
bool IsFooterFrame() const
Definition: frame.hxx:1194
void InvalidatePos()
Definition: frame.hxx:1043
bool IsFootnoteFrame() const
Definition: frame.hxx:1202
void ValidateLineNum()
Definition: frame.hxx:760
const SwLayoutFrame * GetUpper() const
Definition: frame.hxx:693
SwLayoutFrame * GetUpper()
Definition: frame.hxx:678
bool mbInfFly
Definition: frame.hxx:440
const SwLayoutFrame * GetNextLayoutLeaf() const
Definition: frame.hxx:1020
bool IsCompletePaint() const
Definition: frame.hxx:601
bool IsVertical() const
Definition: frame.hxx:973
bool mbColLocked
Definition: frame.hxx:443
SwFrame * mpNext
Definition: frame.hxx:338
SwRootFrame * mpRoot
Definition: frame.hxx:336
SwRootFrame * getRootFrame()
Definition: frame.hxx:679
bool IsNoTextFrame() const
Definition: frame.hxx:1238
bool IsRetouche() const
Definition: frame.hxx:605
void SetCompletePaint() const
Definition: frame.hxx:994
bool IsFlyFrame() const
Definition: frame.hxx:1210
virtual css::uno::Sequence< css::style::TabStop > GetTabStopInfo(SwTwips)
Definition: frame.hxx:513
bool IsContentFrame() const
Definition: frame.hxx:1230
bool mbInfInvalid
Definition: frame.hxx:437
bool mbInvalidR2L
Definition: frame.hxx:417
bool mbInfSct
Definition: frame.hxx:442
void InvalidatePrt_()
Definition: frame.hxx:779
bool IsFootnoteBossFrame() const
Definition: frame.hxx:1186
SwFrame * GetPrev()
Definition: frame.hxx:677
virtual SwTwips GrowFrame(SwTwips, bool bTst=false, bool bInfo=false)=0
void InvalidateSize_()
Definition: frame.hxx:771
SwFrame * FindColFrame()
Definition: findfrm.cxx:584
bool IsSctFrame() const
Definition: frame.hxx:1214
bool IsVertLR() const
Definition: frame.hxx:979
void InvalidateSize()
Definition: frame.hxx:1029
const SwLayoutFrame * GetPrevLayoutLeaf() const
Definition: frame.hxx:1024
bool mbVertLRBT
Definition: frame.hxx:425
void SetInvalidVert(bool bNew)
Definition: frame.hxx:630
SwPageFrame * FindPageFrame()
Definition: frame.hxx:680
sw::BroadcastingModify * GetDep()
use these so we can grep for SwFrame's GetRegisteredIn accesses beware that SwTextFrame may return sw...
Definition: frame.hxx:476
void ImplInvalidateNextPos(bool bNoFootnote)
Definition: findfrm.cxx:1287
SwFrame * FindFooterOrHeader()
Definition: findfrm.cxx:602
bool mbVertLR
Definition: frame.hxx:424
SwFootnoteFrame * FindFootnoteFrame()
Definition: frame.hxx:1107
SwFrame * GetIndNext()
Definition: frame.hxx:727
virtual void ActionOnInvalidation(const InvalidationType _nInvalid)
method to perform additional actions on an invalidation
Definition: wsfrm.cxx:1945
SwSortedObjs * GetDrawObjs()
Definition: frame.hxx:565
SwFootnoteBossFrame * FindFootnoteBossFrame(bool bFootnotes=false)
Definition: findfrm.cxx:460
virtual void MakeAll(vcl::RenderContext *pRenderContext)=0
void InvalidateAll_()
Definition: frame.hxx:803
void OptPrepareMake()
Definition: calcmove.cxx:378
void SetRetouche() const
Definition: frame.hxx:1003
bool mbInfFootnote
Definition: frame.hxx:441
void AllowDelete()
Definition: frame.hxx:928
static SwCache * GetCachePtr()
Definition: frame.hxx:522
void setRootFrame(SwRootFrame *pRoot)
Definition: frame.hxx:455
void SetDerivedVert(bool bNew)
Definition: frame.hxx:629
bool IsLayoutFrame() const
Definition: frame.hxx:1170
bool IsBodyFrame() const
Definition: frame.hxx:1206
bool IsNeighbourFrame() const
Definition: frame.hxx:912
bool IsInSct() const
Definition: frame.hxx:967
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:58
bool IsVert() const
Definition: frame.hxx:1366
tools::Long GetHeight(const SwRect &rRect) const
Definition: frame.hxx:1381
tools::Long YInc(tools::Long n1, tools::Long n2) const
Definition: frame.hxx:1424
void SetWidth(SwRect &rRect, tools::Long nNew) const
Definition: frame.hxx:1389
void SetPosX(SwRect &rRect, tools::Long nNew) const
Definition: frame.hxx:1399
void SetPos(SwRect &rRect, const Point &rNew) const
Definition: frame.hxx:1419
void AddHeight(SwRect &rRect, tools::Long nNew) const
Definition: frame.hxx:1397
void SetLeftAndWidth(SwRect &rRect, tools::Long nLeft, tools::Long nWidth) const
Definition: frame.hxx:1426
tools::Long GetRightMargin(const SwFrame &rFrame) const
Definition: frame.hxx:1405
tools::Long RightDist(const SwRect &rRect, tools::Long nPos) const
Definition: frame.hxx:1415
SwRectFn m_fnRect
Definition: frame.hxx:1433
tools::Long GetTopMargin(const SwFrame &rFrame) const
Definition: frame.hxx:1402
void SetBottom(SwRect &rRect, tools::Long nNew) const
Definition: frame.hxx:1386
void SetRight(SwRect &rRect, tools::Long nNew) const
Definition: frame.hxx:1388
tools::Long GetWidth(const SwRect &rRect) const
Definition: frame.hxx:1380
tools::Long TopDist(const SwRect &rRect, tools::Long nPos) const
Definition: frame.hxx:1412
void SetYMargins(SwFrame &rFrame, tools::Long nTop, tools::Long nBottom) const
Definition: frame.hxx:1407
bool m_bVert
Definition: frame.hxx:1430
void SetHeight(SwRect &rRect, tools::Long nNew) const
Definition: frame.hxx:1390
bool m_bVertL2RB2T
Definition: frame.hxx:1432
tools::Long GetTop(const SwRect &rRect) const
Definition: frame.hxx:1376
SwRectFn FnRect() const
Definition: frame.hxx:1368
void SubTop(SwRect &rRect, tools::Long nNew) const
Definition: frame.hxx:1392
Size GetSize(const SwRect &rRect) const
Definition: frame.hxx:1383
void AddWidth(SwRect &rRect, tools::Long nNew) const
Definition: frame.hxx:1396
bool IsVertL2R() const
Definition: frame.hxx:1367
tools::Long XDiff(tools::Long n1, tools::Long n2) const
Definition: frame.hxx:1421
tools::Long GetPrtRight(const SwFrame &rFrame) const
Definition: frame.hxx:1411
Point GetPos(const SwRect &rRect) const
Definition: frame.hxx:1382
void SetLimit(SwFrame &rFrame, tools::Long nNew) const
Definition: frame.hxx:1416
void SetXMargins(SwFrame &rFrame, tools::Long nLeft, tools::Long nRight) const
Definition: frame.hxx:1406
void SetPosY(SwRect &rRect, tools::Long nNew) const
Definition: frame.hxx:1400
tools::Long XInc(tools::Long n1, tools::Long n2) const
Definition: frame.hxx:1423
tools::Long LeftDist(const SwRect &rRect, tools::Long nPos) const
Definition: frame.hxx:1414
void SetTopAndHeight(SwRect &rRect, tools::Long nTop, tools::Long nHeight) const
Definition: frame.hxx:1427
tools::Long GetBottomMargin(const SwFrame &rFrame) const
Definition: frame.hxx:1403
void AddBottom(SwRect &rRect, tools::Long nNew) const
Definition: frame.hxx:1393
bool OverStep(const SwRect &rRect, tools::Long nPos) const
Definition: frame.hxx:1417
tools::Long YDiff(tools::Long n1, tools::Long n2) const
Definition: frame.hxx:1422
void SubLeft(SwRect &rRect, tools::Long nNew) const
Definition: frame.hxx:1394
tools::Long GetLeftMargin(const SwFrame &rFrame) const
Definition: frame.hxx:1404
tools::Long GetLeft(const SwRect &rRect) const
Definition: frame.hxx:1378
tools::Long GetPrtTop(const SwFrame &rFrame) const
Definition: frame.hxx:1408
void MakePos(SwFrame &rFrame, const SwFrame *pUp, const SwFrame *pPrv, bool bNotify) const
Definition: frame.hxx:1420
void AddRight(SwRect &rRect, tools::Long nNew) const
Definition: frame.hxx:1395
tools::Long GetPrtLeft(const SwFrame &rFrame) const
Definition: frame.hxx:1410
SwRectFnSet(const SwFrame *pFrame)
Definition: frame.hxx:1350
tools::Long GetBottom(const SwRect &rRect) const
Definition: frame.hxx:1377
bool m_bVertL2R
Definition: frame.hxx:1431
tools::Long BottomDist(const SwRect &rRect, tools::Long nPos) const
Definition: frame.hxx:1413
void SetTop(SwRect &rRect, tools::Long nNew) const
Definition: frame.hxx:1385
void Refresh(const SwFrame *pFrame)
Definition: frame.hxx:1358
tools::Long GetRight(const SwRect &rRect) const
Definition: frame.hxx:1379
tools::Long GetPrtBottom(const SwFrame &rFrame) const
Definition: frame.hxx:1409
void SetLeft(SwRect &rRect, tools::Long nNew) const
Definition: frame.hxx:1387
bool PosDiff(const SwRect &rRect1, const SwRect &rRect2) const
Definition: frame.hxx:1370
Of course Writer needs its own rectangles.
Definition: swrect.hxx:35
The root element of a Writer document layout.
Definition: rootfrm.hxx:82
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:47
Represents the visualization of a paragraph.
Definition: txtfrm.hxx:165
RotateFlyFrame3: Helper class when you want to make your SwFrame derivate transformable.
Definition: frame.hxx:236
SwRect getUntransformedFramePrintArea() const
Definition: wsfrm.cxx:189
TransformableSwFrame(SwFrameAreaDefinition &rSwFrameAreaDefinition)
Definition: frame.hxx:247
void adaptFrameAreasToTransformations()
Definition: wsfrm.cxx:234
void restoreFrameAreas()
Definition: wsfrm.cxx:269
SwFrameAreaDefinition & mrSwFrameAreaDefinition
Definition: frame.hxx:239
const basegfx::B2DHomMatrix & getLocalFrameAreaTransformation() const
Definition: frame.hxx:255
void transform(const basegfx::B2DHomMatrix &aTransform)
Definition: wsfrm.cxx:287
basegfx::B2DHomMatrix maFramePrintAreaTransformation
Definition: frame.hxx:244
basegfx::B2DHomMatrix maFrameAreaTransformation
Definition: frame.hxx:243
SwRect getUntransformedFrameArea() const
Definition: wsfrm.cxx:165
const basegfx::B2DHomMatrix & getLocalFramePrintAreaTransformation() const
Definition: frame.hxx:261
void createFrameAreaTransformations(double fRotation, const basegfx::B2DPoint &rCenter)
Definition: wsfrm.cxx:214
@ Shrink
FilterGroup & rTarget
FormulaTreeNodeRef mpRoot
bool(SwFrame::* SwFrameMax)(tools::Long)
Definition: frame.hxx:1283
SwRectFn fnRectVert
Definition: frame.hxx:1347
#define FRM_CNTNT
Definition: frame.hxx:103
void(SwFrame::* SwFrameSet)(tools::Long, tools::Long)
Definition: frame.hxx:1286
#define FRM_FTNBOSS
Definition: frame.hxx:104
SwFrameInvFlags
Definition: frame.hxx:293
SwRectFnCollection * SwRectFn
Definition: frame.hxx:1344
tools::Long(* SwOperator)(tools::Long, tools::Long)
Definition: frame.hxx:1285
SwFrameType
Definition: frame.hxx:75
#define FRM_NEIGHBOUR
Definition: frame.hxx:106
void(SwFrame::* SwFrameMakePos)(const SwFrame *, const SwFrame *, bool)
Definition: frame.hxx:1284
#define FRM_LAYOUT
Definition: frame.hxx:101
SwRectFn fnRectVertL2RB2T
Definition: frame.hxx:1347
tools::Long(SwFrame::* SwFrameGet)() const
Definition: frame.hxx:1282
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:286
#define FRM_ACCESSIBLE
Definition: frame.hxx:105
SwRectFn fnRectVertL2R
Definition: frame.hxx:1347
SvxFrameDirection
void ValidateText(SwFrame *pFrame)
Definition: frmform.cxx:72
void RestoreContent(SwFrame *pSav, SwLayoutFrame *pParent, SwFrame *pSibling)
Definition: frmtool.cxx:3016
SwFrame * SaveContent(SwLayoutFrame *pLay, SwFrame *pStart=nullptr)
Definition: frmtool.cxx:2854
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:37
SwFrameGet fnGetPrtTop
Definition: frame.hxx:1322
SwOperator fnYDiff
Definition: frame.hxx:1336
SwRectSet fnSetBottom
Definition: frame.hxx:1300
SwRectSet fnSetTop
Definition: frame.hxx:1299
SwRectSet fnSetWidth
Definition: frame.hxx:1303
SwFrameGet fnGetPrtLeft
Definition: frame.hxx:1324
SwRectGet fnGetWidth
Definition: frame.hxx:1294
SwRectGet fnGetLeft
Definition: frame.hxx:1292
SwFrameMax fnSetLimit
Definition: frame.hxx:1330
SwRectDist fnLeftDist
Definition: frame.hxx:1328
SwRectDist fnBottomDist
Definition: frame.hxx:1327
SwFrameGet fnGetLeftMargin
Definition: frame.hxx:1318
SwRectGet fnGetBottom
Definition: frame.hxx:1291
SwRectSet fnAddWidth
Definition: frame.hxx:1310
SwRectSet fnSetLeft
Definition: frame.hxx:1301
SwRectSet fnSetRight
Definition: frame.hxx:1302
SwFrameSet fnSetYMargins
Definition: frame.hxx:1321
SwRectSet fnSetPosX
Definition: frame.hxx:1313
SwFrameGet fnGetBottomMargin
Definition: frame.hxx:1317
SwRectSet fnAddHeight
Definition: frame.hxx:1311
SwFrameGet fnGetTopMargin
Definition: frame.hxx:1316
SwRectSetTwice fnSetLeftAndWidth
Definition: frame.hxx:1340
SwRectSet fnAddRight
Definition: frame.hxx:1309
SwRectSet fnSetPosY
Definition: frame.hxx:1314
SwRectSize fnGetSize
Definition: frame.hxx:1297
SwFrameMakePos fnMakePos
Definition: frame.hxx:1334
SwRectSet fnSubTop
Definition: frame.hxx:1306
SwRectDist fnRightDist
Definition: frame.hxx:1329
SwRectGet fnGetHeight
Definition: frame.hxx:1295
SwRectSet fnSetHeight
Definition: frame.hxx:1304
SwRectPoint fnGetPos
Definition: frame.hxx:1296
SwOperator fnYInc
Definition: frame.hxx:1338
SwRectDist fnTopDist
Definition: frame.hxx:1326
SwRectGet fnGetRight
Definition: frame.hxx:1293
SwRectSet fnAddBottom
Definition: frame.hxx:1307
SwFrameSet fnSetXMargins
Definition: frame.hxx:1320
SwFrameGet fnGetPrtBottom
Definition: frame.hxx:1323
SwRectGet fnGetTop
Definition: frame.hxx:1290
SwFrameGet fnGetPrtRight
Definition: frame.hxx:1325
SwRectMax fnOverStep
Definition: frame.hxx:1331
SwRectSet fnSubLeft
Definition: frame.hxx:1308
SwRectSetPos fnSetPos
Definition: frame.hxx:1333
SwOperator fnXInc
Definition: frame.hxx:1337
SwOperator fnXDiff
Definition: frame.hxx:1335
SwFrameGet fnGetRightMargin
Definition: frame.hxx:1319
SwRectSetTwice fnSetTopAndHeight
Definition: frame.hxx:1341
#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:194
void FriendHackInvalidateRowFrame(SwFrameAreaDefinition &rRowFrame)
Definition: tabfrm.cxx:1858
SwFrame * sw_FormatNextContentForKeep(SwTabFrame *pTabFrame)
Definition: tabfrm.cxx:1807
css::uno::Reference< css::i18n::XExtendedTransliteration > Body
unsigned char sal_uInt8
static tools::Long GetLeftMargin(SwView const &rView)
Definition: viewport.cxx:66