Coverage Report

Created: 2026-05-16 09:25

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libreoffice/svx/source/inc/charmapacc.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
#ifndef INCLUDED_SVX_SOURCE_INC_CHARMAPACC_HXX
21
#define INCLUDED_SVX_SOURCE_INC_CHARMAPACC_HXX
22
23
#include <comphelper/accessibleselectionhelper.hxx>
24
#include <com/sun/star/accessibility/XAccessibleAction.hpp>
25
#include <com/sun/star/accessibility/XAccessibleTable.hpp>
26
#include <cppuhelper/implbase.hxx>
27
#include <tools/gen.hxx>
28
#include <rtl/ref.hxx>
29
30
#include <vector>
31
class SvxShowCharSet;
32
33
namespace svx
34
{
35
class SvxShowCharSetAcc;
36
37
class SvxShowCharSetItemAcc;
38
39
// - SvxShowCharSetItem -
40
41
/** Simple struct to hold some information about the single items of the table. */
42
struct SvxShowCharSetItem
43
{
44
    SvxShowCharSet& mrParent;
45
    sal_uInt16 mnId;
46
    OUString maText;
47
    tools::Rectangle maRect;
48
    rtl::Reference<SvxShowCharSetItemAcc> m_xItem;
49
    SvxShowCharSetAcc* m_pParent;
50
51
    SvxShowCharSetItem(SvxShowCharSet& rParent, SvxShowCharSetAcc* _pParent, sal_uInt16 _nPos);
52
    ~SvxShowCharSetItem();
53
54
    const rtl::Reference<SvxShowCharSetItemAcc>& GetAccessible();
55
};
56
57
// - SvxShowCharSetAcc -
58
59
/** The table implementation of the vcl control. */
60
61
class SvxShowCharSetAcc final
62
    : public cppu::ImplInheritanceHelper<::comphelper::OAccessibleSelectionHelper,
63
                                         css::accessibility::XAccessibleTable>
64
{
65
    ::std::vector<rtl::Reference<SvxShowCharSetItemAcc>> m_aChildren;
66
    SvxShowCharSet* m_pParent; // the vcl control
67
    virtual void SAL_CALL disposing() override;
68
69
public:
70
    SvxShowCharSetAcc(SvxShowCharSet* pParent);
71
72
    // XAccessibleComponent
73
    virtual void SAL_CALL grabFocus() override;
74
    virtual css::uno::Reference<css::accessibility::XAccessible>
75
        SAL_CALL getAccessibleAtPoint(const css::awt::Point& aPoint) override;
76
77
    // OAccessible
78
    // XAccessibleContext - still waiting to be overwritten
79
    virtual sal_Int64 SAL_CALL getAccessibleChildCount() override;
80
    virtual css::uno::Reference<css::accessibility::XAccessible>
81
        SAL_CALL getAccessibleChild(sal_Int64 i) override;
82
    virtual css::uno::Reference<css::accessibility::XAccessible>
83
        SAL_CALL getAccessibleParent() override;
84
    virtual sal_Int16 SAL_CALL getAccessibleRole() override;
85
    virtual OUString SAL_CALL getAccessibleDescription() override;
86
    virtual OUString SAL_CALL getAccessibleName() override;
87
    virtual css::uno::Reference<css::accessibility::XAccessibleRelationSet>
88
        SAL_CALL getAccessibleRelationSet() override;
89
    virtual sal_Int64 SAL_CALL getAccessibleStateSet() override;
90
91
    virtual sal_Int32 SAL_CALL getForeground() override;
92
    virtual sal_Int32 SAL_CALL getBackground() override;
93
94
    // XAccessibleTable
95
    virtual sal_Int32 SAL_CALL getAccessibleRowCount() override;
96
    virtual sal_Int32 SAL_CALL getAccessibleColumnCount() override;
97
    virtual OUString SAL_CALL getAccessibleRowDescription(sal_Int32 nRow) override;
98
    virtual OUString SAL_CALL getAccessibleColumnDescription(sal_Int32 nColumn) override;
99
    virtual sal_Int32 SAL_CALL getAccessibleRowExtentAt(sal_Int32 nRow, sal_Int32 nColumn) override;
100
    virtual sal_Int32 SAL_CALL getAccessibleColumnExtentAt(sal_Int32 nRow,
101
                                                           sal_Int32 nColumn) override;
102
    virtual css::uno::Reference<css::accessibility::XAccessibleTable>
103
        SAL_CALL getAccessibleRowHeaders() override;
104
    virtual css::uno::Reference<css::accessibility::XAccessibleTable>
105
        SAL_CALL getAccessibleColumnHeaders() override;
106
    virtual css::uno::Sequence<sal_Int32> SAL_CALL getSelectedAccessibleRows() override;
107
    virtual css::uno::Sequence<sal_Int32> SAL_CALL getSelectedAccessibleColumns() override;
108
    virtual sal_Bool SAL_CALL isAccessibleRowSelected(sal_Int32 nRow) override;
109
    virtual sal_Bool SAL_CALL isAccessibleColumnSelected(sal_Int32 nColumn) override;
110
    virtual css::uno::Reference<css::accessibility::XAccessible>
111
        SAL_CALL getAccessibleCellAt(sal_Int32 nRow, sal_Int32 nColumn) override;
112
    virtual css::uno::Reference<css::accessibility::XAccessible>
113
        SAL_CALL getAccessibleCaption() override;
114
    virtual css::uno::Reference<css::accessibility::XAccessible>
115
        SAL_CALL getAccessibleSummary() override;
116
    virtual sal_Bool SAL_CALL isAccessibleSelected(sal_Int32 nRow, sal_Int32 nColumn) override;
117
    virtual sal_Int64 SAL_CALL getAccessibleIndex(sal_Int32 nRow, sal_Int32 nColumn) override;
118
    virtual sal_Int32 SAL_CALL getAccessibleRow(sal_Int64 nChildIndex) override;
119
    virtual sal_Int32 SAL_CALL getAccessibleColumn(sal_Int64 nChildIndex) override;
120
121
    void fireEvent(const sal_Int16 _nEventId, const css::uno::Any& _rOldValue,
122
                   const css::uno::Any& _rNewValue)
123
0
    {
124
0
        NotifyAccessibleEvent(_nEventId, _rOldValue, _rNewValue);
125
0
    }
126
127
0
    void clearCharSetControl() { m_pParent = nullptr; }
128
129
private:
130
    virtual ~SvxShowCharSetAcc() override;
131
132
    // OCommonAccessibleSelection
133
    // return if the specified child is visible => watch for special ChildIndexes (ACCESSIBLE_SELECTION_CHILD_xxx)
134
    virtual bool implIsSelected(sal_Int64 nAccessibleChildIndex) override;
135
136
    // select the specified child => watch for special ChildIndexes (ACCESSIBLE_SELECTION_CHILD_xxx)
137
    virtual void implSelect(sal_Int64 nAccessibleChildIndex, bool bSelect) override;
138
139
    // OAccessible
140
    /// implements the calculation of the bounding rectangle - still waiting to be overwritten
141
    virtual css::awt::Rectangle implGetBounds() override;
142
};
143
144
// - SvxShowCharSetItemAcc -
145
146
/** The child implementation of the table. */
147
class SvxShowCharSetItemAcc final
148
    : public cppu::ImplInheritanceHelper<::comphelper::OAccessible,
149
                                         css::accessibility::XAccessibleAction>
150
{
151
private:
152
    SvxShowCharSetItem* mpParent;
153
154
    virtual ~SvxShowCharSetItemAcc() override;
155
156
    // OAccessible
157
    /// implements the calculation of the bounding rectangle - still waiting to be overwritten
158
    virtual css::awt::Rectangle implGetBounds() override;
159
160
public:
161
    SvxShowCharSetItemAcc(SvxShowCharSetItem* pParent);
162
163
    void ParentDestroyed();
164
165
    // XAccessibleComponent
166
    virtual void SAL_CALL grabFocus() override;
167
    virtual css::uno::Reference<css::accessibility::XAccessible>
168
        SAL_CALL getAccessibleAtPoint(const css::awt::Point& aPoint) override;
169
170
    // OAccessible
171
    // XAccessibleContext - still waiting to be overwritten
172
    virtual sal_Int64 SAL_CALL getAccessibleChildCount() override;
173
    virtual css::uno::Reference<css::accessibility::XAccessible>
174
        SAL_CALL getAccessibleChild(sal_Int64 i) override;
175
    virtual css::uno::Reference<css::accessibility::XAccessible>
176
        SAL_CALL getAccessibleParent() override;
177
    virtual sal_Int16 SAL_CALL getAccessibleRole() override;
178
    virtual OUString SAL_CALL getAccessibleDescription() override;
179
    virtual OUString SAL_CALL getAccessibleName() override;
180
    virtual css::uno::Reference<css::accessibility::XAccessibleRelationSet>
181
        SAL_CALL getAccessibleRelationSet() override;
182
    virtual sal_Int64 SAL_CALL getAccessibleStateSet() override;
183
184
    virtual sal_Int32 SAL_CALL getForeground() override
185
0
    {
186
0
        return mpParent->m_pParent->getForeground();
187
0
    }
188
    virtual sal_Int32 SAL_CALL getBackground() override
189
0
    {
190
0
        return mpParent->m_pParent->getBackground();
191
0
    }
192
193
    // XAccessibleAction
194
    virtual sal_Int32 SAL_CALL getAccessibleActionCount() override;
195
    virtual sal_Bool SAL_CALL doAccessibleAction(sal_Int32 nIndex) override;
196
    virtual OUString SAL_CALL getAccessibleActionDescription(sal_Int32 nIndex) override;
197
    virtual css::uno::Reference<css::accessibility::XAccessibleKeyBinding>
198
        SAL_CALL getAccessibleActionKeyBinding(sal_Int32 nIndex) override;
199
200
    void fireEvent(const sal_Int16 _nEventId, const css::uno::Any& _rOldValue,
201
                   const css::uno::Any& _rNewValue)
202
0
    {
203
0
        NotifyAccessibleEvent(_nEventId, _rOldValue, _rNewValue);
204
0
    }
205
};
206
}
207
208
#endif // INCLUDED_SVX_SOURCE_INC_CHARMAPACC_HXX
209
210
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */