Coverage Report

Created: 2026-05-16 09:25

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libreoffice/include/vcl/outdev/ScopedStates.hxx
Line
Count
Source
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
#include <vcl/rendercontext/AntialiasingFlags.hxx>
16
17
namespace vcl
18
{
19
class ScopedAntialiasing
20
{
21
private:
22
    OutputDevice& m_rOutputDevice;
23
    AntialiasingFlags m_nPreviousAAState;
24
25
public:
26
    ScopedAntialiasing(OutputDevice& rOutputDevice, bool bAAState)
27
0
        : m_rOutputDevice(rOutputDevice)
28
0
        , m_nPreviousAAState(m_rOutputDevice.GetAntialiasing())
29
0
    {
30
0
        if (bAAState)
31
0
            rOutputDevice.SetAntialiasing(m_nPreviousAAState | AntialiasingFlags::Enable);
32
0
        else
33
0
            rOutputDevice.SetAntialiasing(m_nPreviousAAState & ~AntialiasingFlags::Enable);
34
0
    }
35
36
0
    ~ScopedAntialiasing() { m_rOutputDevice.SetAntialiasing(m_nPreviousAAState); }
37
};
38
}
39
40
#endif // INCLUDED_VCL_SCOPEDSTATES_HXX
41
42
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */