1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 #ifndef _SVDVITER_HXX 25 #define _SVDVITER_HXX 26 27 #include <tools/solar.h> 28 #include <sal/types.h> 29 #include "svx/svxdllapi.h" 30 31 //////////////////////////////////////////////////////////////////////////////////////////////////// 32 33 class OutputDevice; 34 class Window; 35 class SdrView; 36 class SdrPageView; 37 class SdrModel; 38 class SdrPage; 39 class SdrObject; 40 class SetOfByte; 41 42 //////////////////////////////////////////////////////////////////////////////////////////////////// 43 44 class SVX_DLLPUBLIC SdrViewIter 45 { 46 const SdrModel* mpModel; 47 const SdrPage* mpPage; 48 const SdrObject* mpObject; 49 SdrView* mpAktView; 50 51 sal_uInt32 mnListenerNum; 52 sal_uInt32 mnPageViewNum; 53 sal_uInt32 mnOutDevNum; 54 55 // bitfield 56 unsigned mbNoMasterPage : 1; 57 58 private: 59 SVX_DLLPRIVATE void ImpInitVars(); 60 SVX_DLLPRIVATE SdrView* ImpFindView(); 61 SVX_DLLPRIVATE SdrPageView* ImpFindPageView(); 62 SVX_DLLPRIVATE OutputDevice* ImpFindOutDev(); 63 SVX_DLLPRIVATE Window* ImpFindWindow(); 64 SVX_DLLPRIVATE sal_Bool ImpCheckPageView(SdrPageView* pPV) const; 65 66 public: 67 SdrViewIter(const SdrModel* pModel); 68 SdrViewIter(const SdrPage* pPage, sal_Bool bNoMasterPage = sal_False); 69 SdrViewIter(const SdrObject* pObject, sal_Bool bNoMasterPage = sal_False); 70 71 SdrView* FirstView(); 72 SdrView* NextView(); 73 74 SdrPageView* FirstPageView(); 75 SdrPageView* NextPageView(); 76 77 OutputDevice* FirstOutDev(); 78 OutputDevice* NextOutDev(); 79 80 Window* FirstWindow(); 81 Window* NextWindow(); 82 }; 83 84 //////////////////////////////////////////////////////////////////////////////////////////////////// 85 86 #ifdef _JUST_DESCRIPTION 87 88 Mit dieser Klasse kann man rausbekommen: 89 - SdrView* First/NextView() 90 - Alle Views in denen ein Models dargestellt wird 91 - Alle Views in denen eine bestimme Page sichtbar ist (ww. auch als MasterPage) 92 - Alle Views in denen ein bestimmes Objekt sichtbar ist (ww. auch auf MasterPage) 93 - SdrPageView* First/NextPageView() 94 - Alle PageViews in denen ein Models dargestellt wird 95 - Alle PageViews in denen eine bestimme Page sichtbar ist (ww. auch als MasterPage) 96 - Alle PageViews in denen ein bestimmes Objekt sichtbar ist (ww. auch auf MasterPage) 97 - OutputDevice* First/NextOutDev() 98 - Alle OutputDevices in denen ein Models dargestellt wird 99 - Alle OutputDevices in denen eine bestimme Page sichtbar ist (ww. auch als MasterPage) 100 - Alle OutputDevices in denen ein bestimmes Objekt sichtbar ist (ww. auch auf MasterPage) 101 - Window* First/NextWindow() 102 - Alle Windows in denen ein Models dargestellt wird 103 - Alle Windows in denen eine bestimme Page sichtbar ist (auch als MasterPage) 104 - Alle Windows in denen ein bestimmes Objekt sichtbar ist (auch auf MasterPage) 105 Ob die Auswahl auf ein(e) bestimmte(s) Page/Objekt beschraenkt wird, bestimmt man 106 durch die Wahl des Konstruktors. 107 108 Es werden u.a. auch berueksichtigt: 109 - Layer Sichtbarkeitsstatus 110 - Visible Layer von MasterPages 111 - Mehrfachlayer bei Gruppenobjekten 112 113 Es wird nicht berueksichtigt: 114 - Ob die Pages/Objekte wirklich schon gepaintet wurden oder noch ein Invalidate ansteht, ... 115 - Ob die Pages/Objekte in einem Window im sichtbaren Bereich liegen 116 117 #endif // _JUST_DESCRIPTION 118 119 //////////////////////////////////////////////////////////////////////////////////////////////////// 120 121 #endif //_SVDVITER_HXX 122 123