23#include <com/sun/star/awt/Rectangle.hpp>
25#include <com/sun/star/accessibility/AccessibleEventId.hpp>
26#include <com/sun/star/accessibility/AccessibleRole.hpp>
27#include <com/sun/star/accessibility/AccessibleStateType.hpp>
28#include <com/sun/star/datatransfer/clipboard/XClipboard.hpp>
29#include <com/sun/star/datatransfer/clipboard/XFlushableClipboard.hpp>
30#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
44 void checkIndex_Impl( sal_Int32 _nIndex, std::u16string_view _sText )
46 if ( _nIndex < 0 || _nIndex >
static_cast<sal_Int32
>(_sText.size()) )
47 throw css::lang::IndexOutOfBoundsException();
64 , m_nIndexInParent(_nIndexInParent)
68 , m_xParent(
std::move(_xParent))
83 aOldValue <<= AccessibleStateType::SELECTED;
85 aNewValue <<= AccessibleStateType::SELECTED;
95 Any aOldValue, aNewValue;
97 (_bVisible ? aNewValue : aOldValue ) <<= AccessibleStateType::VISIBLE;
99 (_bVisible ? aNewValue : aOldValue ) <<= AccessibleStateType::SHOWING;
105 const css::uno::Any& _aOldValue,
106 const css::uno::Any& _aNewValue )
108 AccessibleEventObject aEvt;
110 aEvt.EventId = _nEventId;
111 aEvt.OldValue = _aOldValue;
112 aEvt.NewValue = _aNewValue;
140 return css::uno::Sequence<sal_Int8>();
148 Reference< XInterface > xEventSource;
150 ::osl::MutexGuard aGuard(
m_aMutex );
152 VCLXAccessibleListItem_BASE::disposing();
159 xEventSource = *
this;
171 return "com.sun.star.comp.toolkit.AccessibleListItem";
181 return {
"com.sun.star.accessibility.AccessibleContext",
182 "com.sun.star.accessibility.AccessibleComponent",
183 "com.sun.star.accessibility.AccessibleListItem"};
207 ::osl::MutexGuard aGuard(
m_aMutex );
214 ::osl::MutexGuard aGuard(
m_aMutex );
220 return AccessibleRole::LIST_ITEM;
232 ::osl::MutexGuard aGuard(
m_aMutex );
245 ::osl::MutexGuard aGuard(
m_aMutex );
247 sal_Int64 nStateSet = 0;
249 if ( !rBHelper.bDisposed && !rBHelper.bInDispose )
251 nStateSet |= AccessibleStateType::TRANSIENT;
254 if (pListBoxHelper && pListBoxHelper->
IsEnabled())
256 nStateSet |= AccessibleStateType::SELECTABLE;
257 nStateSet |= AccessibleStateType::ENABLED;
258 nStateSet |= AccessibleStateType::SENSITIVE;
262 nStateSet |= AccessibleStateType::SELECTED;
265 nStateSet |= AccessibleStateType::VISIBLE;
266 nStateSet |= AccessibleStateType::SHOWING;
270 nStateSet |= AccessibleStateType::DEFUNC;
278 ::osl::MutexGuard aGuard(
m_aMutex );
288 ::osl::MutexGuard aGuard(
m_aMutex );
290 bool bInside =
false;
309 ::osl::MutexGuard aGuard(
m_aMutex );
311 awt::Rectangle aRect;
322 ::osl::MutexGuard aGuard(
m_aMutex );
337 ::osl::MutexGuard aGuard(
m_aMutex );
353 ::osl::MutexGuard aGuard(
m_aMutex );
378 ::osl::MutexGuard aGuard(
m_aMutex );
381 throw IndexOutOfBoundsException();
389 ::osl::MutexGuard aGuard(
m_aMutex );
397 ::osl::MutexGuard aGuard(
m_aMutex );
400 throw IndexOutOfBoundsException();
402 return Sequence< PropertyValue >();
408 ::osl::MutexGuard aGuard(
m_aMutex );
411 throw IndexOutOfBoundsException();
413 awt::Rectangle aBounds( 0, 0, 0, 0 );
419 aCharRect.
Move( -aItemRect.
Left(), -aItemRect.
Top() );
429 ::osl::MutexGuard aGuard(
m_aMutex );
437 ::osl::MutexGuard aGuard(
m_aMutex );
457 ::osl::MutexGuard aGuard(
m_aMutex );
465 ::osl::MutexGuard aGuard(
m_aMutex );
473 ::osl::MutexGuard aGuard(
m_aMutex );
481 ::osl::MutexGuard aGuard(
m_aMutex );
484 throw IndexOutOfBoundsException();
492 ::osl::MutexGuard aGuard(
m_aMutex );
500 ::osl::MutexGuard aGuard(
m_aMutex );
502 return OCommonAccessibleText::implGetTextRange(
m_sEntryText, nStartIndex, nEndIndex );
508 ::osl::MutexGuard aGuard(
m_aMutex );
510 return OCommonAccessibleText::getTextAtIndex(
nIndex, aTextType );
516 ::osl::MutexGuard aGuard(
m_aMutex );
518 return OCommonAccessibleText::getTextBeforeIndex(
nIndex, aTextType );
524 ::osl::MutexGuard aGuard(
m_aMutex );
526 return OCommonAccessibleText::getTextBehindIndex(
nIndex, aTextType );
532 ::osl::MutexGuard aGuard(
m_aMutex );
541 Reference< datatransfer::clipboard::XClipboard > xClipboard = pListBoxHelper->
GetClipboard();
542 if ( xClipboard.is() )
544 OUString sText(
getTextRange( nStartIndex, nEndIndex ) );
548 xClipboard->setContents( pDataObj,
nullptr );
549 Reference< datatransfer::clipboard::XFlushableClipboard > xFlushableClipboard( xClipboard, uno::UNO_QUERY );
550 if( xFlushableClipboard.is() )
551 xFlushableClipboard->flushClipboard();
583 if ( nListenerCount )
const LanguageTag & GetLanguageTag() const
static const AllSettings & GetSettings()
const css::lang::Locale & getLocale(bool bResolveSystem=true) const
virtual void SAL_CALL grabFocus() override
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override
virtual sal_Int32 SAL_CALL getSelectionEnd() override
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent() override
virtual OUString SAL_CALL getImplementationName() override
virtual sal_Bool SAL_CALL setCaretPosition(sal_Int32 nIndex) override
virtual sal_Int16 SAL_CALL getAccessibleRole() override
virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL getCharacterAttributes(sal_Int32 nIndex, const css::uno::Sequence< OUString > &aRequestedAttributes) override
virtual sal_Bool SAL_CALL supportsService(const OUString &rServiceName) override
virtual css::accessibility::TextSegment SAL_CALL getTextBehindIndex(sal_Int32 nIndex, sal_Int16 aTextType) override
virtual OUString SAL_CALL getTextRange(sal_Int32 nStartIndex, sal_Int32 nEndIndex) override
virtual css::lang::Locale SAL_CALL getLocale() override
virtual sal_Int64 SAL_CALL getAccessibleChildCount() override
virtual OUString SAL_CALL getText() override
virtual css::accessibility::TextSegment SAL_CALL getTextBeforeIndex(sal_Int32 nIndex, sal_Int16 aTextType) override
virtual sal_Int32 SAL_CALL getBackground() override
virtual void SAL_CALL addAccessibleEventListener(const css::uno::Reference< css::accessibility::XAccessibleEventListener > &xListener) override
void NotifyAccessibleEvent(sal_Int16 _nEventId, const css::uno::Any &_aOldValue, const css::uno::Any &_aNewValue)
virtual css::lang::Locale implGetLocale() override
void SetVisible(bool _bVisible)
virtual sal_Bool SAL_CALL setSelection(sal_Int32 nStartIndex, sal_Int32 nEndIndex) override
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual OUString SAL_CALL getAccessibleDescription() override
virtual sal_Bool SAL_CALL scrollSubstringTo(sal_Int32 nStartIndex, sal_Int32 nEndIndex, css::accessibility::AccessibleScrollType aScrollType) override
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild(sal_Int64 i) override
virtual void implGetSelection(sal_Int32 &nStartIndex, sal_Int32 &nEndIndex) override
virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet() override
rtl::Reference< VCLXAccessibleList > m_xParent
sal_Int32 m_nIndexInParent
virtual sal_Int32 SAL_CALL getCharacterCount() override
virtual css::awt::Rectangle SAL_CALL getCharacterBounds(sal_Int32 nIndex) override
virtual sal_Int32 SAL_CALL getForeground() override
void SetSelected(bool _bSelected)
virtual OUString implGetText() override
virtual css::awt::Rectangle SAL_CALL getBounds() override
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext() override
virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override
virtual css::awt::Point SAL_CALL getLocationOnScreen() override
virtual sal_Int32 SAL_CALL getCaretPosition() override
virtual sal_Bool SAL_CALL containsPoint(const css::awt::Point &aPoint) override
sal_uInt32 m_nClientId
client id in the AccessibleEventNotifier queue
VCLXAccessibleListItem(sal_Int32 _nIndexInParent, rtl::Reference< VCLXAccessibleList > _xParent)
OAccessibleBase needs a valid view.
virtual OUString SAL_CALL getSelectedText() override
virtual sal_Int32 SAL_CALL getSelectionStart() override
virtual sal_Int32 SAL_CALL getIndexAtPoint(const css::awt::Point &aPoint) override
virtual css::accessibility::TextSegment SAL_CALL getTextAtIndex(sal_Int32 nIndex, sal_Int16 aTextType) override
virtual css::awt::Point SAL_CALL getLocation() override
virtual sal_Int64 SAL_CALL getAccessibleStateSet() override
virtual css::awt::Size SAL_CALL getSize() override
virtual sal_Unicode SAL_CALL getCharacter(sal_Int32 nIndex) override
virtual OUString SAL_CALL getAccessibleName() override
virtual void SAL_CALL disposing() override
this function is called upon disposing the component
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint(const css::awt::Point &aPoint) override
virtual sal_Bool SAL_CALL copyText(sal_Int32 nStartIndex, sal_Int32 nEndIndex) override
virtual void SAL_CALL removeAccessibleEventListener(const css::uno::Reference< css::accessibility::XAccessibleEventListener > &xListener) override
virtual css::uno::Reference< css::datatransfer::clipboard::XClipboard > GetClipboard()=0
virtual tools::Rectangle GetEntryCharacterBounds(const sal_Int32 _nEntryPos, const sal_Int32 _nCharacterIndex) const =0
virtual tools::Rectangle GetWindowExtentsAbsolute()=0
virtual bool IsEnabled() const =0
virtual tools::Long GetIndexForPoint(const Point &rPoint, sal_Int32 &nPos) const =0
virtual OUString GetEntry(sal_Int32 nPos) const =0
virtual tools::Rectangle GetBoundingRectangle(sal_uInt16 nItem) const =0
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)
static bool implIsValidIndex(sal_Int32 nIndex, sal_Int32 nLength)
static bool implIsValidRange(sal_Int32 nStartIndex, sal_Int32 nEndIndex, sal_Int32 nLength)
mutable::osl::Mutex m_aMutex
constexpr ::Color COL_WHITE(0xFF, 0xFF, 0xFF)
constexpr ::Color COL_BLACK(0x00, 0x00, 0x00)
css::awt::Size AWTSize(const Size &rVCLSize)
css::awt::Point AWTPoint(const ::Point &rVCLPoint)
css::awt::Rectangle AWTRectangle(const ::tools::Rectangle &rVCLRect)
inline ::Point VCLPoint(const css::awt::Point &rAWTPoint)
#define LISTBOX_ENTRY_NOTFOUND
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)