LCOV - code coverage report
Current view: top level - svx/inc/svx - svdmodel.hxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 28 44 63.6 %
Date: 2012-08-25 Functions: 30 46 65.2 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1 22 4.5 %

           Branch data     Line data    Source code
       1                 :            : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2                 :            : /*************************************************************************
       3                 :            :  *
       4                 :            :  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       5                 :            :  *
       6                 :            :  * Copyright 2000, 2010 Oracle and/or its affiliates.
       7                 :            :  *
       8                 :            :  * OpenOffice.org - a multi-platform office productivity suite
       9                 :            :  *
      10                 :            :  * This file is part of OpenOffice.org.
      11                 :            :  *
      12                 :            :  * OpenOffice.org is free software: you can redistribute it and/or modify
      13                 :            :  * it under the terms of the GNU Lesser General Public License version 3
      14                 :            :  * only, as published by the Free Software Foundation.
      15                 :            :  *
      16                 :            :  * OpenOffice.org is distributed in the hope that it will be useful,
      17                 :            :  * but WITHOUT ANY WARRANTY; without even the implied warranty of
      18                 :            :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      19                 :            :  * GNU Lesser General Public License version 3 for more details
      20                 :            :  * (a copy is included in the LICENSE file that accompanied this code).
      21                 :            :  *
      22                 :            :  * You should have received a copy of the GNU Lesser General Public License
      23                 :            :  * version 3 along with OpenOffice.org.  If not, see
      24                 :            :  * <http://www.openoffice.org/license.html>
      25                 :            :  * for a copy of the LGPLv3 License.
      26                 :            :  *
      27                 :            :  ************************************************************************/
      28                 :            : 
      29                 :            : #ifndef _SVDMODEL_HXX
      30                 :            : #define _SVDMODEL_HXX
      31                 :            : 
      32                 :            : #include <com/sun/star/uno/Sequence.hxx>
      33                 :            : #include <cppuhelper/weakref.hxx>
      34                 :            : #include <sot/storage.hxx>
      35                 :            : #include <tools/link.hxx>
      36                 :            : #include <tools/weakbase.hxx>
      37                 :            : #include <vcl/mapmod.hxx>
      38                 :            : #include <svl/brdcst.hxx>
      39                 :            : #include <tools/string.hxx>
      40                 :            : #include <tools/datetime.hxx>
      41                 :            : #include <svl/hint.hxx>
      42                 :            : 
      43                 :            : #include <svl/style.hxx>
      44                 :            : #include <svx/xtable.hxx>
      45                 :            : #include <svx/pageitem.hxx>
      46                 :            : #include <vcl/field.hxx>
      47                 :            : 
      48                 :            : #include <boost/shared_ptr.hpp>
      49                 :            : 
      50                 :            : class OutputDevice;
      51                 :            : #include <svx/svdtypes.hxx> // fuer enum RepeatFuncts
      52                 :            : #include "svx/svxdllapi.h"
      53                 :            : 
      54                 :            : #include <rtl/ref.hxx>
      55                 :            : #include <deque>
      56                 :            : 
      57                 :            : #if defined(UNX) || defined(WNT)
      58                 :            : #define DEGREE_CHAR ((sal_Unicode)176)   /* 0xB0 = Ansi */
      59                 :            : #endif
      60                 :            : 
      61                 :            : #ifndef DEGREE_CHAR
      62                 :            : #error unbekannte Plattrorm
      63                 :            : #endif
      64                 :            : 
      65                 :            : class SdrOutliner;
      66                 :            : class SdrLayerAdmin;
      67                 :            : class SdrObjList;
      68                 :            : class SdrObject;
      69                 :            : class SdrPage;
      70                 :            : class SdrPageView;
      71                 :            : class SdrTextObj;
      72                 :            : class SdrUndoAction;
      73                 :            : class SdrUndoGroup;
      74                 :            : class AutoTimer;
      75                 :            : class SfxItemPool;
      76                 :            : class SfxItemSet;
      77                 :            : class SfxRepeatTarget;
      78                 :            : class SfxStyleSheet;
      79                 :            : class SfxUndoAction;
      80                 :            : class SfxUndoManager;
      81                 :            : class XBitmapList;
      82                 :            : class XColorList;
      83                 :            : class XDashList;
      84                 :            : class XGradientList;
      85                 :            : class XHatchList;
      86                 :            : class XLineEndList;
      87                 :            : class SvxForbiddenCharactersTable;
      88                 :            : class SvNumberFormatter;
      89                 :            : class SotStorage;
      90                 :            : class SdrOutlinerCache;
      91                 :            : class SotStorageRef;
      92                 :            : class SdrUndoFactory;
      93                 :            : namespace comphelper
      94                 :            : {
      95                 :            :     class IEmbeddedHelper;
      96                 :            :     class LifecycleProxy;
      97                 :            : }
      98                 :            : namespace sfx2
      99                 :            : {
     100                 :            :     class LinkManager;
     101                 :            : }
     102                 :            : ////////////////////////////////////////////////////////////////////////////////////////////////////
     103                 :            : 
     104                 :            : #define SDR_SWAPGRAPHICSMODE_NONE       0x00000000
     105                 :            : #define SDR_SWAPGRAPHICSMODE_TEMP       0x00000001
     106                 :            : #define SDR_SWAPGRAPHICSMODE_DOC        0x00000002
     107                 :            : #define SDR_SWAPGRAPHICSMODE_PURGE      0x00000100
     108                 :            : #define SDR_SWAPGRAPHICSMODE_DEFAULT    (SDR_SWAPGRAPHICSMODE_TEMP|SDR_SWAPGRAPHICSMODE_DOC|SDR_SWAPGRAPHICSMODE_PURGE)
     109                 :            : 
     110                 :            : ////////////////////////////////////////////////////////////////////////////////////////////////////
     111                 :            : 
     112                 :            : enum SdrHintKind
     113                 :            : {
     114                 :            :                   HINT_UNKNOWN,         // Unbekannt
     115                 :            :                   HINT_LAYERCHG,        // Layerdefinition geaendert
     116                 :            :                   HINT_LAYERORDERCHG,   // Layerreihenfolge geaendert (Insert/Remove/ChangePos)
     117                 :            :                   HINT_PAGEORDERCHG,    // Reihenfolge der Seiten (Zeichenseiten oder Masterpages) geaendert (Insert/Remove/ChangePos)
     118                 :            :                   HINT_OBJCHG,          // Objekt geaendert
     119                 :            :                   HINT_OBJINSERTED,     // Neues Zeichenobjekt eingefuegt
     120                 :            :                   HINT_OBJREMOVED,      // Zeichenobjekt aus Liste entfernt
     121                 :            :                   HINT_MODELCLEARED,    // gesamtes Model geloescht (keine Pages mehr da). not impl.
     122                 :            :                   HINT_REFDEVICECHG,    // RefDevice geaendert
     123                 :            :                   HINT_DEFAULTTABCHG,   // Default Tabulatorweite geaendert
     124                 :            :                   HINT_DEFFONTHGTCHG,   // Default FontHeight geaendert
     125                 :            :                   HINT_MODELSAVED,      // Dokument wurde gesichert
     126                 :            :                   HINT_SWITCHTOPAGE,    // #94278# UNDO/REDO at an object evtl. on another page
     127                 :            :                   HINT_BEGEDIT,         // Is called after the object has entered text edit mode
     128                 :            :                   HINT_ENDEDIT          // Is called after the object has left text edit mode
     129                 :            : };
     130                 :            : 
     131         [ -  + ]:     134664 : class SVX_DLLPUBLIC SdrHint: public SfxHint
     132                 :            : {
     133                 :            : public:
     134                 :            :     Rectangle                               maRectangle;
     135                 :            :     const SdrPage*                          mpPage;
     136                 :            :     const SdrObject*                        mpObj;
     137                 :            :     const SdrObjList*                       mpObjList;
     138                 :            :     SdrHintKind                             meHint;
     139                 :            : 
     140                 :            : public:
     141                 :            :     TYPEINFO();
     142                 :            : 
     143                 :            :     explicit SdrHint(SdrHintKind eNewHint);
     144                 :            :     explicit SdrHint(const SdrObject& rNewObj);
     145                 :            : 
     146                 :            :     void SetPage(const SdrPage* pNewPage);
     147                 :            :     void SetObject(const SdrObject* pNewObj);
     148                 :            :     void SetKind(SdrHintKind eNewKind);
     149                 :            : 
     150                 :            :     const SdrPage* GetPage() const;
     151                 :            :     const SdrObject* GetObject() const;
     152                 :            :     SdrHintKind GetKind() const;
     153                 :            : };
     154                 :            : 
     155                 :            : ////////////////////////////////////////////////////////////////////////////////////////////////////
     156                 :            : 
     157                 :            : // Flag um nach dem Laden des Pools Aufzuraeumen (d.h. die RefCounts
     158                 :            : // neu zu bestimmen und unbenutztes wegzuwerfen). sal_False == aktiv
     159                 :            : #define LOADREFCOUNTS (false)
     160                 :            : 
     161                 :            : struct SdrModelImpl;
     162                 :            : 
     163                 :            : class SVX_DLLPUBLIC SdrModel : public SfxBroadcaster, public tools::WeakBase< SdrModel >
     164                 :            : {
     165                 :            : protected:
     166                 :            :     DateTime       aReadDate;  // Datum des Einstreamens
     167                 :            :     std::vector<SdrPage*> maMaPag;     // StammSeiten (Masterpages)
     168                 :            :     std::vector<SdrPage*> maPages;
     169                 :            :     Link           aUndoLink;  // Link fuer einen NotifyUndo-Handler
     170                 :            :     Link           aIOProgressLink;
     171                 :            :     String         aTablePath;
     172                 :            :     Size           aMaxObjSize; // z.B. fuer Autogrowing Text
     173                 :            :     Fraction       aObjUnit;   // Beschreibung der Koordinateneinheiten fuer ClipBoard, Drag&Drop, ...
     174                 :            :     MapUnit        eObjUnit;   // see above
     175                 :            :     FieldUnit      eUIUnit;      // Masseinheit, Masstab (z.B. 1/1000) fuer die UI (Statuszeile) wird von ImpSetUIUnit() gesetzt
     176                 :            :     Fraction       aUIScale;     // see above
     177                 :            :     String         aUIUnitStr;   // see above
     178                 :            :     Fraction       aUIUnitFact;  // see above
     179                 :            :     int            nUIUnitKomma; // see above
     180                 :            : 
     181                 :            :     SdrLayerAdmin*  pLayerAdmin;
     182                 :            :     SfxItemPool*    pItemPool;
     183                 :            :     comphelper::IEmbeddedHelper*
     184                 :            :                     m_pEmbeddedHelper; // helper for embedded objects to get rid of the SfxObjectShell
     185                 :            :     SdrOutliner*    pDrawOutliner;  // ein Outliner zur Textausgabe
     186                 :            :     SdrOutliner*    pHitTestOutliner;// ein Outliner fuer den HitTest
     187                 :            :     sal_uIntPtr           nDefTextHgt;    // Default Texthoehe in logischen Einheiten
     188                 :            :     OutputDevice*   pRefOutDev;     // ReferenzDevice fuer die EditEngine
     189                 :            :     sal_uIntPtr           nProgressAkt;   // fuer den
     190                 :            :     sal_uIntPtr           nProgressMax;   // ProgressBar-
     191                 :            :     sal_uIntPtr           nProgressOfs;   // -Handler
     192                 :            :     rtl::Reference< SfxStyleSheetBasePool > mxStyleSheetPool;
     193                 :            :     SfxStyleSheet*  pDefaultStyleSheet;
     194                 :            :     sfx2::LinkManager* pLinkManager;   // LinkManager
     195                 :            :     std::deque<SfxUndoAction*>* pUndoStack;
     196                 :            :     std::deque<SfxUndoAction*>* pRedoStack;
     197                 :            :     SdrUndoGroup*   pAktUndoGroup;  // Fuer mehrstufige
     198                 :            :     sal_uInt16          nUndoLevel;     // Undo-Klammerung
     199                 :            :     sal_uInt16          nProgressPercent; // fuer den ProgressBar-Handler
     200                 :            :     sal_uInt16          nLoadVersion;   // Versionsnummer der geladenen Datei
     201                 :            :     bool            bMyPool:1;        // zum Aufraeumen von pMyPool ab 303a
     202                 :            :     bool            bUIOnlyKomma:1; // see eUIUnit
     203                 :            :     bool            mbUndoEnabled:1;  // If false no undo is recorded or we are during the execution of an undo action
     204                 :            :     bool            bExtColorTable:1; // Keinen eigenen ColorTable
     205                 :            :     bool            mbChanged:1;
     206                 :            :     bool            bInfoChanged:1;
     207                 :            :     bool            bPagNumsDirty:1;
     208                 :            :     bool            bMPgNumsDirty:1;
     209                 :            :     bool            bPageNotValid:1;  // TRUE=Doc ist nur ObjektTraeger. Page ist nicht gueltig.
     210                 :            :     bool            bSavePortable:1;  // Metafiles portabel speichern
     211                 :            :     bool            bNoBitmapCaching:1;   // Bitmaps fuer Screenoutput cachen
     212                 :            :     bool            bReadOnly:1;
     213                 :            :     bool            bTransparentTextFrames:1;
     214                 :            :     bool            bSaveCompressed:1;
     215                 :            :     bool            bSwapGraphics:1;
     216                 :            :     bool            bPasteResize:1; // Objekte werden gerade resized wegen Paste mit anderem MapMode
     217                 :            :     bool            bSaveOLEPreview:1;      // save preview metafile of OLE objects
     218                 :            :     bool            bSaveNative:1;
     219                 :            :     bool            bStarDrawPreviewMode:1;
     220                 :            :     sal_uInt16          nStreamCompressMode;  // Komprimiert schreiben?
     221                 :            :     sal_uInt16          nStreamNumberFormat;
     222                 :            :     sal_uInt16          nDefaultTabulator;
     223                 :            :     sal_uInt32          nMaxUndoCount;
     224                 :            : 
     225                 :            : 
     226                 :            : //////////////////////////////////////////////////////////////////////////////
     227                 :            : // sdr::Comment interface
     228                 :            : private:
     229                 :            :     // the next unique comment ID, used for counting added comments. Initialized
     230                 :            :     // to 0. UI shows one more due to the fact that 0 is a no-no for users.
     231                 :            :     sal_uInt32                                          mnUniqueCommentID;
     232                 :            : 
     233                 :            : public:
     234                 :            :     // create a new, unique comment ID
     235                 :            :     sal_uInt32 GetNextUniqueCommentID();
     236                 :            : 
     237                 :            :     // get the author name
     238                 :            :     ::rtl::OUString GetDocumentAuthorName() const;
     239                 :            : 
     240                 :            :     // for export
     241                 :            :     sal_uInt32 GetUniqueCommentID() const { return mnUniqueCommentID; }
     242                 :            : 
     243                 :            :     // for import
     244                 :            :     void SetUniqueCommentID(sal_uInt32 nNewID) { if(nNewID != mnUniqueCommentID) { mnUniqueCommentID = nNewID; } }
     245                 :            :     /** cl: added this for OJ to complete his reporting engine, does not work
     246                 :            :         correctly so only enable it for his model */
     247                 :            :     void SetAllowShapePropertyChangeListener( bool bAllow );
     248                 :            : 
     249                 :            :     sal_uInt16          nStarDrawPreviewMasterPageNum;
     250                 :            :     SvxForbiddenCharactersTable* mpForbiddenCharactersTable;
     251                 :            :     sal_uIntPtr         nSwapGraphicsMode;
     252                 :            : 
     253                 :            :     SdrOutlinerCache* mpOutlinerCache;
     254                 :            :     SdrModelImpl*   mpImpl;
     255                 :            :     sal_uInt16          mnCharCompressType;
     256                 :            :     sal_uInt16          mnHandoutPageCount;
     257                 :            :     sal_uInt16          nReserveUInt6;
     258                 :            :     sal_uInt16          nReserveUInt7;
     259                 :            :     bool            mbModelLocked;
     260                 :            :     bool            mbKernAsianPunctuation;
     261                 :            :     bool            mbAddExtLeading;
     262                 :            :     bool            mbInDestruction;
     263                 :            : 
     264                 :            :     // Color, Dash, Line-End, Hatch, Gradient, Bitmap property lists ...
     265                 :            :     XPropertyListRef maProperties[XPROPERTY_LIST_COUNT];
     266                 :            : 
     267                 :            :     // New src638: NumberFormatter for drawing layer and
     268                 :            :     // method for getting it. It is constructed on demand
     269                 :            :     // and destroyed when destroying the SdrModel.
     270                 :            :     SvNumberFormatter* mpNumberFormatter;
     271                 :            : public:
     272                 :          0 :     sal_uInt16 getHandoutPageCount() const { return mnHandoutPageCount; }
     273                 :            :     void setHandoutPageCount( sal_uInt16 nHandoutPageCount ) { mnHandoutPageCount = nHandoutPageCount; }
     274                 :            : 
     275                 :            : protected:
     276                 :            : 
     277                 :            :     virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > createUnoModel();
     278                 :            : 
     279                 :            : private:
     280                 :            :     // Nicht implementiert:
     281                 :            :     SVX_DLLPRIVATE SdrModel(const SdrModel& rSrcModel);
     282                 :            :     SVX_DLLPRIVATE void operator=(const SdrModel& rSrcModel);
     283                 :            :     SVX_DLLPRIVATE bool operator==(const SdrModel& rCmpModel) const;
     284                 :            :     SVX_DLLPRIVATE void ImpPostUndoAction(SdrUndoAction* pUndo);
     285                 :            :     SVX_DLLPRIVATE void ImpSetUIUnit();
     286                 :            :     SVX_DLLPRIVATE void ImpSetOutlinerDefaults( SdrOutliner* pOutliner, sal_Bool bInit = sal_False );
     287                 :            :     SVX_DLLPRIVATE void ImpReformatAllTextObjects();
     288                 :            :     SVX_DLLPRIVATE void ImpReformatAllEdgeObjects();    // #103122#
     289                 :            :     SVX_DLLPRIVATE void ImpCreateTables();
     290                 :            :     SVX_DLLPRIVATE void ImpCtor(SfxItemPool* pPool, ::comphelper::IEmbeddedHelper* pPers, bool bUseExtColorTable,
     291                 :            :         bool bLoadRefCounts = true);
     292                 :            : 
     293                 :            : 
     294                 :            :     // this is a weak reference to a possible living api wrapper for this model
     295                 :            :     ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > mxUnoModel;
     296                 :            : 
     297                 :            : public:
     298                 :      52101 :     bool     IsPasteResize() const        { return bPasteResize; }
     299                 :          0 :     void     SetPasteResize(bool bOn) { bPasteResize=bOn; }
     300                 :            :     TYPEINFO();
     301                 :            :     // Steckt man hier seinen eigenen Pool rein, so wird die Klasse auch
     302                 :            :     // Aktionen an ihm vornehmen (Put(),Remove()). Bei Zerstoerung von
     303                 :            :     // SdrModel wird dieser Pool ver delete geloescht!
     304                 :            :     // Gibt man den Konstruktor stattdessen eine NULL mit, so macht sich
     305                 :            :     // die Klasse einen eigenen Pool (SdrItemPool), den sie dann auch im
     306                 :            :     // Destruktor zerstoert.
     307                 :            :     // Bei Verwendung eines eigenen Pools ist darauf zu achten, dass dieser
     308                 :            :     // von SdrItemPool abgeleitet ist, falls man von SdrAttrObj abgeleitete
     309                 :            :     // Zeichenobjekte verwenden moechte. Setzt man degegen nur vom abstrakten
     310                 :            :     // Basisobjekt SdrObject abgeleitete Objekte ein, so ist man frei in der
     311                 :            :     // Wahl des Pools.
     312                 :            :     explicit SdrModel(SfxItemPool* pPool=NULL, ::comphelper::IEmbeddedHelper* pPers=NULL, sal_Bool bLoadRefCounts = LOADREFCOUNTS);
     313                 :            :     explicit SdrModel(const String& rPath, SfxItemPool* pPool=NULL, ::comphelper::IEmbeddedHelper* pPers=NULL, sal_Bool bLoadRefCounts = LOADREFCOUNTS);
     314                 :            :     SdrModel(SfxItemPool* pPool, ::comphelper::IEmbeddedHelper* pPers, bool bUseExtColorTable, sal_Bool bLoadRefCounts = LOADREFCOUNTS);
     315                 :            :     SdrModel(const String& rPath, SfxItemPool* pPool, ::comphelper::IEmbeddedHelper* pPers, bool bUseExtColorTable, sal_Bool bLoadRefCounts = LOADREFCOUNTS);
     316                 :            :     virtual ~SdrModel();
     317                 :            :     void ClearModel(sal_Bool bCalledFromDestructor);
     318                 :            : 
     319                 :            :     // Hier kann man erfragen, ob das Model gerade eingrstreamt wird
     320                 :     119966 :     bool IsLoading() const                  { return sal_False /*BFS01 bLoading */; }
     321                 :            :     // Muss z.B. ueberladen werden, um das Swappen/LoadOnDemand von Grafiken
     322                 :            :     // zu ermoeglichen. Wird rbDeleteAfterUse auf sal_True gesetzt, so wird
     323                 :            :     // die SvStream-Instanz vom Aufrufer nach Gebrauch destruiert.
     324                 :            :     // Wenn diese Methode NULL liefert, wird zum Swappen eine temporaere
     325                 :            :     // Datei angelegt.
     326                 :            :     // Geliefert werden muss der Stream, aus dem das Model geladen wurde
     327                 :            :     // bzw. in den es zuletzt gespeichert wurde.
     328                 :            :     virtual ::com::sun::star::uno::Reference<
     329                 :            :                 ::com::sun::star::embed::XStorage> GetDocumentStorage() const;
     330                 :            :     ::com::sun::star::uno::Reference<
     331                 :            :             ::com::sun::star::io::XInputStream >
     332                 :            :         GetDocumentStream(::rtl::OUString const& rURL,
     333                 :            :                 ::comphelper::LifecycleProxy & rProxy) const;
     334                 :            :     // Die Vorlagenattribute der Zeichenobjekte in harte Attribute verwandeln.
     335                 :            :     void BurnInStyleSheetAttributes();
     336                 :            :     // Wer sich von SdrPage ableitet muss sich auch von SdrModel ableiten
     337                 :            :     // und diese beiden VM AllocPage() und AllocModel() ueberladen...
     338                 :            :     virtual SdrPage*  AllocPage(bool bMasterPage);
     339                 :            :     virtual SdrModel* AllocModel() const;
     340                 :            : 
     341                 :            :     // Aenderungen an den Layern setzen das Modified-Flag und broadcasten am Model!
     342                 :      15999 :     const SdrLayerAdmin& GetLayerAdmin() const                  { return *pLayerAdmin; }
     343                 :      50792 :     SdrLayerAdmin&       GetLayerAdmin()                        { return *pLayerAdmin; }
     344                 :            : 
     345                 :            :     const SfxItemPool&   GetItemPool() const                    { return *pItemPool; }
     346                 :    1064216 :     SfxItemPool&         GetItemPool()                          { return *pItemPool; }
     347                 :            : 
     348                 :            :     SdrOutliner&         GetDrawOutliner(const SdrTextObj* pObj=NULL) const;
     349                 :            : 
     350                 :     111543 :     SdrOutliner&         GetHitTestOutliner() const { return *pHitTestOutliner; }
     351                 :            :     const SdrTextObj*    GetFormattingTextObj() const;
     352                 :            :     // Die TextDefaults (Font,Hoehe,Farbe) in ein Set putten
     353                 :            :     void                 SetTextDefaults() const;
     354                 :            :     static void          SetTextDefaults( SfxItemPool* pItemPool, sal_uIntPtr nDefTextHgt );
     355                 :            : 
     356                 :            :     // ReferenzDevice fuer die EditEngine
     357                 :            :     void                 SetRefDevice(OutputDevice* pDev);
     358                 :      40459 :     OutputDevice*        GetRefDevice() const                   { return pRefOutDev; }
     359                 :            :     // Wenn ein neuer MapMode am RefDevice gesetzt wird o.ae.
     360                 :            :     void                 RefDeviceChanged(); // noch nicht implementiert
     361                 :            :     // Default-Schrifthoehe in logischen Einheiten
     362                 :            :     void                 SetDefaultFontHeight(sal_uIntPtr nVal);
     363                 :          0 :     sal_uIntPtr                GetDefaultFontHeight() const           { return nDefTextHgt; }
     364                 :            :     // Default-Tabulatorweite fuer die EditEngine
     365                 :            :     void                 SetDefaultTabulator(sal_uInt16 nVal);
     366                 :      23009 :     sal_uInt16               GetDefaultTabulator() const            { return nDefaultTabulator; }
     367                 :            : 
     368                 :            :     // Der DefaultStyleSheet wird jedem Zeichenobjekt verbraten das in diesem
     369                 :            :     // Model eingefuegt wird und kein StyleSheet gesetzt hat.
     370                 :      64602 :     SfxStyleSheet*       GetDefaultStyleSheet() const             { return pDefaultStyleSheet; }
     371                 :            :     void                 SetDefaultStyleSheet(SfxStyleSheet* pDefSS) { pDefaultStyleSheet = pDefSS; }
     372                 :            : 
     373                 :      57489 :     sfx2::LinkManager*      GetLinkManager()                         { return pLinkManager; }
     374                 :            :     void                 SetLinkManager( sfx2::LinkManager* pLinkMgr ) { pLinkManager = pLinkMgr; }
     375                 :            : 
     376                 :         58 :     ::comphelper::IEmbeddedHelper*     GetPersist() const               { return m_pEmbeddedHelper; }
     377                 :            :     void                 ClearPersist()                                 { m_pEmbeddedHelper = 0; }
     378                 :            :     void                 SetPersist( ::comphelper::IEmbeddedHelper *p ) { m_pEmbeddedHelper = p; }
     379                 :            : 
     380                 :            :     // Masseinheit fuer die Zeichenkoordinaten.
     381                 :            :     // Default ist 1 logische Einheit = 1/100mm (Unit=MAP_100TH_MM, Fract=(1,1)).
     382                 :            :     // Beispiele:
     383                 :            :     //   MAP_POINT,    Fraction(72,1)    : 1 log Einh = 72 Point   = 1 Inch
     384                 :            :     //   MAP_POINT,    Fraction(1,20)    : 1 log Einh = 1/20 Point = 1 Twip
     385                 :            :     //   MAP_TWIP,     Fraction(1,1)     : 1 log Einh = 1 Twip
     386                 :            :     //   MAP_100TH_MM, Fraction(1,10)    : 1 log Einh = 1/1000mm
     387                 :            :     //   MAP_MM,       Fraction(1000,1)  : 1 log Einh = 1000mm     = 1m
     388                 :            :     //   MAP_CM,       Fraction(100,1)   : 1 log Einh = 100cm      = 1m
     389                 :            :     //   MAP_CM,       Fraction(100,1)   : 1 log Einh = 100cm      = 1m
     390                 :            :     //   MAP_CM,       Fraction(100000,1): 1 log Einh = 100000cm   = 1km
     391                 :            :     // (PS: Lichtjahre sind somit also nicht darstellbar).
     392                 :            :     // Die Skalierungseinheit wird benoetigt, damit die Engine das Clipboard
     393                 :            :     // mit den richtigen Groessen beliefern kann.
     394                 :        114 :     MapUnit          GetScaleUnit() const                       { return eObjUnit; }
     395                 :            :     void             SetScaleUnit(MapUnit eMap);
     396                 :        228 :     const Fraction&  GetScaleFraction() const                   { return aObjUnit; }
     397                 :            :     void             SetScaleFraction(const Fraction& rFrac);
     398                 :            :     // Beides gleichzeitig setzen ist etwas performanter
     399                 :            :     void             SetScaleUnit(MapUnit eMap, const Fraction& rFrac);
     400                 :            : 
     401                 :            :     // Maximale Groesse z.B. fuer Autogrowing-Texte
     402                 :     129556 :     const Size&      GetMaxObjSize() const                      { return aMaxObjSize; }
     403                 :            :     void             SetMaxObjSize(const Size& rSiz)            { aMaxObjSize=rSiz; }
     404                 :            : 
     405                 :            :     // Damit die View! in der Statuszeile vernuenftige Zahlen anzeigen kann:
     406                 :            :     // Default ist mm.
     407                 :            :     void             SetUIUnit(FieldUnit eUnit);
     408                 :          0 :     FieldUnit        GetUIUnit() const                          { return eUIUnit; }
     409                 :            :     // Der Masstab der Zeichnung. Default 1/1.
     410                 :            :     void             SetUIScale(const Fraction& rScale);
     411                 :            :     const Fraction&  GetUIScale() const                         { return aUIScale; }
     412                 :            :     // Beides gleichzeitig setzen ist etwas performanter
     413                 :            :     void             SetUIUnit(FieldUnit eUnit, const Fraction& rScale);
     414                 :            : 
     415                 :            :     const Fraction&  GetUIUnitFact() const                      { return aUIUnitFact; }
     416                 :            :     const String&    GetUIUnitStr() const                       { return aUIUnitStr; }
     417                 :            :     int              GetUIUnitKomma() const                     { return nUIUnitKomma; }
     418                 :            :     bool             IsUIOnlyKomma() const                      { return bUIOnlyKomma; }
     419                 :            : 
     420                 :            :     static void      TakeUnitStr(FieldUnit eUnit, String& rStr);
     421                 :            :     void             TakeMetricStr(long nVal, rtl::OUString& rStr, bool bNoUnitChars = false, sal_Int32 nNumDigits = -1) const;
     422                 :            :     void             TakeWinkStr(long nWink, rtl::OUString& rStr, bool bNoDegChar = false) const;
     423                 :            :     void             TakePercentStr(const Fraction& rVal, String& rStr, bool bNoPercentChar = false) const;
     424                 :            : 
     425                 :            :     // RecalcPageNums wird idR. nur von der Page gerufen.
     426                 :       8114 :     bool         IsPagNumsDirty() const                     { return bPagNumsDirty; };
     427                 :        721 :     bool         IsMPgNumsDirty() const                     { return bMPgNumsDirty; };
     428                 :            :     void             RecalcPageNums(bool bMaster);
     429                 :            :     // Nach dem Insert gehoert die Page dem SdrModel.
     430                 :            :     virtual void     InsertPage(SdrPage* pPage, sal_uInt16 nPos=0xFFFF);
     431                 :            :     virtual void     DeletePage(sal_uInt16 nPgNum);
     432                 :            :     // Remove bedeutet Eigentumsuebereignung an den Aufrufer (Gegenteil von Insert)
     433                 :            :     virtual SdrPage* RemovePage(sal_uInt16 nPgNum);
     434                 :            :     virtual void     MovePage(sal_uInt16 nPgNum, sal_uInt16 nNewPos);
     435                 :            :     const SdrPage* GetPage(sal_uInt16 nPgNum) const;
     436                 :            :     SdrPage* GetPage(sal_uInt16 nPgNum);
     437                 :            :     sal_uInt16 GetPageCount() const;
     438                 :            :     // #109538#
     439                 :            :     virtual void PageListChanged();
     440                 :            : 
     441                 :            :     // Masterpages
     442                 :            :     virtual void     InsertMasterPage(SdrPage* pPage, sal_uInt16 nPos=0xFFFF);
     443                 :            :     virtual void     DeleteMasterPage(sal_uInt16 nPgNum);
     444                 :            :     // Remove bedeutet Eigentumsuebereignung an den Aufrufer (Gegenteil von Insert)
     445                 :            :     virtual SdrPage* RemoveMasterPage(sal_uInt16 nPgNum);
     446                 :            :     virtual void     MoveMasterPage(sal_uInt16 nPgNum, sal_uInt16 nNewPos);
     447                 :            :     const SdrPage* GetMasterPage(sal_uInt16 nPgNum) const;
     448                 :            :     SdrPage* GetMasterPage(sal_uInt16 nPgNum);
     449                 :            :     sal_uInt16 GetMasterPageCount() const;
     450                 :            :     // #109538#
     451                 :            :     virtual void MasterPageListChanged();
     452                 :            : 
     453                 :            :     // Modified-Flag. Wird automatisch gesetzt, wenn an den Pages oder
     454                 :            :     // Zeichenobjekten was geaendert wird. Zuruecksetzen muss man es
     455                 :            :     // jedoch selbst (z.B. bei Save() ...).
     456                 :          0 :     sal_Bool IsChanged() const { return mbChanged; }
     457                 :            :     virtual void SetChanged(sal_Bool bFlg = sal_True);
     458                 :            : 
     459                 :            :     // PageNotValid bedeutet, dass das Model lediglich Objekte traegt die zwar
     460                 :            :     // auf einer Page verankert sind, die Page aber nicht gueltig ist. Diese
     461                 :            :     // Kennzeichnung wird fuers Clipboard/Drag&Drop benoetigt.
     462                 :            :     bool            IsPageNotValid() const                     { return bPageNotValid; }
     463                 :            :     void            SetPageNotValid(bool bJa = true)           { bPageNotValid=bJa; }
     464                 :            : 
     465                 :            :     // Schaltet man dieses Flag auf sal_True, so werden Grafikobjekte
     466                 :            :     // portabel gespeichert. Es findet dann beim Speichern ggf.
     467                 :            :     // eine implizite Wandlung von Metafiles statt.
     468                 :            :     // Default=FALSE. Flag ist nicht persistent.
     469                 :            :     bool            IsSavePortable() const                     { return bSavePortable; }
     470                 :            :     void            SetSavePortable(bool bJa = true)           { bSavePortable=bJa; }
     471                 :            : 
     472                 :            :     // Schaltet man dieses Flag auf sal_True, so werden
     473                 :            :     // Pixelobjekte (stark) komprimiert gespeichert.
     474                 :            :     // Default=FALSE. Flag ist nicht persistent.
     475                 :            :     bool            IsSaveCompressed() const                   { return bSaveCompressed; }
     476                 :            :     void            SetSaveCompressed(bool bJa = true)         { bSaveCompressed=bJa; }
     477                 :            : 
     478                 :            :     // Schaltet man dieses Flag auf sal_True, so werden
     479                 :            :     // Grafikobjekte mit gesetztem Native-Link
     480                 :            :     // native gespeichert.
     481                 :            :     // Default=FALSE. Flag ist nicht persistent.
     482                 :            :     bool            IsSaveNative() const                       { return bSaveNative; }
     483                 :            :     void            SetSaveNative(bool bJa = true)             { bSaveNative=bJa; }
     484                 :            : 
     485                 :            :     // Schaltet man dieses Flag auf sal_True, so werden die Grafiken
     486                 :            :     // von Grafikobjekten:
     487                 :            :     // - beim Laden eines Dokuments nicht sofort mitgeladen,
     488                 :            :     //   sondern erst wenn sie gebraucht (z.B. angezeigt) werden.
     489                 :            :     // - ggf. wieder aus dem Speicher geworfen, falls Sie gerade
     490                 :            :     //   nicht benoetigt werden.
     491                 :            :     // Damit das funktioniert, muss die virtuelle Methode
     492                 :            :     // GetDocumentStream() ueberladen werden.
     493                 :            :     // Default=FALSE. Flag ist nicht persistent.
     494                 :         85 :     bool            IsSwapGraphics() const { return bSwapGraphics; }
     495                 :            :     void            SetSwapGraphics(bool bJa = true);
     496                 :            :     void            SetSwapGraphicsMode(sal_uIntPtr nMode) { nSwapGraphicsMode = nMode; }
     497                 :         12 :     sal_uIntPtr         GetSwapGraphicsMode() const { return nSwapGraphicsMode; }
     498                 :            : 
     499                 :          0 :     bool            IsSaveOLEPreview() const          { return bSaveOLEPreview; }
     500                 :            :     void            SetSaveOLEPreview( bool bSet) { bSaveOLEPreview = bSet; }
     501                 :            : 
     502                 :            :     // Damit die Bildschirmausgabe von Bitmaps (insbesondere bei gedrehten)
     503                 :            :     // etwas schneller wird, werden sie gecachet. Diesen Cache kann man mit
     504                 :            :     // diesem Flag ein-/ausschalten. Beim naechsten Paint wird an den Objekten
     505                 :            :     // dann ggf. ein Image gemerkt bzw. freigegeben. Wandert ein Bitmapobjekt
     506                 :            :     // in's Undo, so wird der Cache fuer dieses Objekt sofort ausgeschaltet
     507                 :            :     // (Speicher sparen).
     508                 :            :     // Default=Cache eingeschaltet. Flag ist nicht persistent.
     509                 :            :     bool            IsBitmapCaching() const                     { return !bNoBitmapCaching; }
     510                 :            :     void            SetBitmapCaching(bool bJa = true)           { bNoBitmapCaching=!bJa; }
     511                 :            : 
     512                 :            :     // Defaultmaessig (sal_False) kann man Textrahmen ohne Fuellung durch
     513                 :            :     // Mausklick selektieren. Nach Aktivierung dieses Flags trifft man sie
     514                 :            :     // nur noch in dem Bereich, wo sich auch tatsaechlich Text befindet.
     515                 :      49168 :     bool            IsPickThroughTransparentTextFrames() const  { return bTransparentTextFrames; }
     516                 :            :     void            SetPickThroughTransparentTextFrames(bool bOn) { bTransparentTextFrames=bOn; }
     517                 :            : 
     518                 :            :     // Darf denn das Model ueberhaupt veraendert werden?
     519                 :            :     // Wird nur von den Possibility-Methoden der View ausgewerdet.
     520                 :            :     // Direkte Manipulationen am Model, ... berueksichtigen dieses Flag nicht.
     521                 :            :     // Sollte ueberladen werden und entsprechend des ReadOnly-Status des Files
     522                 :            :     // sal_True oder sal_False liefern (Methode wird oeffters gerufen, also ein Flag
     523                 :            :     // verwenden!).
     524                 :            :     virtual bool IsReadOnly() const;
     525                 :            :     virtual void     SetReadOnly(bool bYes);
     526                 :            : 
     527                 :            :     // Vermischen zweier SdrModel. Zu beachten sei, dass rSourceModel nicht
     528                 :            :     // const ist. Die Pages werden beim einfuegen nicht kopiert, sondern gemoved.
     529                 :            :     // rSourceModel ist anschliessend u.U. weitgehend leer.
     530                 :            :     // nFirstPageNum,nLastPageNum: Die aus rSourceModel zu uebernehmenden Seiten
     531                 :            :     // nDestPos..................: Einfuegeposition
     532                 :            :     // bMergeMasterPages.........: sal_True =benoetigte MasterPages werden aus
     533                 :            :     //                                   rSourceModel ebenfalls uebernommen
     534                 :            :     //                             sal_False=Die MasterPageDescriptoren der Seiten
     535                 :            :     //                                   aus rSourceModel werden auf die
     536                 :            :     //                                   vorhandenen MasterPages gemappt.
     537                 :            :     // bUndo.....................: Fuer das Merging wird eine UndoAction generiert.
     538                 :            :     //                             Undo ist nur fuer das ZielModel, nicht fuer
     539                 :            :     //                             rSourceModel.
     540                 :            :     // bTreadSourceAsConst.......: sal_True=Das SourceModel wird nicht veraendert,.
     541                 :            :     //                             d.h die Seiten werden kopiert.
     542                 :            :     virtual void Merge(SdrModel& rSourceModel,
     543                 :            :                sal_uInt16 nFirstPageNum=0, sal_uInt16 nLastPageNum=0xFFFF,
     544                 :            :                sal_uInt16 nDestPos=0xFFFF,
     545                 :            :                bool bMergeMasterPages = false, bool bAllMasterPages = false,
     546                 :            :                bool bUndo = true, bool bTreadSourceAsConst = false);
     547                 :            : 
     548                 :            :     // Ist wie Merge(SourceModel=DestModel,nFirst,nLast,nDest,sal_False,sal_False,bUndo,!bMoveNoCopy);
     549                 :            :     void CopyPages(sal_uInt16 nFirstPageNum, sal_uInt16 nLastPageNum,
     550                 :            :                    sal_uInt16 nDestPos,
     551                 :            :                    bool bUndo = true, bool bMoveNoCopy = false);
     552                 :            : 
     553                 :            :     // Mit BegUndo() / EndUndo() ist es moeglich beliebig viele UndoActions
     554                 :            :     // beliebig tief zu klammern. Als Kommentar der
     555                 :            :     // UndoAction wird der des ersten BegUndo(String) aller Klammerungen
     556                 :            :     // verwendet. Der NotifyUndoActionHdl wird in diesem Fall erst beim letzten
     557                 :            :     // EndUndo() gerufen. Bei einer leeren Klammerung wird keine UndoAction
     558                 :            :     // generiert.
     559                 :            :     // Alle direkten Aktionen am SdrModel erzeugen keine UndoActions, die
     560                 :            :     // Aktionen an der SdrView dagegen generieren solche.
     561                 :            :     void BegUndo();                       // Undo-Klammerung auf
     562                 :            :     void BegUndo(const String& rComment); // Undo-Klammerung auf
     563                 :            :     void BegUndo(const String& rComment, const String& rObjDescr, SdrRepeatFunc eFunc=SDRREPFUNC_OBJ_NONE); // Undo-Klammerung auf
     564                 :            :     void EndUndo();                       // Undo-Klammerung zu
     565                 :            :     void AddUndo(SdrUndoAction* pUndo);
     566                 :         68 :     sal_uInt16 GetUndoBracketLevel() const                       { return nUndoLevel; }
     567                 :            :     const SdrUndoGroup* GetAktUndoGroup() const              { return pAktUndoGroup; }
     568                 :            :     // nur nach dem 1. BegUndo oder vor dem letzten EndUndo:
     569                 :            :     void SetUndoComment(const String& rComment);
     570                 :            :     void SetUndoComment(const String& rComment, const String& rObjDescr);
     571                 :            : 
     572                 :            :     // Das Undo-Managment findet nur statt, wenn kein NotifyUndoAction-Handler
     573                 :            :     // gesetzt ist.
     574                 :            :     // Default ist 16. Minimaler MaxUndoActionCount ist 1!
     575                 :            :     void  SetMaxUndoActionCount(sal_uIntPtr nAnz);
     576                 :            :     sal_uIntPtr GetMaxUndoActionCount() const { return nMaxUndoCount; }
     577                 :            :     void  ClearUndoBuffer();
     578                 :            :     // UndoAction(0) ist die aktuelle (also die zuletzt eingegangene)
     579         [ #  # ]:          0 :     sal_uIntPtr GetUndoActionCount() const                      { return pUndoStack!=NULL ? pUndoStack->size() : 0; }
     580         [ #  # ]:          0 :     const SfxUndoAction* GetUndoAction(sal_uIntPtr nNum) const  { return (SfxUndoAction*)(pUndoStack!=NULL ? (*pUndoStack)[nNum] : NULL); }
     581                 :            :     // RedoAction(0) ist die aktuelle (also die des letzten Undo)
     582         [ #  # ]:          0 :     sal_uIntPtr GetRedoActionCount() const                      { return pRedoStack!=NULL ? pRedoStack->size() : 0; }
     583         [ #  # ]:          0 :     const SfxUndoAction* GetRedoAction(sal_uIntPtr nNum) const  { return (SfxUndoAction*)(pRedoStack!=NULL ? (*pRedoStack)[nNum] : NULL); }
     584                 :            : 
     585                 :            :     bool Undo();
     586                 :            :     bool Redo();
     587                 :            :     bool Repeat(SfxRepeatTarget&);
     588                 :            : 
     589                 :            :     // Hier kann die Applikation einen Handler setzen, der die auflaufenden
     590                 :            :     // UndoActions einsammelt. Der Handler hat folgendes Aussehen:
     591                 :            :     //   void NotifyUndoActionHdl(SfxUndoAction* pUndoAction);
     592                 :            :     // Beim Aufruf des Handlers findet eine Eigentumsuebereignung statt; die
     593                 :            :     // UndoAction gehoert somit dem Handler, nicht mehr dem SdrModel.
     594                 :            :     void        SetNotifyUndoActionHdl(const Link& rLink)    { aUndoLink=rLink; }
     595                 :            :     const Link& GetNotifyUndoActionHdl() const               { return aUndoLink; }
     596                 :            : 
     597                 :            :     /** application can set it's own undo manager, BegUndo, EndUndo and AddUndoAction
     598                 :            :         calls are routet to this interface if given */
     599                 :            :     void SetSdrUndoManager( SfxUndoManager* pUndoManager );
     600                 :            :     SfxUndoManager* GetSdrUndoManager() const;
     601                 :            : 
     602                 :            :     /** applications can set their own undo factory to overide creation of
     603                 :            :         undo actions. The SdrModel will become owner of the given SdrUndoFactory
     604                 :            :         and delete it upon its destruction. */
     605                 :            :     void SetSdrUndoFactory( SdrUndoFactory* pUndoFactory );
     606                 :            : 
     607                 :            :     /** returns the models undo factory. This must be used to create
     608                 :            :         undo actions for this model. */
     609                 :            :     SdrUndoFactory& GetSdrUndoFactory() const;
     610                 :            : 
     611                 :            :     // Hier kann man einen Handler setzen der beim Streamen mehrfach gerufen
     612                 :            :     // wird und ungefaehre Auskunft ueber den Fortschreitungszustand der
     613                 :            :     // Funktion gibt. Der Handler muss folgendes Aussehen haben:
     614                 :            :     //   void class::IOProgressHdl(const USHORT& nPercent);
     615                 :            :     // Der erste Aufruf des Handlers erfolgt grundsaetzlich mit 0, der letzte
     616                 :            :     // mit 100. Dazwischen erfolgen maximal 99 Aufrufe mit Werten 1...99.
     617                 :            :     // Man kann also durchaus bei 0 den Progressbar Initiallisieren und bei
     618                 :            :     // 100 wieder schliessen. Zu beachten sei, dass der Handler auch gerufen
     619                 :            :     // wird, wenn die App Draw-Daten im officeweiten Draw-Exchange-Format
     620                 :            :     // bereitstellt, denn dies geschieht durch streamen in einen MemoryStream.
     621                 :            :     void        SetIOProgressHdl(const Link& rLink)          { aIOProgressLink=rLink; }
     622                 :            :     const Link& GetIOProgressHdl() const                     { return aIOProgressLink; }
     623                 :            : 
     624                 :            :     // Accessor methods for Palettes, Lists and Tabeles
     625                 :            :     // FIXME: this badly needs re-factoring ...
     626                 :       8357 :     XPropertyListRef GetPropertyList( XPropertyListType t ) const { return maProperties[ t ]; }
     627                 :            :     void             SetPropertyList( XPropertyListRef p ) { maProperties[ p->Type() ] = p; }
     628                 :            : 
     629                 :            :     // friendlier helpers
     630         [ #  # ]:          0 :     XDashListRef     GetDashList() const     { return GetPropertyList( XDASH_LIST )->AsDashList(); }
     631         [ #  # ]:          0 :     XHatchListRef    GetHatchList() const    { return GetPropertyList( XHATCH_LIST )->AsHatchList(); }
     632         [ #  # ]:          0 :     XColorListRef    GetColorList() const    { return GetPropertyList( XCOLOR_LIST )->AsColorList(); }
     633         [ #  # ]:          0 :     XBitmapListRef   GetBitmapList() const   { return GetPropertyList( XBITMAP_LIST )->AsBitmapList(); }
     634         [ #  # ]:          0 :     XLineEndListRef  GetLineEndList() const  { return GetPropertyList( XLINE_END_LIST )->AsLineEndList(); }
     635         [ #  # ]:          0 :     XGradientListRef GetGradientList() const { return GetPropertyList( XGRADIENT_LIST )->AsGradientList(); }
     636                 :            : 
     637                 :            :     // Der StyleSheetPool wird der DrawingEngine nur bekanntgemacht.
     638                 :            :     // Zu loeschen hat ihn schliesslich der, der ihn auch konstruiert hat.
     639                 :     112492 :     SfxStyleSheetBasePool* GetStyleSheetPool() const         { return mxStyleSheetPool.get(); }
     640                 :            :     void SetStyleSheetPool(SfxStyleSheetBasePool* pPool)     { mxStyleSheetPool=pPool; }
     641                 :            : 
     642                 :            :     void    SetStarDrawPreviewMode(sal_Bool bPreview);
     643                 :            :     sal_Bool    IsStarDrawPreviewMode() { return bStarDrawPreviewMode; }
     644                 :            : 
     645                 :            :     ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > getUnoModel();
     646                 :            :     void setUnoModel( ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > xModel );
     647                 :            : 
     648                 :            :     // these functions are used by the api to disable repaints during a
     649                 :            :     // set of api calls.
     650                 :     776523 :     bool isLocked() const { return mbModelLocked; }
     651                 :            :     void setLock( bool bLock );
     652                 :            : 
     653                 :            :     void            SetForbiddenCharsTable( rtl::Reference<SvxForbiddenCharactersTable> xForbiddenChars );
     654                 :            :     rtl::Reference<SvxForbiddenCharactersTable> GetForbiddenCharsTable() const;
     655                 :            : 
     656                 :            :     void SetCharCompressType( sal_uInt16 nType );
     657                 :      23009 :     sal_uInt16 GetCharCompressType() const { return mnCharCompressType; }
     658                 :            : 
     659                 :            :     void SetKernAsianPunctuation( sal_Bool bEnabled );
     660                 :      42987 :     sal_Bool IsKernAsianPunctuation() const { return (sal_Bool)mbKernAsianPunctuation; }
     661                 :            : 
     662                 :            :     void SetAddExtLeading( sal_Bool bEnabled );
     663                 :      42987 :     sal_Bool IsAddExtLeading() const { return (sal_Bool)mbAddExtLeading; }
     664                 :            : 
     665                 :            :     void ReformatAllTextObjects();
     666                 :            : 
     667                 :            :     SdrOutliner* createOutliner( sal_uInt16 nOutlinerMode );
     668                 :            :     void disposeOutliner( SdrOutliner* pOutliner );
     669                 :            : 
     670                 :     248466 :     sal_Bool IsWriter() const { return !bMyPool; }
     671                 :            : 
     672                 :            :     /** returns the numbering type that is used to format page fields in drawing shapes */
     673                 :            :     virtual SvxNumType GetPageNumType() const;
     674                 :            : 
     675                 :            :     /** copies the items from the source set to the destination set. Both sets must have
     676                 :            :         same ranges but can have different pools. If pNewModel is optional. If it is null,
     677                 :            :         this model is used. */
     678                 :            : 
     679                 :            :     void MigrateItemSet( const SfxItemSet* pSourceSet, SfxItemSet* pDestSet, SdrModel* pNewModel );
     680                 :            : 
     681                 :            :     bool IsInDestruction() const;
     682                 :            : 
     683                 :            :     static const ::com::sun::star::uno::Sequence< sal_Int8 >& getUnoTunnelImplementationId();
     684                 :            : 
     685                 :            :     /** enables (true) or disables (false) recording of undo actions
     686                 :            :         If undo actions are added while undo is disabled, they are deleted.
     687                 :            :         Disabling undo does not clear the current undo buffer! */
     688                 :            :     void EnableUndo( bool bEnable );
     689                 :            : 
     690                 :            :     /** returns true if undo is currently enabled
     691                 :            :         This returns false if undo was disabled using EnableUndo( false ) and
     692                 :            :         also during the runtime of the Undo() and Redo() methods. */
     693                 :            :     bool IsUndoEnabled() const;
     694                 :            : 
     695                 :            :     void SetDrawingLayerPoolDefaults();
     696                 :            : };
     697                 :            : 
     698                 :            : typedef tools::WeakReference< SdrModel > SdrModelWeakRef;
     699                 :            : 
     700                 :            : ////////////////////////////////////////////////////////////////////////////////////////////////////
     701                 :            : 
     702                 :            : #endif //_SVDMODEL_HXX
     703                 :            : 
     704                 :            : /* /////////////////////////////////////////////////////////////////////////////////////////////////
     705                 :            :             +-----------+
     706                 :            :             | SdrModel  |
     707                 :            :             +--+------+-+
     708                 :            :                |      +-----------+
     709                 :            :           +----+-----+            |
     710                 :            :           |   ...    |            |
     711                 :            :      +----+---+ +----+---+  +-----+--------+
     712                 :            :      |SdrPage | |SdrPage |  |SdrLayerAdmin |
     713                 :            :      +---+----+ +-+--+--++  +---+-------+--+
     714                 :            :          |        |  |  |       |       +-------------------+
     715                 :            :     +----+----+           +-----+-----+             +-------+-------+
     716                 :            :     |   ...   |           |    ...    |             |      ...      |
     717                 :            : +---+---+ +---+---+  +----+----+ +----+----+  +-----+------+ +------+-----+
     718                 :            : |SdrObj | |SdrObj |  |SdrLayer | |SdrLayer |  |SdrLayerSet | |SdrLayerSet |
     719                 :            : +-------+ +-------+  +---------+ +---------+  +------------+ +------------+
     720                 :            : This class: SdrModel is the head of the data modells for the StarView Drawing Engine.
     721                 :            : 
     722                 :            : ///////////////////////////////////////////////////////////////////////////////////////////////// */
     723                 :            : 
     724                 :            : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10