LibreOffice Module vcl (master)  1
ScopedStates.hxx
Go to the documentation of this file.
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  */
10 
11 #ifndef INCLUDED_VCL_SCOPEDSTATES_HXX
12 #define INCLUDED_VCL_SCOPEDSTATES_HXX
13 
14 #include <vcl/outdev.hxx>
15 
16 namespace vcl
17 {
19 {
20 private:
23 
24 public:
25  ScopedAntialiasing(OutputDevice& rOutputDevice, bool bAAState)
26  : m_rOutputDevice(rOutputDevice)
27  , m_nPreviousAAState(m_rOutputDevice.GetAntialiasing())
28  {
29  if (bAAState)
30  rOutputDevice.SetAntialiasing(m_nPreviousAAState | AntialiasingFlags::EnableB2dDraw);
31  else
32  rOutputDevice.SetAntialiasing(m_nPreviousAAState & ~AntialiasingFlags::EnableB2dDraw);
33  }
34 
35  ~ScopedAntialiasing() { m_rOutputDevice.SetAntialiasing(m_nPreviousAAState); }
36 };
37 }
38 
39 #endif // INCLUDED_VCL_SCOPEDSTATES_HXX
40 
41 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
void SetAntialiasing(AntialiasingFlags nMode)
ScopedAntialiasing(OutputDevice &rOutputDevice, bool bAAState)
OutputDevice & m_rOutputDevice
AntialiasingFlags m_nPreviousAAState
AntialiasingFlags
Definition: outdev.hxx:231
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
Definition: outdev.hxx:304