class SwAccessibleContext : public ::cppu::WeakImplHelper<
css::accessibility::XAccessible,
css::accessibility::XAccessibleContext,
css::accessibility::XAccessibleContext3,
css::accessibility::XAccessibleComponent,
css::accessibility::XAccessibleEventBroadcaster,
css::lang::XServiceInfo
>, public SwAccessibleFrame
{ // The implements for the XAccessibleSelection interface has been // 'externalized' and wants access to the protected members like // GetMap, GetChild, GetParent, and GetFrame. friendclass SwAccessibleSelectionHelper; #if OSL_DEBUG_LEVEL > 0 friendclass SwAccessibleMap; #endif
// The parent if it has been retrieved. (protected by Mutex)
unotools::WeakReference< SwAccessibleContext > m_xWeakParent;
SwAccessibleMap *m_pMap; // must be protected by solar mutex /// note: the m_pMap is guaranteed to be valid until we hit the /// dtor ~SwAccessibleContext, then m_wMap must be checked if it's still /// alive, after locking SolarMutex (alternatively, Dispose clears m_pMap)
std::weak_ptr<SwAccessibleMap> m_wMap;
sal_uInt32 m_nClientId; // client id in the AccessibleEventNotifier queue
sal_Int16 m_nRole; // immutable outside constructor
// The current states (protected by mutex) bool m_isShowingState : 1; bool m_isEditableState : 1; bool m_isOpaqueState : 1; bool m_isDefuncState : 1;
// Are we currently disposing that object (protected by solar mutex)? bool m_isDisposing : 1;
// #i85634# - boolean, indicating if the accessible context is // in general registered at the accessible map. bool m_isRegisteredAtAccessibleMap;
protected: void SetName( const OUString& rName ) { m_sName = rName; }
sal_Int16 GetRole() const
{ return m_nRole;
} //This flag is used to mark the object's selected state. bool m_isSelectedInDoc; void SetParent( SwAccessibleContext *pParent );
rtl::Reference<SwAccessibleContext> GetWeakParent() const;
/** convenience method to get the SwViewShell through accessibility map */
SwViewShell& GetShell()
{ return GetMap()->GetShell();
} const SwViewShell& GetShell() const
{ return GetMap()->GetShell();
}
/** convenience method to get SwCursorShell through accessibility map
* @returns SwCursorShell, or NULL if none is found */
SwCursorShell* GetCursorShell(); const SwCursorShell* GetCursorShell() const;
// Notify all children that the visible area has changed. // The SwFrame might belong to the current object or to any other child or // grandchild. void ChildrenScrolled( const SwFrame *pFrame, const SwRect& rOldVisArea );
// The context's showing state changed. May only be called for context that // exist even if they aren't visible. void Scrolled( const SwRect& rOldVisArea );
// A child has been moved while setting the visible area void ScrolledWithin( const SwRect& rOldVisArea );
// The has been added while setting the visible area void ScrolledIn();
// The context has to be removed while setting the visible area void ScrolledOut( const SwRect& rOldVisArea );
// Invalidate the states of all children of the specified SwFrame. The // SwFrame might belong the current object or to any child or grandchild! // #i27301# - use new type definition for <_nStates> void InvalidateChildrenStates( const SwFrame* _pFrame,
AccessibleStates _nStates );
// Dispose children of the specified SwFrame. The SwFrame might belong to // the current object or to any other child or grandchild. void DisposeChildren(const SwFrame *pFrame, bool bRecursive, bool bCanSkipInvisible);
// Set states for getAccessibleStateSet. // This base class sets DEFUNC(0/1), EDITABLE(0/1), ENABLED(1), // SHOWING(0/1), OPAQUE(0/1) and VISIBLE(1). virtualvoid GetStates( sal_Int64& rStateSet );
// Return the XAccessibleContext. virtual css::uno::Reference< css::accessibility::XAccessibleContext> SAL_CALL
getAccessibleContext() override;
// XAccessibleContext
// Return the number of currently visible children. virtual sal_Int64 SAL_CALL getAccessibleChildCount() override;
// Return the specified child or NULL if index is invalid. virtual css::uno::Reference< css::accessibility::XAccessible> SAL_CALL
getAccessibleChild (sal_Int64 nIndex) override;
// getImplementationName() and getSupportedServiceNames are abstract
/** Return whether the specified service is supported by this class. */ virtual sal_Bool SAL_CALL
supportsService (const OUString& sServiceName) override;
// thread safe C++ interface
// The object is not visible any longer and should be destroyed virtualvoid Dispose(bool bRecursive, bool bCanSkipInvisible = true);
// The child object is not visible any longer and should be destroyed virtualvoid DisposeChild(const sw::access::SwAccessibleChild& rFrameOrObj, bool bRecursive, bool bCanSkipInvisible);
// The object has been moved by the layout virtualvoid InvalidatePosOrSize( const SwRect& rFrame );
// The child object has been moved by the layout virtualvoid InvalidateChildPosOrSize( const sw::access::SwAccessibleChild& rFrameOrObj, const SwRect& rFrame );
// The content may have changed (but it hasn't to have changed) void InvalidateContent();
// The caretPos has changed void InvalidateCursorPos();
// The Focus state has changed void InvalidateFocus();
// Check states // #i27301# - use new type definition for <_nStates> void InvalidateStates( AccessibleStates _nStates );
// the XAccessibleRelationSet may have changed void InvalidateRelation( sal_uInt16 nType );
void InvalidateTextSelection(); // #i27301# - text selection has changed void InvalidateAttr(); // #i88069# - attributes has changed
bool HasAdditionalAccessibleChildren();
// #i88070# - get additional child by index
vcl::Window* GetAdditionalAccessibleChild( const sal_Int32 nIndex );
// #i88070# - get all additional accessible children
std::vector<vcl::Window*> GetAdditionalAccessibleChildren();
//This method is used to update the selected state and fire the selected state changed event. virtualbool SetSelectedState(bool bSelected); bool IsSelectedInDoc() const { return m_isSelectedInDoc; }
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.