| 
									
										
										
										
											2004-08-02 13:06:22 +00:00
										 |  |  | /*************************************************************************
 | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-04-10 13:21:43 +00:00
										 |  |  |  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 
					
						
							| 
									
										
										
										
											2004-08-02 13:06:22 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-04-10 13:21:43 +00:00
										 |  |  |  * Copyright 2008 by Sun Microsystems, Inc. | 
					
						
							| 
									
										
										
										
											2004-08-02 13:06:22 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-04-10 13:21:43 +00:00
										 |  |  |  * OpenOffice.org - a multi-platform office productivity suite | 
					
						
							| 
									
										
										
										
											2004-08-02 13:06:22 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-04-10 13:21:43 +00:00
										 |  |  |  * $RCSfile: objectformatter.hxx,v $ | 
					
						
							|  |  |  |  * $Revision: 1.8 $ | 
					
						
							| 
									
										
										
										
											2004-08-02 13:06:22 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-04-10 13:21:43 +00:00
										 |  |  |  * This file is part of OpenOffice.org. | 
					
						
							| 
									
										
										
										
											2004-08-02 13:06:22 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-04-10 13:21:43 +00:00
										 |  |  |  * 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. | 
					
						
							| 
									
										
										
										
											2004-08-02 13:06:22 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-04-10 13:21:43 +00:00
										 |  |  |  * 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). | 
					
						
							| 
									
										
										
										
											2004-08-02 13:06:22 +00:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-04-10 13:21:43 +00:00
										 |  |  |  * 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. | 
					
						
							| 
									
										
										
										
											2004-08-02 13:06:22 +00:00
										 |  |  |  * | 
					
						
							|  |  |  |  ************************************************************************/ | 
					
						
							|  |  |  | #ifndef _OBJECTFORMATTER_HXX
 | 
					
						
							|  |  |  | #define _OBJECTFORMATTER_HXX
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <sal/types.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class SwFrm; | 
					
						
							| 
									
										
										
										
											2004-11-16 14:42:33 +00:00
										 |  |  | // --> OD 2004-10-08 #i26945#
 | 
					
						
							|  |  |  | class SwTxtFrm; | 
					
						
							|  |  |  | // <--
 | 
					
						
							| 
									
										
										
										
											2004-08-02 13:06:22 +00:00
										 |  |  | class SwLayoutFrm; | 
					
						
							|  |  |  | class SwPageFrm; | 
					
						
							|  |  |  | class SwAnchoredObject; | 
					
						
							|  |  |  | class SwLayAction; | 
					
						
							| 
									
										
										
										
											2004-11-16 14:42:33 +00:00
										 |  |  | // --> OD 2004-10-04 #i26945#
 | 
					
						
							|  |  |  | class SwPageNumAndTypeOfAnchors; | 
					
						
							|  |  |  | // <--
 | 
					
						
							| 
									
										
										
										
											2004-08-02 13:06:22 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | // -----------------------------------------------------------------------------
 | 
					
						
							|  |  |  | // OD 2004-06-25 #i28701#
 | 
					
						
							|  |  |  | // Format floating screen objects, which are anchored at the given anchor frame
 | 
					
						
							|  |  |  | // and registered at the given page frame.
 | 
					
						
							|  |  |  | // -----------------------------------------------------------------------------
 | 
					
						
							|  |  |  | class SwObjectFormatter | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     private: | 
					
						
							|  |  |  |         // page frame, at which the floating screen objects are registered.
 | 
					
						
							|  |  |  |         const SwPageFrm& mrPageFrm; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // boolean, indicating that only as-character anchored objects have to
 | 
					
						
							|  |  |  |         // be formatted.
 | 
					
						
							|  |  |  |         bool mbFormatOnlyAsCharAnchored; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // value of document compatibility option 'Consider wrapping style on
 | 
					
						
							|  |  |  |         // object positioning'
 | 
					
						
							|  |  |  |         const bool mbConsiderWrapOnObjPos; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // layout action calling the format of the floating screen objects
 | 
					
						
							|  |  |  |         SwLayAction* mpLayAction; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // data structure to collect page number of object's 'anchor'
 | 
					
						
							| 
									
										
										
										
											2004-11-16 14:42:33 +00:00
										 |  |  |         // --> OD 2004-10-04 #i26945#
 | 
					
						
							|  |  |  |         SwPageNumAndTypeOfAnchors* mpPgNumAndTypeOfAnchors; | 
					
						
							|  |  |  |         // <--
 | 
					
						
							| 
									
										
										
										
											2004-08-02 13:06:22 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         /** helper method for method <_FormatObj(..)> - performs the intrinsic
 | 
					
						
							|  |  |  |             format of the layout of the given layout frame and all its lower | 
					
						
							|  |  |  |             layout frames. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             OD 2004-06-28 #i28701# | 
					
						
							|  |  |  |             IMPORTANT NOTE: | 
					
						
							|  |  |  |             Method corresponds to methods <SwLayAction::FormatLayoutFly(..)> and | 
					
						
							|  |  |  |             <SwLayAction::FormatLayout(..)>. Thus, its code for the formatting have | 
					
						
							|  |  |  |             to be synchronised. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             @author OD | 
					
						
							|  |  |  |         */ | 
					
						
							|  |  |  |         void _FormatLayout( SwLayoutFrm& _rLayoutFrm ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         /** helper method for method <_FormatObj(..)> - performs the intrinsic
 | 
					
						
							|  |  |  |             format of the content of the given floating screen object. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             OD 2004-06-28 #i28701# | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             @author OD | 
					
						
							|  |  |  |         */ | 
					
						
							|  |  |  |         void _FormatObjCntnt( SwAnchoredObject& _rAnchoredObj ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     protected: | 
					
						
							|  |  |  |         SwObjectFormatter( const SwPageFrm& _rPageFrm, | 
					
						
							|  |  |  |                            SwLayAction* _pLayAction = 0L, | 
					
						
							|  |  |  |                            const bool _bCollectPgNumOfAnchors = false ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         static SwObjectFormatter* CreateObjFormatter( SwFrm& _rAnchorFrm, | 
					
						
							|  |  |  |                                                       const SwPageFrm& _rPageFrm, | 
					
						
							|  |  |  |                                                       SwLayAction* _pLayAction ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         virtual SwFrm& GetAnchorFrm() = 0; | 
					
						
							| 
									
										
										
										
											2005-09-28 10:09:10 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         inline const SwPageFrm& GetPageFrm() const | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             return mrPageFrm; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         inline const bool ConsiderWrapOnObjPos() const | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             return mbConsiderWrapOnObjPos; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         inline SwLayAction* GetLayAction() | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             return mpLayAction; | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2004-08-02 13:06:22 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         /** method to restrict the format of floating screen objects to
 | 
					
						
							|  |  |  |             as-character anchored ones | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             @author OD | 
					
						
							|  |  |  |         */ | 
					
						
							| 
									
										
										
										
											2005-09-28 10:09:10 +00:00
										 |  |  |         inline void SetFormatOnlyAsCharAnchored() | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             mbFormatOnlyAsCharAnchored = true; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         inline const bool FormatOnlyAsCharAnchored() const | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             return mbFormatOnlyAsCharAnchored; | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2004-08-02 13:06:22 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         /** performs the intrinsic format of a given floating screen object and its content.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             OD 2004-06-28 #i28701# | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             @author OD | 
					
						
							|  |  |  |         */ | 
					
						
							|  |  |  |         void _FormatObj( SwAnchoredObject& _rAnchoredObj ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         /** invokes the intrinsic format method for all floating screen objects,
 | 
					
						
							|  |  |  |             anchored at anchor frame on the given page frame | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             OD 2004-06-28 #i28701# | 
					
						
							| 
									
										
										
										
											2004-11-16 14:42:33 +00:00
										 |  |  |             OD 2004-10-08 #i26945# - for format of floating screen objects for | 
					
						
							|  |  |  |             follow text frames, the 'master' text frame is passed to the method. | 
					
						
							|  |  |  |             Thus, the objects, whose anchor character is inside the follow text | 
					
						
							|  |  |  |             frame can be formatted. | 
					
						
							| 
									
										
										
										
											2004-08-02 13:06:22 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |             @author OD | 
					
						
							| 
									
										
										
										
											2004-11-16 14:42:33 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |             @param _pMasterTxtFrm | 
					
						
							|  |  |  |             input parameter - pointer to 'master' text frame. default value: NULL | 
					
						
							| 
									
										
										
										
											2004-08-02 13:06:22 +00:00
										 |  |  |         */ | 
					
						
							| 
									
										
										
										
											2004-11-16 14:42:33 +00:00
										 |  |  |         bool _FormatObjsAtFrm( SwTxtFrm* _pMasterTxtFrm = 0L ); | 
					
						
							| 
									
										
										
										
											2004-08-02 13:06:22 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         /** accessor to collected anchored object
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             OD 2004-07-05 #i28701# | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             @author OD | 
					
						
							|  |  |  |         */ | 
					
						
							|  |  |  |         SwAnchoredObject* GetCollectedObj( const sal_uInt32 _nIndex ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         /** accessor to 'anchor' page number of collected anchored object
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             OD 2004-07-05 #i28701# | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             @author OD | 
					
						
							|  |  |  |         */ | 
					
						
							|  |  |  |         sal_uInt32 GetPgNumOfCollected( const sal_uInt32 _nIndex ); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-11-16 14:42:33 +00:00
										 |  |  |         /** accessor to 'anchor' type of collected anchored object
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             OD 2004-10-04 #i26945# | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             @author OD | 
					
						
							|  |  |  |         */ | 
					
						
							|  |  |  |         bool IsCollectedAnchoredAtMaster( const sal_uInt32 _nIndex ); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-08-02 13:06:22 +00:00
										 |  |  |         /** accessor to total number of collected anchored objects
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             OD 2004-07-05 #i28701# | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             @author OD | 
					
						
							|  |  |  |         */ | 
					
						
							|  |  |  |         sal_uInt32 CountOfCollected(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public: | 
					
						
							|  |  |  |         virtual ~SwObjectFormatter(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         /** intrinsic method to format a certain floating screen object
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-01-21 09:32:59 +00:00
										 |  |  |             OD 2005-01-10 #i40147# - add parameter <_bCheckForMovedFwd> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-08-02 13:06:22 +00:00
										 |  |  |             @author OD | 
					
						
							| 
									
										
										
										
											2005-01-21 09:32:59 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |             @param _rAnchoredObj | 
					
						
							|  |  |  |             input parameter - anchored object, which have to be formatted. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             @param _bCheckForMovedFwd | 
					
						
							|  |  |  |             input parameter - boolean indicating, that after a successful | 
					
						
							|  |  |  |             format of the anchored object the anchor frame has to be checked, | 
					
						
							|  |  |  |             if it would moved forward due to the positioning of the anchored object. | 
					
						
							|  |  |  |             default value: false | 
					
						
							|  |  |  |             value only considered, if wrapping style influence has to be | 
					
						
							|  |  |  |             considered for the positioning of the anchored object. | 
					
						
							| 
									
										
										
										
											2004-08-02 13:06:22 +00:00
										 |  |  |         */ | 
					
						
							| 
									
										
										
										
											2005-01-21 09:32:59 +00:00
										 |  |  |         virtual bool DoFormatObj( SwAnchoredObject& _rAnchoredObj, | 
					
						
							|  |  |  |                                   const bool _bCheckForMovedFwd = false ) = 0; | 
					
						
							| 
									
										
										
										
											2004-08-02 13:06:22 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         /** intrinsic method to format all floating screen objects
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             @author OD | 
					
						
							|  |  |  |         */ | 
					
						
							|  |  |  |         virtual bool DoFormatObjs() = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         /** method to format all floating screen objects at the given anchor frame
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             @author OD | 
					
						
							|  |  |  |         */ | 
					
						
							|  |  |  |         static bool FormatObjsAtFrm( SwFrm& _rAnchorFrm, | 
					
						
							|  |  |  |                                      const SwPageFrm& _rPageFrm, | 
					
						
							|  |  |  |                                      SwLayAction* _pLayAction = 0L ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         /** method to format a given floating screen object
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             @author OD | 
					
						
							|  |  |  |         */ | 
					
						
							|  |  |  |         static bool FormatObj( SwAnchoredObject& _rAnchoredObj, | 
					
						
							|  |  |  |                                SwFrm* _pAnchorFrm = 0L, | 
					
						
							|  |  |  |                                const SwPageFrm* _pPageFrm = 0L, | 
					
						
							|  |  |  |                                SwLayAction* _pLayAction = 0L ); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif
 |