5630cca203
Conflicts: sw/inc/calbck.hxx sw/inc/crsrsh.hxx sw/inc/dcontact.hxx sw/inc/doc.hxx sw/inc/docufld.hxx sw/inc/editsh.hxx sw/inc/expfld.hxx sw/inc/fchrfmt.hxx sw/inc/fmtcol.hxx sw/inc/fmthdft.hxx sw/inc/fmtpdsc.hxx sw/inc/format.hxx sw/inc/frmfmt.hxx sw/inc/ndhints.hxx sw/inc/ndtxt.hxx sw/inc/node.hxx sw/inc/numrule.hxx sw/inc/paratr.hxx sw/inc/swtable.hxx sw/inc/unocrsr.hxx sw/inc/unofield.hxx sw/inc/unoframe.hxx sw/inc/unoport.hxx sw/inc/unostyle.hxx sw/inc/usrfld.hxx sw/inc/viewopt.hxx sw/inc/viewsh.hxx sw/source/core/access/accframebase.cxx sw/source/core/access/accmap.cxx sw/source/core/access/accnotextframe.cxx sw/source/core/access/accpara.cxx sw/source/core/access/accpara.hxx sw/source/core/attr/calbck.cxx sw/source/core/crsr/callnk.cxx sw/source/core/crsr/crsrsh.cxx sw/source/core/doc/acmplwrd.cxx sw/source/core/doc/doc.cxx sw/source/core/doc/docdesc.cxx sw/source/core/doc/docdraw.cxx sw/source/core/doc/docfly.cxx sw/source/core/doc/docfmt.cxx sw/source/core/doc/doclay.cxx sw/source/core/doc/docnew.cxx sw/source/core/doc/docnum.cxx sw/source/core/doc/doctxm.cxx sw/source/core/doc/fmtcol.cxx sw/source/core/doc/htmltbl.cxx sw/source/core/doc/number.cxx sw/source/core/docnode/ndsect.cxx sw/source/core/docnode/ndtbl.cxx sw/source/core/docnode/node.cxx sw/source/core/docnode/node2lay.cxx sw/source/core/docnode/section.cxx sw/source/core/docnode/swbaslnk.cxx sw/source/core/draw/dcontact.cxx sw/source/core/draw/dview.cxx sw/source/core/edit/autofmt.cxx sw/source/core/edit/editsh.cxx sw/source/core/edit/edlingu.cxx sw/source/core/fields/authfld.cxx sw/source/core/fields/dbfld.cxx sw/source/core/fields/docufld.cxx sw/source/core/fields/expfld.cxx sw/source/core/fields/reffld.cxx sw/source/core/fields/tblcalc.cxx sw/source/core/frmedt/fefly1.cxx sw/source/core/frmedt/feshview.cxx sw/source/core/frmedt/tblsel.cxx sw/source/core/inc/flyfrm.hxx sw/source/core/inc/prevwpage.hxx sw/source/core/inc/rolbck.hxx sw/source/core/inc/txtfrm.hxx sw/source/core/layout/atrfrm.cxx sw/source/core/layout/findfrm.cxx sw/source/core/layout/flowfrm.cxx sw/source/core/layout/fly.cxx sw/source/core/layout/flycnt.cxx sw/source/core/layout/flylay.cxx sw/source/core/layout/frmtool.cxx sw/source/core/layout/hffrm.cxx sw/source/core/layout/pagechg.cxx sw/source/core/layout/pagedesc.cxx sw/source/core/layout/paintfrm.cxx sw/source/core/layout/sectfrm.cxx sw/source/core/layout/ssfrm.cxx sw/source/core/layout/tabfrm.cxx sw/source/core/layout/wsfrm.cxx sw/source/core/objectpositioning/tocntntanchoredobjectposition.cxx sw/source/core/table/swtable.cxx sw/source/core/text/EnhancedPDFExportHelper.cxx sw/source/core/text/inftxt.cxx sw/source/core/text/porfld.cxx sw/source/core/text/txtdrop.cxx sw/source/core/text/txtfly.cxx sw/source/core/text/txtfrm.cxx sw/source/core/text/txtio.cxx sw/source/core/text/txttab.cxx sw/source/core/tox/tox.cxx sw/source/core/txtnode/atrflyin.cxx sw/source/core/txtnode/fmtatr2.cxx sw/source/core/txtnode/ndtxt.cxx sw/source/core/undo/SwUndoPageDesc.cxx sw/source/core/undo/undraw.cxx sw/source/core/unocore/unochart.cxx sw/source/core/unocore/unocoll.cxx sw/source/core/unocore/unodraw.cxx sw/source/core/unocore/unofield.cxx sw/source/core/unocore/unoframe.cxx sw/source/core/unocore/unoftn.cxx sw/source/core/unocore/unoidx.cxx sw/source/core/unocore/unoobj2.cxx sw/source/core/unocore/unoparagraph.cxx sw/source/core/unocore/unoport.cxx sw/source/core/unocore/unoportenum.cxx sw/source/core/unocore/unoredline.cxx sw/source/core/unocore/unoredlines.cxx sw/source/core/unocore/unorefmk.cxx sw/source/core/unocore/unosect.cxx sw/source/core/unocore/unosett.cxx sw/source/core/unocore/unostyle.cxx sw/source/core/unocore/unotbl.cxx sw/source/core/unocore/unotext.cxx sw/source/core/view/viewimp.cxx sw/source/core/view/viewpg.cxx sw/source/core/view/viewsh.cxx sw/source/core/view/vnew.cxx sw/source/core/view/vprint.cxx sw/source/filter/ww8/rtfexport.cxx sw/source/filter/ww8/rtfexport.hxx sw/source/filter/ww8/wrtw8nds.cxx sw/source/filter/ww8/wrtww8gr.cxx sw/source/filter/xml/XMLRedlineImportHelper.cxx sw/source/ui/app/apphdl.cxx sw/source/ui/app/docsh.cxx sw/source/ui/app/docsh2.cxx sw/source/ui/app/swmodul1.cxx sw/source/ui/config/viewopt.cxx sw/source/ui/fldui/fldpage.cxx sw/source/ui/uiview/srcview.cxx sw/source/ui/uiview/view.cxx sw/source/ui/uno/unotxdoc.cxx sw/source/ui/vba/wordvbahelper.cxx sw/source/ui/wrtsh/wrtsh1.cxx
305 lines
9.9 KiB
C++
305 lines
9.9 KiB
C++
/* -*- 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 _FRMFMT_HXX
|
|
#define _FRMFMT_HXX
|
|
|
|
#include <com/sun/star/text/PositionLayoutDir.hpp>
|
|
#include <cppuhelper/weakref.hxx>
|
|
#include <tools/gen.hxx>
|
|
#include <format.hxx>
|
|
#include "swdllapi.h"
|
|
|
|
class SwFlyFrm;
|
|
class SwAnchoredObject;
|
|
class Graphic;
|
|
class Point;
|
|
class ImageMap;
|
|
class IMapObject;
|
|
class SwRect;
|
|
class SwContact;
|
|
class SdrObject;
|
|
|
|
class SW_DLLPUBLIC SwFrmFmt: public SwFmt
|
|
{
|
|
friend class SwDoc;
|
|
friend class SwPageDesc; // Is allowed to call protected CTor.
|
|
|
|
::com::sun::star::uno::WeakReference<
|
|
::com::sun::star::uno::XInterface> m_wXObject;
|
|
|
|
protected:
|
|
SwFrmFmt( SwAttrPool& rPool, const sal_Char* pFmtNm,
|
|
SwFrmFmt *pDrvdFrm, sal_uInt16 nFmtWhich = RES_FRMFMT,
|
|
const sal_uInt16* pWhichRange = 0 )
|
|
: SwFmt( rPool, pFmtNm, (pWhichRange ? pWhichRange : aFrmFmtSetRange),
|
|
pDrvdFrm, nFmtWhich )
|
|
{}
|
|
|
|
SwFrmFmt( SwAttrPool& rPool, const String &rFmtNm,
|
|
SwFrmFmt *pDrvdFrm, sal_uInt16 nFmtWhich = RES_FRMFMT,
|
|
const sal_uInt16* pWhichRange = 0 )
|
|
: SwFmt( rPool, rFmtNm, (pWhichRange ? pWhichRange : aFrmFmtSetRange),
|
|
pDrvdFrm, nFmtWhich )
|
|
{}
|
|
|
|
virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNewValue );
|
|
|
|
public:
|
|
TYPEINFO(); // Already in base class Client.
|
|
|
|
// Destroys all Frms in aDepend (Frms are identified via PTR_CAST).
|
|
virtual void DelFrms();
|
|
|
|
// Creates the views.
|
|
virtual void MakeFrms();
|
|
|
|
virtual Graphic MakeGraphic( ImageMap* pMap = NULL );
|
|
|
|
// Returns the IMapObject defined at format (Fly)
|
|
// in the ImageMap at position Point.
|
|
// rPoint - test on DocPosition.
|
|
// pFly - optional FlyFrame, in case it is already known.
|
|
IMapObject* GetIMapObject( const Point& rPoint,
|
|
const SwFlyFrm *pFly = 0 ) const;
|
|
|
|
|
|
// Returns the real size of the frame - or an empty rectangle
|
|
// if no layout exists.
|
|
// If pPoint is given, look for the frame closest to it.
|
|
SwRect FindLayoutRect( const sal_Bool bPrtArea = sal_False,
|
|
const Point* pPoint = 0,
|
|
const sal_Bool bCalcFrm = sal_False ) const;
|
|
|
|
// Searches SdrObject. SdrObjUserCall is client of the format.
|
|
// The UserCall knows its SdrObject.
|
|
SwContact *FindContactObj();
|
|
const SwContact *FindContactObj() const
|
|
{ return ((SwFrmFmt*)this)->FindContactObj(); }
|
|
|
|
// Returns the SdrObject, that ist connected to the ContactObject.
|
|
// Only DrawFrmFmts are connected to the "real SdrObject". FlyFrmFmts
|
|
// are connected to a Master and all FlyFrms has the "real SdrObject".
|
|
// "Real SdrObject" has position and a Z-order.
|
|
SdrObject *FindSdrObject();
|
|
const SdrObject *FindSdrObject() const
|
|
{ return ((SwFrmFmt*)this)->FindSdrObject(); }
|
|
|
|
SdrObject *FindRealSdrObject();
|
|
const SdrObject *FindRealSdrObject() const
|
|
{ return ((SwFrmFmt*)this)->FindRealSdrObject(); }
|
|
|
|
sal_Bool IsLowerOf( const SwFrmFmt& rFmt ) const;
|
|
|
|
enum tLayoutDir
|
|
{
|
|
HORI_L2R,
|
|
HORI_R2L,
|
|
VERT_R2L,
|
|
VERT_L2R // Not supported yet.
|
|
};
|
|
|
|
virtual SwFrmFmt::tLayoutDir GetLayoutDir() const;
|
|
virtual void SetLayoutDir( const SwFrmFmt::tLayoutDir _eLayoutDir );
|
|
|
|
virtual sal_Int16 GetPositionLayoutDir() const;
|
|
virtual void SetPositionLayoutDir( const sal_Int16 _nPositionLayoutDir );
|
|
|
|
virtual String GetDescription() const;
|
|
|
|
SW_DLLPRIVATE ::com::sun::star::uno::WeakReference<
|
|
::com::sun::star::uno::XInterface> const& GetXObject() const
|
|
{ return m_wXObject; }
|
|
SW_DLLPRIVATE void SetXObject(::com::sun::star::uno::Reference<
|
|
::com::sun::star::uno::XInterface> const& xObject)
|
|
{ m_wXObject = xObject; }
|
|
|
|
DECL_FIXEDMEMPOOL_NEWDEL_DLL(SwFrmFmt)
|
|
void RegisterToFormat( SwFmt& rFmt );
|
|
};
|
|
|
|
// The FlyFrame-Format
|
|
|
|
class SW_DLLPUBLIC SwFlyFrmFmt: public SwFrmFmt
|
|
{
|
|
friend class SwDoc;
|
|
|
|
// Both not existent.
|
|
// it stores the previous position of Prt rectangle from RequestObjectResize
|
|
// so it can be used to move frames of non-resizable objects to align them correctly
|
|
// when they get borders (this is done in SwWrtShell::CalcAndGetScale)
|
|
Point m_aLastFlyFrmPrtRectPos;
|
|
|
|
SwFlyFrmFmt( const SwFlyFrmFmt &rCpy );
|
|
SwFlyFrmFmt &operator=( const SwFlyFrmFmt &rCpy );
|
|
|
|
protected:
|
|
SwFlyFrmFmt( SwAttrPool& rPool, const sal_Char* pFmtNm,
|
|
SwFrmFmt *pDrvdFrm )
|
|
: SwFrmFmt( rPool, pFmtNm, pDrvdFrm, RES_FLYFRMFMT )
|
|
{}
|
|
SwFlyFrmFmt( SwAttrPool& rPool, const String &rFmtNm,
|
|
SwFrmFmt *pDrvdFrm )
|
|
: SwFrmFmt( rPool, rFmtNm, pDrvdFrm, RES_FLYFRMFMT )
|
|
{}
|
|
|
|
public:
|
|
TYPEINFO();
|
|
~SwFlyFrmFmt();
|
|
|
|
// Creates the views.
|
|
virtual void MakeFrms();
|
|
|
|
SwFlyFrm* GetFrm( const Point* pDocPos = 0,
|
|
const sal_Bool bCalcFrm = sal_False ) const;
|
|
|
|
SwAnchoredObject* GetAnchoredObj( const Point* pDocPos = 0,
|
|
const sal_Bool bCalcFrm = sal_False ) const;
|
|
|
|
virtual Graphic MakeGraphic( ImageMap* pMap = NULL );
|
|
|
|
virtual sal_Bool GetInfo( SfxPoolItem& rInfo ) const;
|
|
|
|
const String GetObjTitle() const;
|
|
void SetObjTitle( const String& rTitle,
|
|
bool bBroadcast = false );
|
|
const String GetObjDescription() const;
|
|
void SetObjDescription( const String& rDescription,
|
|
bool bBroadcast = false );
|
|
|
|
/** SwFlyFrmFmt::IsBackgroundTransparent
|
|
|
|
Overloading virtual method and its default implementation,
|
|
because format of fly frame provides transparent backgrounds.
|
|
Method determines, if background of fly frame is transparent.
|
|
|
|
@author OD
|
|
|
|
@return true, if background color is transparent, but not "no fill"
|
|
or a existing background graphic is transparent.
|
|
*/
|
|
virtual sal_Bool IsBackgroundTransparent() const;
|
|
|
|
/** SwFlyFrmFmt::IsBackgroundBrushInherited
|
|
|
|
Method to determine, if the brush for drawing the
|
|
background is "inherited" from its parent/grandparent.
|
|
This is the case, if no background graphic is set and the background
|
|
color is "no fill"/"auto fill"
|
|
|
|
@author OD
|
|
|
|
@return true, if background brush is "inherited" from parent/grandparent
|
|
*/
|
|
sal_Bool IsBackgroundBrushInherited() const;
|
|
|
|
const Point & GetLastFlyFrmPrtRectPos() const { return m_aLastFlyFrmPrtRectPos; }
|
|
void SetLastFlyFrmPrtRectPos( const Point &rPoint ) { m_aLastFlyFrmPrtRectPos = rPoint; }
|
|
|
|
DECL_FIXEDMEMPOOL_NEWDEL(SwFlyFrmFmt)
|
|
};
|
|
|
|
//The DrawFrame-Format
|
|
|
|
class SW_DLLPUBLIC SwDrawFrmFmt: public SwFrmFmt
|
|
{
|
|
friend class SwDoc;
|
|
|
|
mutable const SdrObject * pSdrObjCached;
|
|
mutable String sSdrObjCachedComment;
|
|
|
|
// Both not existent.
|
|
SwDrawFrmFmt( const SwDrawFrmFmt &rCpy );
|
|
SwDrawFrmFmt &operator=( const SwDrawFrmFmt &rCpy );
|
|
|
|
SwFrmFmt::tLayoutDir meLayoutDir;
|
|
|
|
sal_Int16 mnPositionLayoutDir;
|
|
|
|
bool mbPosAttrSet;
|
|
|
|
protected:
|
|
SwDrawFrmFmt( SwAttrPool& rPool, const sal_Char* pFmtNm,
|
|
SwFrmFmt *pDrvdFrm )
|
|
: SwFrmFmt( rPool, pFmtNm, pDrvdFrm, RES_DRAWFRMFMT ),
|
|
pSdrObjCached(NULL),
|
|
|
|
meLayoutDir( SwFrmFmt::HORI_L2R ),
|
|
|
|
mnPositionLayoutDir( com::sun::star::text::PositionLayoutDir::PositionInLayoutDirOfAnchor ),
|
|
|
|
mbPosAttrSet( false )
|
|
|
|
{}
|
|
SwDrawFrmFmt( SwAttrPool& rPool, const String &rFmtNm,
|
|
SwFrmFmt *pDrvdFrm )
|
|
: SwFrmFmt( rPool, rFmtNm, pDrvdFrm, RES_DRAWFRMFMT ),
|
|
pSdrObjCached(NULL),
|
|
meLayoutDir( SwFrmFmt::HORI_L2R ),
|
|
|
|
mnPositionLayoutDir( com::sun::star::text::PositionLayoutDir::PositionInLayoutDirOfAnchor ),
|
|
|
|
mbPosAttrSet( false )
|
|
{}
|
|
|
|
public:
|
|
TYPEINFO();
|
|
~SwDrawFrmFmt();
|
|
|
|
// DrawObjects are removed from the arrays at the layout.
|
|
// The DrawObjects are marked as deleted.
|
|
virtual void DelFrms();
|
|
|
|
// Register DrawObjects in the arrays at layout.
|
|
// Reset delete marks.
|
|
virtual void MakeFrms();
|
|
|
|
virtual Graphic MakeGraphic( ImageMap* pMap = NULL );
|
|
|
|
virtual SwFrmFmt::tLayoutDir GetLayoutDir() const;
|
|
virtual void SetLayoutDir( const SwFrmFmt::tLayoutDir _eLayoutDir );
|
|
|
|
virtual sal_Int16 GetPositionLayoutDir() const;
|
|
virtual void SetPositionLayoutDir( const sal_Int16 _nPositionLayoutDir );
|
|
|
|
inline bool IsPosAttrSet() const { return mbPosAttrSet; }
|
|
inline void PosAttrSet() { mbPosAttrSet = true; }
|
|
|
|
inline void ResetPosAttr()
|
|
{
|
|
mbPosAttrSet = false;
|
|
}
|
|
|
|
virtual String GetDescription() const;
|
|
|
|
DECL_FIXEDMEMPOOL_NEWDEL(SwDrawFrmFmt);
|
|
};
|
|
|
|
|
|
#endif
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|