xref: /aoo42x/main/svx/inc/svx/svdpntv.hxx (revision 86e1cf34)
13334a7e6SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
33334a7e6SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
43334a7e6SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
53334a7e6SAndrew Rist  * distributed with this work for additional information
63334a7e6SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
73334a7e6SAndrew Rist  * to you under the Apache License, Version 2.0 (the
83334a7e6SAndrew Rist  * "License"); you may not use this file except in compliance
93334a7e6SAndrew Rist  * with the License.  You may obtain a copy of the License at
103334a7e6SAndrew Rist  *
113334a7e6SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
123334a7e6SAndrew Rist  *
133334a7e6SAndrew Rist  * Unless required by applicable law or agreed to in writing,
143334a7e6SAndrew Rist  * software distributed under the License is distributed on an
153334a7e6SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
163334a7e6SAndrew Rist  * KIND, either express or implied.  See the License for the
173334a7e6SAndrew Rist  * specific language governing permissions and limitations
183334a7e6SAndrew Rist  * under the License.
193334a7e6SAndrew Rist  *
203334a7e6SAndrew Rist  *************************************************************/
213334a7e6SAndrew Rist 
223334a7e6SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef _SVDPNTV_HXX
25cdf0e10cSrcweir #define _SVDPNTV_HXX
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include <svl/brdcst.hxx>
28cdf0e10cSrcweir #include <svl/lstner.hxx>
29cdf0e10cSrcweir #include <svl/smplhint.hxx>
30cdf0e10cSrcweir #include <svl/undo.hxx>
31cdf0e10cSrcweir #include <svx/svddrag.hxx>
32cdf0e10cSrcweir #include <svx/svdlayer.hxx>  // fuer SetOfByte
33cdf0e10cSrcweir #include <vcl/window.hxx>
34cdf0e10cSrcweir #include <svtools/colorcfg.hxx>
35cdf0e10cSrcweir #include <com/sun/star/awt/XControlContainer.hpp>
36cdf0e10cSrcweir #include <svl/itemset.hxx>
37cdf0e10cSrcweir #include <vcl/timer.hxx>
38cdf0e10cSrcweir #include "svx/svxdllapi.h"
39cdf0e10cSrcweir #include <svtools/optionsdrawinglayer.hxx>
40cdf0e10cSrcweir #include <unotools/options.hxx>
41cdf0e10cSrcweir 
42cdf0e10cSrcweir //************************************************************
43cdf0e10cSrcweir //   Pre-Defines
44cdf0e10cSrcweir //************************************************************
45cdf0e10cSrcweir 
46cdf0e10cSrcweir class SdrPageWindow;
47cdf0e10cSrcweir 
48cdf0e10cSrcweir namespace com { namespace sun { namespace star { namespace awt {
49cdf0e10cSrcweir 	class XControlContainer;
50cdf0e10cSrcweir }}}}
51cdf0e10cSrcweir 
52cdf0e10cSrcweir class SdrPage;
53cdf0e10cSrcweir class SdrView;
54cdf0e10cSrcweir class SfxItemSet;
55cdf0e10cSrcweir class SfxStyleSheet;
56cdf0e10cSrcweir class SdrOle2Obj;
57cdf0e10cSrcweir class SdrModel;
58cdf0e10cSrcweir class SdrObject;
59cdf0e10cSrcweir class SdrViewUserMarker;
60cdf0e10cSrcweir class B2dIAOManager;
61cdf0e10cSrcweir 
62cdf0e10cSrcweir #ifdef DBG_UTIL
63cdf0e10cSrcweir class SdrItemBrowser;
64cdf0e10cSrcweir #endif
65cdf0e10cSrcweir 
66cdf0e10cSrcweir namespace sdr {	namespace contact {
67cdf0e10cSrcweir 	class ViewObjectContactRedirector;
68cdf0e10cSrcweir }}
69cdf0e10cSrcweir 
70cdf0e10cSrcweir //************************************************************
71cdf0e10cSrcweir //   Defines for AnimationMode
72cdf0e10cSrcweir //************************************************************
73cdf0e10cSrcweir 
74cdf0e10cSrcweir enum SdrAnimationMode
75cdf0e10cSrcweir {
76cdf0e10cSrcweir 	SDR_ANIMATION_ANIMATE,
77cdf0e10cSrcweir 	SDR_ANIMATION_DONT_ANIMATE,
78cdf0e10cSrcweir 	SDR_ANIMATION_DISABLE
79cdf0e10cSrcweir };
80cdf0e10cSrcweir 
81cdf0e10cSrcweir //************************************************************
82cdf0e10cSrcweir //   Typedef's und defines
83cdf0e10cSrcweir //************************************************************
84cdf0e10cSrcweir 
85cdf0e10cSrcweir typedef unsigned char TRISTATE;
86cdf0e10cSrcweir #define FUZZY					(2)
87cdf0e10cSrcweir #define SDR_ANYFORMAT			(0xFFFFFFFF)
88cdf0e10cSrcweir #define SDR_ANYITEM				(0xFFFF)
89cdf0e10cSrcweir #define SDRVIEWWIN_NOTFOUND		(0xFFFF)
90cdf0e10cSrcweir 
91cdf0e10cSrcweir 
92cdf0e10cSrcweir ////////////////////////////////////////////////////////////////////////////////////////////////////
93cdf0e10cSrcweir class SdrPaintView;
94cdf0e10cSrcweir 
95cdf0e10cSrcweir namespace sdr
96cdf0e10cSrcweir {
97cdf0e10cSrcweir 	namespace contact
98cdf0e10cSrcweir 	{
99cdf0e10cSrcweir 		class ViewObjectContactRedirector;
100cdf0e10cSrcweir 	} // end of namespace contact
101cdf0e10cSrcweir } // end of namespace sdr
102cdf0e10cSrcweir 
103cdf0e10cSrcweir ////////////////////////////////////////////////////////////////////////////////////////////////////
104cdf0e10cSrcweir 
105cdf0e10cSrcweir 
106cdf0e10cSrcweir class SVX_DLLPUBLIC SvxViewHint : public SfxHint
107cdf0e10cSrcweir {
108cdf0e10cSrcweir public:
109cdf0e10cSrcweir     enum HintType { SVX_HINT_VIEWCHANGED };
110cdf0e10cSrcweir     TYPEINFO();
111cdf0e10cSrcweir     SvxViewHint (HintType eType);
112cdf0e10cSrcweir     HintType GetHintType (void) const;
113cdf0e10cSrcweir 
114cdf0e10cSrcweir private:
115cdf0e10cSrcweir     HintType meHintType;
116cdf0e10cSrcweir };
117cdf0e10cSrcweir 
118cdf0e10cSrcweir // typedefs for a list of SdrPaintWindows
119cdf0e10cSrcweir class SdrPaintWindow;
120cdf0e10cSrcweir typedef ::std::vector< SdrPaintWindow* > SdrPaintWindowVector;
121cdf0e10cSrcweir 
1229f63b866SArmin Le Grand //////////////////////////////////////////////////////////////////////////////
1239f63b866SArmin Le Grand // helper to convert any GDIMetaFile to a good quality BitmapEx,
1249f63b866SArmin Le Grand // using default parameters and graphic::XPrimitive2DRenderer
1259f63b866SArmin Le Grand 
1269f63b866SArmin Le Grand BitmapEx SVX_DLLPUBLIC convertMetafileToBitmapEx(
1279f63b866SArmin Le Grand     const GDIMetaFile& rMtf,
1289f63b866SArmin Le Grand     const basegfx::B2DRange& rTargetRange,
1299f63b866SArmin Le Grand     const sal_uInt32 nMaximumQuadraticPixels = 500000);
1309f63b866SArmin Le Grand 
131cdf0e10cSrcweir ////////////////////////////////////////////////////////////////////////////////////////////////////
132cdf0e10cSrcweir 
133cdf0e10cSrcweir class SVX_DLLPUBLIC SdrPaintView : public SfxListener, public SfxRepeatTarget, public SfxBroadcaster, public ::utl::ConfigurationListener
134cdf0e10cSrcweir {
135cdf0e10cSrcweir 	friend class				SdrPageView;
136cdf0e10cSrcweir 	friend class				FrameAnimator;
137cdf0e10cSrcweir 	friend class				SdrGrafObj;
138cdf0e10cSrcweir 
139cdf0e10cSrcweir protected:
140cdf0e10cSrcweir 	// #114409#-2 Migrate Encirclement
141cdf0e10cSrcweir 	class ImplEncirclementOverlay*				mpEncirclementOverlay;
142cdf0e10cSrcweir 
143cdf0e10cSrcweir 	SdrModel*					pMod;
144cdf0e10cSrcweir #ifdef DBG_UTIL
145cdf0e10cSrcweir 	SdrItemBrowser*				pItemBrowser;
146cdf0e10cSrcweir #endif
147cdf0e10cSrcweir 	const OutputDevice*			pActualOutDev; // Nur zum vergleichen
148cdf0e10cSrcweir 	OutputDevice*				pDragWin;
149cdf0e10cSrcweir 	SfxStyleSheet*				pDefaultStyleSheet;
150cdf0e10cSrcweir 
151cdf0e10cSrcweir 	String						aAktLayer;     // Aktueller Zeichenlayer
152cdf0e10cSrcweir 	String						aMeasureLayer; // Aktueller Layer fuer Bemassung
153cdf0e10cSrcweir 
154cdf0e10cSrcweir //	Container					aPagV;         // Liste von SdrPageViews
155cdf0e10cSrcweir 	SdrPageView*				mpPageView;
156cdf0e10cSrcweir 
157cdf0e10cSrcweir 	// All windows this view is displayed on
158cdf0e10cSrcweir 	SdrPaintWindowVector		maPaintWindows;
159cdf0e10cSrcweir 
160cdf0e10cSrcweir 	MapMode						aActualMapMode;
161cdf0e10cSrcweir 	Size						aGridBig; // muss dann mal raus
162cdf0e10cSrcweir 	Size						aGridFin; // muss dann mal raus
163cdf0e10cSrcweir 	SdrDragStat					aDragStat;
164cdf0e10cSrcweir 	Rectangle					aMaxWorkArea;
165cdf0e10cSrcweir 	SfxItemSet					aDefaultAttr;
166cdf0e10cSrcweir 	Timer						aComeBackTimer;
167cdf0e10cSrcweir 
168cdf0e10cSrcweir 	SdrAnimationMode			eAnimationMode;
169cdf0e10cSrcweir 
170cdf0e10cSrcweir 	sal_uInt16						nHitTolPix;
171cdf0e10cSrcweir 	sal_uInt16						nMinMovPix;
172cdf0e10cSrcweir 	sal_uInt16						nHitTolLog;
173cdf0e10cSrcweir 	sal_uInt16						nMinMovLog;
174cdf0e10cSrcweir 	sal_uIntPtr						nMasterCacheMode;
175cdf0e10cSrcweir 	sal_uIntPtr                       nGraphicManagerDrawMode;
176cdf0e10cSrcweir 
177cdf0e10cSrcweir 	// hold an incarnation of Drawinglayer configuration options
178cdf0e10cSrcweir     SvtOptionsDrawinglayer		maDrawinglayerOpt;
179cdf0e10cSrcweir 
180cdf0e10cSrcweir 	unsigned					bPageVisible : 1;
181cdf0e10cSrcweir     unsigned                    bPageBorderVisible : 1;
182cdf0e10cSrcweir 	unsigned					bBordVisible : 1;
183cdf0e10cSrcweir 	unsigned					bGridVisible : 1;
184cdf0e10cSrcweir 	unsigned					bGridFront : 1;
185cdf0e10cSrcweir 	unsigned					bHlplVisible : 1;
186cdf0e10cSrcweir 	unsigned					bHlplFront : 1;
187cdf0e10cSrcweir 	unsigned					bGlueVisible : 1;    // Persistent. Klebepunkte anzeigen
188cdf0e10cSrcweir 	unsigned					bGlueVisible2 : 1;   // Klebepunkte auch bei GluePointEdit anzeigen
189cdf0e10cSrcweir 	unsigned					bGlueVisible3 : 1;   // Klebepunkte auch bei EdgeTool anzeigen
190cdf0e10cSrcweir 	unsigned					bGlueVisible4 : 1;   // Klebepunkte anzeigen, wenn 1 Edge markiert
191cdf0e10cSrcweir 	unsigned					bRestoreColors : 1;   // Pens und Brushes werden zurueckgesetzt.
192cdf0e10cSrcweir 	unsigned					bSomeObjChgdFlag : 1;
193cdf0e10cSrcweir 	unsigned					bSwapAsynchron : 1;
194cdf0e10cSrcweir 	unsigned					bPrintPreview : 1;
195cdf0e10cSrcweir 
196cdf0e10cSrcweir 	// sal_Bool fuer die Verwaltung des anzuzeigenden Status
197cdf0e10cSrcweir 	// Gruppe Betreten/Verlassen. Default ist sal_True, wird aber
198cdf0e10cSrcweir 	// beispielsweise beim Chart auf sal_False gesetzt, da dort
199cdf0e10cSrcweir 	// die Ghosted-Effekte zur Darstellug unerwuenscht sind.
200cdf0e10cSrcweir 	unsigned					bVisualizeEnteredGroup : 1;
201cdf0e10cSrcweir 	unsigned					bAnimationPause : 1;
202cdf0e10cSrcweir 
203cdf0e10cSrcweir 	// #114898#
204cdf0e10cSrcweir 	// Flag which decides if buffered output for this view is allowed. When
205cdf0e10cSrcweir 	// set, PreRendering for PageView rendering will be used. Default is sal_False
206cdf0e10cSrcweir 	unsigned					mbBufferedOutputAllowed : 1;
207cdf0e10cSrcweir 
208cdf0e10cSrcweir 	// #114898#
209cdf0e10cSrcweir 	// Flag which decides if buffered overlay for this view is allowed. When
210cdf0e10cSrcweir 	// set, the output will be buffered in an overlay vdev. When not, overlay is
211cdf0e10cSrcweir 	// directly painted to OutDev. Default is sal_False.
212cdf0e10cSrcweir 	unsigned					mbBufferedOverlayAllowed : 1;
213cdf0e10cSrcweir 
214cdf0e10cSrcweir 	// allow page painting at all?
215cdf0e10cSrcweir 	unsigned					mbPagePaintingAllowed : 1;
216cdf0e10cSrcweir 
217cdf0e10cSrcweir 	// is this a preview renderer?
218cdf0e10cSrcweir 	unsigned					mbPreviewRenderer : 1;
219cdf0e10cSrcweir 
220cdf0e10cSrcweir     // flags for calc and sw for suppressing OLE, CHART or DRAW objects
221cdf0e10cSrcweir     unsigned                    mbHideOle : 1;
222cdf0e10cSrcweir     unsigned                    mbHideChart : 1;
223cdf0e10cSrcweir     unsigned                    mbHideDraw : 1;             // hide draw objects other than form controls
224cdf0e10cSrcweir     unsigned                    mbHideFormControl : 1;      // hide form controls only
225cdf0e10cSrcweir 
226cdf0e10cSrcweir public:
227cdf0e10cSrcweir 	// #114898#
228cdf0e10cSrcweir 	// interface for PagePaintingAllowed flag
229cdf0e10cSrcweir 	bool IsBufferedOutputAllowed() const;
230cdf0e10cSrcweir 	void SetBufferedOutputAllowed(bool bNew);
231cdf0e10cSrcweir 
232cdf0e10cSrcweir 	// interface for BufferedOverlayAllowed flag
233cdf0e10cSrcweir 	bool IsBufferedOverlayAllowed() const;
234cdf0e10cSrcweir 	void SetBufferedOverlayAllowed(bool bNew);
235cdf0e10cSrcweir 
236cdf0e10cSrcweir 	// allow page painting at all?
237cdf0e10cSrcweir 	sal_Bool IsPagePaintingAllowed() const;
238cdf0e10cSrcweir 	void SetPagePaintingAllowed(bool bNew);
239cdf0e10cSrcweir 
240cdf0e10cSrcweir protected:
241cdf0e10cSrcweir 	svtools::ColorConfig            maColorConfig;
242cdf0e10cSrcweir 	Color							maGridColor;
243cdf0e10cSrcweir 
244cdf0e10cSrcweir 	// interface to SdrPaintWindow
245cdf0e10cSrcweir protected:
246cdf0e10cSrcweir 	void AppendPaintWindow(SdrPaintWindow& rNew);
247cdf0e10cSrcweir 	SdrPaintWindow* RemovePaintWindow(SdrPaintWindow& rOld);
248cdf0e10cSrcweir 	void ConfigurationChanged( ::utl::ConfigurationBroadcaster*, sal_uInt32 );
249cdf0e10cSrcweir 
250cdf0e10cSrcweir public:
PaintWindowCount() const251cdf0e10cSrcweir 	sal_uInt32 PaintWindowCount() const { return maPaintWindows.size(); }
252cdf0e10cSrcweir 	SdrPaintWindow* FindPaintWindow(const OutputDevice& rOut) const;
253cdf0e10cSrcweir 	SdrPaintWindow* GetPaintWindow(sal_uInt32 nIndex) const;
254cdf0e10cSrcweir 	// replacement for GetWin(0), may return 0L (!)
255cdf0e10cSrcweir 	OutputDevice* GetFirstOutputDevice() const;
256cdf0e10cSrcweir 
257cdf0e10cSrcweir private:
258cdf0e10cSrcweir 	SVX_DLLPRIVATE void ImpClearVars();
259cdf0e10cSrcweir 	DECL_LINK(ImpComeBackHdl,Timer*);
260cdf0e10cSrcweir 
261cdf0e10cSrcweir protected:
262cdf0e10cSrcweir 	sal_uInt16 ImpGetMinMovLogic(short nMinMov, const OutputDevice* pOut) const;
263cdf0e10cSrcweir 	sal_uInt16 ImpGetHitTolLogic(short nHitTol, const OutputDevice* pOut) const;
264cdf0e10cSrcweir 
265cdf0e10cSrcweir 	// Wenn man den IdleStatus des Systems nicht abwarten will (auf const geschummelt):
266cdf0e10cSrcweir 	void FlushComeBackTimer() const;
267cdf0e10cSrcweir 	void TheresNewMapMode();
ImpSetGlueVisible2(bool bOn)268cdf0e10cSrcweir 	void ImpSetGlueVisible2(bool bOn) { if (bGlueVisible2!=(unsigned)bOn) { bGlueVisible2=bOn; if (!bGlueVisible && !bGlueVisible3 && !bGlueVisible4) GlueInvalidate(); } }
ImpSetGlueVisible3(bool bOn)269cdf0e10cSrcweir 	void ImpSetGlueVisible3(bool bOn) { if (bGlueVisible3!=(unsigned)bOn) { bGlueVisible3=bOn; if (!bGlueVisible && !bGlueVisible2 && !bGlueVisible4) GlueInvalidate(); } }
ImpSetGlueVisible4(bool bOn)270cdf0e10cSrcweir 	void ImpSetGlueVisible4(bool bOn) { if (bGlueVisible4!=(unsigned)bOn) { bGlueVisible4=bOn; if (!bGlueVisible && !bGlueVisible2 && !bGlueVisible3) GlueInvalidate(); } }
ImpIsGlueVisible2() const271cdf0e10cSrcweir 	sal_Bool ImpIsGlueVisible2() const { return bGlueVisible2; }
ImpIsGlueVisible3() const272cdf0e10cSrcweir 	sal_Bool ImpIsGlueVisible3() const { return bGlueVisible3; }
ImpIsGlueVisible4() const273cdf0e10cSrcweir 	sal_Bool ImpIsGlueVisible4() const { return bGlueVisible4; }
274cdf0e10cSrcweir 
275cdf0e10cSrcweir public:
ImpIsGlueVisible()276cdf0e10cSrcweir 	sal_Bool ImpIsGlueVisible() { return bGlueVisible || bGlueVisible2 || bGlueVisible3 || bGlueVisible4; }
277cdf0e10cSrcweir protected:
278cdf0e10cSrcweir 
279cdf0e10cSrcweir 	virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
280cdf0e10cSrcweir 	void GlueInvalidate() const;
281cdf0e10cSrcweir 
282cdf0e10cSrcweir 	void ShowEncirclement(OutputDevice* pOut);
283cdf0e10cSrcweir 	void HideEncirclement(OutputDevice* pOut);
284cdf0e10cSrcweir 	void DrawEncirclement(OutputDevice* pOut) const;
285cdf0e10cSrcweir 
286cdf0e10cSrcweir 	// ModelHasChanged wird gerufen, sobald nach beliebig vielen HINT_OBJCHG
287cdf0e10cSrcweir 	// das System wieder idle ist (StarView-Timer). Wer diese Methode ueberlaed,
288cdf0e10cSrcweir 	// muss unbedingt ModelHasChanged() der Basisklasse rufen.
289cdf0e10cSrcweir 	virtual void ModelHasChanged();
290cdf0e10cSrcweir 
291cdf0e10cSrcweir protected:
292cdf0e10cSrcweir 	// #i71538# make constructors of SdrView sub-components protected to avoid incomplete incarnations which may get casted to SdrView
293cdf0e10cSrcweir 	SdrPaintView(SdrModel* pModel1, OutputDevice* pOut = 0L);
294cdf0e10cSrcweir 	virtual ~SdrPaintView();
295cdf0e10cSrcweir 
296cdf0e10cSrcweir public:
297cdf0e10cSrcweir 	TYPEINFO();
298cdf0e10cSrcweir 
299cdf0e10cSrcweir 	virtual void ClearPageView();
300cdf0e10cSrcweir //	virtual void ClearAll();
301cdf0e10cSrcweir //	virtual void Clear(); // PageViews loeschen, Markierungen weg, ...
GetModel() const302cdf0e10cSrcweir 	SdrModel* GetModel() const { return pMod; }
303cdf0e10cSrcweir 
304cdf0e10cSrcweir 	virtual sal_Bool IsAction() const;
305cdf0e10cSrcweir 	virtual void MovAction(const Point& rPnt);
306cdf0e10cSrcweir 	virtual void EndAction();
307cdf0e10cSrcweir 	virtual void BckAction();
308cdf0e10cSrcweir 	virtual void BrkAction(); // Alle Actions z.B. Draggen abbrechen.
309cdf0e10cSrcweir 	virtual void TakeActionRect(Rectangle& rRect) const;
310cdf0e10cSrcweir 
311cdf0e10cSrcweir 	// info about TextEdit. Default is sal_False.
312cdf0e10cSrcweir 	virtual bool IsTextEdit() const;
313cdf0e10cSrcweir 
314cdf0e10cSrcweir 	// info about TextEditPageView. Default is 0L.
315cdf0e10cSrcweir 	virtual SdrPageView* GetTextEditPageView() const;
316cdf0e10cSrcweir 
317cdf0e10cSrcweir 	// Muss dann bei jedem Fensterwechsel (wenn die SdrView in mehreren
318cdf0e10cSrcweir 	// Fenstern gleichzeitig dargestellt wird (->z.B. Splitter)) und bei
319cdf0e10cSrcweir 	// jedem MapMode(Scaling)-wechsel gerufen werden, damit ich aus meinen
320cdf0e10cSrcweir 	// Pixelwerten logische Werte berechnen kann.
321cdf0e10cSrcweir 	void SetActualWin(const OutputDevice* pWin);
SetMinMoveDistancePixel(sal_uInt16 nVal)322cdf0e10cSrcweir 	void SetMinMoveDistancePixel(sal_uInt16 nVal) { nMinMovPix=nVal; TheresNewMapMode(); }
GetMinMoveDistancePixel() const323cdf0e10cSrcweir 	sal_uInt16 GetMinMoveDistancePixel() const { return (sal_uInt16)nMinMovPix; }
SetHitTolerancePixel(sal_uInt16 nVal)324cdf0e10cSrcweir 	void SetHitTolerancePixel(sal_uInt16 nVal) { nHitTolPix=nVal; TheresNewMapMode(); }
GetHitTolerancePixel() const325cdf0e10cSrcweir 	sal_uInt16 GetHitTolerancePixel() const { return (sal_uInt16)nHitTolPix; }
326cdf0e10cSrcweir 
327cdf0e10cSrcweir     // data read access on logic HitTolerance and MinMoveTolerance
getHitTolLog() const328cdf0e10cSrcweir     sal_uInt16 getHitTolLog() const { return nHitTolLog; }
getMinMovLog() const329cdf0e10cSrcweir     sal_uInt16 getMinMovLog() const { return nMinMovLog; }
330cdf0e10cSrcweir 
331cdf0e10cSrcweir 	// Flag zur Visualisierung von Gruppen abfragen/testen
DoVisualizeEnteredGroup() const332cdf0e10cSrcweir 	sal_Bool DoVisualizeEnteredGroup() const { return bVisualizeEnteredGroup; }
SetVisualizeEnteredGroup(sal_Bool bNew)333cdf0e10cSrcweir 	void SetVisualizeEnteredGroup(sal_Bool bNew) { bVisualizeEnteredGroup = bNew; }
334cdf0e10cSrcweir 
335cdf0e10cSrcweir 	// Am DragStatus laesst sich beispielsweise erfragen, welche
336cdf0e10cSrcweir 	// entfernung bereits gedraggd wurde, etc.
GetDragStat() const337cdf0e10cSrcweir 	const SdrDragStat& GetDragStat() const { return aDragStat; }
338cdf0e10cSrcweir 
339cdf0e10cSrcweir 	// Anmelden/Abmelden einer PageView an der View.
340cdf0e10cSrcweir 	// Dieselbe // Seite kann nicht mehrfach angemeldet werden.
341cdf0e10cSrcweir 	// Methoden mit dem Suffix PgNum erwarten als numerischen Parameter
342cdf0e10cSrcweir 	// eine Seitennummer (0...). Methoden mit dem Suffix PvNum erwarten
343cdf0e10cSrcweir 	// degagen als numerischen Parameter die Nummer der PageView an der
344cdf0e10cSrcweir 	// SdrView (Iterieren ueber alle angemeldeten Pages).
345cdf0e10cSrcweir 	virtual SdrPageView* ShowSdrPage(SdrPage* pPage);
346cdf0e10cSrcweir 	virtual void HideSdrPage();
347cdf0e10cSrcweir 
348cdf0e10cSrcweir 	// Iterieren ueber alle angemeldeten PageViews
349cdf0e10cSrcweir //	sal_uInt16 GetPageViewCount() const { return sal_uInt16(aPagV.Count()); }
350cdf0e10cSrcweir //	SdrPageView* GetPageViewByIndex(sal_uInt16 nPvNum) const { return ((SdrPageView*)aPagV.GetObject(nPvNum)); }
GetSdrPageView() const351cdf0e10cSrcweir 	SdrPageView* GetSdrPageView() const { return mpPageView; }
352cdf0e10cSrcweir 
353cdf0e10cSrcweir 	// Pageview einer bestimmten Seite ermitteln
354cdf0e10cSrcweir //	SdrPageView* GetPageViewByPage(const SdrPage* pPage) const;
355cdf0e10cSrcweir //	sal_uInt16 GetIndexByPageView(const SdrPageView* pPV) const;
356cdf0e10cSrcweir 
357cdf0e10cSrcweir 	// Test, ob eine Seite getroffen
358cdf0e10cSrcweir //	SdrPageView* HitPage(const Point& rPnt) const;
359cdf0e10cSrcweir 
360cdf0e10cSrcweir 	// Die Seite, die dem Punkt am naechsten ist. Liefert nur NULL,
361cdf0e10cSrcweir 	// wenn absolut keine Seite angemeldet ist.
362cdf0e10cSrcweir //	SdrPageView* GetPageViewByPosition(const Point& rPnt) const;
363cdf0e10cSrcweir 
364cdf0e10cSrcweir 	// Eine SdrView kann auf mehreren Fenstern gleichzeitig abgebiltet sein:
365cdf0e10cSrcweir 	virtual void AddWindowToPaintView(OutputDevice* pNewWin);
366cdf0e10cSrcweir 	virtual void DeleteWindowFromPaintView(OutputDevice* pOldWin);
367cdf0e10cSrcweir 
368cdf0e10cSrcweir 	void SetLayerVisible(const String& rName, sal_Bool bShow=sal_True);
369cdf0e10cSrcweir 	bool IsLayerVisible(const String& rName) const;
370cdf0e10cSrcweir 	void SetAllLayersVisible(sal_Bool bShow=sal_True);
371cdf0e10cSrcweir 
372cdf0e10cSrcweir 	void SetLayerLocked(const String& rName, sal_Bool bLock=sal_True);
373cdf0e10cSrcweir 	bool IsLayerLocked(const String& rName) const;
374cdf0e10cSrcweir 	void SetAllLayersLocked(sal_Bool bLock=sal_True);
375cdf0e10cSrcweir 
376cdf0e10cSrcweir 	void SetLayerPrintable(const String& rName, sal_Bool bPrn=sal_True);
377cdf0e10cSrcweir 	bool IsLayerPrintable(const String& rName) const;
378cdf0e10cSrcweir 	void SetAllLayersPrintable(sal_Bool bPrn=sal_True);
379cdf0e10cSrcweir 
380cdf0e10cSrcweir 	// PrePaint call forwarded from app windows
381cdf0e10cSrcweir     void PrePaint();
382cdf0e10cSrcweir 
383cdf0e10cSrcweir 	// PostPaint call forwarded from app windows
384cdf0e10cSrcweir     void PostPaint();
385cdf0e10cSrcweir 
386cdf0e10cSrcweir 	////////////////////////////////////////////////////////////////////////////////////////////////////
387cdf0e10cSrcweir 	// used internally for Draw/Impress/sch/chart2
388cdf0e10cSrcweir 	virtual void CompleteRedraw(OutputDevice* pOut, const Region& rReg, sdr::contact::ViewObjectContactRedirector* pRedirector = 0);
389cdf0e10cSrcweir 
390cdf0e10cSrcweir 	// #i72889# used from CompleteRedraw() implementation internally, added to be able to do a complete redraw in single steps
391cdf0e10cSrcweir 	//
392*86e1cf34SPedro Giffuni 	// BeginCompleteRedraw returns (or even creates) a SdrPaintWindow which shall then be used as
393cdf0e10cSrcweir 	// target for paints. Since paints may be buffered, use it's GetTargetOutputDevice() method which will
394cdf0e10cSrcweir 	// return the buffer in case of bufered.
395cdf0e10cSrcweir 	// DoCompleteRedraw draws the DrawingLayer hierarchy then.
396cdf0e10cSrcweir 	// EndCompleteRedraw does the necessary refreshes, evtl. paints text edit and overlay and evtl destroys the
397cdf0e10cSrcweir 	// SdrPaintWindow again. This means: the SdrPaintWindow is no longer safe after this closing call.
398cdf0e10cSrcweir 	virtual SdrPaintWindow* BeginCompleteRedraw(OutputDevice* pOut);
399cdf0e10cSrcweir 	virtual void DoCompleteRedraw(SdrPaintWindow& rPaintWindow, const Region& rReg, sdr::contact::ViewObjectContactRedirector* pRedirector = 0);
400cdf0e10cSrcweir 	virtual void EndCompleteRedraw(SdrPaintWindow& rPaintWindow, bool bPaintFormLayer);
401cdf0e10cSrcweir 
402cdf0e10cSrcweir 	////////////////////////////////////////////////////////////////////////////////////////////////////
403cdf0e10cSrcweir 	// used for the other applications basctl/sc/sw which call DrawLayer at PageViews
404cdf0e10cSrcweir 	// #i74769# Interface change to use common BeginCompleteRedraw/EndCompleteRedraw
405cdf0e10cSrcweir 	// #i76114# bDisableIntersect disables intersecting rReg with the Window's paint region
406cdf0e10cSrcweir 	SdrPaintWindow* BeginDrawLayers(OutputDevice* pOut, const Region& rReg, bool bDisableIntersect = false);
407cdf0e10cSrcweir 	void EndDrawLayers(SdrPaintWindow& rPaintWindow, bool bPaintFormLayer);
408cdf0e10cSrcweir 
409cdf0e10cSrcweir protected:
410cdf0e10cSrcweir 	////////////////////////////////////////////////////////////////////////////////////////////////////
411cdf0e10cSrcweir 	// used to paint the form layer after the PreRender device is flushed (painted) to the window.
412cdf0e10cSrcweir 	void ImpFormLayerDrawing(SdrPaintWindow& rPaintWindow) const;
413cdf0e10cSrcweir 
414cdf0e10cSrcweir public:
IsPageVisible() const415cdf0e10cSrcweir 	sal_Bool IsPageVisible() const { return bPageVisible; }             // Seite (weisse Flaeche) malen oder nicht
IsPageBorderVisible() const416cdf0e10cSrcweir 	sal_Bool IsPageBorderVisible() const { return bPageBorderVisible; } // Seite (weisse Flaeche) malen oder nicht
IsBordVisible() const417cdf0e10cSrcweir 	sal_Bool IsBordVisible() const { return bBordVisible; }             // Seitenrandlinie malen oder nicht
IsGridVisible() const418cdf0e10cSrcweir 	sal_Bool IsGridVisible() const { return bGridVisible; }             // Rastergitter malen oder nicht
IsGridFront() const419cdf0e10cSrcweir 	sal_Bool IsGridFront() const { return bGridFront  ; }               // Rastergitter ueber die Objekte druebermalen oder dahinter
IsHlplVisible() const420cdf0e10cSrcweir 	sal_Bool IsHlplVisible() const { return bHlplVisible; }             // Hilfslinien der Seiten malen oder nicht
IsHlplFront() const421cdf0e10cSrcweir 	sal_Bool IsHlplFront() const { return bHlplFront  ; }               // Hilfslinie ueber die Objekte druebermalen oder dahinter
IsGlueVisible() const422cdf0e10cSrcweir 	sal_Bool IsGlueVisible() const { return bGlueVisible; }             // Konnektoren der objekte sichtbar oder nicht
423cdf0e10cSrcweir 	Color GetGridColor() const;
SetPageVisible(bool bOn=true)424cdf0e10cSrcweir 	void SetPageVisible(bool bOn = true) { bPageVisible=bOn; InvalidateAllWin(); }
SetPageBorderVisible(bool bOn=true)425cdf0e10cSrcweir 	void SetPageBorderVisible(bool bOn = true) { bPageBorderVisible=bOn; InvalidateAllWin(); }
SetBordVisible(bool bOn=true)426cdf0e10cSrcweir 	void SetBordVisible(bool bOn = true) { bBordVisible=bOn; InvalidateAllWin(); }
SetGridVisible(bool bOn=true)427cdf0e10cSrcweir 	void SetGridVisible(bool bOn = true) { bGridVisible=bOn; InvalidateAllWin(); }
SetGridFront(bool bOn=true)428cdf0e10cSrcweir 	void SetGridFront(bool bOn = true) { bGridFront  =bOn; InvalidateAllWin(); }
SetHlplVisible(bool bOn=true)429cdf0e10cSrcweir 	void SetHlplVisible(bool bOn = true) { bHlplVisible=bOn; InvalidateAllWin(); }
SetHlplFront(bool bOn=true)430cdf0e10cSrcweir 	void SetHlplFront(bool bOn = true) { bHlplFront  =bOn; InvalidateAllWin(); }
SetGlueVisible(bool bOn=true)431cdf0e10cSrcweir 	void SetGlueVisible(bool bOn = true) { if (bGlueVisible!=(unsigned)bOn) { bGlueVisible=bOn; if (!bGlueVisible2 && !bGlueVisible3 && !bGlueVisible4) GlueInvalidate(); } }
432cdf0e10cSrcweir 	void SetGridColor( Color aColor );
433cdf0e10cSrcweir 
IsPreviewRenderer() const434cdf0e10cSrcweir 	sal_Bool IsPreviewRenderer() const { return (sal_Bool )mbPreviewRenderer; }
SetPreviewRenderer(bool bOn)435cdf0e10cSrcweir 	void SetPreviewRenderer(bool bOn) { if((unsigned)bOn != mbPreviewRenderer) { mbPreviewRenderer=bOn; }}
436cdf0e10cSrcweir 
437cdf0e10cSrcweir     // access methods for calc and sw hide object modes
getHideOle() const438cdf0e10cSrcweir     bool getHideOle() const { return mbHideOle; }
getHideChart() const439cdf0e10cSrcweir     bool getHideChart() const { return mbHideChart; }
getHideDraw() const440cdf0e10cSrcweir     bool getHideDraw() const { return mbHideDraw; }
getHideFormControl() const441cdf0e10cSrcweir     bool getHideFormControl() const { return mbHideFormControl; }
setHideOle(bool bNew)442cdf0e10cSrcweir     void setHideOle(bool bNew) { if(bNew != (bool)mbHideOle) mbHideOle = bNew; }
setHideChart(bool bNew)443cdf0e10cSrcweir     void setHideChart(bool bNew) { if(bNew != (bool)mbHideChart) mbHideChart = bNew; }
setHideDraw(bool bNew)444cdf0e10cSrcweir     void setHideDraw(bool bNew) { if(bNew != (bool)mbHideDraw) mbHideDraw = bNew; }
setHideFormControl(bool bNew)445cdf0e10cSrcweir     void setHideFormControl(bool bNew) { if(bNew != (bool)mbHideFormControl) mbHideFormControl = bNew; }
446cdf0e10cSrcweir 
SetGridCoarse(const Size & rSiz)447cdf0e10cSrcweir     void SetGridCoarse(const Size& rSiz) { aGridBig=rSiz; }
SetGridFine(const Size & rSiz)448cdf0e10cSrcweir 	void SetGridFine(const Size& rSiz) { aGridFin=rSiz; if (aGridFin.Height()==0) aGridFin.Height()=aGridFin.Width(); if (bGridVisible) InvalidateAllWin(); } // #40479#
GetGridCoarse() const449cdf0e10cSrcweir 	const Size& GetGridCoarse() const { return aGridBig; }
GetGridFine() const450cdf0e10cSrcweir 	const Size& GetGridFine() const { return aGridFin; }
451cdf0e10cSrcweir 
452cdf0e10cSrcweir 	void InvalidateAllWin();
453cdf0e10cSrcweir 	void InvalidateAllWin(const Rectangle& rRect, sal_Bool bPlus1Pix=sal_False);
454cdf0e10cSrcweir 
455cdf0e10cSrcweir 	// Wenn die View kein Invalidate() an den Fenstern durchfuehren soll, muss
456cdf0e10cSrcweir 	// man diese beiden folgenden Methoden ueberladen und entsprechend anders
457cdf0e10cSrcweir 	// reagieren.
458cdf0e10cSrcweir 	virtual void InvalidateOneWin(Window& rWin);
459cdf0e10cSrcweir 	virtual void InvalidateOneWin(Window& rWin, const Rectangle& rRect);
460cdf0e10cSrcweir 
SetActiveLayer(const String & rName)461cdf0e10cSrcweir 	void SetActiveLayer(const String& rName) { aAktLayer=rName; }
GetActiveLayer() const462cdf0e10cSrcweir 	const String&  GetActiveLayer() const { return aAktLayer; }
463cdf0e10cSrcweir 
464cdf0e10cSrcweir 	// Verlassen einer betretenen Objektgruppe aller sichtbaren Seiten.
465cdf0e10cSrcweir 	// (wie MsDos chdir ..)
466cdf0e10cSrcweir 	void LeaveOneGroup();
467cdf0e10cSrcweir 
468cdf0e10cSrcweir 	// Verlassen aller betretenen Objektgruppen aller sichtbaren Seiten.
469cdf0e10cSrcweir 	// (wie MsDos chdir \)
470cdf0e10cSrcweir 	void LeaveAllGroup();
471cdf0e10cSrcweir 
472cdf0e10cSrcweir 	// Feststellen, ob Leave sinnvoll ist.
473cdf0e10cSrcweir 	bool IsGroupEntered() const;
474cdf0e10cSrcweir 
475cdf0e10cSrcweir 	// DefaultAttribute an der View: Neu erzeugte Objekte bekommen diese
476cdf0e10cSrcweir 	// Attribute direkt nach dem Erzeugen erstmal zugewiesen.
477cdf0e10cSrcweir 	void SetDefaultAttr(const SfxItemSet& rAttr, sal_Bool bReplaceAll);
GetDefaultAttr() const478cdf0e10cSrcweir 	const SfxItemSet& GetDefaultAttr() const { return aDefaultAttr; }
479cdf0e10cSrcweir 	void SetDefaultStyleSheet(SfxStyleSheet* pStyleSheet, sal_Bool bDontRemoveHardAttr);
GetDefaultStyleSheet() const480cdf0e10cSrcweir 	SfxStyleSheet* GetDefaultStyleSheet() const { return pDefaultStyleSheet; }
481cdf0e10cSrcweir 
482cdf0e10cSrcweir 	void SetNotPersistDefaultAttr(const SfxItemSet& rAttr, sal_Bool bReplaceAll);
483cdf0e10cSrcweir 	void MergeNotPersistDefaultAttr(SfxItemSet& rAttr, sal_Bool bOnlyHardAttr) const;
484cdf0e10cSrcweir 
485cdf0e10cSrcweir 	// Aufziehen eines animierten Rechtecks fuer Applikationsspeziefische
486cdf0e10cSrcweir 	// Verwendung. Alle Positionsangaben in logischen View-Koordinaten.
487cdf0e10cSrcweir 	// pOut bezeichnet das OutputDevice, in das animierte Rechteck dargestellt
488cdf0e10cSrcweir 	// werden soll. Wird NULL uebergeben, wird es in allen an der View
489cdf0e10cSrcweir 	// angemeldeten OutputDevices gleichzeitig dargestellt.
490cdf0e10cSrcweir 	void BegEncirclement(const Point& rPnt);
491cdf0e10cSrcweir 	void MovEncirclement(const Point& rPnt);
492cdf0e10cSrcweir 	Rectangle EndEncirclement(sal_Bool bNoJustify = sal_False);
493cdf0e10cSrcweir 	void BrkEncirclement();
IsEncirclement() const494cdf0e10cSrcweir 	sal_Bool IsEncirclement() const { return (0L != mpEncirclementOverlay); }
495cdf0e10cSrcweir 
496cdf0e10cSrcweir 	// use this mode as mode to draw all internal GraphicManager objects with
GetGraphicManagerDrawMode() const497cdf0e10cSrcweir 	sal_uIntPtr GetGraphicManagerDrawMode() const { return nGraphicManagerDrawMode; }
SetGraphicManagerDrawMode(sal_uIntPtr nMode)498cdf0e10cSrcweir 	void SetGraphicManagerDrawMode( sal_uIntPtr nMode ) { nGraphicManagerDrawMode = nMode; }
499cdf0e10cSrcweir 
500cdf0e10cSrcweir 	// SwapIn (z.B. von Grafiken) asynchron durchfuehren. Also nicht
501cdf0e10cSrcweir 	// beim Paint sofort nachladen, sondern dort das Nachladen anstossen.
502cdf0e10cSrcweir 	// Nach Abschluss des Nachladens wird das Objekt dann angezeigt.
503cdf0e10cSrcweir 	// Hat nur z.Zt. Wirkung, wenn SwapGraphics am Model eingeschaltet ist.
504cdf0e10cSrcweir 	// Default=FALSE. Flag ist nicht persistent.
IsSwapAsynchron() const505cdf0e10cSrcweir 	sal_Bool IsSwapAsynchron() const { return bSwapAsynchron; }
SetSwapAsynchron(sal_Bool bJa=sal_True)506cdf0e10cSrcweir 	void SetSwapAsynchron(sal_Bool bJa=sal_True) { bSwapAsynchron=bJa; }
507cdf0e10cSrcweir 	virtual sal_Bool KeyInput(const KeyEvent& rKEvt, Window* pWin);
508cdf0e10cSrcweir 
MouseButtonDown(const MouseEvent &,Window *)509cdf0e10cSrcweir 	virtual sal_Bool MouseButtonDown(const MouseEvent& /*rMEvt*/, Window* /*pWin*/) { return sal_False; }
MouseButtonUp(const MouseEvent &,Window *)510cdf0e10cSrcweir 	virtual sal_Bool MouseButtonUp(const MouseEvent& /*rMEvt*/, Window* /*pWin*/) { return sal_False; }
MouseMove(const MouseEvent &,Window *)511cdf0e10cSrcweir 	virtual sal_Bool MouseMove(const MouseEvent& /*rMEvt*/, Window* /*pWin*/) { return sal_False; }
Command(const CommandEvent &,Window *)512cdf0e10cSrcweir 	virtual sal_Bool Command(const CommandEvent& /*rCEvt*/, Window* /*pWin*/) { return sal_False; }
Cut(sal_uIntPtr=SDR_ANYFORMAT)513cdf0e10cSrcweir 	sal_Bool Cut(sal_uIntPtr /*nFormat*/=SDR_ANYFORMAT) { return sal_False; }
Yank(sal_uIntPtr=SDR_ANYFORMAT)514cdf0e10cSrcweir 	sal_Bool Yank(sal_uIntPtr /*nFormat*/=SDR_ANYFORMAT) { return sal_False; }
Paste(Window * =NULL,sal_uIntPtr=SDR_ANYFORMAT)515cdf0e10cSrcweir 	sal_Bool Paste(Window* /*pWin*/=NULL, sal_uIntPtr /*nFormat*/=SDR_ANYFORMAT) { return sal_False; }
516cdf0e10cSrcweir 
517cdf0e10cSrcweir 	/* new interface src537 */
518cdf0e10cSrcweir 	sal_Bool GetAttributes(SfxItemSet& rTargetSet, sal_Bool bOnlyHardAttr=sal_False) const;
519cdf0e10cSrcweir 
520cdf0e10cSrcweir 	sal_Bool SetAttributes(const SfxItemSet& rSet, sal_Bool bReplaceAll);
521cdf0e10cSrcweir 	SfxStyleSheet* GetStyleSheet() const; // SfxStyleSheet* GetStyleSheet(sal_Bool& rOk) const;
522cdf0e10cSrcweir 	sal_Bool SetStyleSheet(SfxStyleSheet* pStyleSheet, sal_Bool bDontRemoveHardAttr);
523cdf0e10cSrcweir 
524cdf0e10cSrcweir 	virtual void MakeVisible(const Rectangle& rRect, Window& rWin);
525cdf0e10cSrcweir 
526cdf0e10cSrcweir 	// Fuer PlugIn. Wird vom Paint des OLE-Obj gerufen.
527cdf0e10cSrcweir 	virtual void DoConnect(SdrOle2Obj* pOleObj);
528cdf0e10cSrcweir 
529cdf0e10cSrcweir 	// Animation aktivieren/deaktivieren fuer ::Paint
530cdf0e10cSrcweir 	// wird z.Zt. ausgewertet von SdrGrafObj, wenn in dem eine Animation steckt
531cdf0e10cSrcweir 	// Das Unterbinden der automatischen Animation wird z.B. fuer die Dia-Show benoetigt
IsAnimationEnabled() const532cdf0e10cSrcweir 	sal_Bool IsAnimationEnabled() const { return ( SDR_ANIMATION_ANIMATE == eAnimationMode ); }
533cdf0e10cSrcweir 	void SetAnimationEnabled( sal_Bool bEnable=sal_True );
534cdf0e10cSrcweir 
535cdf0e10cSrcweir     // set/unset pause state for animations
IsAnimationPause() const536cdf0e10cSrcweir     bool IsAnimationPause() const { return bAnimationPause; }
537cdf0e10cSrcweir     void SetAnimationPause( bool bSet );
538cdf0e10cSrcweir 
539cdf0e10cSrcweir 	// Verhalten beim Starten von Animation im Paint-Handler:
540cdf0e10cSrcweir 	// 1. Animation normal starten( SDR_ANIMATION_ANIMATE ) => DEFAULT
541cdf0e10cSrcweir 	// 2. Nur die Ersatzdarstellung der Animation zeichnen ( SDR_ANIMATION_DONT_ANIMATE )
542cdf0e10cSrcweir 	// 3. Nicht starten und nichts ersatzweise ausgeben ( SDR_ANIMATION_DISABLE )
543cdf0e10cSrcweir 	void SetAnimationMode( const SdrAnimationMode eMode );
GetAnimationMode() const544cdf0e10cSrcweir 	SdrAnimationMode GetAnimationMode() const { return eAnimationMode; }
545cdf0e10cSrcweir 
546cdf0e10cSrcweir 	// bei bShow=sal_False wird der Browser destruiert
547cdf0e10cSrcweir #ifdef DBG_UTIL
548cdf0e10cSrcweir 	void ShowItemBrowser(sal_Bool bShow=sal_True);
IsItemBrowserVisible() const549cdf0e10cSrcweir 	sal_Bool IsItemBrowserVisible() const { return pItemBrowser!=NULL && ((Window*)pItemBrowser)->IsVisible(); }
GetItemBrowser() const550cdf0e10cSrcweir 	Window* GetItemBrowser() const { return (Window*)pItemBrowser; }
551cdf0e10cSrcweir #endif
552cdf0e10cSrcweir 
553cdf0e10cSrcweir 	// Muss von App beim Scrollen usw. gerufen werden, damit ein u.U.
554cdf0e10cSrcweir 	// aktives FormularControl mitverschoben werden kann
555cdf0e10cSrcweir 	void VisAreaChanged(const OutputDevice* pOut=NULL);
556cdf0e10cSrcweir 	void VisAreaChanged(const SdrPageWindow& rWindow);
557cdf0e10cSrcweir 
IsPrintPreview() const558cdf0e10cSrcweir 	sal_Bool IsPrintPreview() const { return bPrintPreview; }
SetPrintPreview(bool bOn=true)559cdf0e10cSrcweir 	void SetPrintPreview(bool bOn = true) { bPrintPreview=bOn; }
560cdf0e10cSrcweir 
561cdf0e10cSrcweir     const svtools::ColorConfig& getColorConfig() const;
562cdf0e10cSrcweir 
563cdf0e10cSrcweir 	virtual void onChangeColorConfig();
564cdf0e10cSrcweir 
565cdf0e10cSrcweir 	// #103834# Set background color for svx at SdrPageViews
566cdf0e10cSrcweir 	void SetApplicationBackgroundColor(Color aBackgroundColor);
567cdf0e10cSrcweir 
568cdf0e10cSrcweir 	// #103911# Set document color for svx at SdrPageViews
569cdf0e10cSrcweir 	void SetApplicationDocumentColor(Color aDocumentColor);
570cdf0e10cSrcweir 
571cdf0e10cSrcweir 	// #i38135#
572cdf0e10cSrcweir 	// Sets the timer for Object animations and restarts.
573cdf0e10cSrcweir 	void SetAnimationTimer(sal_uInt32 nTime);
574cdf0e10cSrcweir 
575cdf0e10cSrcweir 	// access to Drawinglayer configuration options
getOptionsDrawinglayer() const576cdf0e10cSrcweir 	const SvtOptionsDrawinglayer& getOptionsDrawinglayer() const { return maDrawinglayerOpt; }
577cdf0e10cSrcweir };
578cdf0e10cSrcweir 
579cdf0e10cSrcweir #endif //_SVDPNTV_HXX
580cdf0e10cSrcweir 
581