Coverage Report

Created: 2026-08-14 10:22

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libreoffice/include/svx/sdr/overlay/overlayselection.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
 * 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
#pragma once
21
22
#include <svx/sdr/overlay/overlayobject.hxx>
23
24
25
namespace sdr::overlay
26
    {
27
        // overlay type definition
28
        enum class OverlayType
29
        {
30
            Invert,
31
            Solid,
32
            Transparent,
33
            NoFill
34
        };
35
36
        class SVXCORE_DLLPUBLIC OverlaySelection final : public OverlayObject
37
        {
38
            // type of overlay
39
            OverlayType                         meOverlayType;
40
41
            // geometry of overlay
42
            std::vector< basegfx::B2DRange >    maRanges;
43
44
            // Values of last primitive creation. These are checked in getOverlayObjectPrimitive2DSequence
45
            // to evtl. get rid of last Primitive2DContainer. This ensures that these values are up-to-date
46
            // and are usable when creating primitives
47
            OverlayType                         maLastOverlayType;
48
            sal_uInt16                          mnLastTransparence;
49
50
            bool                                mbBorder : 1;
51
            bool                                mbContrastOutline : 1;
52
53
            // geometry creation for OverlayObject, can use local *Last* values
54
            virtual drawinglayer::primitive2d::Primitive2DContainer createOverlayObjectPrimitive2DSequence() override;
55
56
        public:
57
            OverlaySelection(
58
                OverlayType eType,
59
                const Color& rColor,
60
                std::vector< basegfx::B2DRange >&& rRanges,
61
                bool bBorder,
62
                bool bContrastOutline = false);
63
            virtual ~OverlaySelection() override;
64
65
            // data read access
66
0
            const std::vector< basegfx::B2DRange >& getRanges() const { return maRanges; }
67
68
            /// override to check conditions for last createOverlayObjectPrimitive2DSequence
69
            virtual drawinglayer::primitive2d::Primitive2DContainer getOverlayObjectPrimitive2DSequence() const override;
70
71
            // data write access
72
            void setRanges(std::vector< basegfx::B2DRange >&& rNew);
73
        };
74
} // end of namespace sdr::overlay
75
76
77
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */