1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28 #ifndef _SVDVITER_HXX 29 #define _SVDVITER_HXX 30 31 #include <tools/solar.h> 32 #include <sal/types.h> 33 #include "svx/svxdllapi.h" 34 35 //////////////////////////////////////////////////////////////////////////////////////////////////// 36 37 class OutputDevice; 38 class Window; 39 class SdrView; 40 class SdrPageView; 41 class SdrModel; 42 class SdrPage; 43 class SdrObject; 44 class SetOfByte; 45 46 //////////////////////////////////////////////////////////////////////////////////////////////////// 47 48 class SVX_DLLPUBLIC SdrViewIter 49 { 50 const SdrModel* mpModel; 51 const SdrPage* mpPage; 52 const SdrObject* mpObject; 53 SdrView* mpAktView; 54 55 sal_uInt32 mnListenerNum; 56 sal_uInt32 mnPageViewNum; 57 sal_uInt32 mnOutDevNum; 58 59 // bitfield 60 unsigned mbNoMasterPage : 1; 61 62 private: 63 SVX_DLLPRIVATE void ImpInitVars(); 64 SVX_DLLPRIVATE SdrView* ImpFindView(); 65 SVX_DLLPRIVATE SdrPageView* ImpFindPageView(); 66 SVX_DLLPRIVATE OutputDevice* ImpFindOutDev(); 67 SVX_DLLPRIVATE Window* ImpFindWindow(); 68 SVX_DLLPRIVATE sal_Bool ImpCheckPageView(SdrPageView* pPV) const; 69 70 public: 71 SdrViewIter(const SdrModel* pModel); 72 SdrViewIter(const SdrPage* pPage, sal_Bool bNoMasterPage = sal_False); 73 SdrViewIter(const SdrObject* pObject, sal_Bool bNoMasterPage = sal_False); 74 75 SdrView* FirstView(); 76 SdrView* NextView(); 77 78 SdrPageView* FirstPageView(); 79 SdrPageView* NextPageView(); 80 81 OutputDevice* FirstOutDev(); 82 OutputDevice* NextOutDev(); 83 84 Window* FirstWindow(); 85 Window* NextWindow(); 86 }; 87 88 //////////////////////////////////////////////////////////////////////////////////////////////////// 89 90 #ifdef _JUST_DESCRIPTION 91 92 Mit dieser Klasse kann man rausbekommen: 93 - SdrView* First/NextView() 94 - Alle Views in denen ein Models dargestellt wird 95 - Alle Views in denen eine bestimme Page sichtbar ist (ww. auch als MasterPage) 96 - Alle Views in denen ein bestimmes Objekt sichtbar ist (ww. auch auf MasterPage) 97 - SdrPageView* First/NextPageView() 98 - Alle PageViews in denen ein Models dargestellt wird 99 - Alle PageViews in denen eine bestimme Page sichtbar ist (ww. auch als MasterPage) 100 - Alle PageViews in denen ein bestimmes Objekt sichtbar ist (ww. auch auf MasterPage) 101 - OutputDevice* First/NextOutDev() 102 - Alle OutputDevices in denen ein Models dargestellt wird 103 - Alle OutputDevices in denen eine bestimme Page sichtbar ist (ww. auch als MasterPage) 104 - Alle OutputDevices in denen ein bestimmes Objekt sichtbar ist (ww. auch auf MasterPage) 105 - Window* First/NextWindow() 106 - Alle Windows in denen ein Models dargestellt wird 107 - Alle Windows in denen eine bestimme Page sichtbar ist (auch als MasterPage) 108 - Alle Windows in denen ein bestimmes Objekt sichtbar ist (auch auf MasterPage) 109 Ob die Auswahl auf ein(e) bestimmte(s) Page/Objekt beschraenkt wird, bestimmt man 110 durch die Wahl des Konstruktors. 111 112 Es werden u.a. auch berueksichtigt: 113 - Layer Sichtbarkeitsstatus 114 - Visible Layer von MasterPages 115 - Mehrfachlayer bei Gruppenobjekten 116 117 Es wird nicht berueksichtigt: 118 - Ob die Pages/Objekte wirklich schon gepaintet wurden oder noch ein Invalidate ansteht, ... 119 - Ob die Pages/Objekte in einem Window im sichtbaren Bereich liegen 120 121 #endif // _JUST_DESCRIPTION 122 123 //////////////////////////////////////////////////////////////////////////////////////////////////// 124 125 #endif //_SVDVITER_HXX 126 127