21 #include <osl/diagnose.h>
23 #include <com/sun/star/accessibility/IllegalAccessibleComponentStateException.hpp>
72 if ( _rxListener.is() )
73 _rxListener->disposing( EventObject( *
this ) );
77 if ( _rxListener.is() )
100 if ( !nListenerCount )
113 const Any& _rOldValue,
const Any& _rNewValue )
121 AccessibleEventObject
aEvent;
122 aEvent.Source = *
this;
123 aEvent.EventId = _nEventId;
124 aEvent.OldValue = _rOldValue;
125 aEvent.NewValue = _rNewValue;
134 return !rBHelper.bDisposed && !rBHelper.bInDispose;
141 throw DisposedException();
147 if ( !rBHelper.bDisposed )
149 OSL_ENSURE( 0 ==
m_refCount,
"OAccessibleContextHelper::ensureDisposed: this method _has_ to be called from without your dtor only!" );
187 if ( xParentContext.is() )
190 Reference< XAccessible > xCreator(
m_aCreator);
192 OSL_ENSURE( xCreator.is(),
"OAccessibleContextHelper::getAccessibleIndexInParent: invalid creator!" );
201 sal_Int32 nChildCount = xParentContext->getAccessibleChildCount();
202 for ( sal_Int32 nChild = 0; ( nChild < nChildCount ) && ( -1 == nRet ); ++nChild )
204 Reference< XAccessible > xChild( xParentContext->getAccessibleChild( nChild ) );
205 if ( xChild.get() == xCreator.get() )
213 OSL_FAIL(
"OAccessibleContextHelper::getAccessibleIndexInParent: caught an exception!" );
224 Reference< XAccessibleContext > xParentContext;
226 xParentContext = xParent->getAccessibleContext();
228 if ( !xParentContext.is() )
229 throw IllegalAccessibleComponentStateException( OUString(), *this );
231 return xParentContext->getLocale();
238 Reference< XAccessibleContext > xParentContext;
240 xParentContext = xParent->getAccessibleContext();
241 return xParentContext;
virtual ~OAccessibleContextHelper() override
AccessibleEventNotifier::TClientId m_nClientId
css::uno::Reference< css::accessibility::XAccessibleContext > implGetParentContext()
shortcut for retrieving the context of the parent (returned by getAccessibleParent) ...
void ensureDisposed()
ensures that the object is disposed.
virtual sal_Int32 SAL_CALL getAccessibleIndexInParent() override
default implementation for retrieving the index of this object within the parent
virtual void SAL_CALL acquire() SAL_NOEXCEPT SAL_OVERRIDE
virtual void SAL_CALL disposing() override
css::uno::Reference< css::accessibility::XAccessible > getAccessibleCreator() const
retrieves the creator previously set with lateInit
bool isAlive() const
checks whether the object is alive (returns then) or disposed
virtual css::lang::Locale SAL_CALL getLocale() override
default implementation for retrieving the locale
virtual void SAL_CALL addAccessibleEventListener(const css::uno::Reference< css::accessibility::XAccessibleEventListener > &xListener) override
void lateInit(const css::uno::Reference< css::accessibility::XAccessible > &_rxAccessible)
late construction
static sal_Int32 removeEventListener(const TClientId _nClient, const css::uno::Reference< css::accessibility::XAccessibleEventListener > &_rxListener)
revokes a listener for the given client
virtual void SAL_CALL removeAccessibleEventListener(const css::uno::Reference< css::accessibility::XAccessibleEventListener > &xListener) override
static void revokeClientNotifyDisposing(const TClientId _nClient, const css::uno::Reference< css::uno::XInterface > &_rxEventSource)
revokes a client, with additionally notifying a disposing event to all listeners registered for this ...
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent() override=0
static void revokeClient(const TClientId _nClient)
revokes a broadcaster of AccessibleEvents
OAccessibleContextHelper()
static SolarMutex * get()
Help components to get the SolarMutex easily.
void ensureAlive() const
checks for being alive. If the object is already disposed (i.e. not alive), an exception is thrown...
static void addEvent(const TClientId _nClient, const css::accessibility::AccessibleEventObject &_rEvent)
adds an event, which is to be broadcasted, to the queue
virtual OUString SAL_CALL getAccessibleId() override
css::uno::WeakReference< css::accessibility::XAccessible > m_aCreator
static TClientId registerClient()
registers a client of this class, means a broadcaster of AccessibleEvents
static sal_Int32 addEventListener(const TClientId _nClient, const css::uno::Reference< css::accessibility::XAccessibleEventListener > &_rxListener)
registers a listener for the given client
void NotifyAccessibleEvent(const sal_Int16 _nEventId, const css::uno::Any &_rOldValue, const css::uno::Any &_rNewValue)
notifies all AccessibleEventListeners of a certain event