xref: /aoo41x/main/svx/inc/svx/svdview.hxx (revision 1cd65da9)
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 _SVDVIEW_HXX
25cdf0e10cSrcweir #define _SVDVIEW_HXX
26cdf0e10cSrcweir 
27cdf0e10cSrcweir // HACK to avoid too deep includes and to have some
28cdf0e10cSrcweir // levels free in svdmark itself (MS compiler include depth limit)
29cdf0e10cSrcweir #include <svx/svdhdl.hxx>
30cdf0e10cSrcweir #include <tools/weakbase.hxx>
31cdf0e10cSrcweir #include <svtools/accessibilityoptions.hxx>
32cdf0e10cSrcweir #include "svx/svxdllapi.h"
33cdf0e10cSrcweir #include <svx/svdcrtv.hxx>
34cdf0e10cSrcweir #include <unotools/options.hxx>
35*1cd65da9SArmin Le Grand #include <basegfx/polygon/b2dpolypolygon.hxx>
36*1cd65da9SArmin Le Grand #include <basegfx/polygon/b2dpolygon.hxx>
37cdf0e10cSrcweir 
38cdf0e10cSrcweir ////////////////////////////////////////////////////////////////////////////////////////////////////
39cdf0e10cSrcweir //
40cdf0e10cSrcweir //  Klassenhierarchie der View:
41cdf0e10cSrcweir //         SfxListener
42cdf0e10cSrcweir //         SdrPaintView    PntV   Action            ModChg   Attr   Notify
43cdf0e10cSrcweir //         SdrSnapView     SnpV   Action
44cdf0e10cSrcweir //
45cdf0e10cSrcweir //         SdrMarkView     MrkV   Action   MrkChg   ModChg          Notify
46cdf0e10cSrcweir //
47cdf0e10cSrcweir //         SdrEditView     EdtV            MrkChg   ModChg   Attr
48cdf0e10cSrcweir //         SdrPolyEditView PoEV
49cdf0e10cSrcweir //         SdrGlueEditView GlEV
50cdf0e10cSrcweir //         SdrObjEditView  EdxV   Action            ModChg   Attr   Notify
51cdf0e10cSrcweir //
52cdf0e10cSrcweir //         SdrExchangeView XcgV
53cdf0e10cSrcweir //         SdrDragView     DrgV   Action
54cdf0e10cSrcweir //
55cdf0e10cSrcweir //         SdrCreateView   CrtV   Action
56cdf0e10cSrcweir //         SdrView         View
57cdf0e10cSrcweir //
58cdf0e10cSrcweir ////////////////////////////////////////////////////////////////////////////////////////////////////
59cdf0e10cSrcweir 
60cdf0e10cSrcweir //************************************************************
61cdf0e10cSrcweir //   Vorausdeklarationen
62cdf0e10cSrcweir //************************************************************
63cdf0e10cSrcweir 
64cdf0e10cSrcweir class SvxURLField;
65cdf0e10cSrcweir 
66cdf0e10cSrcweir //************************************************************
67cdf0e10cSrcweir //   Defines
68cdf0e10cSrcweir //************************************************************
69cdf0e10cSrcweir 
70cdf0e10cSrcweir enum SdrViewContext {SDRCONTEXT_STANDARD,
71cdf0e10cSrcweir 					 SDRCONTEXT_POINTEDIT,
72cdf0e10cSrcweir 					 SDRCONTEXT_GLUEPOINTEDIT,
73cdf0e10cSrcweir 					 SDRCONTEXT_GRAPHIC,
74cdf0e10cSrcweir 					 SDRCONTEXT_MEDIA,
75cdf0e10cSrcweir 					 SDRCONTEXT_TABLE};
76cdf0e10cSrcweir 
77cdf0e10cSrcweir enum SdrEventKind  {SDREVENT_NONE,
78cdf0e10cSrcweir 					SDREVENT_TEXTEDIT,
79cdf0e10cSrcweir 					SDREVENT_MOVACTION,
80cdf0e10cSrcweir 					SDREVENT_ENDACTION,
81cdf0e10cSrcweir 					SDREVENT_BCKACTION,
82cdf0e10cSrcweir 					SDREVENT_BRKACTION,
83cdf0e10cSrcweir 					SDREVENT_ENDCREATE,
84cdf0e10cSrcweir 					SDREVENT_ENDDRAG,
85cdf0e10cSrcweir 					SDREVENT_MARKOBJ,
86cdf0e10cSrcweir 					SDREVENT_MARKPOINT,
87cdf0e10cSrcweir 					SDREVENT_MARKGLUEPOINT,
88cdf0e10cSrcweir 					SDREVENT_BEGMARK,
89cdf0e10cSrcweir 					SDREVENT_BEGINSOBJPOINT,
90cdf0e10cSrcweir 					SDREVENT_ENDINSOBJPOINT,
91cdf0e10cSrcweir 					SDREVENT_BEGINSGLUEPOINT,
92cdf0e10cSrcweir 					SDREVENT_BEGDRAGHELPLINE,
93cdf0e10cSrcweir 					SDREVENT_BEGDRAGOBJ,
94cdf0e10cSrcweir 					SDREVENT_BEGCREATEOBJ,
95cdf0e10cSrcweir 					SDREVENT_BEGMACROOBJ,
96cdf0e10cSrcweir 					SDREVENT_BEGTEXTEDIT,
97cdf0e10cSrcweir 					SDREVENT_ENDMARK,
98cdf0e10cSrcweir 					SDREVENT_BRKMARK,
99cdf0e10cSrcweir 					SDREVENT_EXECUTEURL};
100cdf0e10cSrcweir 
101cdf0e10cSrcweir #define SDRMOUSEBUTTONDOWN 1
102cdf0e10cSrcweir #define SDRMOUSEMOVE       2
103cdf0e10cSrcweir #define SDRMOUSEBUTTONUP   3
104cdf0e10cSrcweir 
105cdf0e10cSrcweir //************************************************************
106cdf0e10cSrcweir //   Hilfsklasse SdrViewEvent
107cdf0e10cSrcweir //************************************************************
108cdf0e10cSrcweir 
109cdf0e10cSrcweir struct SVX_DLLPUBLIC SdrViewEvent
110cdf0e10cSrcweir {
111cdf0e10cSrcweir 	SdrHdl*						pHdl;
112cdf0e10cSrcweir 	SdrObject*					pObj;
113cdf0e10cSrcweir 	SdrObject*					pRootObj;        // Dieses Markieren bei SdrBeginTextEdit
114cdf0e10cSrcweir 	SdrPageView*				pPV;
115cdf0e10cSrcweir 	const SvxURLField*			pURLField;
116cdf0e10cSrcweir 
117cdf0e10cSrcweir 	Point						aLogicPos;
118cdf0e10cSrcweir 	SdrHitKind					eHit;
119cdf0e10cSrcweir 	SdrEventKind				eEvent;
120cdf0e10cSrcweir 	SdrHdlKind					eHdlKind;
121cdf0e10cSrcweir 	SdrCreateCmd				eEndCreateCmd;   // auch fuer EndInsPoint
122cdf0e10cSrcweir 
123cdf0e10cSrcweir 	sal_uInt16						nMouseClicks;
124cdf0e10cSrcweir 	sal_uInt16						nMouseMode;
125cdf0e10cSrcweir 	sal_uInt16						nMouseCode;
126cdf0e10cSrcweir 	sal_uInt16						nHlplIdx;
127cdf0e10cSrcweir 	sal_uInt16						nGlueId;
128cdf0e10cSrcweir 
129cdf0e10cSrcweir 	unsigned					bMouseDown : 1;
130cdf0e10cSrcweir 	unsigned					bMouseUp : 1;
131cdf0e10cSrcweir 	unsigned					bDoubleHdlSize : 1;  // Doppelte Handlegroesse wg. TextEdit
132cdf0e10cSrcweir 	unsigned					bIsAction : 1;       // Action ist aktiv
133cdf0e10cSrcweir 	unsigned					bIsTextEdit : 1;     // TextEdit laeuft zur Zeit
134cdf0e10cSrcweir 	unsigned					bTextEditHit : 1;    // offene OutlinerView getroffen
135cdf0e10cSrcweir 	unsigned					bAddMark : 1;
136cdf0e10cSrcweir 	unsigned					bUnmark : 1;
137cdf0e10cSrcweir 	unsigned					bPrevNextMark : 1;
138cdf0e10cSrcweir 	unsigned					bMarkPrev : 1;
139cdf0e10cSrcweir 	unsigned					bInsPointNewObj : 1;
140cdf0e10cSrcweir 	unsigned					bDragWithCopy : 1;
141cdf0e10cSrcweir 	unsigned					bCaptureMouse : 1;
142cdf0e10cSrcweir 	unsigned					bReleaseMouse : 1;
143cdf0e10cSrcweir 
144cdf0e10cSrcweir public:
145cdf0e10cSrcweir 	SdrViewEvent();
146cdf0e10cSrcweir 	~SdrViewEvent();
147cdf0e10cSrcweir 
148cdf0e10cSrcweir 	// nEventKind ist SDRMOUSEBUTTONDOWN, SDRMOUSEMOVE oder SDRMOUSEBUTTONUP
149cdf0e10cSrcweir 	void SetMouseEvent(const MouseEvent& rMEvt, sal_uInt16 nEventKind);
150cdf0e10cSrcweir };
151cdf0e10cSrcweir 
152cdf0e10cSrcweir ////////////////////////////////////////////////////////////////////////////////////////////////////
153cdf0e10cSrcweir // helper class for all D&D overlays
154cdf0e10cSrcweir 
155cdf0e10cSrcweir class SVX_DLLPUBLIC SdrDropMarkerOverlay
156cdf0e10cSrcweir {
157cdf0e10cSrcweir 	// The OverlayObjects
158cdf0e10cSrcweir 	::sdr::overlay::OverlayObjectList				maObjects;
159cdf0e10cSrcweir 
160*1cd65da9SArmin Le Grand 	void ImplCreateOverlays(
161*1cd65da9SArmin Le Grand         const SdrView& rView,
162*1cd65da9SArmin Le Grand         const basegfx::B2DPolyPolygon& rLinePolyPolygon);
163cdf0e10cSrcweir 
164cdf0e10cSrcweir public:
165cdf0e10cSrcweir 	SdrDropMarkerOverlay(const SdrView& rView, const SdrObject& rObject);
166cdf0e10cSrcweir 	SdrDropMarkerOverlay(const SdrView& rView, const Rectangle& rRectangle);
167cdf0e10cSrcweir 	SdrDropMarkerOverlay(const SdrView& rView, const Point& rStart, const Point& rEnd);
168cdf0e10cSrcweir 	~SdrDropMarkerOverlay();
169cdf0e10cSrcweir };
170cdf0e10cSrcweir 
171cdf0e10cSrcweir ////////////////////////////////////////////////////////////////////////////////////////////////////
172cdf0e10cSrcweir ////////////////////////////////////////////////////////////////////////////////////////////////////
173cdf0e10cSrcweir //
174cdf0e10cSrcweir //  @@ @@ @@ @@@@@ @@   @@
175cdf0e10cSrcweir //  @@ @@ @@ @@    @@   @@
176cdf0e10cSrcweir //  @@ @@ @@ @@    @@ @ @@
177cdf0e10cSrcweir //  @@@@@ @@ @@@@  @@@@@@@
178cdf0e10cSrcweir //   @@@  @@ @@    @@@@@@@
179cdf0e10cSrcweir //   @@@  @@ @@    @@@ @@@
180cdf0e10cSrcweir //    @   @@ @@@@@ @@   @@
181cdf0e10cSrcweir //
182cdf0e10cSrcweir ////////////////////////////////////////////////////////////////////////////////////////////////////
183cdf0e10cSrcweir ////////////////////////////////////////////////////////////////////////////////////////////////////
184cdf0e10cSrcweir 
185cdf0e10cSrcweir class SVX_DLLPUBLIC SdrView: public SdrCreateView, public tools::WeakBase< SdrView >
186cdf0e10cSrcweir {
187cdf0e10cSrcweir 	friend class				SdrPageView;
188cdf0e10cSrcweir 
189cdf0e10cSrcweir 	unsigned					bNoExtendedMouseDispatcher : 1;
190cdf0e10cSrcweir 	unsigned					bNoExtendedKeyDispatcher : 1;
191cdf0e10cSrcweir 	unsigned					bNoExtendedCommandDispatcher : 1;
192cdf0e10cSrcweir 	unsigned					bTextEditOnObjectsWithoutTextIfTextTool : 1;
193cdf0e10cSrcweir 	unsigned					mbMasterPagePaintCaching : 1;
194cdf0e10cSrcweir 
195cdf0e10cSrcweir protected:
196cdf0e10cSrcweir 	SvtAccessibilityOptions	maAccessibilityOptions;
197cdf0e10cSrcweir 
198cdf0e10cSrcweir public:
199cdf0e10cSrcweir 	TYPEINFO();
200cdf0e10cSrcweir 	SdrView(SdrModel* pModel1, OutputDevice* pOut = 0L);
201cdf0e10cSrcweir 	virtual ~SdrView();
202cdf0e10cSrcweir 
203cdf0e10cSrcweir 	// Default sind alle Dispatcher aktiviert. Will die App z.B. fuer
204cdf0e10cSrcweir 	// Sonderbehandlungen im MouseDispatcher eingreifen, so muss sie
205cdf0e10cSrcweir 	// den erweiterten MouseDispather mit unten stehender Methode deaktivieren
206cdf0e10cSrcweir 	// und selbst nachimplementieren. Beispiel fuer MouseButtonDown:
207cdf0e10cSrcweir 	//      SdrViewEvent aVEvt;
208cdf0e10cSrcweir 	//      SdrHitKind eHit=pSdrView->PickAnything(rMEvt,SDRMOUSEBUTTONDOWN,aVEvt);
209cdf0e10cSrcweir 	//      ... hier Applikationsspezifischer Eingriff ...
210cdf0e10cSrcweir 	//      pSdrView->DoMouseEvent(aVEvt);
211cdf0e10cSrcweir 	//      SetPointer(GetPreferedPointer(...))
212cdf0e10cSrcweir 	//      CaptureMouse(...)
EnableExtendedMouseEventDispatcher(sal_Bool bOn)213cdf0e10cSrcweir 	void EnableExtendedMouseEventDispatcher(sal_Bool bOn) { bNoExtendedMouseDispatcher = !bOn; }
IsExtendedMouseEventDispatcherEnabled() const214cdf0e10cSrcweir 	sal_Bool IsExtendedMouseEventDispatcherEnabled() const { return bNoExtendedMouseDispatcher; }
215cdf0e10cSrcweir 
EnableExtendedKeyInputDispatcher(sal_Bool bOn)216cdf0e10cSrcweir 	void EnableExtendedKeyInputDispatcher(sal_Bool bOn) { bNoExtendedKeyDispatcher=!bOn; }
IsExtendedKeyInputDispatcherEnabled() const217cdf0e10cSrcweir 	sal_Bool IsExtendedKeyInputDispatcherEnabled() const { return bNoExtendedKeyDispatcher; }
218cdf0e10cSrcweir 
EnableExtendedCommandEventDispatcher(sal_Bool bOn)219cdf0e10cSrcweir 	void EnableExtendedCommandEventDispatcher(sal_Bool bOn) { bNoExtendedCommandDispatcher=!bOn; }
IsExtendedCommandEventDispatcherEnabled() const220cdf0e10cSrcweir 	sal_Bool IsExtendedCommandEventDispatcherEnabled() const { return bNoExtendedCommandDispatcher; }
221cdf0e10cSrcweir 
EnableTextEditOnObjectsWithoutTextIfTextTool(sal_Bool bOn)222cdf0e10cSrcweir 	void EnableTextEditOnObjectsWithoutTextIfTextTool(sal_Bool bOn) { bTextEditOnObjectsWithoutTextIfTextTool=bOn; }
IsEnableTextEditOnObjectsWithoutTextIfTextToolEnabled() const223cdf0e10cSrcweir 	sal_Bool IsEnableTextEditOnObjectsWithoutTextIfTextToolEnabled() const { return bTextEditOnObjectsWithoutTextIfTextTool; }
224cdf0e10cSrcweir 
225cdf0e10cSrcweir 	void SetMasterPagePaintCaching(sal_Bool bOn);
IsMasterPagePaintCaching() const226cdf0e10cSrcweir 	sal_Bool IsMasterPagePaintCaching() const { return mbMasterPagePaintCaching; }
227cdf0e10cSrcweir 
228cdf0e10cSrcweir 	sal_Bool KeyInput(const KeyEvent& rKEvt, Window* pWin);
229cdf0e10cSrcweir 	virtual sal_Bool MouseButtonDown(const MouseEvent& rMEvt, Window* pWin);
230cdf0e10cSrcweir 	virtual sal_Bool MouseButtonUp(const MouseEvent& rMEvt, Window* pWin);
231cdf0e10cSrcweir 	virtual sal_Bool MouseMove(const MouseEvent& rMEvt, Window* pWin);
232cdf0e10cSrcweir 	virtual sal_Bool Command(const CommandEvent& rCEvt, Window* pWin);
233cdf0e10cSrcweir 
234cdf0e10cSrcweir 	virtual void ConfigurationChanged( utl::ConfigurationBroadcaster*, sal_uInt32 );
235cdf0e10cSrcweir 
SetAttributes(const SfxItemSet & rSet,sal_Bool bReplaceAll=sal_False)236cdf0e10cSrcweir 	sal_Bool SetAttributes(const SfxItemSet& rSet, sal_Bool bReplaceAll=sal_False) { return SdrCreateView::SetAttributes(rSet,bReplaceAll); }
SetStyleSheet(SfxStyleSheet * pStyleSheet,sal_Bool bDontRemoveHardAttr=sal_False)237cdf0e10cSrcweir 	sal_Bool SetStyleSheet(SfxStyleSheet* pStyleSheet, sal_Bool bDontRemoveHardAttr=sal_False) { return SdrCreateView::SetStyleSheet(pStyleSheet,bDontRemoveHardAttr); }
238cdf0e10cSrcweir 
239cdf0e10cSrcweir 	/* new interface src537 */
240cdf0e10cSrcweir 	sal_Bool GetAttributes(SfxItemSet& rTargetSet, sal_Bool bOnlyHardAttr=sal_False) const;
241cdf0e10cSrcweir 
242cdf0e10cSrcweir 	SfxStyleSheet* GetStyleSheet() const;
243cdf0e10cSrcweir 
244cdf0e10cSrcweir 	// unvollstaendige Implementation:
245cdf0e10cSrcweir 	// Das OutputDevice ist notwendig, damit ich die HandleSize ermitteln kann.
246cdf0e10cSrcweir 	// Bei NULL wird das 1. angemeldete Win verwendet.
247cdf0e10cSrcweir 	Pointer GetPreferedPointer(const Point& rMousePos, const OutputDevice* pOut, sal_uInt16 nModifier=0, sal_Bool bLeftDown=sal_False) const;
248cdf0e10cSrcweir 	SdrHitKind PickAnything(const MouseEvent& rMEvt, sal_uInt16 nMouseDownOrMoveOrUp, SdrViewEvent& rVEvt) const;
249cdf0e10cSrcweir 	SdrHitKind PickAnything(const Point& rLogicPos, SdrViewEvent& rVEvt) const;
250cdf0e10cSrcweir 	sal_Bool DoMouseEvent(const SdrViewEvent& rVEvt);
251cdf0e10cSrcweir 	virtual SdrViewContext GetContext() const;
252cdf0e10cSrcweir 
253cdf0e10cSrcweir 	// Die Methoden beruecksichtigen den jeweiligen Kontex:
254cdf0e10cSrcweir 	// - Einfaches Zeichnen
255cdf0e10cSrcweir 	// - Punktbearbeitungs-Mode
256cdf0e10cSrcweir 	// - Klebepunkt-Editmode
257cdf0e10cSrcweir 	// - TextEdit
258cdf0e10cSrcweir 	// - ... to be continued
259cdf0e10cSrcweir 	sal_Bool IsMarkPossible() const;
260cdf0e10cSrcweir 	void MarkAll();
261cdf0e10cSrcweir 	void UnmarkAll();
262cdf0e10cSrcweir 	sal_Bool IsAllMarked() const;
263cdf0e10cSrcweir 	sal_Bool IsAllMarkPrevNextPossible() const; // das geht naemlich nicht bei TextEdit!
264cdf0e10cSrcweir 	sal_Bool MarkNext(sal_Bool bPrev=sal_False);
265cdf0e10cSrcweir 	sal_Bool MarkNext(const Point& rPnt, sal_Bool bPrev=sal_False);
266cdf0e10cSrcweir 
267cdf0e10cSrcweir 	const Rectangle& GetMarkedRect() const;
268cdf0e10cSrcweir 	void SetMarkedRect(const Rectangle& rRect);
269cdf0e10cSrcweir 
270cdf0e10cSrcweir 	virtual void DeleteMarked();
271cdf0e10cSrcweir 	sal_Bool IsDeleteMarkedPossible() const;
IsDeletePossible() const272cdf0e10cSrcweir 	sal_Bool IsDeletePossible() const { return IsDeleteMarkedPossible(); }
273cdf0e10cSrcweir 
274cdf0e10cSrcweir 	// Markieren von Objekten, Polygonpunkten oder Klebepunkten (je nach View-
275cdf0e10cSrcweir 	// Kontext) durch Aufziehen eines Selektionsrahmens.
276cdf0e10cSrcweir 	//   bAddMark=TRUE: zur bestehenden Selektion hinzumarkieren (->Shift)
277cdf0e10cSrcweir 	//   bUnmark=TRUE: Bereits selektierte Objekte/Punkte/Klebepunkte die innerhalb
278cdf0e10cSrcweir 	//                 des aufgezogenen Rahmens liegen werden deselektiert.
279cdf0e10cSrcweir 	sal_Bool BegMark(const Point& rPnt, sal_Bool bAddMark=sal_False, sal_Bool bUnmark=sal_False);
280cdf0e10cSrcweir 
281cdf0e10cSrcweir 	// Folgende Actions sind moeglich:
282cdf0e10cSrcweir 	//   - ObjectCreating
283cdf0e10cSrcweir 	//   - ObjectMarking
284cdf0e10cSrcweir 	//   - Object-specific dragging
285cdf0e10cSrcweir 	//   - General dragging
286cdf0e10cSrcweir 	// und mehr...
287cdf0e10cSrcweir 	String GetStatusText();
288cdf0e10cSrcweir 
289cdf0e10cSrcweir 	SvtAccessibilityOptions& getAccessibilityOptions();
290cdf0e10cSrcweir 
291cdf0e10cSrcweir 	virtual void onAccessibilityOptionsChanged();
292cdf0e10cSrcweir };
293cdf0e10cSrcweir 
294cdf0e10cSrcweir #endif //_SVDVIEW_HXX
295cdf0e10cSrcweir 
296cdf0e10cSrcweir ////////////////////////////////////////////////////////////////////////////////////////////////////
297cdf0e10cSrcweir //
298cdf0e10cSrcweir // Die App macht sich zunaechst ein SdrModel.
299cdf0e10cSrcweir // Anschliessend oeffnet sie ein Win und erzeugt dann eine SdrView.
300cdf0e10cSrcweir // An der SdrView meldet sie dann mit der Methode ShowSdrPage() eine Seite an.
301cdf0e10cSrcweir // Eine SdrView kann in beliebig vielen Fenstern gleichzeitig angezeigt werden.
302cdf0e10cSrcweir // Intern:
303cdf0e10cSrcweir // Eine SdrView kann beliebig viele Seiten gleichzeitig anzeigen. Seiten
304cdf0e10cSrcweir // werden an- und abgemeldet mit ShowSdrPage()/HideSdrPage(). Fuer jede angemeldete
305cdf0e10cSrcweir // Seite wird eine SdrPageView-Instanz im Container aPages angelegt. Bei
306cdf0e10cSrcweir // gleichzeitiger Anzeige mehrerer Seiten ist darauf zu achten, dass der Offset-
307cdf0e10cSrcweir // Parameter von ShowSdrPage() der Seitengroesse angepasst ist, da sich sonst die
308cdf0e10cSrcweir // Seiten ueberlappen koennten.
309cdf0e10cSrcweir //
310cdf0e10cSrcweir // Elementare Methoden:
311cdf0e10cSrcweir // ~~~~~~~~~~~~~~~~~~~~
312cdf0e10cSrcweir //   Einfache Events:
313cdf0e10cSrcweir //   ~~~~~~~~~~~~~~~~
314cdf0e10cSrcweir //     sal_Bool KeyInput(const KeyEvent& rKEvt, Window* pWin);
315cdf0e10cSrcweir //     sal_Bool MouseButtonDown(const MouseEvent& rMEvt, Window* pWin);
316cdf0e10cSrcweir //     sal_Bool MouseButtonUp(const MouseEvent& rMEvt, Window* pWin);
317cdf0e10cSrcweir //     sal_Bool MouseMove(const MouseEvent& rMEvt, Window* pWin);
318cdf0e10cSrcweir //     sal_Bool Command(const CommandEvent& rCEvt, Window* pWin);
319cdf0e10cSrcweir //
320cdf0e10cSrcweir //   Exchange (Clipboard derzeit noch ohne SdrPrivateData):
321cdf0e10cSrcweir //   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
322cdf0e10cSrcweir //     sal_Bool Cut(sal_uIntPtr nFormat=SDR_ANYFORMAT);
323cdf0e10cSrcweir //     sal_Bool Yank(sal_uIntPtr nFormat=SDR_ANYFORMAT);
324cdf0e10cSrcweir //     sal_Bool Paste(Window* pWin=NULL, sal_uIntPtr nFormat=SDR_ANYFORMAT);
325cdf0e10cSrcweir //
326cdf0e10cSrcweir //   SfxItems:
327cdf0e10cSrcweir //   ~~~~~~~~~
328cdf0e10cSrcweir //     sal_Bool GetAttributes(SfxItemSet& rTargetSet, sal_Bool bOnlyHardAttr=sal_False) const;
329cdf0e10cSrcweir //     sal_Bool SetAttributes(const SfxItemSet& rSet, sal_Bool bReplaceAll);
330cdf0e10cSrcweir //     SfxStyleSheet* GetStyleSheet() const;
331cdf0e10cSrcweir //     sal_Bool SetStyleSheet(SfxStyleSheet* pStyleSheet, sal_Bool bDontRemoveHardAttr);
332cdf0e10cSrcweir //
333cdf0e10cSrcweir //   Sonstiges:
334cdf0e10cSrcweir //   ~~~~~~~~~~
335cdf0e10cSrcweir //     Pointer GetPreferedPointer(const Point& rMousePos, const OutputDevice* pOut, sal_uInt16 nTol=0) const;
336cdf0e10cSrcweir //     String  GetStatusText();
337cdf0e10cSrcweir //
338cdf0e10cSrcweir ///////////////////////////////////////////////////////////////////////////////////////////////// */
339cdf0e10cSrcweir 
340