Branch libreoffice-5-0-4
[LibreOffice.git] / include / svx / sdr / contact / displayinfo.hxx
blob23190a450f407d58cf4f080bce5aa45ac510de1b
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
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/.
9 * This file incorporates work covered by the following license notice:
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 .
20 #ifndef INCLUDED_SVX_SDR_CONTACT_DISPLAYINFO_HXX
21 #define INCLUDED_SVX_SDR_CONTACT_DISPLAYINFO_HXX
23 #include <svx/svdsob.hxx>
24 #include <vcl/region.hxx>
25 #include <svx/svxdllapi.h>
27 namespace sdr
29 namespace contact
31 class SVX_DLLPUBLIC DisplayInfo
33 protected:
34 // The Layers which shall be processed (visible)
35 SetOfByte maProcessLayers;
37 // The redraw area, in logical coordinates of OutputDevice. If Region
38 // is empty, everything needs to be redrawn
39 vcl::Region maRedrawArea;
41 // bitfield
43 // Internal flag to know when the control layer is painted. Default is
44 // false. If set to true, painting of the page, page borders and
45 // the rasters will be suppressed as if mbPageProcessingActive is set (see there).
46 // This flag is set internally from the processing mechanism to avoid double page
47 // painting when the control layer needs to be painted as last layer
48 bool mbControlLayerProcessingActive : 1;
50 // Internal flag to decide if page stuff (background, border, MasterPage, grid, etc...)
51 // will be processed at all. This flag is user-defined and will not be changed from the
52 // processing mechanism. Default is true, thus set to false if PagePainting should be suppressed.
53 // For more granular switching page stuff painting on and off, use the according flags at the
54 // view (->Is*Visible())
55 bool mbPageProcessingActive : 1;
57 // Internal flag to remember if EnteredGroupDrawMode is active. Default is true
58 // since this mode starts activated and gets switched off when reaching
59 // the current group level. Should only be changed by instances which do
60 // primitive processing
61 bool mbGhostedDrawModeActive : 1;
63 // Internal flag to know if a MasterPage is processed as SubContent of another
64 // page. Initialized to false, this should only be changed from the instance which
65 // is processing the MasterPage asSubContent and knows what it does
66 bool mbSubContentActive : 1;
68 public:
69 // basic constructor.
70 DisplayInfo();
72 // destructor
73 virtual ~DisplayInfo();
75 // access to ProcessLayers
76 void SetProcessLayers(const SetOfByte& rSet);
77 const SetOfByte& GetProcessLayers() const { return maProcessLayers; }
79 // access to RedrawArea
80 void SetRedrawArea(const vcl::Region& rRegion);
81 const vcl::Region& GetRedrawArea() const { return maRedrawArea; }
83 // Access to ControlLayerProcessingActive flag
84 void SetControlLayerProcessingActive(bool bDoPaint);
85 bool GetControlLayerProcessingActive() const { return mbControlLayerProcessingActive; }
87 // Access to PageProcessingActive flag
88 void SetPageProcessingActive(bool bDoPaint);
89 bool GetPageProcessingActive() const { return mbPageProcessingActive; }
91 // Save the original DrawMode from outdev
92 void ClearGhostedDrawMode();
93 void SetGhostedDrawMode();
94 bool IsGhostedDrawModeActive() const { return mbGhostedDrawModeActive; }
96 // access to master page painting flag
97 bool GetSubContentActive() const { return mbSubContentActive; }
98 void SetSubContentActive(bool bNew);
100 } // end of namespace contact
101 } // end of namespace sdr
105 #endif // INCLUDED_SVX_SDR_CONTACT_DISPLAYINFO_HXX
107 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */