1 #ifndef DALI_INTERNAL_ACCESSIBILITY_BRIDGE_TABLE_H
2 #define DALI_INTERNAL_ACCESSIBILITY_BRIDGE_TABLE_H
5 * Copyright (c) 2023 Samsung Electronics Co., Ltd.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
22 #include <dali/devel-api/atspi-interfaces/table.h>
23 #include <dali/internal/accessibility/bridge/bridge-base.h>
26 * @brief The BridgeTable class contains glue code for Accessibility::Table.
28 class BridgeTable : public virtual BridgeBase
31 BridgeTable() = default;
34 * @brief Registers Table methods as a DBus interface.
36 void RegisterInterfaces();
39 * @brief Returns the Table object of the currently executed DBus method call.
41 * @return The Table object
43 Dali::Accessibility::Table* FindSelf() const;
46 using RowColumnSpanType = DBus::ValueOrError<
49 std::int32_t, // column
50 std::int32_t, // rowSpan
51 std::int32_t, // columnSpan
56 * @copydoc Dali::Accessibility::Table::GetRowCount()
58 DBus::ValueOrError<std::int32_t> GetRowCount();
61 * @copydoc Dali::Accessibility::Table::GetColumnCount()
63 DBus::ValueOrError<std::int32_t> GetColumnCount();
66 * @copydoc Dali::Accessibility::Table::GetSelectedRowCount()
68 DBus::ValueOrError<std::int32_t> GetSelectedRowCount();
71 * @copydoc Dali::Accessibility::Table::GetSelectedColumnCount()
73 DBus::ValueOrError<std::int32_t> GetSelectedColumnCount();
76 * @copydoc Dali::Accessibility::Table::GetCaption()
78 DBus::ValueOrError<Dali::Accessibility::Accessible*> GetCaption();
81 * @copydoc Dali::Accessibility::Table::GetSummary()
83 DBus::ValueOrError<Dali::Accessibility::Accessible*> GetSummary();
86 * @copydoc Dali::Accessibility::Table::GetCell()
88 DBus::ValueOrError<Dali::Accessibility::Accessible*> GetCell(std::int32_t row, std::int32_t column);
91 * @copydoc Dali::Accessibility::Table::GetChildIndex()
93 DBus::ValueOrError<std::int32_t> GetChildIndex(std::int32_t row, std::int32_t column);
96 * @copydoc Dali::Accessibility::Table::GetRowByChildIndex()
98 DBus::ValueOrError<std::int32_t> GetRowByChildIndex(std::int32_t childIndex);
101 * @copydoc Dali::Accessibility::Table::GetColumnByChildIndex()
103 DBus::ValueOrError<std::int32_t> GetColumnByChildIndex(std::int32_t childIndex);
106 * @copydoc Dali::Accessibility::Table::GetRowDescription()
108 DBus::ValueOrError<std::string> GetRowDescription(std::int32_t row);
111 * @copydoc Dali::Accessibility::Table::GetColumnDescription()
113 DBus::ValueOrError<std::string> GetColumnDescription(std::int32_t column);
116 * @copydoc Dali::Accessibility::Table::GetRowSpan()
118 DBus::ValueOrError<std::int32_t> GetRowSpan(std::int32_t row, std::int32_t column);
121 * @copydoc Dali::Accessibility::Table::GetColumnSpan()
123 DBus::ValueOrError<std::int32_t> GetColumnSpan(std::int32_t row, std::int32_t column);
126 * @copydoc Dali::Accessibility::Table::GetRowHeader()
128 DBus::ValueOrError<Dali::Accessibility::Accessible*> GetRowHeader(std::int32_t row);
131 * @copydoc Dali::Accessibility::Table::GetColumnHeader()
133 DBus::ValueOrError<Dali::Accessibility::Accessible*> GetColumnHeader(std::int32_t column);
136 * @copydoc Dali::Accessibility::Table::GetSelectedRows()
138 DBus::ValueOrError<std::vector<std::int32_t>> GetSelectedRows();
141 * @copydoc Dali::Accessibility::Table::GetSelectedColumns()
143 DBus::ValueOrError<std::vector<std::int32_t>> GetSelectedColumns();
146 * @copydoc Dali::Accessibility::Table::IsRowSelected()
148 DBus::ValueOrError<bool> IsRowSelected(std::int32_t row);
151 * @copydoc Dali::Accessibility::Table::IsColumnSelected()
153 DBus::ValueOrError<bool> IsColumnSelected(std::int32_t column);
156 * @copydoc Dali::Accessibility::Table::IsCellSelected()
158 DBus::ValueOrError<bool> IsCellSelected(std::int32_t row, std::int32_t column);
161 * @copydoc Dali::Accessibility::Table::AddRowSelection()
163 DBus::ValueOrError<bool> AddRowSelection(std::int32_t row);
166 * @copydoc Dali::Accessibility::Table::AddColumnSelection()
168 DBus::ValueOrError<bool> AddColumnSelection(std::int32_t column);
171 * @copydoc Dali::Accessibility::Table::RemoveRowSelection()
173 DBus::ValueOrError<bool> RemoveRowSelection(std::int32_t row);
176 * @copydoc Dali::Accessibility::Table::RemoveColumnSelection()
178 DBus::ValueOrError<bool> RemoveColumnSelection(std::int32_t column);
181 * @copydoc Dali::Accessibility::Table::GetRowColumnSpan()
183 RowColumnSpanType GetRowColumnSpan(std::int32_t childIndex);
186 #endif // DALI_INTERNAL_ACCESSIBILITY_BRIDGE_TABLE_H