LibreOffice Module vcl (master) 1
accessibletableprovider.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#ifndef INCLUDED_VCL_ACCESSIBLETABLEPROVIDER_HXX
21#define INCLUDED_VCL_ACCESSIBLETABLEPROVIDER_HXX
22
24#include <vcl/window.hxx>
25
26namespace com::sun::star::accessibility { class XAccessible; }
27
28namespace vcl
29{
30
31#define OFFSET_DEFAULT (sal_Int32(-1))
32#define OFFSET_NONE (sal_Int32(0))
33
35{
44};
45
46
50{
51public:
53 virtual sal_Int32 GetRowCount() const = 0;
55 virtual sal_uInt16 GetColumnCount() const = 0;
56
58 virtual sal_Int32 GetCurrRow() const = 0;
60 virtual sal_uInt16 GetCurrColumn() const = 0;
61
64 virtual OUString GetRowDescription( sal_Int32 _nRow ) const = 0;
67 virtual OUString GetColumnDescription( sal_uInt16 _nColumnPos ) const = 0;
68
70 virtual bool HasRowHeader() const = 0; //GetColumnId
71 virtual bool GoToCell( sal_Int32 _nRow, sal_uInt16 _nColumnPos ) = 0;
72
73 virtual void SetNoSelection() = 0;
74 virtual void SelectAll() = 0;
75 virtual void SelectRow( sal_Int32 _nRow, bool _bSelect = true, bool bExpand = true ) = 0;
76 virtual void SelectColumn( sal_uInt16 _nColumnPos, bool _bSelect = true ) = 0;
77 virtual sal_Int32 GetSelectedRowCount() const = 0;
78 virtual sal_Int32 GetSelectedColumnCount() const = 0;
80 virtual bool IsRowSelected( sal_Int32 _nRow ) const = 0;
81 virtual bool IsColumnSelected( sal_Int32 _nColumnPos ) const = 0;
82 virtual void GetAllSelectedRows( css::uno::Sequence< sal_Int32 >& _rRows ) const = 0;
83 virtual void GetAllSelectedColumns( css::uno::Sequence< sal_Int32 >& _rColumns ) const = 0;
84
86 virtual bool IsCellVisible( sal_Int32 _nRow, sal_uInt16 _nColumnPos ) const = 0;
87 virtual OUString GetAccessibleCellText( sal_Int32 _nRow, sal_uInt16 _nColumnPos ) const = 0;
88
89 virtual tools::Rectangle calcHeaderRect( bool _bIsColumnBar, bool _bOnScreen = true ) = 0;
90 virtual tools::Rectangle calcTableRect( bool _bOnScreen = true ) = 0;
91 virtual tools::Rectangle GetFieldRectPixel( sal_Int32 _nRow, sal_uInt16 _nColumnPos, bool _bIsHeader, bool _bOnScreen ) = 0;
92
93 virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessibleCell( sal_Int32 _nRow, sal_uInt16 _nColumnPos ) = 0;
94 virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessibleRowHeader( sal_Int32 _nRow ) = 0;
95 virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessibleColumnHeader( sal_uInt16 _nColumnPos ) = 0;
96
97 virtual sal_Int32 GetAccessibleControlCount() const = 0;
98 virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessibleControl( sal_Int32 _nIndex ) = 0;
99 virtual bool ConvertPointToControlIndex( sal_Int32& _rnIndex, const Point& _rPoint ) = 0;
100
101 virtual bool ConvertPointToCellAddress( sal_Int32& _rnRow, sal_uInt16& _rnColPos, const Point& _rPoint ) = 0;
102 virtual bool ConvertPointToRowHeader( sal_Int32& _rnRow, const Point& _rPoint ) = 0;
103 virtual bool ConvertPointToColumnHeader( sal_uInt16& _rnColPos, const Point& _rPoint ) = 0;
104
105 virtual OUString GetAccessibleObjectName( AccessibleBrowseBoxObjType _eType, sal_Int32 _nPos = -1 ) const = 0;
106 virtual OUString GetAccessibleObjectDescription( AccessibleBrowseBoxObjType _eType, sal_Int32 _nPos = -1 ) const = 0;
107
108 virtual void FillAccessibleStateSet( sal_Int64& _rStateSet, AccessibleBrowseBoxObjType _eType ) const = 0;
109 virtual void FillAccessibleStateSetForCell( sal_Int64& _rStateSet, sal_Int32 _nRow, sal_uInt16 _nColumnPos ) const = 0;
110 virtual void GrabTableFocus() = 0;
111
112 // OutputDevice
113 virtual bool GetGlyphBoundRects( const Point& rOrigin, const OUString& rStr, int nIndex, int nLen, std::vector< tools::Rectangle >& rVector ) = 0;
114
115 // Window
117 virtual tools::Rectangle GetWindowExtentsRelative(const vcl::Window& rRelativeWindow) const = 0;
118 virtual void GrabFocus() = 0;
119 virtual css::uno::Reference< css::accessibility::XAccessible > GetAccessible() = 0;
122
123 virtual tools::Rectangle GetFieldCharacterBounds(sal_Int32 _nRow,sal_Int32 _nColumnPos,sal_Int32 nIndex) = 0;
124 virtual sal_Int32 GetFieldIndexAtPoint(sal_Int32 _nRow,sal_Int32 _nColumnPos,const Point& _rPoint) = 0;
125
126protected:
128};
129
130
134{
135public:
143 virtual css::uno::Reference< css::accessibility::XAccessible >
145
148 virtual css::uno::Reference< css::accessibility::XAccessible >
150
153 virtual css::uno::Reference< css::accessibility::XAccessible> getTable() = 0;
154
155protected:
157};
158
162{
163public:
171 virtual css::uno::Reference< css::accessibility::XAccessible >
173
176 virtual void dispose() = 0;
177
181 virtual bool isAlive() const = 0;
182
185 virtual css::uno::Reference< css::accessibility::XAccessible >
187
190 virtual css::uno::Reference< css::accessibility::XAccessible >
191 getTable() = 0;
192
202 sal_Int16 nEventId,
203 const css::uno::Any& rNewValue,
204 const css::uno::Any& rOldValue,
205 bool _bColumnHeaderBar
206 ) = 0;
207
216 virtual void commitTableEvent(
217 sal_Int16 nEventId,
218 const css::uno::Any& rNewValue,
219 const css::uno::Any& rOldValue
220 ) = 0;
221
223 virtual void commitEvent(
224 sal_Int16 nEventId,
225 const css::uno::Any& rNewValue,
226 const css::uno::Any& rOldValue
227 ) = 0;
228
229protected:
231};
232
233} // namespace vcl
234
235#endif // INCLUDED_VCL_ACCESSIBLETABLEPROVIDER_HXX
236
237/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
AccessibleBrowseBoxObjType
This enumeration contains a constant for each kind of accessible object of a BrowseBox.
interface for an implementation of a browse box's Accessible component
virtual css::uno::Reference< css::accessibility::XAccessible > getHeaderBar(AccessibleBrowseBoxObjType _eObjType)=0
returns the accessible object for the row or the column header bar
virtual void commitHeaderBarEvent(sal_Int16 nEventId, const css::uno::Any &rNewValue, const css::uno::Any &rOldValue, bool _bColumnHeaderBar)=0
commits the event at all listeners of the column/row header bar
virtual css::uno::Reference< css::accessibility::XAccessible > getTable()=0
returns the accessible object for the table representation
virtual void dispose()=0
disposes the accessible implementation, so that it becomes defunc
virtual void commitTableEvent(sal_Int16 nEventId, const css::uno::Any &rNewValue, const css::uno::Any &rOldValue)=0
commits the event at all listeners of the table
virtual bool isAlive() const =0
checks whether the accessible implementation, and its context, are still alive
virtual void commitEvent(sal_Int16 nEventId, const css::uno::Any &rNewValue, const css::uno::Any &rOldValue)=0
Commits an event to all listeners.
virtual css::uno::Reference< css::accessibility::XAccessible > getMyself()=0
returns the XAccessible object itself
interface for an implementation of a table control's Accessible component
virtual css::uno::Reference< css::accessibility::XAccessible > getMyself()=0
returns the XAccessible object itself
virtual css::uno::Reference< css::accessibility::XAccessible > getTable()=0
Returns the accessible object for the table.
virtual css::uno::Reference< css::accessibility::XAccessible > getHeaderBar()=0
returns the accessible object for the column header bar
This abstract class provides methods to implement an accessible table object.
virtual sal_Int32 GetSelectedColumnCount() const =0
virtual void FillAccessibleStateSetForCell(sal_Int64 &_rStateSet, sal_Int32 _nRow, sal_uInt16 _nColumnPos) const =0
virtual OUString GetRowDescription(sal_Int32 _nRow) const =0
virtual void SelectRow(sal_Int32 _nRow, bool _bSelect=true, bool bExpand=true)=0
virtual bool ConvertPointToColumnHeader(sal_uInt16 &_rnColPos, const Point &_rPoint)=0
virtual sal_Int32 GetRowCount() const =0
virtual vcl::Window * GetWindowInstance()=0
virtual bool ConvertPointToRowHeader(sal_Int32 &_rnRow, const Point &_rPoint)=0
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessibleCell(sal_Int32 _nRow, sal_uInt16 _nColumnPos)=0
virtual sal_uInt16 GetCurrColumn() const =0
virtual tools::Rectangle GetWindowExtentsRelative(const vcl::Window &rRelativeWindow) const =0
virtual void GrabTableFocus()=0
virtual void GetAllSelectedRows(css::uno::Sequence< sal_Int32 > &_rRows) const =0
virtual sal_uInt16 GetColumnCount() const =0
virtual bool IsRowSelected(sal_Int32 _nRow) const =0
virtual vcl::Window * GetAccessibleParentWindow() const =0
virtual void SelectColumn(sal_uInt16 _nColumnPos, bool _bSelect=true)=0
virtual sal_Int32 GetAccessibleControlCount() const =0
virtual bool ConvertPointToCellAddress(sal_Int32 &_rnRow, sal_uInt16 &_rnColPos, const Point &_rPoint)=0
virtual tools::Rectangle calcHeaderRect(bool _bIsColumnBar, bool _bOnScreen=true)=0
virtual tools::Rectangle GetWindowExtentsAbsolute() const =0
virtual tools::Rectangle GetFieldCharacterBounds(sal_Int32 _nRow, sal_Int32 _nColumnPos, sal_Int32 nIndex)=0
virtual bool HasRowHeader() const =0
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessibleRowHeader(sal_Int32 _nRow)=0
virtual tools::Rectangle GetFieldRectPixel(sal_Int32 _nRow, sal_uInt16 _nColumnPos, bool _bIsHeader, bool _bOnScreen)=0
virtual bool IsCellVisible(sal_Int32 _nRow, sal_uInt16 _nColumnPos) const =0
virtual tools::Rectangle calcTableRect(bool _bOnScreen=true)=0
virtual bool GetGlyphBoundRects(const Point &rOrigin, const OUString &rStr, int nIndex, int nLen, std::vector< tools::Rectangle > &rVector)=0
virtual void GetAllSelectedColumns(css::uno::Sequence< sal_Int32 > &_rColumns) const =0
virtual sal_Int32 GetFieldIndexAtPoint(sal_Int32 _nRow, sal_Int32 _nColumnPos, const Point &_rPoint)=0
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessibleControl(sal_Int32 _nIndex)=0
virtual OUString GetColumnDescription(sal_uInt16 _nColumnPos) const =0
virtual OUString GetAccessibleObjectName(AccessibleBrowseBoxObjType _eType, sal_Int32 _nPos=-1) const =0
virtual void SetNoSelection()=0
virtual bool ConvertPointToControlIndex(sal_Int32 &_rnIndex, const Point &_rPoint)=0
virtual sal_Int32 GetSelectedRowCount() const =0
virtual sal_Int32 GetCurrRow() const =0
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessibleColumnHeader(sal_uInt16 _nColumnPos)=0
virtual bool IsColumnSelected(sal_Int32 _nColumnPos) const =0
virtual OUString GetAccessibleCellText(sal_Int32 _nRow, sal_uInt16 _nColumnPos) const =0
virtual void FillAccessibleStateSet(sal_Int64 &_rStateSet, AccessibleBrowseBoxObjType _eType) const =0
virtual OUString GetAccessibleObjectDescription(AccessibleBrowseBoxObjType _eType, sal_Int32 _nPos=-1) const =0
virtual bool GoToCell(sal_Int32 _nRow, sal_uInt16 _nColumnPos)=0
virtual css::uno::Reference< css::accessibility::XAccessible > GetAccessible()=0
@ BBINDEX_FIRSTCONTROL
Child index of the first additional control.
@ BBINDEX_TABLE
Child index of the data table.
@ BBINDEX_COLUMNHEADERBAR
Child index of the column header bar (first row).
@ BBINDEX_ROWHEADERBAR
Child index of the row header bar ("handle column").