1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 /* 3 * This file is part of the LibreOffice project. 4 * 5 * This Source Code Form is subject to the terms of the Mozilla Public 6 * License, v. 2.0. If a copy of the MPL was not distributed with this 7 * file, You can obtain one at http://mozilla.org/MPL/2.0/. 8 * 9 * This file incorporates work covered by the following license notice: 10 * 11 * Licensed to the Apache Software Foundation (ASF) under one or more 12 * contributor license agreements. See the NOTICE file distributed 13 * with this work for additional information regarding copyright 14 * ownership. The ASF licenses this file to you under the Apache 15 * License, Version 2.0 (the "License"); you may not use this file 16 * except in compliance with the License. You may obtain a copy of 17 * the License at http://www.apache.org/licenses/LICENSE-2.0 . 18 */ 19 20 #ifndef INCLUDED_SVX_SVDVITER_HXX 21 #define INCLUDED_SVX_SVDVITER_HXX 22 23 #include <svx/svxdllapi.h> 24 25 /* 26 27 Using this class, you can find out: 28 - SdrView* First/NextView() 29 - All Views in which a model is displayed 30 - All Views in which a certain page is visible (also as MasterPage) 31 - All Views in which a certain object is visible (also as MasterPage) 32 - SdrPageView* First/NextPageView() 33 - All PageViews in which a model is displayed 34 - All PageViews in which a certain page is visible (also as MasterPage) 35 - All PageViews in which a certain object is visible (also as MasterPage) 36 - vcl::Window* First/NextWindow() 37 - All Windows in which a model is displayed 38 - All Windows in which a certain page is visible (also as MasterPage) 39 - All Windows in which a certain object is visible (also as MasterPage) 40 You can specify if the selection is restricted to a certain page/object by 41 choosing the corresponding constructor. 42 43 Among others, the following are considered: 44 - Visibility state of the layer 45 - Visible Layer of MasterPages 46 - Multiple layer for group objects 47 48 Not considered are: 49 - Whether the pages/objects were already painted or if an Invalidate is still pending 50 - Whether the pages/objects in a Window are in a visible region 51 52 */ 53 54 class OutputDevice; 55 namespace vcl { class Window; } 56 class SdrView; 57 class SdrPageView; 58 class SdrModel; 59 class SdrPage; 60 class SdrObject; 61 class SdrLayerIDSet; 62 63 class SVXCORE_DLLPUBLIC SdrViewIter 64 { 65 const SdrModel* mpModel; 66 const SdrPage* mpPage; 67 const SdrObject* mpObject; 68 SdrView* mpCurrentView; 69 70 size_t mnListenerNum; 71 72 private: 73 SVX_DLLPRIVATE void ImpInitVars(); 74 SVX_DLLPRIVATE SdrView* ImpFindView(); 75 SVX_DLLPRIVATE bool ImpCheckPageView(SdrPageView const * pPV) const; 76 77 public: 78 SdrViewIter(const SdrPage* pPage); 79 SdrViewIter(const SdrObject* pObject); 80 81 SdrView* FirstView(); 82 SdrView* NextView(); 83 }; 84 85 #endif // INCLUDED_SVX_SVDVITER_HXX 86 87 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ 88