Coverage Report

Created: 2026-02-14 09:37

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libreoffice/include/sfx2/AccessibilityIssue.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
#pragma once
12
13
#include <sfx2/dllapi.h>
14
15
#include <vcl/weld/weld.hxx>
16
#include <rtl/ustring.hxx>
17
18
#include <vector>
19
#include <memory>
20
21
namespace sfx
22
{
23
enum class AccessibilityIssueID
24
{
25
    DOCUMENT_TITLE,
26
    DOCUMENT_LANGUAGE,
27
    DOCUMENT_BACKGROUND,
28
    STYLE_LANGUAGE,
29
    LINKED_GRAPHIC,
30
    NO_ALT_OLE,
31
    NO_ALT_GRAPHIC,
32
    NO_ALT_SHAPE,
33
    TABLE_MERGE_SPLIT,
34
    TEXT_NEW_LINES,
35
    TEXT_SPACES,
36
    TEXT_TABS,
37
    TEXT_EMPTY_NUM_PARA,
38
    DIRECT_FORMATTING,
39
    TABLE_FORMATTING,
40
    HYPERLINK_IS_TEXT,
41
    HYPERLINK_SHORT,
42
    HYPERLINK_NO_NAME,
43
    LINK_IN_HEADER_FOOTER,
44
    FAKE_FOOTNOTE,
45
    FAKE_CAPTION,
46
    MANUAL_NUMBERING,
47
    TEXT_CONTRAST,
48
    TEXT_BLINKING,
49
    HEADINGS_NOT_IN_ORDER,
50
    NON_INTERACTIVE_FORMS,
51
    FLOATING_TEXT,
52
    HEADING_IN_TABLE,
53
    HEADING_START,
54
    HEADING_ORDER,
55
    CONTENT_CONTROL,
56
    AVOID_FOOTNOTES,
57
    AVOID_ENDNOTES,
58
    FONTWORKS,
59
};
60
61
enum class AccessibilityIssueLevel : size_t
62
{
63
    ERRORLEV = 0,
64
    WARNLEV = 1,
65
    LAST = WARNLEV
66
};
67
68
class SFX2_DLLPUBLIC AccessibilityIssue
69
{
70
public:
71
    AccessibilityIssue(AccessibilityIssueID eIssueID, AccessibilityIssueLevel eIssueLvl);
72
0
    AccessibilityIssue(AccessibilityIssue const&) = default;
73
    virtual ~AccessibilityIssue();
74
75
    virtual bool canGotoIssue() const = 0;
76
    virtual void gotoIssue() const = 0;
77
78
    virtual bool canQuickFixIssue() const = 0;
79
    virtual void quickFixIssue() const = 0;
80
81
0
    void setParent(weld::Window* pParent) { m_pParent = pParent; }
82
83
0
    void setHidden(bool bHidden) { m_bHidden = bHidden; }
84
0
    bool getHidden() const { return m_bHidden; }
85
86
    AccessibilityIssue& operator=(const AccessibilityIssue&) = default;
87
88
    AccessibilityIssueID m_eIssueID;
89
    AccessibilityIssueLevel m_eIssueLvl;
90
    OUString m_aIssueText;
91
    bool m_bHidden;
92
93
    weld::Window* m_pParent;
94
};
95
96
class SFX2_DLLPUBLIC AccessibilityIssueCollection
97
{
98
private:
99
    std::vector<std::shared_ptr<AccessibilityIssue>> m_aIssues;
100
101
public:
102
69.9k
    AccessibilityIssueCollection() = default;
103
104
    std::vector<std::shared_ptr<AccessibilityIssue>>& getIssues();
105
106
    void clear();
107
};
108
109
} // end sfx namespace
110
111
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */