29#include <com/sun/star/accessibility/AccessibleRole.hpp>
30#include <com/sun/star/accessibility/AccessibleStateType.hpp>
31#include <com/sun/star/accessibility/IllegalAccessibleComponentStateException.hpp>
35using ::com::sun::star::uno::Sequence;
36using ::com::sun::star::uno::Any;
47using namespace com::sun::star::accessibility::AccessibleStateType;
51 css::uno::Reference< css::accessibility::XAccessible > xParent,
55 m_xParent(
std::move( xParent )),
57 m_eObjType( eObjType ),
106 css::uno::Reference< uno::XInterface > xMeMyselfAndI(
static_cast< css::accessibility::XAccessibleContext*
>(
this ), uno::UNO_QUERY );
111 css::uno::Reference< css::accessibility::XAccessibleContext >
112 xParentContext(
m_xParent->getAccessibleContext() );
113 if( xParentContext.is() )
115 css::uno::Reference< uno::XInterface > xChild;
117 sal_Int64 nChildCount = xParentContext->getAccessibleChildCount();
118 for( sal_Int64 nChild = 0; nChild < nChildCount; ++nChild )
120 xChild.set(xParentContext->getAccessibleChild( nChild ), css::uno::UNO_QUERY);
121 if ( xMeMyselfAndI.get() == xChild.get() )
148css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL
174 css::uno::Reference< css::accessibility::XAccessibleContext >
175 xParentContext(
m_xParent->getAccessibleContext() );
176 if( xParentContext.is() )
177 return xParentContext->getLocale();
179 throw IllegalAccessibleComponentStateException();
212 const css::uno::Reference< css::accessibility::XAccessibleEventListener>& _rxListener )
214 if ( _rxListener.is() )
226 const css::uno::Reference< css::accessibility::XAccessibleEventListener>& _rxListener )
234 if ( !nListenerCount )
250 return css::uno::Sequence<sal_Int8>();
256 const OUString& rServiceName )
263 return {
"com.sun.star.accessibility.AccessibleContext" };
269 bool bShowing =
false;
272 css::uno::Reference< css::accessibility::XAccessibleComponent >
273 xParentComp(
m_xParent->getAccessibleContext(), uno::UNO_QUERY );
274 if( xParentComp.is() )
283 sal_Int64 nStateSet = 0;
289 nStateSet |= AccessibleStateType::SHOWING;
294 nStateSet |= AccessibleStateType::DEFUNC;
303 return !rBHelper.bDisposed && !rBHelper.bInDispose;
309 throw lang::DisposedException();
317 if ( aRect.
Left() == 0 && aRect.
Top() == 0 && aRect.
Right() == 0 && aRect.
Bottom() == 0 )
319 SAL_WARN(
"accessibility",
"rectangle doesn't exist" );
329 if ( aRect.
Left() == 0 && aRect.
Top() == 0 && aRect.
Right() == 0 && aRect.
Bottom() == 0 )
331 SAL_WARN(
"accessibility",
"rectangle doesn't exist" );
337 sal_Int16 _nEventId,
const Any& _rNewValue,
const Any& _rOldValue )
347 AccessibleEventObject
aEvent(*
this, _nEventId, _rNewValue, _rOldValue, -1);
357 sal_Int16 nRole = AccessibleRole::UNKNOWN;
361 nRole = AccessibleRole::ROW_HEADER;
364 nRole = AccessibleRole::COLUMN_HEADER;
369 nRole = AccessibleRole::TABLE;
372 nRole = AccessibleRole::TABLE_CELL;
375 nRole = AccessibleRole::PANEL;
408 return sal_Int32(nColor);
425 return sal_Int32(nColor);
const Color & GetColor() const
The GridControl accessible objects inherit from this base class.
css::uno::Reference< css::accessibility::XAccessible > m_xParent
The parent accessible object.
::vcl::table::IAccessibleTable & m_aTable
The SVT Table control.
virtual OUString SAL_CALL getAccessibleDescription() override
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override
virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override
virtual void commitEvent(sal_Int16 nEventId, const css::uno::Any &rNewValue, const css::uno::Any &rOldValue)
Commits an event to all listeners.
tools::Rectangle getBoundingBoxOnScreen()
** Locks all mutex's and calculates the bounding box in screen
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent() override
virtual void SAL_CALL removeAccessibleEventListener(const css::uno::Reference< css::accessibility::XAccessibleEventListener > &rxListener) override
Removes an event listener.
virtual css::awt::Rectangle SAL_CALL getBounds() override
virtual css::lang::Locale SAL_CALL getLocale() override
virtual css::awt::Point SAL_CALL getLocation() override
virtual ~AccessibleGridControlBase() override
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
bool implIsShowing()
Determines whether the Grid control is really showing inside of its parent accessible window.
virtual tools::Rectangle implGetBoundingBoxOnScreen()=0
** Derived classes return the bounding box in screen coordinates.
AccessibleGridControlBase(css::uno::Reference< css::accessibility::XAccessible > xParent, ::vcl::table::IAccessibleTable &rTable, ::vcl::table::AccessibleTableControlObjType eObjType)
Constructor.
virtual OUString SAL_CALL getAccessibleName() override
virtual sal_Int64 implCreateStateSet()
Creates a bitset of states of the current object.
virtual css::awt::Size SAL_CALL getSize() override
virtual void SAL_CALL disposing() override
Commits DeFunc event to listeners and cleans up members.
void setClientId(::comphelper::AccessibleEventNotifier::TClientId _aNewClientId)
inline ::vcl::table::AccessibleTableControlObjType getType() const
virtual sal_Int32 SAL_CALL getForeground() override
virtual sal_Int64 SAL_CALL getAccessibleStateSet() override
virtual void SAL_CALL addAccessibleEventListener(const css::uno::Reference< css::accessibility::XAccessibleEventListener > &rxListener) override
Adds a new event listener.
::comphelper::AccessibleEventNotifier::TClientId getClientId() const
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint(const css::awt::Point &rPoint) override
void ensureIsAlive() const
virtual sal_Bool SAL_CALL containsPoint(const css::awt::Point &rPoint) override
virtual css::awt::Point SAL_CALL getLocationOnScreen() override
tools::Rectangle getBoundingBox()
Locks all mutex's and calculates the bounding box relative to the parent window.
virtual sal_Bool SAL_CALL supportsService(const OUString &rServiceName) override
virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet() override
virtual tools::Rectangle implGetBoundingBox()=0
Derived classes return the bounding box relative to the parent window.
::vcl::table::AccessibleTableControlObjType m_eObjType
The type of this object (for names, descriptions, state sets, ...).
virtual sal_Int16 SAL_CALL getAccessibleRole() override
virtual sal_Int32 SAL_CALL getBackground() override
GridControlAccessibleElement(const css::uno::Reference< css::accessibility::XAccessible > &rxParent, ::vcl::table::IAccessibleTable &rTable, ::vcl::table::AccessibleTableControlObjType eObjType)
Constructor sets specified name and description.
virtual ~GridControlAccessibleElement() override
static sal_Int32 addEventListener(const TClientId _nClient, const css::uno::Reference< css::accessibility::XAccessibleEventListener > &_rxListener)
static void addEvent(const TClientId _nClient, const css::accessibility::AccessibleEventObject &_rEvent)
static sal_Int32 removeEventListener(const TClientId _nClient, const css::uno::Reference< css::accessibility::XAccessibleEventListener > &_rxListener)
static TClientId registerClient()
static void revokeClient(const TClientId _nClient)
static void revokeClientNotifyDisposing(const TClientId _nClient, const css::uno::Reference< css::uno::XInterface > &_rxEventSource)
mutable::osl::Mutex m_aMutex
const Color & GetColor() const
const Wallpaper & GetBackground() const
bool IsControlFont() const
const Color & GetControlForeground() const
bool IsControlForeground() const
vcl::Font GetControlFont() const
const vcl::Font & GetFont() const
bool IsControlBackground() const
const Color & GetControlBackground() const
virtual OUString GetAccessibleObjectDescription(AccessibleTableControlObjType eObjType) const=0
virtual vcl::Window * GetWindowInstance()=0
virtual void FillAccessibleStateSet(sal_Int64 &rStateSet, AccessibleTableControlObjType eObjType) const=0
virtual OUString GetAccessibleObjectName(AccessibleTableControlObjType eObjType, sal_Int32 _nRow, sal_Int32 _nCol) const=0
css::awt::Size AWTSize(const Size &rVCLSize)
css::awt::Point AWTPoint(const ::Point &rVCLPoint)
css::awt::Rectangle AWTRectangle(const ::tools::Rectangle &rVCLRect)
inline ::tools::Rectangle VCLRectangle(const css::awt::Rectangle &rAWTRect)
inline ::Point VCLPoint(const css::awt::Point &rAWTPoint)
#define SAL_WARN(area, stream)
::cppu::WeakComponentImplHelper< css::accessibility::XAccessibleContext, css::accessibility::XAccessibleComponent, css::accessibility::XAccessibleEventBroadcaster, css::lang::XServiceInfo > AccessibleGridControlImplHelper
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)
IMPLEMENT_FORWARD_XTYPEPROVIDER2(ChildWindowPane, ChildWindowPaneInterfaceBase, Pane)
IMPLEMENT_FORWARD_XINTERFACE2(ChildWindowPane, ChildWindowPaneInterfaceBase, Pane)
AccessibleTableControlObjType