23#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
42 const css::uno::Reference< css::accessibility::XAccessible >& _rxParent,
const css::uno::Reference< css::accessibility::XAccessible >& _rxCreator,
45 m_aCreator(_rxCreator)
52#if OSL_DEBUG_LEVEL > 0
53 css::uno::Reference< css::accessibility::XAccessible > xCreator(
m_aCreator);
54 OSL_ENSURE( !xCreator.is(),
"extended/AccessibleBrowseBox::setCreator: creator already set!" );
67 ::osl::MutexGuard aGuard(
getMutex() );
102css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
109 throw lang::IndexOutOfBoundsException();
111 css::uno::Reference< css::accessibility::XAccessible > xRet;
112 if( nChildIndex >= 0 )
120 if( nChildIndex < mpBrowseBox->GetAccessibleControlCount() )
126 throw lang::IndexOutOfBoundsException();
132css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
138 css::uno::Reference< css::accessibility::XAccessible > xChild;
150 css::uno::Reference< css::accessibility::XAccessibleComponent >
151 xCurrChildComp( xCurrChild, uno::UNO_QUERY );
153 if( xCurrChildComp.is() &&
174 return "com.sun.star.comp.svtools.AccessibleBrowseBox";
183 OSL_ENSURE( pParent,
"implGetBoundingBox - missing parent window" );
204css::uno::Reference< css::accessibility::XAccessible >
207 css::uno::Reference< css::accessibility::XAccessible > xRet;
210 if( eObjType == AccessibleBrowseBoxObjType::RowHeaderBar )
212 else if( eObjType == AccessibleBrowseBoxObjType::ColumnHeaderBar )
217 if( !pxMember->is() )
221 *pxMember = pHeaderBar;
223 xRet = pxMember->get();
228css::uno::Reference< css::accessibility::XAccessible >
231 css::uno::Reference< css::accessibility::XAccessible > xRet;
232 switch( nChildIndex )
249 css::uno::Reference< css::accessibility::XAccessible > xCreator(
m_aCreator);
250 OSL_ENSURE( xCreator.is(),
"extended/AccessibleBrowseBox::createAccessibleTable: my creator died - how this?" );
258 mxTable->commitEvent(_nEventId,_rNewValue,_rOldValue);
263 const Any& _rNewValue,
264 const Any& _rOldValue,
bool _bColumnHeaderBar)
267 if ( xHeaderBar.is() )
268 xHeaderBar->commitEvent(_nEventId,_rNewValue,_rOldValue);
275 :m_xParent(
std::move( _xParent ))
276 ,m_rBrowseBox( _rBrowseBox )
288 std::unique_lock aGuard(
m_aMutex );
300 std::unique_lock aGuard(
m_aMutex );
AccessibleBrowseBoxObjType
static css::uno::Reference< css::awt::XWindow > GetInterface(vcl::Window *pWindow)
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext() override
virtual ~AccessibleBrowseBoxAccess() override
AccessibleBrowseBoxAccess(css::uno::Reference< css::accessibility::XAccessible > _xParent, ::vcl::IAccessibleTableProvider &_rBrowseBox)
::vcl::IAccessibleTableProvider & m_rBrowseBox
css::uno::Reference< css::accessibility::XAccessible > m_xParent
rtl::Reference< AccessibleBrowseBox > m_xContext
The BrowseBox accessible objects inherit from this base class.
::vcl::IAccessibleTableProvider * mpBrowseBox
The VCL BrowseBox control.
void ensureIsAlive() const
css::uno::Reference< css::awt::XWindow > m_xFocusWindow
This is the window which get all the nice focus events.
::osl::Mutex & getMutex()
virtual void SAL_CALL disposing() override
Commits DeFunc event to listeners and cleans up members.
This class represents the accessible object of the data table of a BrowseBox control.
This class represents the complete accessible BrowseBox object.
virtual tools::Rectangle implGetBoundingBoxOnScreen() override
css::uno::Reference< css::accessibility::XAccessible > implGetTable()
This method creates (once) and returns the accessible data table child.
css::uno::WeakReference< css::accessibility::XAccessible > m_aCreator
the css::accessibility::XAccessible which created the AccessibleBrowseBox
virtual rtl::Reference< AccessibleBrowseBoxTable > createAccessibleTable()
This method creates and returns an accessible table.
AccessibleBrowseBox(const css::uno::Reference< css::accessibility::XAccessible > &_rxParent, const css::uno::Reference< css::accessibility::XAccessible > &_rxCreator, ::vcl::IAccessibleTableProvider &_rBrowseBox)
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...
void setCreator(const css::uno::Reference< css::accessibility::XAccessible > &_rxCreator)
sets the XAccessible which created the context
virtual tools::Rectangle implGetBoundingBox() override
rtl::Reference< AccessibleBrowseBoxHeaderBar > mxColumnHeaderBar
The header bar for columns (first row of the table).
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild(sal_Int64 nChildIndex) override
virtual ~AccessibleBrowseBox() override
rtl::Reference< AccessibleBrowseBoxTable > mxTable
The data table child.
void commitHeaderBarEvent(sal_Int16 nEventId, const css::uno::Any &rNewValue, const css::uno::Any &rOldValue, bool _bColumnHeaderBar)
commitHeaderBarEvent commit the event at all listeners of the column/row header bar
virtual void SAL_CALL disposing() override
Commits DeFunc event to listeners and cleans up members.
virtual void SAL_CALL grabFocus() override
Grabs the focus to the BrowseBox.
rtl::Reference< AccessibleBrowseBoxHeaderBar > mxRowHeaderBar
The header bar for rows ("handle column").
css::uno::Reference< css::accessibility::XAccessible > implGetHeaderBar(AccessibleBrowseBoxObjType eObjType)
This method creates (once) and returns the specified header bar.
virtual OUString SAL_CALL getImplementationName() override
virtual sal_Int64 SAL_CALL getAccessibleChildCount() override
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint(const css::awt::Point &rPoint) override
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 vcl::Window * GetWindowInstance()=0
virtual tools::Rectangle GetWindowExtentsRelative(const vcl::Window &rRelativeWindow) const=0
virtual vcl::Window * GetAccessibleParentWindow() const=0
virtual sal_Int32 GetAccessibleControlCount() const=0
virtual tools::Rectangle GetWindowExtentsAbsolute() const=0
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessibleControl(sal_Int32 _nIndex)=0
virtual bool ConvertPointToControlIndex(sal_Int32 &_rnIndex, const Point &_rPoint)=0
virtual void GrabFocus()=0
inline ::tools::Rectangle VCLRectangle(const css::awt::Rectangle &rAWTRect)
inline ::Point VCLPoint(const css::awt::Point &rAWTPoint)