xref: /trunk/main/sd/inc/sdpage.hxx (revision 914d351e5f5b84e4342a86d6ab8d4aca7308b9bd)
1*c45d927aSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*c45d927aSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*c45d927aSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*c45d927aSAndrew Rist  * distributed with this work for additional information
6*c45d927aSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*c45d927aSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*c45d927aSAndrew Rist  * "License"); you may not use this file except in compliance
9*c45d927aSAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
11*c45d927aSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
13*c45d927aSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*c45d927aSAndrew Rist  * software distributed under the License is distributed on an
15*c45d927aSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*c45d927aSAndrew Rist  * KIND, either express or implied.  See the License for the
17*c45d927aSAndrew Rist  * specific language governing permissions and limitations
18*c45d927aSAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
20*c45d927aSAndrew Rist  *************************************************************/
21*c45d927aSAndrew Rist 
22*c45d927aSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef _SDPAGE_HXX
25cdf0e10cSrcweir #define _SDPAGE_HXX
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #ifndef BOOST_SHARED_PTR_HPP_INCLUDED
28cdf0e10cSrcweir #include <boost/shared_ptr.hpp>
29cdf0e10cSrcweir #endif
30cdf0e10cSrcweir 
31cdf0e10cSrcweir #ifndef INCLUDED_FUNCTIONAL
32cdf0e10cSrcweir #include <functional>
33cdf0e10cSrcweir #define INCLUDED_FUNCTIONAL
34cdf0e10cSrcweir #endif
35cdf0e10cSrcweir #include <com/sun/star/drawing/XDrawPage.hpp>
36cdf0e10cSrcweir #include <com/sun/star/presentation/FadeEffect.hpp>
37cdf0e10cSrcweir #include <com/sun/star/office/XAnnotation.hpp>
38cdf0e10cSrcweir 
39cdf0e10cSrcweir #include <list>
40cdf0e10cSrcweir #include <functional>
41cdf0e10cSrcweir #include <vector>
42cdf0e10cSrcweir #include <svx/svdobj.hxx>
43cdf0e10cSrcweir #ifndef _FM_FMPAGE_HXX //autogen
44cdf0e10cSrcweir #include <svx/fmpage.hxx>
45cdf0e10cSrcweir #endif
46cdf0e10cSrcweir #include "fadedef.h"
47cdf0e10cSrcweir #include "diadef.h"
48cdf0e10cSrcweir #ifndef _PRESENTATION
49cdf0e10cSrcweir #include "pres.hxx"
50cdf0e10cSrcweir #endif
51cdf0e10cSrcweir #include "shapelist.hxx"
52cdf0e10cSrcweir #include "misc/scopelock.hxx"
53cdf0e10cSrcweir #include "sddllapi.h"
54cdf0e10cSrcweir 
55cdf0e10cSrcweir namespace com { namespace sun { namespace star { namespace animations {
56cdf0e10cSrcweir     class XAnimationNode;
57cdf0e10cSrcweir } } } }
58cdf0e10cSrcweir 
59cdf0e10cSrcweir class SfxStyleSheet;
60cdf0e10cSrcweir class SdDrawDocument;
61cdf0e10cSrcweir class SdrTextObj;
62cdf0e10cSrcweir class SdPageLink;
63cdf0e10cSrcweir class StarBASIC;
64cdf0e10cSrcweir class SfxItemSet;
65cdf0e10cSrcweir struct StyleRequestData;
66cdf0e10cSrcweir class SdPage;
67cdf0e10cSrcweir class Paragraph;
68cdf0e10cSrcweir class Outliner;
69cdf0e10cSrcweir class SdStyleSheet;
70cdf0e10cSrcweir 
71cdf0e10cSrcweir namespace sd
72cdf0e10cSrcweir {
73cdf0e10cSrcweir     class MainSequence;
74cdf0e10cSrcweir }
75cdf0e10cSrcweir 
76cdf0e10cSrcweir namespace boost
77cdf0e10cSrcweir {
78cdf0e10cSrcweir     template<class X> class shared_ptr;
79cdf0e10cSrcweir }
80cdf0e10cSrcweir 
81cdf0e10cSrcweir namespace sd {
82cdf0e10cSrcweir 
83cdf0e10cSrcweir     struct SD_DLLPUBLIC HeaderFooterSettings
84cdf0e10cSrcweir     {
85cdf0e10cSrcweir         bool mbHeaderVisible;
86cdf0e10cSrcweir         String maHeaderText;
87cdf0e10cSrcweir 
88cdf0e10cSrcweir         bool mbFooterVisible;
89cdf0e10cSrcweir         String maFooterText;
90cdf0e10cSrcweir 
91cdf0e10cSrcweir         bool mbSlideNumberVisible;
92cdf0e10cSrcweir 
93cdf0e10cSrcweir         bool mbDateTimeVisible;
94cdf0e10cSrcweir         bool mbDateTimeIsFixed;
95cdf0e10cSrcweir         String maDateTimeText;
96cdf0e10cSrcweir         int meDateTimeFormat;
97cdf0e10cSrcweir 
98cdf0e10cSrcweir         HeaderFooterSettings();
99cdf0e10cSrcweir 
100cdf0e10cSrcweir         bool operator==( const HeaderFooterSettings& rSettings ) const;
101cdf0e10cSrcweir     };
102cdf0e10cSrcweir 
103cdf0e10cSrcweir     typedef std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::office::XAnnotation > > AnnotationVector;
104cdf0e10cSrcweir }
105cdf0e10cSrcweir 
106cdf0e10cSrcweir namespace sd {
107cdf0e10cSrcweir     class UndoAnimation;
108cdf0e10cSrcweir     class UndoTransition;
109cdf0e10cSrcweir     class UndoGeoObject;
110cdf0e10cSrcweir     class UndoAttrObject;
111cdf0e10cSrcweir }
112cdf0e10cSrcweir 
113cdf0e10cSrcweir class SD_DLLPUBLIC SdPage : public FmFormPage, public SdrObjUserCall
114cdf0e10cSrcweir {
115cdf0e10cSrcweir friend class SdGenericDrawPage;
116cdf0e10cSrcweir friend class SdDrawPage;
117cdf0e10cSrcweir friend class sd::UndoAnimation;
118cdf0e10cSrcweir friend class sd::UndoTransition;
119cdf0e10cSrcweir friend class ModifyPageUndoAction;
120cdf0e10cSrcweir friend class sd::UndoGeoObject;
121cdf0e10cSrcweir friend class sd::UndoAttrObject;
122cdf0e10cSrcweir 
123cdf0e10cSrcweir protected:
124cdf0e10cSrcweir     PageKind    mePageKind;               // Seitentyp
125cdf0e10cSrcweir     AutoLayout  meAutoLayout;             // AutoLayout
126cdf0e10cSrcweir     sd::ShapeList maPresentationShapeList;            // Praesentationsobjekte
127cdf0e10cSrcweir     sd::ScopeLock maLockAutoLayoutArrangement;
128cdf0e10cSrcweir     sal_Bool        mbSelected;               // Selektionskennung
129cdf0e10cSrcweir     PresChange  mePresChange;             // manuell/automatisch/halbautomatisch
130cdf0e10cSrcweir     sal_uInt32      mnTime;                   // Anzeigedauer in Sekunden
131cdf0e10cSrcweir     sal_Bool        mbSoundOn;                // mit/ohne Sound (sal_True/sal_False)
132cdf0e10cSrcweir     sal_Bool        mbExcluded;               // wird in der Show nicht/doch
133cdf0e10cSrcweir                                           // angezeigt (sal_True/sal_False)
134cdf0e10cSrcweir     String      maLayoutName;             // Name des Layouts
135cdf0e10cSrcweir     String      maSoundFile;               // Pfad zum Soundfile (MSDOS-Notation)
136cdf0e10cSrcweir     bool        mbLoopSound;
137cdf0e10cSrcweir     bool        mbStopSound;
138cdf0e10cSrcweir     String      maCreatedPageName;         // von GetPageName erzeugter Seitenname
139cdf0e10cSrcweir     String      maFileName;                // Filename
140cdf0e10cSrcweir     String      maBookmarkName;           // Bookmarkname
141cdf0e10cSrcweir     sal_Bool        mbScaleObjects;           // Objekte sollen skaliert werden
142cdf0e10cSrcweir     sal_Bool        mbBackgroundFullSize;     // Hintergrundobjekt auf ganze Seite darstellen
143cdf0e10cSrcweir     rtl_TextEncoding meCharSet;            // Text-Encoding
144cdf0e10cSrcweir     sal_uInt16      mnPaperBin;                // PaperBin
145cdf0e10cSrcweir     Orientation meOrientation;             // Print-Orientation
146cdf0e10cSrcweir     SdPageLink* mpPageLink;               // PageLink (nur bei gelinkten Seiten)
147cdf0e10cSrcweir 
148cdf0e10cSrcweir     sd::AnnotationVector    maAnnotations;
149cdf0e10cSrcweir 
150cdf0e10cSrcweir     /** holds the smil animation sequences for this page */
151cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode > mxAnimationNode;
152cdf0e10cSrcweir 
153cdf0e10cSrcweir     /** a helper class to manipulate effects inside the main sequence */
154cdf0e10cSrcweir     boost::shared_ptr< sd::MainSequence > mpMainSequence;
155cdf0e10cSrcweir 
156cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > createUnoPage();
157cdf0e10cSrcweir 
158cdf0e10cSrcweir     SfxItemSet* mpItems;
159cdf0e10cSrcweir 
160cdf0e10cSrcweir     SfxItemSet* getOrCreateItems();
161cdf0e10cSrcweir 
162cdf0e10cSrcweir     sd::HeaderFooterSettings    maHeaderFooterSettings;
163cdf0e10cSrcweir 
164cdf0e10cSrcweir     // new transition settings
165cdf0e10cSrcweir     sal_Int16 mnTransitionType;
166cdf0e10cSrcweir     sal_Int16 mnTransitionSubtype;
167cdf0e10cSrcweir     sal_Bool mbTransitionDirection;
168cdf0e10cSrcweir     sal_Int32 mnTransitionFadeColor;
169cdf0e10cSrcweir     double mfTransitionDuration;
170cdf0e10cSrcweir 
171cdf0e10cSrcweir public:
172cdf0e10cSrcweir     TYPEINFO();
173cdf0e10cSrcweir 
174cdf0e10cSrcweir     SdPage(SdDrawDocument& rNewDoc, StarBASIC* pBasic, sal_Bool bMasterPage=sal_False);
175cdf0e10cSrcweir     SdPage(const SdPage& rSrcPage);
176cdf0e10cSrcweir     ~SdPage();
177cdf0e10cSrcweir     virtual SdrPage* Clone() const;
178cdf0e10cSrcweir     virtual SdrPage* Clone(SdrModel* pNewModel) const;
179cdf0e10cSrcweir 
180cdf0e10cSrcweir     virtual void    SetSize(const Size& aSize);
181cdf0e10cSrcweir     virtual void    SetBorder(sal_Int32 nLft, sal_Int32 nUpp, sal_Int32 nRgt, sal_Int32 Lwr);
182cdf0e10cSrcweir     virtual void    SetLftBorder(sal_Int32 nBorder);
183cdf0e10cSrcweir     virtual void    SetRgtBorder(sal_Int32 nBorder);
184cdf0e10cSrcweir     virtual void    SetUppBorder(sal_Int32 nBorder);
185cdf0e10cSrcweir     virtual void    SetLwrBorder(sal_Int32 nBorder);
186cdf0e10cSrcweir     virtual void    SetModel(SdrModel* pNewModel);
187cdf0e10cSrcweir     virtual FASTBOOL IsReadOnly() const;
188cdf0e10cSrcweir 
GetPresentationShapeList()189cdf0e10cSrcweir     sd::ShapeList&  GetPresentationShapeList() { return maPresentationShapeList; }
190cdf0e10cSrcweir 
191cdf0e10cSrcweir     void EnsureMasterPageDefaultBackground();
192cdf0e10cSrcweir     SdrObject*      CreatePresObj(PresObjKind eObjKind, sal_Bool bVertical, const Rectangle& rRect, sal_Bool bInsert=sal_False);
193cdf0e10cSrcweir     SdrObject*      CreateDefaultPresObj(PresObjKind eObjKind, bool bInsert);
194cdf0e10cSrcweir     SdrObject*      GetPresObj(PresObjKind eObjKind, int nIndex = 1, bool bFuzzySearch = false );
195cdf0e10cSrcweir     PresObjKind     GetPresObjKind(SdrObject* pObj) const;
196cdf0e10cSrcweir     String          GetPresObjText(PresObjKind eObjKind) const;
197cdf0e10cSrcweir     SfxStyleSheet* GetStyleSheetForMasterPageBackground() const;
198cdf0e10cSrcweir     SfxStyleSheet*  GetStyleSheetForPresObj(PresObjKind eObjKind) const;
199cdf0e10cSrcweir     bool            RestoreDefaultText( SdrObject* pObj );
200cdf0e10cSrcweir 
201cdf0e10cSrcweir     /** returns true if the given SdrObject is inside the presentation object list */
202cdf0e10cSrcweir     bool            IsPresObj(const SdrObject* pObj);
203cdf0e10cSrcweir 
204cdf0e10cSrcweir     /** removes the given SdrObject from the presentation object list */
205cdf0e10cSrcweir     void            RemovePresObj(const SdrObject* pObj);
206cdf0e10cSrcweir 
207cdf0e10cSrcweir     /** inserts the given SdrObject into the presentation object list */
208cdf0e10cSrcweir     void            InsertPresObj(SdrObject* pObj, PresObjKind eKind );
209cdf0e10cSrcweir 
210cdf0e10cSrcweir     void            SetAutoLayout(AutoLayout eLayout, sal_Bool bInit=sal_False, sal_Bool bCreate=sal_False);
GetAutoLayout() const211cdf0e10cSrcweir     AutoLayout      GetAutoLayout() const { return meAutoLayout; }
212cdf0e10cSrcweir     void            CreateTitleAndLayout(sal_Bool bInit=sal_False, sal_Bool bCreate=sal_False);
213cdf0e10cSrcweir     SdrObject*      InsertAutoLayoutShape(SdrObject* pObj, PresObjKind eObjKind, bool bVertical, Rectangle aRect, bool bInit );
214cdf0e10cSrcweir 
215cdf0e10cSrcweir     virtual void       NbcInsertObject(SdrObject* pObj, sal_uLong nPos=CONTAINER_APPEND,
216cdf0e10cSrcweir                                        const SdrInsertReason* pReason=NULL);
217cdf0e10cSrcweir     virtual SdrObject* NbcRemoveObject(sal_uLong nObjNum);
218cdf0e10cSrcweir     virtual SdrObject* RemoveObject(sal_uLong nObjNum);
219cdf0e10cSrcweir 
220cdf0e10cSrcweir     // #95876# Also overload ReplaceObject methods to realize when
221cdf0e10cSrcweir     // objects are removed with this mechanism instead of RemoveObject
222cdf0e10cSrcweir     virtual SdrObject* NbcReplaceObject(SdrObject* pNewObj, sal_uLong nObjNum);
223cdf0e10cSrcweir     virtual SdrObject* ReplaceObject(SdrObject* pNewObj, sal_uLong nObjNum);
224cdf0e10cSrcweir 
225cdf0e10cSrcweir     virtual void SetLinkData(const String& rLinkName, const String& rLinkData);
226cdf0e10cSrcweir 
227cdf0e10cSrcweir     void        SetObjText(SdrTextObj* pObj, SdrOutliner* pOutliner, PresObjKind eObjKind, const String& rStr );
228cdf0e10cSrcweir 
SetPageKind(PageKind ePgType)229cdf0e10cSrcweir     void        SetPageKind(PageKind ePgType)        { mePageKind = ePgType; }
GetPageKind() const230cdf0e10cSrcweir     PageKind    GetPageKind() const                  { return mePageKind; }
231cdf0e10cSrcweir 
SetSelected(sal_Bool bSel)232cdf0e10cSrcweir     void        SetSelected(sal_Bool bSel)               { mbSelected = bSel; }
IsSelected() const233cdf0e10cSrcweir     sal_Bool        IsSelected() const                   { return mbSelected; }
234cdf0e10cSrcweir 
235cdf0e10cSrcweir     void        SetFadeEffect(::com::sun::star::presentation::FadeEffect eNewEffect);
236cdf0e10cSrcweir     ::com::sun::star::presentation::FadeEffect  GetFadeEffect() const;
237cdf0e10cSrcweir 
SetPresChange(PresChange eChange)238cdf0e10cSrcweir     void        SetPresChange(PresChange eChange)    { mePresChange = eChange; }
GetPresChange() const239cdf0e10cSrcweir     PresChange  GetPresChange() const                { return mePresChange; }
240cdf0e10cSrcweir 
SetTime(sal_uInt32 nNewTime)241cdf0e10cSrcweir     void        SetTime(sal_uInt32 nNewTime)             { mnTime = nNewTime; }
GetTime() const242cdf0e10cSrcweir     sal_uInt32      GetTime() const                      { return mnTime; }
243cdf0e10cSrcweir 
SetSound(sal_Bool bNewSoundOn)244cdf0e10cSrcweir     void        SetSound(sal_Bool bNewSoundOn)           { mbSoundOn = bNewSoundOn; }
IsSoundOn() const245cdf0e10cSrcweir     sal_Bool        IsSoundOn() const                    { return mbSoundOn; }
246cdf0e10cSrcweir 
SetExcluded(sal_Bool bNewExcluded)247cdf0e10cSrcweir     void        SetExcluded(sal_Bool bNewExcluded)      { mbExcluded = bNewExcluded; }
IsExcluded() const248cdf0e10cSrcweir     sal_Bool        IsExcluded() const                  { return mbExcluded; }
249cdf0e10cSrcweir 
SetScaleObjects(sal_Bool bScale)250cdf0e10cSrcweir     void        SetScaleObjects(sal_Bool bScale)        { mbScaleObjects = bScale; }
IsScaleObjects() const251cdf0e10cSrcweir     sal_Bool        IsScaleObjects() const              { return mbScaleObjects; }
252cdf0e10cSrcweir 
SetSoundFile(const String & rStr)253cdf0e10cSrcweir     void        SetSoundFile(const String& rStr)    { maSoundFile = rStr; }
GetSoundFile() const254cdf0e10cSrcweir     String      GetSoundFile() const                { return maSoundFile; }
255cdf0e10cSrcweir 
SetLoopSound(bool bLoopSound)256cdf0e10cSrcweir     void        SetLoopSound( bool bLoopSound ) { mbLoopSound = bLoopSound; }
IsLoopSound() const257cdf0e10cSrcweir     bool        IsLoopSound() const                 { return mbLoopSound; }
258cdf0e10cSrcweir 
SetStopSound(bool bStopSound)259cdf0e10cSrcweir     void        SetStopSound( bool bStopSound ) { mbStopSound = bStopSound; }
IsStopSound() const260cdf0e10cSrcweir     bool        IsStopSound() const             { return mbStopSound; }
261cdf0e10cSrcweir 
262cdf0e10cSrcweir     sal_Int16   getTransitionType() const;
263cdf0e10cSrcweir     void        setTransitionType( sal_Int16 nTransitionType );
264cdf0e10cSrcweir 
265cdf0e10cSrcweir     sal_Int16   getTransitionSubtype() const;
266cdf0e10cSrcweir     void        setTransitionSubtype( sal_Int16 nTransitionSubtype );
267cdf0e10cSrcweir 
268cdf0e10cSrcweir     sal_Bool    getTransitionDirection() const;
269cdf0e10cSrcweir     void        setTransitionDirection( sal_Bool bTransitionbDirection );
270cdf0e10cSrcweir 
271cdf0e10cSrcweir     sal_Int32   getTransitionFadeColor() const;
272cdf0e10cSrcweir     void        setTransitionFadeColor( sal_Int32 nTransitionFadeColor );
273cdf0e10cSrcweir 
274cdf0e10cSrcweir     double      getTransitionDuration() const;
275cdf0e10cSrcweir     void        setTransitionDuration( double fTranstionDuration );
276cdf0e10cSrcweir 
277cdf0e10cSrcweir     // Virtuelle Methoden von SdrObjUserCall
278cdf0e10cSrcweir     virtual void Changed(const SdrObject& rObj, SdrUserCallType eType,
279cdf0e10cSrcweir                          const Rectangle& rOldBoundRect);
280cdf0e10cSrcweir 
281cdf0e10cSrcweir     void            SetLayoutName(String aName);
GetLayoutName() const282cdf0e10cSrcweir     virtual String  GetLayoutName() const       { return maLayoutName; }
283cdf0e10cSrcweir 
SetFileName(const String & aName)284cdf0e10cSrcweir     void            SetFileName(const String& aName) { maFileName = aName; }
GetFileName() const285cdf0e10cSrcweir     virtual String  GetFileName() const       { return maFileName; }
SetBookmarkName(const String & aName)286cdf0e10cSrcweir     void            SetBookmarkName(const String& aName) { maBookmarkName = aName; }
GetBookmarkName() const287cdf0e10cSrcweir     virtual String  GetBookmarkName() const       { return maBookmarkName; }
GetLink()288cdf0e10cSrcweir     SdPageLink*     GetLink() { return mpPageLink; }
289cdf0e10cSrcweir 
290cdf0e10cSrcweir     void            ConnectLink();
291cdf0e10cSrcweir     void            DisconnectLink();
292cdf0e10cSrcweir 
293cdf0e10cSrcweir     void    ScaleObjects(const Size& rNewPageSize, const Rectangle& rNewBorderRect,
294cdf0e10cSrcweir                          sal_Bool bScaleAllObj);
295cdf0e10cSrcweir 
296cdf0e10cSrcweir     const String&   GetName() const;
GetRealName() const297cdf0e10cSrcweir     String          GetRealName() const { return FmFormPage::GetName(); };
298cdf0e10cSrcweir 
299cdf0e10cSrcweir     void    SetPresentationLayout(const String& rLayoutName,
300cdf0e10cSrcweir                                   sal_Bool bReplaceStyleSheets = sal_True,
301cdf0e10cSrcweir                                   sal_Bool bSetMasterPage = sal_True,
302cdf0e10cSrcweir                                   sal_Bool bReverseOrder = sal_False);
303cdf0e10cSrcweir     void    EndListenOutlineText();
304cdf0e10cSrcweir 
305cdf0e10cSrcweir     void    SetBackgroundFullSize( sal_Bool bIn );
IsBackgroundFullSize() const306cdf0e10cSrcweir     sal_Bool    IsBackgroundFullSize() const { return mbBackgroundFullSize; }
307cdf0e10cSrcweir 
GetCharSet()308cdf0e10cSrcweir     rtl_TextEncoding GetCharSet() { return(meCharSet); }
309cdf0e10cSrcweir 
SetPaperBin(sal_uInt16 nBin)310cdf0e10cSrcweir     void    SetPaperBin(sal_uInt16 nBin) { mnPaperBin = nBin; }
GetPaperBin() const311cdf0e10cSrcweir     sal_uInt16  GetPaperBin() const { return mnPaperBin; }
312cdf0e10cSrcweir     virtual void        SetOrientation(Orientation eOrient);
313cdf0e10cSrcweir     virtual Orientation GetOrientation() const;
314cdf0e10cSrcweir 
315cdf0e10cSrcweir     virtual SfxStyleSheet* GetTextStyleSheetForObject( SdrObject* pObj ) const;
316cdf0e10cSrcweir 
317cdf0e10cSrcweir     sal_Bool setAlienAttributes( const com::sun::star::uno::Any& rAttributes );
318cdf0e10cSrcweir     void getAlienAttributes( com::sun::star::uno::Any& rAttributes );
319cdf0e10cSrcweir 
320cdf0e10cSrcweir     /** returns the main animation node */
321cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode > getAnimationNode() throw (::com::sun::star::uno::RuntimeException);
322cdf0e10cSrcweir 
323cdf0e10cSrcweir     /** sets the main animation node */
324cdf0e10cSrcweir     void setAnimationNode( ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xNode ) throw (::com::sun::star::uno::RuntimeException);
325cdf0e10cSrcweir 
326cdf0e10cSrcweir     /** returns a helper class to manipulate effects inside the main sequence */
327cdf0e10cSrcweir     boost::shared_ptr< sd::MainSequence > getMainSequence();
328cdf0e10cSrcweir 
329cdf0e10cSrcweir     /** quick check if this slide has an animation node.
330cdf0e10cSrcweir         This can be used to have a cost free check if there are no animations ad this slide.
331cdf0e10cSrcweir         If it returns true this does not mean that there are animations available.
332cdf0e10cSrcweir     */
333cdf0e10cSrcweir     bool hasAnimationNode() const;
334cdf0e10cSrcweir 
335cdf0e10cSrcweir     /** returns the SdPage implementation for the given XDrawPage or 0 if not available */
336cdf0e10cSrcweir     static SdPage* getImplementation( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage >& xPage );
337cdf0e10cSrcweir 
338cdf0e10cSrcweir     /** removes all custom animations for the given shape */
339cdf0e10cSrcweir     void removeAnimations( const SdrObject* pObj );
340cdf0e10cSrcweir 
341cdf0e10cSrcweir     /** Set the name of the page and broadcast a model change.
342cdf0e10cSrcweir     */
343cdf0e10cSrcweir     virtual void SetName (const String& rName);
344cdf0e10cSrcweir 
345cdf0e10cSrcweir     const sd::HeaderFooterSettings& getHeaderFooterSettings() const;
346cdf0e10cSrcweir     void setHeaderFooterSettings( const sd::HeaderFooterSettings& rNewSettings );
347cdf0e10cSrcweir 
348cdf0e10cSrcweir     /** this method returns true if the object from the ViewObjectContact should
349cdf0e10cSrcweir         be visible on this page while rendering.
350cdf0e10cSrcweir         bEdit selects if visibility test is for an editing view or a final render,
351cdf0e10cSrcweir         like printing.
352cdf0e10cSrcweir     */
353cdf0e10cSrcweir     virtual bool checkVisibility(
354cdf0e10cSrcweir         const sdr::contact::ViewObjectContact& rOriginal,
355cdf0e10cSrcweir         const sdr::contact::DisplayInfo& rDisplayInfo,
356cdf0e10cSrcweir         bool bEdit );
357cdf0e10cSrcweir 
358cdf0e10cSrcweir     /** callback from the sd::View when a new paragraph for one object on this page is created */
359cdf0e10cSrcweir     void onParagraphInserted( ::Outliner* pOutliner, Paragraph* pPara, SdrObject* pObj );
360cdf0e10cSrcweir 
361cdf0e10cSrcweir     /** callback from the sd::View when a paragraph from one object on this page is removed */
362cdf0e10cSrcweir     void onParagraphRemoving( ::Outliner* pOutliner, Paragraph* pPara, SdrObject* pObj );
363cdf0e10cSrcweir 
364cdf0e10cSrcweir     /** callback from the sd::View when an object just left text edit mode */
365cdf0e10cSrcweir     void onEndTextEdit( SdrObject* pObj );
366cdf0e10cSrcweir 
367cdf0e10cSrcweir     /** returns the presentation style with the given helpid from this masterpage or this
368cdf0e10cSrcweir         slides masterpage */
369cdf0e10cSrcweir     SdStyleSheet* getPresentationStyle( sal_uInt32 nHelpId ) const;
370cdf0e10cSrcweir 
371cdf0e10cSrcweir     /** removes all empty presentation objects from this slide */
372cdf0e10cSrcweir     void RemoveEmptyPresentationObjects();
373cdf0e10cSrcweir 
374cdf0e10cSrcweir     Rectangle   GetTitleRect() const;
375cdf0e10cSrcweir     Rectangle   GetLayoutRect() const;
376cdf0e10cSrcweir 
377cdf0e10cSrcweir     static void CalculateHandoutAreas( SdDrawDocument& rModel, AutoLayout eLayout, bool bHorizontal, std::vector< Rectangle >& rAreas );
378cdf0e10cSrcweir 
379cdf0e10cSrcweir     /** Set the "precious" flag to the given value.
380cdf0e10cSrcweir     */
381cdf0e10cSrcweir     void SetPrecious (const bool bIsPrecious);
382cdf0e10cSrcweir 
383cdf0e10cSrcweir     /** The "precious" flag is used for master pages to prevent some unused
384cdf0e10cSrcweir         master pages from being deleted automatically.  For pages
385cdf0e10cSrcweir         other than master pages this flag can be ignored.
386cdf0e10cSrcweir         @return
387cdf0e10cSrcweir             When this method returns <TRUE/> for a master page then this
388cdf0e10cSrcweir             master page should not be deleted automatically.
389cdf0e10cSrcweir     */
390cdf0e10cSrcweir     bool IsPrecious (void) const;
391cdf0e10cSrcweir 
392cdf0e10cSrcweir     void createAnnotation( ::com::sun::star::uno::Reference< ::com::sun::star::office::XAnnotation >& xAnnotation );
393cdf0e10cSrcweir     void addAnnotation( const ::com::sun::star::uno::Reference< ::com::sun::star::office::XAnnotation >& xAnnotation, int nIndex = -1 );
394cdf0e10cSrcweir     void removeAnnotation( const ::com::sun::star::uno::Reference< ::com::sun::star::office::XAnnotation >& xAnnotation );
getAnnotations() const395cdf0e10cSrcweir     const sd::AnnotationVector& getAnnotations() const { return maAnnotations; }
hasAnnotations() const396cdf0e10cSrcweir     bool hasAnnotations() const { return !maAnnotations.empty(); }
397cdf0e10cSrcweir 
398cdf0e10cSrcweir private:
399cdf0e10cSrcweir     bool mbIsPrecious;
400cdf0e10cSrcweir 
401cdf0e10cSrcweir     /** clone the animations from this and set them to rTargetPage
402cdf0e10cSrcweir     */
403cdf0e10cSrcweir     void cloneAnimations( SdPage& rTargetPage ) const;
404cdf0e10cSrcweir 
405cdf0e10cSrcweir     /** called before a shape is removed or replaced from this slide */
406cdf0e10cSrcweir     void onRemoveObject( SdrObject* pObject );
407cdf0e10cSrcweir };
408cdf0e10cSrcweir 
409cdf0e10cSrcweir #endif     // _SDPAGE_HXX
410