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