Version 7.1.7.1, tag libreoffice-7.1.7.1
[LibreOffice.git] / svx / source / inc / charmapacc.hxx
blob71bcc63a4e8883ddd5c18140a55f680e3023982c
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
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/.
9 * This file incorporates work covered by the following license notice:
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 .
20 #ifndef INCLUDED_SVX_SOURCE_INC_CHARMAPACC_HXX
21 #define INCLUDED_SVX_SOURCE_INC_CHARMAPACC_HXX
23 #include <comphelper/accessibleselectionhelper.hxx>
24 #include <com/sun/star/accessibility/XAccessibleAction.hpp>
25 #include <com/sun/star/accessibility/XAccessibleTable.hpp>
26 #include <tools/gen.hxx>
27 #include <rtl/ref.hxx>
29 #include <vector>
30 class SvxShowCharSet;
32 namespace svx
34 typedef ::cppu::ImplHelper1 < css::accessibility::XAccessible
35 > OAccessibleHelper_Base_2;
37 class SvxShowCharSetAcc;
39 class SvxShowCharSetItemAcc;
41 // - SvxShowCharSetItem -
43 /** Simple struct to hold some information about the single items of the table.
45 struct SvxShowCharSetItem
47 SvxShowCharSet& mrParent;
48 sal_uInt16 mnId;
49 OUString maText;
50 tools::Rectangle maRect;
51 rtl::Reference<SvxShowCharSetItemAcc> m_xItem;
52 SvxShowCharSetAcc* m_pParent;
54 SvxShowCharSetItem( SvxShowCharSet& rParent, SvxShowCharSetAcc* _pParent, sal_uInt16 _nPos );
55 ~SvxShowCharSetItem();
57 css::uno::Reference< css::accessibility::XAccessible > GetAccessible();
61 typedef ::cppu::ImplHelper2 < css::accessibility::XAccessible,
62 css::accessibility::XAccessibleTable
63 > OAccessibleHelper_Base;
65 // - SvxShowCharSetAcc -
67 /** The table implementation of the vcl control.
70 class SvxShowCharSetAcc : public ::comphelper::OAccessibleSelectionHelper,
71 public OAccessibleHelper_Base
73 ::std::vector< css::uno::Reference< css::accessibility::XAccessible > > m_aChildren;
74 SvxShowCharSet* m_pParent; // the vcl control
75 protected:
76 virtual void SAL_CALL disposing() override;
77 public:
78 SvxShowCharSetAcc(SvxShowCharSet* pParent);
80 DECLARE_XINTERFACE( )
81 DECLARE_XTYPEPROVIDER( )
83 // XAccessibleComponent
84 virtual void SAL_CALL grabFocus( ) override;
85 virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) override;
87 //OAccessibleContextHelper
88 // XAccessibleContext - still waiting to be overwritten
89 virtual sal_Int32 SAL_CALL getAccessibleChildCount() override;
90 virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override;
91 virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) override;
92 virtual sal_Int16 SAL_CALL getAccessibleRole( ) override;
93 virtual OUString SAL_CALL getAccessibleDescription( ) override;
94 virtual OUString SAL_CALL getAccessibleName( ) override;
95 virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) override;
96 virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) override;
98 virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override { return this; }
99 virtual sal_Int32 SAL_CALL getForeground( ) override;
100 virtual sal_Int32 SAL_CALL getBackground( ) override;
102 // XAccessibleTable
103 virtual sal_Int32 SAL_CALL getAccessibleRowCount( ) override;
104 virtual sal_Int32 SAL_CALL getAccessibleColumnCount( ) override;
105 virtual OUString SAL_CALL getAccessibleRowDescription( sal_Int32 nRow ) override;
106 virtual OUString SAL_CALL getAccessibleColumnDescription( sal_Int32 nColumn ) override;
107 virtual sal_Int32 SAL_CALL getAccessibleRowExtentAt( sal_Int32 nRow, sal_Int32 nColumn ) override;
108 virtual sal_Int32 SAL_CALL getAccessibleColumnExtentAt( sal_Int32 nRow, sal_Int32 nColumn ) override;
109 virtual css::uno::Reference< css::accessibility::XAccessibleTable > SAL_CALL getAccessibleRowHeaders( ) override;
110 virtual css::uno::Reference< css::accessibility::XAccessibleTable > SAL_CALL getAccessibleColumnHeaders( ) override;
111 virtual css::uno::Sequence< sal_Int32 > SAL_CALL getSelectedAccessibleRows( ) override;
112 virtual css::uno::Sequence< sal_Int32 > SAL_CALL getSelectedAccessibleColumns( ) override;
113 virtual sal_Bool SAL_CALL isAccessibleRowSelected( sal_Int32 nRow ) override;
114 virtual sal_Bool SAL_CALL isAccessibleColumnSelected( sal_Int32 nColumn ) override;
115 virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleCellAt( sal_Int32 nRow, sal_Int32 nColumn ) override;
116 virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleCaption( ) override;
117 virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleSummary( ) override;
118 virtual sal_Bool SAL_CALL isAccessibleSelected( sal_Int32 nRow, sal_Int32 nColumn ) override;
119 virtual sal_Int32 SAL_CALL getAccessibleIndex( sal_Int32 nRow, sal_Int32 nColumn ) override;
120 virtual sal_Int32 SAL_CALL getAccessibleRow( sal_Int32 nChildIndex ) override;
121 virtual sal_Int32 SAL_CALL getAccessibleColumn( sal_Int32 nChildIndex ) override;
124 void fireEvent(
125 const sal_Int16 _nEventId,
126 const css::uno::Any& _rOldValue,
127 const css::uno::Any& _rNewValue
130 NotifyAccessibleEvent(_nEventId,_rOldValue,_rNewValue);
133 void clearCharSetControl() { m_pParent = nullptr; }
134 protected:
136 virtual ~SvxShowCharSetAcc() override;
138 // OCommonAccessibleSelection
139 // return if the specified child is visible => watch for special ChildIndexes (ACCESSIBLE_SELECTION_CHILD_xxx)
140 virtual bool
141 implIsSelected( sal_Int32 nAccessibleChildIndex ) override;
143 // select the specified child => watch for special ChildIndexes (ACCESSIBLE_SELECTION_CHILD_xxx)
144 virtual void
145 implSelect( sal_Int32 nAccessibleChildIndex, bool bSelect ) override;
147 // OCommonAccessibleComponent
148 /// implements the calculation of the bounding rectangle - still waiting to be overwritten
149 virtual css::awt::Rectangle implGetBounds( ) override;
153 // - SvxShowCharSetItemAcc -
155 typedef ::cppu::ImplHelper2 < css::accessibility::XAccessible,
156 css::accessibility::XAccessibleAction
157 > OAccessibleHelper_Base_3;
159 /** The child implementation of the table.
161 class SvxShowCharSetItemAcc : public ::comphelper::OAccessibleComponentHelper,
162 public OAccessibleHelper_Base_3
164 private:
165 SvxShowCharSetItem* mpParent;
166 protected:
167 virtual ~SvxShowCharSetItemAcc() override;
169 // OCommonAccessibleComponent
170 /// implements the calculation of the bounding rectangle - still waiting to be overwritten
171 virtual css::awt::Rectangle implGetBounds( ) override;
172 public:
174 // XInterface
175 DECLARE_XINTERFACE( )
176 DECLARE_XTYPEPROVIDER( )
178 SvxShowCharSetItemAcc( SvxShowCharSetItem* pParent );
180 void ParentDestroyed();
182 // XAccessibleComponent
183 virtual void SAL_CALL grabFocus( ) override;
184 virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) override;
186 //OAccessibleContextHelper
187 // XAccessibleContext - still waiting to be overwritten
188 virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) override;
189 virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override;
190 virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) override;
191 virtual sal_Int16 SAL_CALL getAccessibleRole( ) override;
192 virtual OUString SAL_CALL getAccessibleDescription( ) override;
193 virtual OUString SAL_CALL getAccessibleName( ) override;
194 virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) override;
195 virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) override;
197 virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override { return this; }
199 virtual sal_Int32 SAL_CALL getForeground( ) override { return mpParent->m_pParent->getForeground(); }
200 virtual sal_Int32 SAL_CALL getBackground( ) override { return mpParent->m_pParent->getBackground(); }
202 // XAccessibleAction
203 virtual sal_Int32 SAL_CALL getAccessibleActionCount( ) override;
204 virtual sal_Bool SAL_CALL doAccessibleAction ( sal_Int32 nIndex ) override;
205 virtual OUString SAL_CALL getAccessibleActionDescription ( sal_Int32 nIndex ) override;
206 virtual css::uno::Reference< css::accessibility::XAccessibleKeyBinding > SAL_CALL getAccessibleActionKeyBinding( sal_Int32 nIndex ) override;
209 void fireEvent(
210 const sal_Int16 _nEventId,
211 const css::uno::Any& _rOldValue,
212 const css::uno::Any& _rNewValue
215 NotifyAccessibleEvent(_nEventId,_rOldValue,_rNewValue);
221 #endif // INCLUDED_SVX_SOURCE_INC_CHARMAPACC_HXX
223 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */