summaryrefslogtreecommitdiff
path: root/sw/source/core/inc/anchoredobjectposition.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/core/inc/anchoredobjectposition.hxx')
-rw-r--r--sw/source/core/inc/anchoredobjectposition.hxx474
1 files changed, 0 insertions, 474 deletions
diff --git a/sw/source/core/inc/anchoredobjectposition.hxx b/sw/source/core/inc/anchoredobjectposition.hxx
deleted file mode 100644
index 934e6ea72f..0000000000
--- a/sw/source/core/inc/anchoredobjectposition.hxx
+++ /dev/null
@@ -1,474 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
- /*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#ifndef _ANCHOREDOBJECTPOSITION_HXX
-#define _ANCHOREDOBJECTPOSITION_HXX
-
-#include <swtypes.hxx>
-// #i11860#
-#include <frame.hxx>
-
-class SdrObject;
-class SwFrm;
-class SwFlyFrm;
-class SwContact;
-class SwFrmFmt;
-class SwRect;
-class SvxLRSpaceItem;
-class SvxULSpaceItem;
-class SwFmtHoriOrient;
-// #i26701#
-class SwAnchoredObject;
-
-namespace objectpositioning
-{
- class SwEnvironmentOfAnchoredObject;
-
- class SwAnchoredObjectPosition
- {
- private:
- // object to be positioned
- SdrObject& mrDrawObj;
-
- // information about object
- // does the object represents a Writer fly frame
- bool mbIsObjFly;
- // #i26791# - anchored object the object belongs to;
- SwAnchoredObject* mpAnchoredObj;
- // frame the object is anchored at
- SwFrm* mpAnchorFrm;
- // contact object
- SwContact* mpContact;
- // frame format
- const SwFrmFmt* mpFrmFmt;
- // #i62875#
- bool mbFollowTextFlow;
- // #i62875#
- // for compatibility option <DoNotCaptureDrawObjsOnPage>
- bool mbDoNotCaptureAnchoredObj;
-
- /** determine information about object
-
- member <mbIsObjFly>, <mpAnchoredObj>, <mpAnchorFrm>, <mpContact>
- and <mpFrmFmt> are set
- */
- void _GetInfoAboutObj();
-
- // #i62875#
- // --> OD 2009-09-01 #mongolianlayout# - add parameter <bVertL2R>
- SwTwips _ImplAdjustVertRelPos( const SwTwips nTopOfAnch,
- const bool bVert,
- const bool bVertL2R,
- const SwFrm& rPageAlignLayFrm,
- const SwTwips nProposedRelPosY,
- const bool bFollowTextFlow,
- const bool bCheckBottom = true ) const;
- SwTwips _ImplAdjustHoriRelPos( const SwFrm& _rPageAlignLayFrm,
- const SwTwips _nProposedRelPosX ) const;
-
- protected:
- SwAnchoredObjectPosition( SdrObject& _rDrawObj );
- virtual ~SwAnchoredObjectPosition();
-
- // accessors for object and its corresponding data/information
- inline SdrObject& GetObject() const
- {
- return mrDrawObj;
- }
- inline bool IsObjFly() const
- {
- return mbIsObjFly;
- }
- inline SwAnchoredObject& GetAnchoredObj() const
- {
- return *mpAnchoredObj;
- }
- inline SwFrm& GetAnchorFrm() const
- {
- return *mpAnchorFrm;
- }
- inline SwContact& GetContact() const
- {
- return *mpContact;
- }
- inline const SwFrmFmt& GetFrmFmt() const
- {
- return *mpFrmFmt;
- }
- // #i62875#
- inline bool DoesObjFollowsTextFlow() const
- {
- return mbFollowTextFlow;
- }
-
- // virtual methods providing data for to character anchored objects.
- virtual bool IsAnchoredToChar() const;
- virtual const SwFrm* ToCharOrientFrm() const;
- virtual const SwRect* ToCharRect() const;
- // #i22341#
- virtual SwTwips ToCharTopOfLine() const;
-
- // *********************************************************************
- /** helper method to determine top of a frame for the vertical
- object positioning
-
- #i11860#
- */
- SwTwips _GetTopForObjPos( const SwFrm& _rFrm,
- const SwRectFn& _fnRect,
- const bool _bVert ) const;
-
- // *********************************************************************
- void _GetVertAlignmentValues( const SwFrm& _rVertOrientFrm,
- const SwFrm& _rPageAlignLayFrm,
- const sal_Int16 _eRelOrient,
- SwTwips& _orAlignAreaHeight,
- SwTwips& _orAlignAreaOffset ) const;
-
- // *********************************************************************
- // #i26791# - add output parameter <_roVertOffsetToFrmAnchorPos>
- SwTwips _GetVertRelPos( const SwFrm& _rVertOrientFrm,
- const SwFrm& _rPageAlignLayFrm,
- const sal_Int16 _eVertOrient,
- const sal_Int16 _eRelOrient,
- const SwTwips _nVertPos,
- const SvxLRSpaceItem& _rLRSpacing,
- const SvxULSpaceItem& _rULSpacing,
- SwTwips& _roVertOffsetToFrmAnchorPos ) const;
-
- // *********************************************************************
- /** adjust calculated vertical in order to keep object inside
- 'page' alignment layout frame.
-
- #i31805# - add parameter <_bCheckBottom>
- #i26945# - add parameter <_bFollowTextFlow>
- #i62875# - made inline, intrinsic actions moved
- to private method <_ImplAdjustVertRelPos>, which is only
- called, if <mbDoNotCaptureAnchoredObj> not set.
- OD 2009-09-01 #mongolianlayout# - add parameter <bVertL2R>
-
- @param nTopOfAnch
- input parameter - 'vertical' position, at which the relative
- position of the object is calculated from.
-
- @param bVert
- input parameter - boolean, indicating, if object is in vertical
- layout.
-
- @param bVertL2R
- input parameter - boolean, indicating, if object is in mongolian
- layout (vertical left-to-right layout).
-
- @param rPageAlignLayFrm
- input parameter - layout frame, which determines the 'page area'
- the object has to be vertical positioned in.
-
- @param nProposedRelPosY
- input parameter - proposed relative vertical position, which
- will be adjusted.
-
- @param bFollowTextFlow
- input parameter - value of attribute 'Follow text flow' of the
- anchored object.
-
- @param bCheckBottom
- input parameter - boolean indicating, if bottom of anchored
- object has to be checked and thus, (if needed) the proposed
- relative position has to be adjusted. default value <true>
- */
- inline SwTwips _AdjustVertRelPos( const SwTwips nTopOfAnch,
- const bool bVert,
- const bool bVertL2R,
- const SwFrm& rPageAlignLayFrm,
- const SwTwips nProposedRelPosY,
- const bool bFollowTextFlow,
- const bool bCheckBottom = true ) const
- {
- return !mbDoNotCaptureAnchoredObj
- ? _ImplAdjustVertRelPos( nTopOfAnch, bVert, bVertL2R,
- rPageAlignLayFrm,
- nProposedRelPosY,
- bFollowTextFlow,
- bCheckBottom )
- : nProposedRelPosY;
- }
-
- // *********************************************************************
- /** calculate relative horizontal position
-
- #i26791# - add output parameter
- <_roHoriOffsetToFrmAnchorPos>
-
- @param _rHoriOrientFrm
- input parameter - frame the horizontal position of the object
- is oriented at.
-
- @param _rEnvOfObj
- input parameter - object instance to retrieve environment
- information about the object
-
- @param _rHoriOrient
- input parameter - horizontal positioning and alignment, for which
- the relative position is calculated.
-
- @param _rLRSpacing
- input parameter - left and right spacing of the object to the text
-
- @param _rULSpacing
- input parameter - upper and lower spacing of the object to the text
-
- @param _bObjWrapThrough
- input parameter - boolean indicating, if object has wrap mode
- 'wrap through'.
-
- @param _nRelPosY
- input parameter - relative vertical position
-
- @param _roHoriOffsetToFrmAnchorPos
- output parameter - 'horizontal' offset to frame anchor position
- according to the alignment
-
- @return relative horizontal position in SwTwips
- */
- SwTwips _CalcRelPosX( const SwFrm& _rHoriOrientFrm,
- const SwEnvironmentOfAnchoredObject& _rEnvOfObj,
- const SwFmtHoriOrient& _rHoriOrient,
- const SvxLRSpaceItem& _rLRSpacing,
- const SvxULSpaceItem& _rULSpacing,
- const bool _bObjWrapThrough,
- const SwTwips _nRelPosY,
- SwTwips& _roHoriOffsetToFrmAnchorPos
- ) const;
-
- // *********************************************************************
- /** adjust calculated horizontal in order to keep object inside
- 'page' alignment layout frame for object type position TO_CNTNT
-
- #i62875# - made inline, intrinsic actions moved
- to private method <_ImplAdjustHoriRelPos>, which is only
- called, if <mbDoNotCaptureAnchoredObj> not set.
-
- @param _rPageAlignLayFrm
- input paramter - layout frame, which determines the 'page area'
- the object has to be horizontal positioned in.
-
- @param _nProposedRelPosX
- input parameter - proposed relative horizontal position, which
- will be adjusted.
-
- @return adjusted relative horizontal position in SwTwips.
- */
- inline SwTwips _AdjustHoriRelPos( const SwFrm& _rPageAlignLayFrm,
- const SwTwips _nProposedRelPosX ) const
- {
- return !mbDoNotCaptureAnchoredObj
- ? _ImplAdjustHoriRelPos( _rPageAlignLayFrm, _nProposedRelPosX )
- : _nProposedRelPosX;
- }
-
- // *********************************************************************
- /** toggle given horizontal orientation and relative alignment
-
- @param _bToggleLeftRight
- input parameter - boolean indicating, if horizontal orientation
- and relative alignment has to be toggled.
-
- @param _ioeHoriOrient
- input/output parameter - horizontal orientation, that is toggled,
- if needed.
-
- @param _iopeRelOrient
- optional input/output parameter (default value NULL)
- - if set, relative alignment, that is toggled, if needed.
- */
- void _ToggleHoriOrientAndAlign( const bool _bToggleLeftRight,
- sal_Int16& _ioeHoriOrient,
- sal_Int16& _iopeRelOrient
- ) const;
-
- // *********************************************************************
- /** determine alignment values for horizontal position of object
-
- @param _rHoriOrientFrm
- input parameter - frame the horizontal position of the object
- is oriented at.
-
- @param _rPageAlignLayFrm
- input paramter - layout frame, which determines the 'page area'
- the object has to be horizontal positioned in.
-
- @param _eRelOrient
- input parameter - horizontal relative alignment, for which
- the relative position is calculated.
-
- @param _bToggleLeftRight
- input parameter - boolean indicating, if left/right alignments
- have to be toggled.
-
- @param _bObjWrapThrough
- input parameter - boolean indicating, if object has wrap mode
- 'wrap through'.
- important note: value is only relevant, if _rHoriOrientFrm is
- a text frame.
-
- @param _orAlignAreaWidth
- output parameter - width in SwTwips of the area the horizontal
- position is aligned to.
-
- @param _orAlignAreaOffset
- output parameter - offset in SwTwips of the area the horizontal
- position is aligned to. offset is given to the 'left' of the
- anchor position.
-
- @param _obAlignedRelToPage
- output parameter - boolean indicating, that object is aligned
- to 'page area'.
- */
- void _GetHoriAlignmentValues( const SwFrm& _rHoriOrientFrm,
- const SwFrm& _rPageAlignLayFrm,
- const sal_Int16 _eRelOrient,
- const bool _bObjWrapThrough,
- SwTwips& _orAlignAreaWidth,
- SwTwips& _orAlignAreaOffset,
- bool& _obAlignedRelToPage ) const;
-
- // *********************************************************************
- /** adjust calculated horizontal position in order to draw object
- aside other objects with same positioning
-
- @param _rHoriOrientFrm
- input parameter - frame the horizontal position of the object
- is oriented at.
-
- @param _nProposedRelPosX
- input parameter - proposed relative horizontal position, which
- will be adjusted.
-
- @param _nRelPosY
- input parameter - relative vertical position
-
- @param _eHoriOrient
- input parameter - horizontal position of object
-
- @param _eRelOrient
- inpt parameter - alignment of object
-
- @param _rLRSpacing
- input parameter - left and right spacing of the object to the text
-
- @param _rULSpacing
- input parameter - upper and lower spacing of the object to the text
-
- @param _bEvenPage
- input parameter - boolean indicating, if object is on an even page.
-
- @return adjusted relative horizontal position in SwTwips
- */
- SwTwips _AdjustHoriRelPosForDrawAside( const SwFrm& _rHoriOrientFrm,
- const SwTwips _nProposedRelPosX,
- const SwTwips _nRelPosY,
- const sal_Int16 _eHoriOrient,
- const sal_Int16 _eRelOrient,
- const SvxLRSpaceItem& _rLRSpacing,
- const SvxULSpaceItem& _rULSpacing,
- const bool _bEvenPage
- ) const;
-
- // *********************************************************************
- /** detemine, if object has to draw aside given fly frame
-
- method used by <_AdjustHoriRelPosForDrawAside(..)>
-
- @param _pFly
- input parameter - fly frame the draw aside check is done for.
-
- @param _rObjRect
- input parameter - proposed object rectangle
-
- @param _pObjContext
- input parameter - context of the object
-
- @param _nObjIndex
- input parameter - index of the anchor frame of the object
-
- @param _bEvenPage
- input parameter - boolean indicating, if object is on an even page.
-
- @param _eHoriOrient
- input parameter - horizontal position of object
-
- @param _eRelOrient
- inpt parameter - alignment of object
-
- @return boolean indicating, if object has to be drawn aside
- given fly frame.
- */
- bool _DrawAsideFly( const SwFlyFrm* _pFly,
- const SwRect& _rObjRect,
- const SwFrm* _pObjContext,
- const sal_uLong _nObjIndex,
- const bool _bEvenPage,
- const sal_Int16 _eHoriOrient,
- const sal_Int16 _eRelOrient
- ) const;
-
- // *********************************************************************
- /** determine, if object has to draw aside another object
-
- the different alignments of the objects determines, if one has
- to draw aside another one. Thus, the given alignment are checked
- against each other, which one has to be drawn aside the other one.
- depending on parameter _bLeft check is done for left or right
- positioning.
- method used by <_DrawAsideFly(..)>
-
- @param _eRelOrient1
- input parameter - alignment 1
-
- @param _eRelOrient2
- input parameter - alignment 2
-
- @param _bLeft
- input parameter - boolean indicating, if check is done for left
- or for right positioning.
-
- @return boolean indicating, if an object with an alignment
- <_eRelOrient1> has to be drawn aside an object with an
- alignment <_eRelOrient2>
- */
- bool _Minor( sal_Int16 _eRelOrient1,
- sal_Int16 _eRelOrient2,
- bool _bLeft ) const;
-
- public:
- virtual void CalcPosition() = 0;
- };
-} // namespace objectpositioning
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */