28#include <com/sun/star/accessibility/AccessibleEventId.hpp>
29#include <com/sun/star/accessibility/AccessibleRole.hpp>
30#include <com/sun/star/accessibility/AccessibleStateType.hpp>
31#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
51 mxAcc->ParentDestroyed();
65 mbIsTransientChildrenDisabled( bIsTransientChildrenDisabled )
75 std::scoped_lock aGuard(
maMutex );
100 throw lang::IndexOutOfBoundsException();
107 uno::Reference< accessibility::XAccessible > xRet;
121 sal_Int64 nIndexInParent = -1;
129 for (sal_uInt16
i=0;
i<
nCount && !bDone;
i++)
137 catch (
const lang::IndexOutOfBoundsException&)
143 if (pItem !=
nullptr && pItem->
mxAcc.is())
161 return nIndexInParent;
167 return accessibility::AccessibleRole::LIST_ITEM;
184 return "Item " + OUString::number(
static_cast<sal_Int32
>(
mpParent->
mnId));
195 return uno::Reference< accessibility::XAccessibleRelationSet >();
202 sal_Int64 nStateSet = 0;
206 nStateSet |= accessibility::AccessibleStateType::ENABLED;
207 nStateSet |= accessibility::AccessibleStateType::SENSITIVE;
208 nStateSet |= accessibility::AccessibleStateType::SHOWING;
209 nStateSet |= accessibility::AccessibleStateType::VISIBLE;
211 nStateSet |= accessibility::AccessibleStateType::TRANSIENT;
213 nStateSet |= accessibility::AccessibleStateType::SELECTABLE;
214 nStateSet |= accessibility::AccessibleStateType::FOCUSABLE;
219 nStateSet |= accessibility::AccessibleStateType::SELECTED;
221 nStateSet |= accessibility::AccessibleStateType::FOCUSED;
233 lang::Locale aRet(
"",
"",
"" );
237 uno::Reference< accessibility::XAccessibleContext > xParentContext( xParent->getAccessibleContext() );
239 if( xParentContext.is() )
240 aRet = xParentContext->getLocale();
249 std::scoped_lock aGuard(
maMutex );
251 if( !rxListener.is() )
258 if(eventListener == rxListener)
272 std::scoped_lock aGuard(
maMutex );
274 if( rxListener.is() )
276 ::std::vector< uno::Reference< accessibility::XAccessibleEventListener > >::iterator aIter =
287 const awt::Rectangle aRect(
getBounds() );
288 const Point aSize( aRect.Width, aRect.Height );
289 const Point aNullPoint, aTestPoint( aPoint.X, aPoint.Y );
296 uno::Reference< accessibility::XAccessible > xRet;
312 aRet.X = aRect.
Left();
313 aRet.Y = aRect.
Top();
323 const awt::Rectangle aRect(
getBounds() );
342 aRet.X = aPos.
X() + aScreenPos.
X();
343 aRet.Y = aPos.
Y() + aScreenPos.
Y();
351 const awt::Rectangle aRect(
getBounds() );
354 aRet.Width = aRect.Width;
355 aRet.Height = aRect.Height;
368 return static_cast<sal_Int32
>(nColor);
378 return static_cast<sal_Int32
>(nColor);
386 ::std::vector< uno::Reference< accessibility::XAccessibleEventListener > > aTmpListeners(
mxEventListeners );
387 accessibility::AccessibleEventObject aEvtObject;
389 aEvtObject.EventId = nEventId;
390 aEvtObject.Source = getXWeak();
391 aEvtObject.NewValue = rNewValue;
392 aEvtObject.OldValue = rOldValue;
394 for (
auto const& tmpListener : aTmpListeners)
396 tmpListener->notifyEvent( aEvtObject );
417 ::std::vector< uno::Reference< accessibility::XAccessibleEventListener > > aTmpListeners(
mxEventListeners );
418 accessibility::AccessibleEventObject aEvtObject;
420 aEvtObject.EventId = nEventId;
421 aEvtObject.Source = getXWeak();
422 aEvtObject.NewValue = rNewValue;
423 aEvtObject.OldValue = rOldValue;
424 aEvtObject.IndexHint = -1;
426 for (
auto const& tmpListener : aTmpListeners)
430 tmpListener->notifyEvent( aEvtObject );
432 catch(
const uno::Exception&)
450 css::uno::Any aOldState, aNewState;
451 aNewState <<= css::accessibility::AccessibleStateType::FOCUSED;
453 css::accessibility::AccessibleEventId::STATE_CHANGED,
454 aOldState, aNewState);
463 css::uno::Any aOldState, aNewState;
464 aOldState <<= css::accessibility::AccessibleStateType::FOCUSED;
466 css::accessibility::AccessibleEventId::STATE_CHANGED,
467 aOldState, aNewState);
496 throw lang::IndexOutOfBoundsException();
501 throw lang::IndexOutOfBoundsException();
503 uno::Reference< accessibility::XAccessible > xRet = pItem->
GetAccessible(
false );
528 uno::Reference<accessibility::XAccessibleContext> xParentContext(xParent->getAccessibleContext());
531 if ( xParentContext.is() )
533 sal_Int64 nChildCount = xParentContext->getAccessibleChildCount();
534 for ( sal_Int64 nChild = 0; ( nChild < nChildCount ) && ( -1 == nRet ); ++nChild )
536 uno::Reference<XAccessible> xChild(xParentContext->getAccessibleChild(nChild));
537 if ( xChild.get() ==
this )
542 catch (
const uno::Exception&)
553 return accessibility::AccessibleRole::LIST;
596 sal_Int64 nStateSet = 0;
599 nStateSet |= accessibility::AccessibleStateType::ENABLED;
600 nStateSet |= accessibility::AccessibleStateType::SENSITIVE;
601 nStateSet |= accessibility::AccessibleStateType::SHOWING;
602 nStateSet |= accessibility::AccessibleStateType::VISIBLE;
603 nStateSet |= accessibility::AccessibleStateType::MANAGES_DESCENDANTS;
604 nStateSet |= accessibility::AccessibleStateType::FOCUSABLE;
606 nStateSet |= accessibility::AccessibleStateType::FOCUSED;
617 lang::Locale aRet(
"",
"",
"" );
621 uno::Reference< accessibility::XAccessibleContext > xParentContext( xParent->getAccessibleContext() );
623 if( xParentContext.is() )
624 aRet = xParentContext->getLocale ();
636 if( !rxListener.is() )
643 if(eventListener == rxListener)
660 if( rxListener.is() )
662 ::std::vector< uno::Reference< accessibility::XAccessibleEventListener > >::iterator aIter =
674 const awt::Rectangle aRect(
getBounds() );
675 const Point aSize( aRect.Width, aRect.Height );
676 const Point aNullPoint, aTestPoint( aPoint.X, aPoint.Y );
687 uno::Reference< accessibility::XAccessible > xRet;
712 aRet.X = aOutPos.
X();
713 aRet.Y = aOutPos.
Y();
714 aRet.Width = aOutSize.
Width();
715 aRet.Height = aOutSize.
Height();
723 const awt::Rectangle aRect(
getBounds() );
736 awt::Point aScreenLoc(0, 0);
741 uno::Reference<accessibility::XAccessibleContext> xParentContext(xParent->getAccessibleContext());
742 uno::Reference<accessibility::XAccessibleComponent> xParentComponent(xParentContext, css::uno::UNO_QUERY);
743 OSL_ENSURE( xParentComponent.is(),
"ValueSetAcc::getLocationOnScreen: no parent component!" );
744 if ( xParentComponent.is() )
746 awt::Point aParentScreenLoc( xParentComponent->getLocationOnScreen() );
748 aScreenLoc.X = aParentScreenLoc.X + aOwnRelativeLoc.X;
749 aScreenLoc.Y = aParentScreenLoc.Y + aOwnRelativeLoc.Y;
759 const awt::Rectangle aRect(
getBounds() );
762 aRet.Width = aRect.Width;
763 aRet.Height = aRect.Height;
779 return static_cast<sal_Int32
>(nColor);
786 return static_cast<sal_Int32
>(nColor);
795 throw lang::IndexOutOfBoundsException();
800 throw lang::IndexOutOfBoundsException();
812 throw lang::IndexOutOfBoundsException();
816 if (pItem ==
nullptr)
817 throw lang::IndexOutOfBoundsException();
861 uno::Reference< accessibility::XAccessible > xRet;
881 throw lang::IndexOutOfBoundsException();
893 ::std::vector<uno::Reference<accessibility::XAccessibleEventListener> > aListenerListCopy = std::move(
mxEventListeners);
899 if (aListenerListCopy.empty())
904 lang::EventObject
aEvent (
static_cast<accessibility::XAccessible*
>(
this));
905 for (
auto const& listenerCopy : aListenerListCopy)
909 listenerCopy->disposing (
aEvent);
911 catch(
const uno::Exception&)
942 if (pItem ==
nullptr)
953 SAL_WARN(
"svx",
"Calling disposed object. Throwing exception:");
954 throw lang::DisposedException (
955 "object has been already disposed",
966 assert(
mpParent &&
"ValueSetAcc::HasNoneField called with mpParent==NULL");
BaseContainerNodeSharedPtr & mrParent
const StyleSettings & GetStyleSettings() const
static const AllSettings & GetSettings()
constexpr tools::Long Y() const
constexpr tools::Long X() const
constexpr tools::Long Height() const
constexpr tools::Long Width() const
const Color & GetWindowColor() const
const Color & GetWindowTextColor() const
virtual void SAL_CALL addAccessibleEventListener(const css::uno::Reference< css::accessibility::XAccessibleEventListener > &xListener) override
virtual ~ValueItemAcc() override
virtual sal_Int32 SAL_CALL getBackground() override
virtual sal_Int64 SAL_CALL getAccessibleStateSet() override
virtual sal_Int32 SAL_CALL getForeground() override
virtual css::awt::Rectangle SAL_CALL getBounds() override
static ValueItemAcc * getImplementation(const css::uno::Reference< css::uno::XInterface > &rxData) noexcept
ValueItemAcc(ValueSetItem *pParent, bool bIsTransientChildrenDisabled)
virtual OUString SAL_CALL getAccessibleDescription() override
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent() override
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint(const css::awt::Point &aPoint) override
virtual void SAL_CALL grabFocus() override
virtual void SAL_CALL removeAccessibleEventListener(const css::uno::Reference< css::accessibility::XAccessibleEventListener > &xListener) override
void FireAccessibleEvent(short nEventId, const css::uno::Any &rOldValue, const css::uno::Any &rNewValue)
virtual css::awt::Size SAL_CALL getSize() override
virtual css::awt::Point SAL_CALL getLocation() override
virtual sal_Int64 SAL_CALL getAccessibleChildCount() override
virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet() override
bool mbIsTransientChildrenDisabled
virtual sal_Bool SAL_CALL containsPoint(const css::awt::Point &aPoint) override
virtual OUString SAL_CALL getAccessibleName() override
virtual sal_Int16 SAL_CALL getAccessibleRole() override
virtual css::awt::Point SAL_CALL getLocationOnScreen() override
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext() override
virtual css::lang::Locale SAL_CALL getLocale() override
::std::vector< css::uno::Reference< css::accessibility::XAccessibleEventListener > > mxEventListeners
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild(sal_Int64 i) override
virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override
virtual sal_Int64 SAL_CALL getAccessibleChildCount() override
virtual sal_Int32 SAL_CALL getBackground() override
virtual css::awt::Point SAL_CALL getLocation() override
virtual css::awt::Size SAL_CALL getSize() override
virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet() override
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext() override
virtual ~ValueSetAcc() override
bool mbIsFocused
The current FOCUSED state.
virtual void disposing(std::unique_lock< std::mutex > &) override
Tell all listeners that the object is dying.
virtual sal_Int16 SAL_CALL getAccessibleRole() override
static ValueSetAcc * getImplementation(const css::uno::Reference< css::uno::XInterface > &rxData) noexcept
virtual void SAL_CALL removeAccessibleEventListener(const css::uno::Reference< css::accessibility::XAccessibleEventListener > &xListener) override
void GetFocus()
Called by the corresponding ValueSet when it gets the focus.
::std::vector< css::uno::Reference< css::accessibility::XAccessibleEventListener > > mxEventListeners
virtual OUString SAL_CALL getAccessibleDescription() override
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent() override
virtual void SAL_CALL clearAccessibleSelection() override
void LoseFocus()
Called by the corresponding ValueSet when it loses the focus.
virtual sal_Int64 SAL_CALL getAccessibleStateSet() override
bool HasNoneField() const
Check whether the value set has a 'none' field, i.e.
ValueSetAcc(ValueSet *pParent)
virtual OUString SAL_CALL getAccessibleName() override
virtual void SAL_CALL selectAccessibleChild(sal_Int64 nChildIndex) override
virtual css::lang::Locale SAL_CALL getLocale() override
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild(sal_Int64 nSelectedChildIndex) override
virtual void SAL_CALL selectAllAccessibleChildren() override
virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override
virtual css::awt::Rectangle SAL_CALL getBounds() override
virtual sal_Bool SAL_CALL isAccessibleChildSelected(sal_Int64 nChildIndex) override
virtual sal_Int64 SAL_CALL getSelectedAccessibleChildCount() override
virtual sal_Bool SAL_CALL containsPoint(const css::awt::Point &aPoint) override
virtual void SAL_CALL addAccessibleEventListener(const css::uno::Reference< css::accessibility::XAccessibleEventListener > &xListener) override
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild(sal_Int64 i) override
virtual void SAL_CALL deselectAccessibleChild(sal_Int64 nSelectedChildIndex) override
virtual void SAL_CALL grabFocus() override
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint(const css::awt::Point &aPoint) override
void FireAccessibleEvent(short nEventId, const css::uno::Any &rOldValue, const css::uno::Any &rNewValue)
void ThrowIfDisposed()
Check whether or not the object has been disposed (or is in the state of being disposed).
virtual sal_Int32 SAL_CALL getForeground() override
virtual css::awt::Point SAL_CALL getLocationOnScreen() override
ValueSetItem * getItem(sal_uInt16 nIndex) const
Return the item associated with the given index.
sal_uInt16 getItemCount() const
Return the number of items.
void SelectItem(sal_uInt16 nItemId)
sal_uInt16 GetSelectedItemId() const
css::uno::Reference< css::accessibility::XAccessible > mxAccessible
SVT_DLLPRIVATE size_t ImplGetItem(const Point &rPoint) const
SVT_DLLPRIVATE sal_uInt16 ImplGetVisibleItemCount() const
bool IsItemSelected(sal_uInt16 nItemId) const
tools::Rectangle GetItemRect(sal_uInt16 nItemId) const
size_t GetItemPos(sal_uInt16 nItemId) const
sal_uInt16 GetItemId(size_t nPos) const
virtual a11yrelationset get_accessible_relation_set()=0
virtual a11yref get_accessible_parent()=0
virtual Point get_accessible_location_on_screen()=0
#define DBG_ASSERT(sCon, aError)
#define TOOLS_WARN_EXCEPTION(area, stream)
RegionData_Impl * mpParent
#define SAL_WARN(area, stream)
css::uno::Reference< css::linguistic2::XProofreadingIterator > get(css::uno::Reference< css::uno::XComponentContext > const &context)
ValueSetItem(ValueSet &rParent)
css::uno::Reference< css::accessibility::XAccessible > GetAccessible(bool bIsTransientChildrenDisabled)
rtl::Reference< ValueItemAcc > mxAcc
#define VALUESET_ITEM_NONEITEM