20 #include <com/sun/star/accessibility/AccessibleRole.hpp>
21 #include <com/sun/star/accessibility/AccessibleEventId.hpp>
22 #include <com/sun/star/accessibility/AccessibleStateType.hpp>
23 #include <com/sun/star/accessibility/IllegalAccessibleComponentStateException.hpp>
24 #include <com/sun/star/lang/DisposedException.hpp>
25 #include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
31 #include <osl/mutex.hxx>
41 #include <svx/strings.hrc>
47 using namespace ::
cppu;
48 using namespace ::
osl;
112 Reference<XAccessible> xAccessibleShape;
117 ShapesMapType::const_iterator iter =
mxShapes.find( pObj );
122 xAccessibleShape = (*iter).second.get();
127 Reference< XShape > xShape( Reference< XShape >::query( const_cast<SdrObject*>(pObj)->getUnoShape() ) );
130 AccessibleShapeInfo aShapeInfo (xShape,xParent);
134 xAccessibleShape = pAcc.get();
142 CommitChange( AccessibleEventId::CHILD,
Any( xAccessibleShape ),
Any( Reference<XAccessible>() ) );
146 return xAccessibleShape;
160 return (rPoint.X >= 0)
161 && (rPoint.X < aSize.Width)
163 && (rPoint.Y < aSize.Height);
169 ::osl::MutexGuard aGuard(
m_aMutex );
171 Reference< XAccessible > xAccessible;
175 throw DisposedException();
178 Point aPnt( rPoint.X, rPoint.Y );
199 throw DisposedException();
205 aRet.X = aOutPos.X();
206 aRet.Y = aOutPos.Y();
207 aRet.
Width = aOutSize.Width();
208 aRet.Height = aOutSize.Height();
218 throw DisposedException();
220 const awt::Rectangle aRect(
getBounds() );
234 throw DisposedException();
236 awt::Point aScreenLoc(0, 0);
241 css::uno::Reference<css::accessibility::XAccessibleContext> xParentContext(xParent->getAccessibleContext());
242 css::uno::Reference<css::accessibility::XAccessibleComponent> xParentComponent(xParentContext, css::uno::UNO_QUERY);
243 OSL_ENSURE( xParentComponent.is(),
"ValueSetAcc::getLocationOnScreen: no parent component!" );
244 if ( xParentComponent.is() )
246 awt::Point aParentScreenLoc( xParentComponent->getLocationOnScreen() );
248 aScreenLoc.X = aParentScreenLoc.X + aOwnRelativeLoc.X;
249 aScreenLoc.Y = aParentScreenLoc.Y + aOwnRelativeLoc.Y;
261 throw DisposedException();
263 const awt::Rectangle aRect(
getBounds() );
266 aRet.Width = aRect.Width;
267 aRet.Height = aRect.Height;
278 throw DisposedException();
290 throw DisposedException();
293 throw lang::IndexOutOfBoundsException();
305 AccessibleEventObject
aEvent (
306 static_cast<uno::XWeak*>(
this),
327 throw DisposedException();
341 Reference< XAccessibleContext > xParentContext( xParent->getAccessibleContext() );
342 if( xParentContext.is() )
344 sal_Int32 nChildCount = xParentContext->getAccessibleChildCount();
345 for( sal_Int32
i = 0 ;
i < nChildCount ; ++
i )
347 Reference< XAccessible > xChild( xParentContext->getAccessibleChild(
i ) );
350 Reference< XAccessibleContext > xChildContext = xChild->getAccessibleContext();
351 if( xChildContext == static_cast<XAccessibleContext*>(
this) )
366 return AccessibleRole::PANEL;
389 return Reference< XAccessibleRelationSet >();
401 pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
405 pStateSetHelper->AddState( AccessibleStateType::FOCUSABLE );
407 pStateSetHelper->AddState( AccessibleStateType::FOCUSED );
408 pStateSetHelper->AddState( AccessibleStateType::OPAQUE );
409 pStateSetHelper->AddState( AccessibleStateType::SHOWING );
410 pStateSetHelper->AddState( AccessibleStateType::VISIBLE );
413 return pStateSetHelper;
424 Reference< XAccessibleContext > xParentContext( xParent->getAccessibleContext() );
425 if( xParentContext.is() )
426 return xParentContext->getLocale();
430 throw IllegalAccessibleComponentStateException();
454 if ( !nListenerCount )
470 throw DisposedException();
479 return static_cast<sal_Int32
>(nColor);
485 return static_cast<sal_Int32
>(nColor);
491 return "com.sun.star.comp.ui.SvxGraphCtrlAccessibleContext";
501 return {
"com.sun.star.accessibility.Accessible",
502 "com.sun.star.accessibility.AccessibleContext",
503 "com.sun.star.drawing.AccessibleGraphControl" };
509 return css::uno::Sequence<sal_Int8>();
515 return "com.sun.star.accessibility.AccessibleContext";
524 throw DisposedException();
538 throw DisposedException();
549 throw DisposedException();
560 throw DisposedException();
571 throw DisposedException();
584 Reference< XAccessible > xAccessible;
616 for(
size_t nMark = 0; nMark < nCount; ++nMark )
627 throw lang::IndexOutOfBoundsException();
677 Reference< XComponent > xComp( pAcc.get(), UNO_QUERY );
695 if (rHint.
GetId() == SfxHintId::ThisIsAnSdrHint)
710 pShape->CommitChange( AccessibleEventId::VISIBLE_DATA_CHANGED,
uno::Any(),
uno::Any() );
731 if(rHint.
GetId() == SfxHintId::Dying)
void Notify(SfxBroadcaster &aBC, const SfxHint &aHint) override
virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet() override
Return empty reference to indicate that the relation set is not supported.
void UnmarkAllObj(SdrPageView const *pPV=nullptr)
SdrHintKind GetKind() const
size_t GetMarkCount() const
virtual sal_Bool SAL_CALL supportsService(const OUString &sServiceName) override
SvxGraphCtrlAccessibleContext(GraphCtrl &rRepresentation)
initialize this component and set default values
sal_uInt32 mnClientId
client id in the AccessibleEventNotifier queue
virtual a11yref get_accessible_parent()=0
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext() override
Return the XAccessibleContext.
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent() override
virtual void SAL_CALL addAccessibleEventListener(const css::uno::Reference< css::accessibility::XAccessibleEventListener > &xListener) override
virtual sal_Int32 SAL_CALL getAccessibleIndexInParent() override
const StyleSettings & GetStyleSettings() const
static const AllSettings & GetSettings()
virtual sal_Int32 SAL_CALL getAccessibleChildCount() override
SdrObject * GetObj(size_t nNum) const
size_t GetObjCount() const
virtual css::lang::Locale SAL_CALL getLocale() override
mutable::osl::Mutex m_aMutex
SdrMark * GetMark(size_t nNum) const
OUString msName
Name of this object.
virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet() override
virtual void SAL_CALL grabFocus() override
virtual css::awt::Rectangle SAL_CALL getBounds() override
constexpr tools::Long Width() const
tools::Rectangle GetVisibleArea() const
virtual OUString SAL_CALL getImplementationName() override
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild(sal_Int32 nIndex) override
OUString SvxResId(TranslateId aId)
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)
Point GetPositionInDialog() const
virtual tools::Rectangle GetVisibleArea() const override
Returns the area of the underlying document that is visible in the corresponding window.
virtual void SAL_CALL removeAccessibleEventListener(const css::uno::Reference< css::accessibility::XAccessibleEventListener > &xListener) override
virtual css::awt::Size SAL_CALL getSize() override
OUString msDescription
Description of this object.
virtual OutputDevice & get_ref_device()=0
virtual ~SvxGraphCtrlAccessibleContext() override
on destruction, this component is disposed and all dispose listeners are called, except if this compo...
void CommitChange(sal_Int16 aEventId, const css::uno::Any &rNewValue, const css::uno::Any &rOldValue)
sends an AccessibleEventObject to all added XAccessibleEventListeners
sal_uInt32 PaintWindowCount() const
SdrObject * SdrObjListPrimitiveHit(const SdrObjList &rList, const Point &rPnt, sal_uInt16 nTol, const SdrPageView &rSdrPageView, const SdrLayerIDSet *pVisiLayer, bool bTextOnly)
SdrObject * GetMarkedSdrObj() const
void MarkAllObj(SdrPageView *pPV=nullptr)
SdrObject * getSdrObject(sal_Int32 nIndex)
returns the SdrObject at index nIndex from the model of this graph
virtual OUString SAL_CALL getAccessibleName() override
virtual void SAL_CALL deselectAccessibleChild(sal_Int32 nSelectedChildIndex) override
static sal_Int32 removeEventListener(const TClientId _nClient, const css::uno::Reference< css::accessibility::XAccessibleEventListener > &_rxListener)
void SetWindow(vcl::Window *pWindow)
Set the window that is used to construct SvxTextEditSources which in turn is used to create accessibl...
const SdrMarkList & GetMarkedObjectList() const
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild(sal_Int32 nSelectedChildIndex) override
const SdrPage * GetPage(sal_uInt16 nPgNum) const
constexpr std::enable_if_t< std::is_signed_v< T >, std::make_unsigned_t< T > > make_unsigned(T value)
SdrView * GetSdrView() const
virtual OUString SAL_CALL getServiceName() override
SdrModel * GetSdrModel() const
virtual OUString SAL_CALL getAccessibleDescription() override
virtual sal_Int32 SAL_CALL getBackground() override
static void revokeClientNotifyDisposing(const TClientId _nClient, const css::uno::Reference< css::uno::XInterface > &_rxEventSource)
virtual sal_Bool SAL_CALL containsPoint(const css::awt::Point &rPoint) override
void SetViewForwarder(const IAccessibleViewForwarder *pViewForwarder)
The view forwarder allows the transformation between internal and pixel coordinates and can be asked ...
SAL_WARN_UNUSED_RESULT Point PixelToLogic(const Point &rDevicePt) const
SAL_WARN_UNUSED_RESULT Point LogicToPixel(const Point &rLogicPt) const
virtual void SAL_CALL clearAccessibleSelection() override
static void revokeClient(const TClientId _nClient)
void checkChildIndexOnSelection(tools::Long nIndexOfChild)
virtual css::awt::Point SAL_CALL getLocationOnScreen() override
virtual sal_Int32 SAL_CALL getForeground() override
virtual void SAL_CALL selectAllAccessibleChildren() override
virtual void SAL_CALL selectAccessibleChild(sal_Int32 nChildIndex) override
virtual css::awt::Point SAL_CALL getLocation() override
virtual void SAL_CALL disposing() final override
const Color & GetWindowColor() const
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override
SdrPageView * GetSdrPageView() const
css::uno::Reference< css::accessibility::XAccessible > getAccessible(const SdrObject *pObj)
returns the XAccessible interface for a given SdrObject.
bool MarkObj(const Point &rPnt, short nTol=-2, bool bToggle=false, bool bDeep=false)
static void addEvent(const TClientId _nClient, const css::accessibility::AccessibleEventObject &_rEvent)
static TClientId registerClient()
virtual vcl::Window * GetOwnerWindow() const
virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount() override
void setModelAndView(SdrModel *pModel, SdrView *pView)
This method is used by the graph control to tell the accessibility object about a new model and view...
virtual Point LogicToPixel(const Point &rPoint) const override
Transform the specified point from internal coordinates in 100th of mm to an absolute screen position...
SdrPaintWindow * GetPaintWindow(sal_uInt32 nIndex) const
void SetSdrView(SdrView *pView)
Set the view that will be used to construct SvxTextEditSources which in turn are used to create acces...
virtual sal_Bool SAL_CALL isAccessibleChildSelected(sal_Int32 nChildIndex) override
virtual sal_Int16 SAL_CALL getAccessibleRole() override
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint(const css::awt::Point &rPoint) override
static sal_Int32 addEventListener(const TClientId _nClient, const css::uno::Reference< css::accessibility::XAccessibleEventListener > &_rxListener)
bool m_bDetectedRangeSegmentation false
::accessibility::AccessibleShapeTreeInfo maTreeInfo
bool IsObjMarked(SdrObject const *pObj) const
const SdrObject * GetObject() const