LibreOffice Module accessibility (master) 1
AccessibleGridControl.hxx
Go to the documentation of this file.
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
26#include <rtl/ref.hxx>
28
29namespace accessibility {
30
31 class AccessibleGridControlHeader;
32
33
36{
38
40 const css::uno::Reference< css::accessibility::XAccessible >& _rxParent,
41 const css::uno::Reference< css::accessibility::XAccessible >& _rxCreator,
43 );
44
45 virtual ~AccessibleGridControl() override = default;
46
49 virtual void SAL_CALL disposing() override;
50
51 // XAccessibleContext -----------------------------------------------------
52
54 virtual sal_Int64 SAL_CALL getAccessibleChildCount() override;
55
57 virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
58 getAccessibleChild( sal_Int64 nChildIndex ) override;
59
61 virtual sal_Int16 SAL_CALL getAccessibleRole() override;
62
63 // XAccessibleComponent ---------------------------------------------------
64
68 virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
69 getAccessibleAtPoint( const css::awt::Point& rPoint ) override;
70
72 virtual void SAL_CALL grabFocus() override;
73
74 // XServiceInfo -----------------------------------------------------------
75
79 virtual OUString SAL_CALL getImplementationName() override;
80
81public:
82 // helper functions
83
92 void commitCellEvent(sal_Int16 nEventId, const css::uno::Any& rNewValue,
93 const css::uno::Any& rOldValue);
94
103 void commitTableEvent(sal_Int16 nEventId, const css::uno::Any& rNewValue,
104 const css::uno::Any& rOldValue);
105
106private:
107 // internal virtual methods -----------------------------------------------
108
111 virtual tools::Rectangle implGetBoundingBox() override;
115
116 // internal helper methods ------------------------------------------------
117
121 css::uno::Reference< css::accessibility::XAccessible > implGetTable();
122
126 css::uno::Reference< css::accessibility::XAccessible >
128
133 css::uno::Reference< css::accessibility::XAccessible >
134 implGetFixedChild( sal_Int64 nChildIndex );
135
139
141 css::uno::WeakReference< css::accessibility::XAccessible > m_aCreator;
142
145
148
151
153 inline sal_Int64 implGetAccessibleChildCount();
154};
155
156
164 public ::cppu::WeakImplHelper< css::accessibility::XAccessible >
166{
167private:
168 css::uno::Reference< css::accessibility::XAccessible > m_xParent;
171
172public:
174 css::uno::Reference< css::accessibility::XAccessible > _xParent,
176 );
177
180
181private:
182 virtual ~AccessibleGridControlAccess() override;
183
184 // XAccessible
185 virtual css::uno::Reference< css::accessibility::XAccessibleContext >
186 SAL_CALL getAccessibleContext() override;
187
188 // IAccessibleTable
189 virtual css::uno::Reference< css::accessibility::XAccessible >
190 getMyself() override
191 {
192 return this;
193 }
194 void DisposeAccessImpl() override;
195 virtual bool isAlive() const override
196 {
197 return m_xContext.is() && m_xContext->isAlive();
198 }
199 virtual void commitCellEvent( sal_Int16 nEventId,
200 const css::uno::Any& rNewValue, const css::uno::Any& rOldValue ) override
201 {
202 AccessibleGridControl* pContext( getContext() );
203 if ( pContext )
204 pContext->commitCellEvent( nEventId, rNewValue, rOldValue );
205 }
206 virtual void commitTableEvent( sal_Int16 nEventId,
207 const css::uno::Any& rNewValue, const css::uno::Any& rOldValue ) override
208 {
209 AccessibleGridControl* pContext( getContext() );
210 if ( pContext )
211 pContext->commitTableEvent( nEventId, rNewValue, rOldValue );
212 }
213 virtual void commitEvent( sal_Int16 nEventId,
214 const css::uno::Any& rNewValue ) override
215 {
216 AccessibleGridControl* pContext( getContext() );
217 if ( pContext )
218 pContext->commitEvent( nEventId, rNewValue, css::uno::Any() );
219 }
220
221private:
224};
225
226
227} // namespace accessibility
228
229
230
231/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
the XAccessible which creates/returns an AccessibleGridControl
virtual css::uno::Reference< css::accessibility::XAccessible > getMyself() override
rtl::Reference< AccessibleGridControl > m_xContext
AccessibleGridControlAccess & operator=(const AccessibleGridControlAccess &)=delete
css::uno::Reference< css::accessibility::XAccessible > m_xParent
virtual void commitCellEvent(sal_Int16 nEventId, const css::uno::Any &rNewValue, const css::uno::Any &rOldValue) override
AccessibleGridControl * getContext()
returns the AccessibleContext belonging to this Accessible
AccessibleGridControlAccess(const AccessibleGridControlAccess &)=delete
AccessibleGridControlAccess(css::uno::Reference< css::accessibility::XAccessible > _xParent, ::vcl::table::IAccessibleTable &_rTable)
virtual void commitTableEvent(sal_Int16 nEventId, const css::uno::Any &rNewValue, const css::uno::Any &rOldValue) override
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext() override
virtual void commitEvent(sal_Int16 nEventId, const css::uno::Any &rNewValue) override
The GridControl accessible objects inherit from this base class.
virtual void commitEvent(sal_Int16 nEventId, const css::uno::Any &rNewValue, const css::uno::Any &rOldValue)
Commits an event to all listeners.
virtual void SAL_CALL disposing() override
Commits DeFunc event to listeners and cleans up members.
This class represents the complete accessible Grid Control object.
virtual void SAL_CALL disposing() override
Commits DeFunc event to listeners and cleans up members.
void commitCellEvent(sal_Int16 nEventId, const css::uno::Any &rNewValue, const css::uno::Any &rOldValue)
commitCellEvent commit the event at all listeners of the table
virtual sal_Int64 SAL_CALL getAccessibleChildCount() override
css::uno::Reference< css::accessibility::XAccessible > implGetFixedChild(sal_Int64 nChildIndex)
This method returns one of the children that are always present: Data table, row and column header ba...
virtual tools::Rectangle implGetBoundingBox() override
rtl::Reference< AccessibleGridControlHeader > m_xRowHeaderBar
The header bar for rows.
AccessibleGridControl(const css::uno::Reference< css::accessibility::XAccessible > &_rxParent, const css::uno::Reference< css::accessibility::XAccessible > &_rxCreator, ::vcl::table::IAccessibleTable &_rTable)
css::uno::Reference< css::accessibility::XAccessible > implGetTable()
This method creates (once) and returns the accessible data table child.
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint(const css::awt::Point &rPoint) override
rtl::Reference< AccessibleGridControlTable > createAccessibleTable()
This method creates and returns an accessible table.
virtual void SAL_CALL grabFocus() override
Grabs the focus to the Grid Control.
virtual ~AccessibleGridControl() override=default
void commitTableEvent(sal_Int16 nEventId, const css::uno::Any &rNewValue, const css::uno::Any &rOldValue)
commitTableEvent commit the event at all listeners of the table
virtual sal_Int16 SAL_CALL getAccessibleRole() override
virtual OUString SAL_CALL getImplementationName() override
css::uno::WeakReference< css::accessibility::XAccessible > m_aCreator
the css::accessibility::XAccessible which created the AccessibleGridControl
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild(sal_Int64 nChildIndex) override
css::uno::Reference< css::accessibility::XAccessible > implGetHeaderBar(::vcl::table::AccessibleTableControlObjType eObjType)
This method creates (once) and returns the specified header bar.
rtl::Reference< AccessibleGridControlHeader > m_xColumnHeaderBar
The header bar for columns (first row of the table).
rtl::Reference< AccessibleGridControlTable > m_xTable
The data table child.
virtual tools::Rectangle implGetBoundingBoxOnScreen() override
AccessibleTableControlObjType