23#include <com/sun/star/accessibility/AccessibleEventId.hpp>
24#include <com/sun/star/accessibility/AccessibleStateType.hpp>
25#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
46 m_pTabListBox ( &rBox )
71 case VclEventId::ObjectDying :
78 case VclEventId::ControlGetFocus :
79 case VclEventId::ControlLoseFocus :
82 if ( nEventId == VclEventId::ControlGetFocus )
83 aNewValue <<= AccessibleStateType::FOCUSED;
85 aOldValue <<= AccessibleStateType::FOCUSED;
86 commitEvent( AccessibleEventId::STATE_CHANGED, aNewValue, aOldValue );
90 case VclEventId::ListboxSelect :
107 aNewValue <<= xChild;
108 commitEvent( AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, aNewValue, aOldValue );
113 case VclEventId::WindowGetFocus :
116 aNewValue <<= AccessibleStateType::FOCUSED;
117 commitEvent( AccessibleEventId::STATE_CHANGED, aNewValue, aOldValue );
121 case VclEventId::WindowLoseFocus :
124 aOldValue <<= AccessibleStateType::FOCUSED;
125 commitEvent( AccessibleEventId::STATE_CHANGED, aNewValue, aOldValue );
128 case VclEventId::ListboxTreeSelect:
149 case VclEventId::ListboxTreeFocus:
160 commitEvent( AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, aNewValue ,aOldValue);
164 aNewValue <<= AccessibleStateType::FOCUSED;
165 commitEvent( AccessibleEventId::STATE_CHANGED, aNewValue ,aOldValue);
171 case VclEventId::CheckboxToggle :
200 OSL_ENSURE( rEvent.GetWindow() && m_pTabListBox,
"no event window" );
201 ProcessWindowEvent( rEvent );
208 throw IndexOutOfBoundsException();
240 if ( nRow == nSelRow )
259 return "com.sun.star.comp.svtools.AccessibleTabListBoxTable";
267 ::osl::MutexGuard aGuard(
getMutex() );
278 ::osl::MutexGuard aGuard(
getMutex() );
289 ::osl::MutexGuard aGuard(
getMutex() );
299 ::osl::MutexGuard aGuard(
getMutex() );
309 ::osl::MutexGuard aGuard(
getMutex() );
319 ::osl::MutexGuard aGuard(
getMutex() );
326 throw IndexOutOfBoundsException();
328 const sal_Int32 nRow =
implGetSelRow(nSelectedChildIndex / nColCount);
329 const sal_Int32 nColumn = nSelectedChildIndex % nColCount;
336 ::osl::MutexGuard aGuard(
getMutex() );
void ensureIsAlive() const
::osl::Mutex & getMutex()
void commitEvent(sal_Int16 nEventId, const css::uno::Any &rNewValue, const css::uno::Any &rOldValue)
Commits an event to all listeners.
This class represents the accessible object of the data table of a BrowseBox control.
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleCellAt(sal_Int32 nRow, sal_Int32 nColumn) override
void SetChecked(bool _bChecked)
sal_Int64 SAL_CALL getSelectedAccessibleChildCount() override
AccessibleTabListBoxTable(const css::uno::Reference< css::accessibility::XAccessible > &rxParent, SvHeaderTabListBox &rBox)
ctor()
sal_Int32 implGetSelRow(sal_Int32 _nSelRow) const
Returns the absolute row index of the nSelRow-th selected row.
css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild(sal_Int64 nSelectedChildIndex) override
void SAL_CALL deselectAccessibleChild(sal_Int64 nSelectedChildIndex) override
void SAL_CALL selectAllAccessibleChildren() override
sal_Int32 implGetSelRowCount() const
Returns the count of selected rows in the table.
sal_Int32 implGetColumnCount() const override
Returns the total column count in the table.
void SAL_CALL clearAccessibleSelection() override
void SAL_CALL selectAccessibleChild(sal_Int64 nChildIndex) override
sal_Bool SAL_CALL isAccessibleChildSelected(sal_Int64 nChildIndex) override
void implSelectRow(sal_Int32 _nRow, bool _bSelect)
Selects the specified row.
VclPtr< SvHeaderTabListBox > m_pTabListBox
sal_Int32 implGetRowCount() const override
Returns the count of rows in the table.
void ProcessWindowEvent(const VclWindowEvent &rVclWindowEvent)
css::uno::Reference< css::accessibility::XAccessible > m_xCurChild
void ensureValidIndex(sal_Int64 _nIndex) const
Throws an exception, if nIndex is not a valid child index.
virtual ~AccessibleTabListBoxTable() override
dtor()
sal_Int32 implGetRow(sal_Int64 _nIndex) const
Returns the row index from cell index.
#define LINK(Instance, Class, Member)
IMPL_LINK(AccessibleDocumentViewBase, WindowChildEventListener, VclWindowEvent &, rEvent, void)
IMPLEMENT_FORWARD_XTYPEPROVIDER2(ChildWindowPane, ChildWindowPaneInterfaceBase, Pane)
IMPLEMENT_FORWARD_XINTERFACE2(ChildWindowPane, ChildWindowPaneInterfaceBase, Pane)