summaryrefslogtreecommitdiff
path: root/accessibility/inc/standard
diff options
context:
space:
mode:
authorTor Lillqvist <tml@collabora.com>2016-05-27 10:56:17 +0300
committerTor Lillqvist <tml@collabora.com>2016-05-27 17:10:45 +0000
commite0849330bc4875384704fe031d563f8971ca4d96 (patch)
tree5d330960717aed2eb825360c16e8df976fa4b607 /accessibility/inc/standard
parenta88ee01b8683ded7d9da6dbcbf4d3e0c2ed4cadc (diff)
Get rid of unnecessary directory levels $D/inc/$D
Change-Id: Ibf313b8948a493043006ebf3a8281487c1f67b48 Reviewed-on: https://gerrit.libreoffice.org/25532 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tor Lillqvist <tml@collabora.com> Tested-by: Tor Lillqvist <tml@collabora.com>
Diffstat (limited to 'accessibility/inc/standard')
-rw-r--r--accessibility/inc/standard/accessiblemenubasecomponent.hxx145
-rw-r--r--accessibility/inc/standard/accessiblemenucomponent.hxx89
-rw-r--r--accessibility/inc/standard/accessiblemenuitemcomponent.hxx90
-rw-r--r--accessibility/inc/standard/vclxaccessiblebox.hxx185
-rw-r--r--accessibility/inc/standard/vclxaccessiblebutton.hxx78
-rw-r--r--accessibility/inc/standard/vclxaccessiblecheckbox.hxx85
-rw-r--r--accessibility/inc/standard/vclxaccessiblecombobox.hxx57
-rw-r--r--accessibility/inc/standard/vclxaccessibledropdowncombobox.hxx56
-rw-r--r--accessibility/inc/standard/vclxaccessibledropdownlistbox.hxx56
-rw-r--r--accessibility/inc/standard/vclxaccessibleedit.hxx111
-rw-r--r--accessibility/inc/standard/vclxaccessiblefixedhyperlink.hxx47
-rw-r--r--accessibility/inc/standard/vclxaccessiblefixedtext.hxx47
-rw-r--r--accessibility/inc/standard/vclxaccessiblelist.hxx210
-rw-r--r--accessibility/inc/standard/vclxaccessiblelistbox.hxx56
-rw-r--r--accessibility/inc/standard/vclxaccessiblelistitem.hxx173
-rw-r--r--accessibility/inc/standard/vclxaccessiblemenu.hxx79
-rw-r--r--accessibility/inc/standard/vclxaccessiblemenubar.hxx66
-rw-r--r--accessibility/inc/standard/vclxaccessiblemenuitem.hxx109
-rw-r--r--accessibility/inc/standard/vclxaccessiblemenuseparator.hxx46
-rw-r--r--accessibility/inc/standard/vclxaccessiblepopupmenu.hxx52
-rw-r--r--accessibility/inc/standard/vclxaccessibleradiobutton.hxx76
-rw-r--r--accessibility/inc/standard/vclxaccessiblescrollbar.hxx79
-rw-r--r--accessibility/inc/standard/vclxaccessiblestatusbar.hxx74
-rw-r--r--accessibility/inc/standard/vclxaccessiblestatusbaritem.hxx134
-rw-r--r--accessibility/inc/standard/vclxaccessibletabcontrol.hxx96
-rw-r--r--accessibility/inc/standard/vclxaccessibletabpage.hxx139
-rw-r--r--accessibility/inc/standard/vclxaccessibletabpagewindow.hxx60
-rw-r--r--accessibility/inc/standard/vclxaccessibletextcomponent.hxx85
-rw-r--r--accessibility/inc/standard/vclxaccessibletextfield.hxx92
-rw-r--r--accessibility/inc/standard/vclxaccessibletoolbox.hxx105
-rw-r--r--accessibility/inc/standard/vclxaccessibletoolboxitem.hxx154
31 files changed, 2931 insertions, 0 deletions
diff --git a/accessibility/inc/standard/accessiblemenubasecomponent.hxx b/accessibility/inc/standard/accessiblemenubasecomponent.hxx
new file mode 100644
index 000000000000..167c957c5aca
--- /dev/null
+++ b/accessibility/inc/standard/accessiblemenubasecomponent.hxx
@@ -0,0 +1,145 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_ACCESSIBLEMENUBASECOMPONENT_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_ACCESSIBLEMENUBASECOMPONENT_HXX
+
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/awt/Point.hpp>
+#include <comphelper/accessiblecomponenthelper.hxx>
+#include <cppuhelper/implbase2.hxx>
+#include <tools/link.hxx>
+
+#include <vector>
+
+class Menu;
+class VclSimpleEvent;
+class VclMenuEvent;
+class VCLExternalSolarLock;
+
+namespace utl {
+class AccessibleStateSetHelper;
+}
+
+
+// class OAccessibleMenuBaseComponent
+
+typedef ::cppu::ImplHelper2<
+ css::accessibility::XAccessible,
+ css::lang::XServiceInfo > OAccessibleMenuBaseComponent_BASE;
+
+class OAccessibleMenuBaseComponent : public comphelper::OAccessibleExtendedComponentHelper,
+ public OAccessibleMenuBaseComponent_BASE
+{
+ friend class OAccessibleMenuItemComponent;
+ friend class VCLXAccessibleMenuItem;
+ friend class VCLXAccessibleMenu;
+
+private:
+ VCLExternalSolarLock* m_pExternalLock;
+
+protected:
+ typedef ::std::vector< css::uno::Reference< css::accessibility::XAccessible > > AccessibleChildren;
+
+ AccessibleChildren m_aAccessibleChildren;
+ Menu* m_pMenu;
+
+ bool m_bEnabled;
+ bool m_bFocused;
+ bool m_bVisible;
+ bool m_bSelected;
+ bool m_bChecked;
+
+ virtual bool IsEnabled();
+ virtual bool IsFocused();
+ virtual bool IsVisible();
+ virtual bool IsSelected();
+ virtual bool IsChecked();
+
+ void SetEnabled( bool bEnabled );
+ void SetFocused( bool bFocused );
+ void SetVisible( bool bVisible );
+ void SetSelected( bool bSelected );
+ void SetChecked( bool bChecked );
+
+ void UpdateEnabled( sal_Int32 i, bool bEnabled );
+ void UpdateFocused( sal_Int32 i, bool bFocused );
+ void UpdateVisible();
+ void UpdateSelected( sal_Int32 i, bool bSelected );
+ void UpdateChecked( sal_Int32 i, bool bChecked );
+ void UpdateAccessibleName( sal_Int32 i );
+ void UpdateItemText( sal_Int32 i );
+
+ sal_Int32 GetChildCount();
+
+ css::uno::Reference< css::accessibility::XAccessible > GetChild( sal_Int32 i );
+ css::uno::Reference< css::accessibility::XAccessible > GetChildAt( const css::awt::Point& rPoint );
+
+ void InsertChild( sal_Int32 i );
+ void RemoveChild( sal_Int32 i );
+
+ virtual bool IsHighlighted();
+ bool IsChildHighlighted();
+
+ virtual bool IsMenuHideDisabledEntries();
+
+ void SelectChild( sal_Int32 i );
+ void DeSelectAll();
+ bool IsChildSelected( sal_Int32 i );
+
+ virtual void Select();
+ virtual void DeSelect();
+ virtual void Click();
+ virtual bool IsPopupMenuOpen();
+
+ DECL_LINK_TYPED( MenuEventListener, VclMenuEvent&, void );
+
+ void ProcessMenuEvent( const VclMenuEvent& rVclMenuEvent );
+
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) = 0;
+
+ // XComponent
+ virtual void SAL_CALL disposing() override;
+
+public:
+ OAccessibleMenuBaseComponent( Menu* pMenu );
+ virtual ~OAccessibleMenuBaseComponent();
+
+ void SetStates();
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XServiceInfo
+ virtual sal_Bool SAL_CALL supportsService( const OUString& rServiceName ) throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessible
+ virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleContext
+ virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) throw (css::uno::RuntimeException, std::exception) override;
+};
+
+#endif // INCLUDED_ACCESSIBILITY_INC_STANDARD_ACCESSIBLEMENUBASECOMPONENT_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/accessiblemenucomponent.hxx b/accessibility/inc/standard/accessiblemenucomponent.hxx
new file mode 100644
index 000000000000..eb570e07a827
--- /dev/null
+++ b/accessibility/inc/standard/accessiblemenucomponent.hxx
@@ -0,0 +1,89 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_ACCESSIBLEMENUCOMPONENT_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_ACCESSIBLEMENUCOMPONENT_HXX
+
+#include <standard/accessiblemenubasecomponent.hxx>
+#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
+#include <cppuhelper/implbase1.hxx>
+
+
+// class OAccessibleMenuComponent
+
+typedef ::cppu::ImplHelper1<
+ css::accessibility::XAccessibleSelection > OAccessibleMenuComponent_BASE;
+
+class OAccessibleMenuComponent : public OAccessibleMenuBaseComponent,
+ public OAccessibleMenuComponent_BASE
+{
+protected:
+ virtual bool IsEnabled() override;
+ virtual bool IsVisible() override;
+
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) override;
+
+ // OCommonAccessibleComponent
+ virtual css::awt::Rectangle implGetBounds( ) throw (css::uno::RuntimeException) override;
+
+public:
+ OAccessibleMenuComponent( Menu* pMenu );
+ virtual ~OAccessibleMenuComponent();
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getAccessibleDescription( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getAccessibleName( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::lang::Locale SAL_CALL getLocale( ) throw (css::accessibility::IllegalAccessibleComponentStateException, css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleComponent
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::awt::Point SAL_CALL getLocationOnScreen( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual void SAL_CALL grabFocus( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getForeground( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getBackground( ) throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleExtendedComponent
+ virtual css::uno::Reference< css::awt::XFont > SAL_CALL getFont( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getTitledBorderText( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getToolTipText( ) throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleSelection
+ virtual void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual void SAL_CALL clearAccessibleSelection( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual void SAL_CALL selectAllAccessibleChildren( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual void SAL_CALL deselectAccessibleChild( sal_Int32 nChildIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+};
+
+#endif // INCLUDED_ACCESSIBILITY_INC_STANDARD_ACCESSIBLEMENUCOMPONENT_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/accessiblemenuitemcomponent.hxx b/accessibility/inc/standard/accessiblemenuitemcomponent.hxx
new file mode 100644
index 000000000000..84d0cc22e309
--- /dev/null
+++ b/accessibility/inc/standard/accessiblemenuitemcomponent.hxx
@@ -0,0 +1,90 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_ACCESSIBLEMENUITEMCOMPONENT_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_ACCESSIBLEMENUITEMCOMPONENT_HXX
+
+#include <standard/accessiblemenubasecomponent.hxx>
+
+
+// class OAccessibleMenuItemComponent
+
+
+class OAccessibleMenuItemComponent : public OAccessibleMenuBaseComponent
+{
+ friend class OAccessibleMenuBaseComponent;
+
+protected:
+ Menu* m_pParent;
+ sal_uInt16 m_nItemPos;
+ OUString m_sAccessibleName;
+ OUString m_sItemText;
+
+ virtual bool IsEnabled() override;
+ virtual bool IsVisible() override;
+ virtual void Select() override;
+ virtual void DeSelect() override;
+ virtual void Click() override;
+
+ void SetItemPos( sal_uInt16 nItemPos );
+ void SetAccessibleName( const OUString& sAccessibleName );
+ OUString GetAccessibleName();
+ void SetItemText( const OUString& sItemText );
+ OUString GetItemText();
+
+ virtual bool IsMenuHideDisabledEntries() override;
+
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) override;
+
+ // OCommonAccessibleComponent
+ virtual css::awt::Rectangle implGetBounds( ) throw (css::uno::RuntimeException) override;
+
+ // XComponent
+ virtual void SAL_CALL disposing() override;
+
+public:
+ OAccessibleMenuItemComponent( Menu* pParent, sal_uInt16 nItemPos, Menu* pMenu );
+ virtual ~OAccessibleMenuItemComponent();
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getAccessibleDescription( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getAccessibleName( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::lang::Locale SAL_CALL getLocale( ) throw (css::accessibility::IllegalAccessibleComponentStateException, css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleComponent
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual void SAL_CALL grabFocus( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getForeground( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getBackground( ) throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleExtendedComponent
+ virtual css::uno::Reference< css::awt::XFont > SAL_CALL getFont( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getTitledBorderText( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getToolTipText( ) throw (css::uno::RuntimeException, std::exception) override;
+};
+
+#endif // INCLUDED_ACCESSIBILITY_INC_STANDARD_ACCESSIBLEMENUITEMCOMPONENT_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/vclxaccessiblebox.hxx b/accessibility/inc/standard/vclxaccessiblebox.hxx
new file mode 100644
index 000000000000..1943f1e2ce21
--- /dev/null
+++ b/accessibility/inc/standard/vclxaccessiblebox.hxx
@@ -0,0 +1,185 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEBOX_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEBOX_HXX
+
+#include <map>
+#include <standard/vclxaccessibleedit.hxx>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/accessibility/XAccessibleKeyBinding.hpp>
+#include <com/sun/star/accessibility/XAccessibleValue.hpp>
+#include <cppuhelper/implbase3.hxx>
+
+
+typedef ::cppu::ImplHelper3<
+ css::accessibility::XAccessible,
+ css::accessibility::XAccessibleValue,
+ css::accessibility::XAccessibleAction
+ > VCLXAccessibleBox_BASE;
+
+
+/** Base class for list- and combo boxes. This class manages the box'
+ children. The classed derived from this one have only to implement the
+ IsValid method and return the correct implementation name.
+*/
+class VCLXAccessibleBox
+ : public VCLXAccessibleComponent,
+ public VCLXAccessibleBox_BASE
+{
+public:
+ enum BoxType {COMBOBOX, LISTBOX};
+
+ /** The constructor is initialized with the box type which may be
+ either COMBOBOX or LISTBOX and a flag
+ indicating whether the box is a drop down box.
+ */
+ VCLXAccessibleBox (VCLXWindow* pVCLXindow, BoxType aType, bool bIsDropDownBox);
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+
+ // XAccessible
+
+ virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL
+ getAccessibleContext( ) throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleContext
+
+ /** Each object has one or two children: an optional text field and the
+ actual list. The text field is not provided for non drop down list
+ boxes.
+ */
+ sal_Int32 SAL_CALL getAccessibleChildCount()
+ throw (css::uno::RuntimeException, std::exception) override;
+ /** For drop down list boxes the text field is a not editable
+ VCLXAccessibleTextField, for combo boxes it is an
+ editable VLCAccessibleEdit.
+ */
+ css::uno::Reference< css::accessibility::XAccessible> SAL_CALL
+ getAccessibleChild (sal_Int32 i)
+ throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ /** The role is always AccessibleRole::COMBO_BOX.
+ */
+ sal_Int16 SAL_CALL getAccessibleRole()
+ throw (css::uno::RuntimeException, std::exception) override;
+
+ sal_Int32 SAL_CALL getAccessibleIndexInParent()
+ throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleAction
+
+ /** There is one action for drop down boxes and none for others.
+ */
+ virtual sal_Int32 SAL_CALL getAccessibleActionCount()
+ throw (css::uno::RuntimeException, std::exception) override;
+ /** The action for drop down boxes lets the user toggle the visibility of the
+ popup menu.
+ */
+ virtual sal_Bool SAL_CALL doAccessibleAction (sal_Int32 nIndex)
+ throw (css::lang::IndexOutOfBoundsException,
+ css::uno::RuntimeException, std::exception) override;
+ /** The returned string is associated with resource
+ RID_STR_ACC_ACTION_TOGGLEPOPUP.
+ */
+ virtual OUString SAL_CALL getAccessibleActionDescription (sal_Int32 nIndex)
+ throw (css::lang::IndexOutOfBoundsException,
+ css::uno::RuntimeException, std::exception) override;
+ /** No keybinding returned so far.
+ */
+ virtual css::uno::Reference< css::accessibility::XAccessibleKeyBinding > SAL_CALL
+ getAccessibleActionKeyBinding( sal_Int32 nIndex )
+ throw (css::lang::IndexOutOfBoundsException,
+ css::uno::RuntimeException, std::exception) override;
+
+ // XComponent
+
+ /** This method is called from the implementation helper during an
+ XComponent::dispose() call.
+ */
+ virtual void SAL_CALL disposing() override;
+
+ // XAccessibleValue
+
+ virtual css::uno::Any SAL_CALL getCurrentValue( )
+ throw (css::uno::RuntimeException, std::exception) override;
+
+ virtual sal_Bool SAL_CALL setCurrentValue(
+ const css::uno::Any& aNumber )
+ throw (css::uno::RuntimeException, std::exception) override;
+
+ virtual css::uno::Any SAL_CALL getMaximumValue( )
+ throw (css::uno::RuntimeException, std::exception) override;
+
+ virtual css::uno::Any SAL_CALL getMinimumValue( )
+ throw (css::uno::RuntimeException, std::exception) override;
+protected:
+ /** Specifies whether the box is a combo box or a list box. List boxes
+ have multi selection.
+ */
+ BoxType m_aBoxType;
+
+ /// Specifies whether the box is a drop down box and thus has an action.
+ bool m_bIsDropDownBox;
+
+ /// The child that represents the text field if there is one.
+ css::uno::Reference< css::accessibility::XAccessible>
+ m_xText;
+
+ /// The child that contains the items of this box.
+ css::uno::Reference< css::accessibility::XAccessible>
+ m_xList;
+
+ /** This flag specifies whether an object has a text field as child
+ regardless of whether that child being currently instantiated or
+ not.
+ */
+ bool m_bHasTextChild;
+
+ /** This flag specifies whether an object has a list as child regardless
+ of whether that child being currently instantiated or not. This
+ flag is always true in the current implementation because the list
+ child is just another wrapper around this object and thus has the
+ same life time.
+ */
+ bool m_bHasListChild;
+
+ virtual ~VCLXAccessibleBox();
+
+ /** Returns true when the object is valid.
+ */
+ virtual bool IsValid() const = 0;
+
+ virtual void ProcessWindowChildEvent (const VclWindowEvent& rVclWindowEvent) override;
+ virtual void ProcessWindowEvent (const VclWindowEvent& rVclWindowEvent) override;
+
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) override;
+
+private:
+ /// Index in parent. This is settable from the outside.
+ sal_Int32 m_nIndexInParent;
+};
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/vclxaccessiblebutton.hxx b/accessibility/inc/standard/vclxaccessiblebutton.hxx
new file mode 100644
index 000000000000..e5f4a1280cf7
--- /dev/null
+++ b/accessibility/inc/standard/vclxaccessiblebutton.hxx
@@ -0,0 +1,78 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEBUTTON_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEBUTTON_HXX
+
+#include <standard/vclxaccessibletextcomponent.hxx>
+
+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
+#include <com/sun/star/accessibility/XAccessibleValue.hpp>
+
+#include <cppuhelper/implbase2.hxx>
+
+
+// class VCLXAccessibleButton
+
+
+typedef ::cppu::ImplHelper2<
+ css::accessibility::XAccessibleAction,
+ css::accessibility::XAccessibleValue > VCLXAccessibleButton_BASE;
+
+class VCLXAccessibleButton : public VCLXAccessibleTextComponent,
+ public VCLXAccessibleButton_BASE
+{
+protected:
+ virtual ~VCLXAccessibleButton();
+
+ virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent ) override;
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) override;
+
+public:
+ VCLXAccessibleButton( VCLXWindow* pVCLXindow );
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XServiceInfo
+ virtual OUString SAL_CALL getImplementationName() throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleContext
+ virtual OUString SAL_CALL getAccessibleName( ) throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleAction
+ virtual sal_Int32 SAL_CALL getAccessibleActionCount( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL doAccessibleAction ( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getAccessibleActionDescription ( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessibleKeyBinding > SAL_CALL getAccessibleActionKeyBinding( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleValue
+ virtual css::uno::Any SAL_CALL getCurrentValue( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL setCurrentValue( const css::uno::Any& aNumber ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Any SAL_CALL getMaximumValue( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Any SAL_CALL getMinimumValue( ) throw (css::uno::RuntimeException, std::exception) override;
+};
+
+#endif // INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEBUTTON_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/vclxaccessiblecheckbox.hxx b/accessibility/inc/standard/vclxaccessiblecheckbox.hxx
new file mode 100644
index 000000000000..ca406a2480f4
--- /dev/null
+++ b/accessibility/inc/standard/vclxaccessiblecheckbox.hxx
@@ -0,0 +1,85 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLECHECKBOX_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLECHECKBOX_HXX
+
+#include <standard/vclxaccessibletextcomponent.hxx>
+
+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
+#include <com/sun/star/accessibility/XAccessibleValue.hpp>
+
+#include <cppuhelper/implbase2.hxx>
+
+
+// class VCLXAccessibleCheckBox
+
+
+typedef ::cppu::ImplHelper2<
+ css::accessibility::XAccessibleAction,
+ css::accessibility::XAccessibleValue > VCLXAccessibleCheckBox_BASE;
+
+class VCLXAccessibleCheckBox : public VCLXAccessibleTextComponent,
+ public VCLXAccessibleCheckBox_BASE
+{
+private:
+ bool m_bChecked;
+ bool m_bIndeterminate;
+
+protected:
+ virtual ~VCLXAccessibleCheckBox();
+
+ bool IsChecked();
+ bool IsIndeterminate();
+
+ void SetChecked( bool bChecked );
+ void SetIndeterminate( bool bIndeterminate );
+
+ virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent ) override;
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) override;
+
+public:
+ VCLXAccessibleCheckBox( VCLXWindow* pVCLXindow );
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XServiceInfo
+ virtual OUString SAL_CALL getImplementationName() throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleAction
+ virtual sal_Int32 SAL_CALL getAccessibleActionCount( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL doAccessibleAction ( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getAccessibleActionDescription ( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessibleKeyBinding > SAL_CALL getAccessibleActionKeyBinding( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleValue
+ virtual css::uno::Any SAL_CALL getCurrentValue( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL setCurrentValue( const css::uno::Any& aNumber ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Any SAL_CALL getMaximumValue( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Any SAL_CALL getMinimumValue( ) throw (css::uno::RuntimeException, std::exception) override;
+};
+
+#endif // INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLECHECKBOX_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/vclxaccessiblecombobox.hxx b/accessibility/inc/standard/vclxaccessiblecombobox.hxx
new file mode 100644
index 000000000000..4fd6bf829055
--- /dev/null
+++ b/accessibility/inc/standard/vclxaccessiblecombobox.hxx
@@ -0,0 +1,57 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLECOMBOBOX_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLECOMBOBOX_HXX
+
+#include <map>
+#include <standard/vclxaccessiblebox.hxx>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+
+
+/** The accessible combobox has two children. The first is the text field
+ represented by an object of the VCLXAccessibleEdit class.
+ The second is the list containing all items and is represented by an
+ object of the VCLXAccessibleList class which does not
+ support selection at the moment.
+*/
+class VCLXAccessibleComboBox
+ : public VCLXAccessibleBox
+{
+public:
+ VCLXAccessibleComboBox (VCLXWindow* pVCLXindow);
+
+ // XServiceInfo
+ virtual OUString SAL_CALL getImplementationName()
+ throw (css::uno::RuntimeException, std::exception) override;
+ // Return combo box specific services.
+ virtual css::uno::Sequence< OUString > SAL_CALL
+ getSupportedServiceNames()
+ throw (css::uno::RuntimeException, std::exception) override;
+
+protected:
+ virtual ~VCLXAccessibleComboBox();
+
+ virtual bool IsValid() const override;
+ virtual void ProcessWindowEvent (const VclWindowEvent& rVclWindowEvent) override;
+};
+
+#endif // INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLECOMBOBOX_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/vclxaccessibledropdowncombobox.hxx b/accessibility/inc/standard/vclxaccessibledropdowncombobox.hxx
new file mode 100644
index 000000000000..e6ae12834aa6
--- /dev/null
+++ b/accessibility/inc/standard/vclxaccessibledropdowncombobox.hxx
@@ -0,0 +1,56 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEDROPDOWNCOMBOBOX_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEDROPDOWNCOMBOBOX_HXX
+
+#include <standard/vclxaccessiblebox.hxx>
+#include <standard/vclxaccessibleedit.hxx>
+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
+
+/** The accessible drop down combobox has two children. The first is the
+ text field represented by an object of the
+ VCLXAccessibleEdit class. The second is the list
+ containing all items and is represented by an object of the
+ VCLXAccessibleList class which does not support selection
+ at the moment.
+*/
+class VCLXAccessibleDropDownComboBox : public VCLXAccessibleBox
+{
+public:
+ VCLXAccessibleDropDownComboBox (VCLXWindow* pVCLXindow);
+
+ // XServiceInfo
+ virtual OUString SAL_CALL getImplementationName()
+ throw (css::uno::RuntimeException, std::exception) override;
+ // Return drop down combo box specific services.
+ virtual css::uno::Sequence< OUString > SAL_CALL
+ getSupportedServiceNames()
+ throw (css::uno::RuntimeException, std::exception) override;
+
+protected:
+ virtual ~VCLXAccessibleDropDownComboBox();
+
+ virtual bool IsValid() const override;
+ virtual void ProcessWindowEvent (const VclWindowEvent& rVclWindowEvent) override;
+};
+
+#endif // INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEDROPDOWNCOMBOBOX_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/vclxaccessibledropdownlistbox.hxx b/accessibility/inc/standard/vclxaccessibledropdownlistbox.hxx
new file mode 100644
index 000000000000..f18945d3bdc3
--- /dev/null
+++ b/accessibility/inc/standard/vclxaccessibledropdownlistbox.hxx
@@ -0,0 +1,56 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEDROPDOWNLISTBOX_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEDROPDOWNLISTBOX_HXX
+
+#include <standard/vclxaccessiblebox.hxx>
+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
+
+/** The accessible drop down combobox has two children. The first is the
+ text field represented by an object of the
+ VCLXAccessibleTextField class which can not be edited. The
+ second is the list containing all items and is represented by an object
+ of the VCLXAccessibleListBoxList class which does support
+ selection.
+*/
+class VCLXAccessibleDropDownListBox : public VCLXAccessibleBox
+{
+public:
+ VCLXAccessibleDropDownListBox (VCLXWindow* pVCLXindow);
+
+ // XServiceInfo
+ virtual OUString SAL_CALL getImplementationName()
+ throw (css::uno::RuntimeException, std::exception) override;
+ // Return drop down list box specific services.
+ virtual css::uno::Sequence< OUString > SAL_CALL
+ getSupportedServiceNames()
+ throw (css::uno::RuntimeException, std::exception) override;
+
+protected:
+ virtual ~VCLXAccessibleDropDownListBox();
+
+ virtual bool IsValid() const override;
+ virtual void ProcessWindowEvent (const VclWindowEvent& rVclWindowEvent) override;
+
+};
+
+#endif // INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEDROPDOWNLISTBOX_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/vclxaccessibleedit.hxx b/accessibility/inc/standard/vclxaccessibleedit.hxx
new file mode 100644
index 000000000000..429588f1bb78
--- /dev/null
+++ b/accessibility/inc/standard/vclxaccessibleedit.hxx
@@ -0,0 +1,111 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEEDIT_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEEDIT_HXX
+
+#include <standard/vclxaccessibletextcomponent.hxx>
+#include <com/sun/star/accessibility/XAccessibleEditableText.hpp>
+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
+
+#include <cppuhelper/implbase2.hxx>
+
+
+// class VCLXAccessibleEdit
+
+
+typedef ::cppu::ImplHelper2<
+ css::accessibility::XAccessibleAction,
+ css::accessibility::XAccessibleEditableText > VCLXAccessibleEdit_BASE;
+
+class VCLXAccessibleEdit : public VCLXAccessibleTextComponent,
+ public VCLXAccessibleEdit_BASE
+{
+ friend class VCLXAccessibleBox;
+
+private:
+ sal_Int32 m_nSelectionStart;
+ sal_Int32 m_nCaretPosition;
+
+protected:
+ virtual ~VCLXAccessibleEdit();
+
+ virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent ) override;
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) override;
+
+ // OCommonAccessibleText
+ virtual OUString implGetText() override;
+ virtual void implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex ) override;
+
+public:
+ VCLXAccessibleEdit( VCLXWindow* pVCLXindow );
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XServiceInfo
+ virtual OUString SAL_CALL getImplementationName() throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleAction
+ virtual sal_Int32 SAL_CALL getAccessibleActionCount( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL doAccessibleAction ( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getAccessibleActionDescription ( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessibleKeyBinding > SAL_CALL getAccessibleActionKeyBinding( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleText
+ virtual sal_Int32 SAL_CALL getCaretPosition( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Unicode SAL_CALL getCharacter( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL getCharacterAttributes( sal_Int32 nIndex, const css::uno::Sequence< OUString >& aRequestedAttributes ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getCharacterCount( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getIndexAtPoint( const css::awt::Point& aPoint ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getSelectedText( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getSelectionStart( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getSelectionEnd( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getText( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::accessibility::TextSegment SAL_CALL getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (css::lang::IndexOutOfBoundsException, css::lang::IllegalArgumentException, css::uno::RuntimeException, std::exception) override;
+ virtual css::accessibility::TextSegment SAL_CALL getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (css::lang::IndexOutOfBoundsException, css::lang::IllegalArgumentException, css::uno::RuntimeException, std::exception) override;
+ virtual css::accessibility::TextSegment SAL_CALL getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (css::lang::IndexOutOfBoundsException, css::lang::IllegalArgumentException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleEditableText
+ virtual sal_Bool SAL_CALL cutText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL pasteText( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL deleteText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL insertText( const OUString& sText, sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL replaceText( sal_Int32 nStartIndex, sal_Int32 nEndIndex, const OUString& sReplacement ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL setAttributes( sal_Int32 nStartIndex, sal_Int32 nEndIndex, const css::uno::Sequence< css::beans::PropertyValue >& aAttributeSet ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL setText( const OUString& sText ) throw (css::uno::RuntimeException, std::exception) override;
+};
+
+#endif // INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEEDIT_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/vclxaccessiblefixedhyperlink.hxx b/accessibility/inc/standard/vclxaccessiblefixedhyperlink.hxx
new file mode 100644
index 000000000000..246988d26775
--- /dev/null
+++ b/accessibility/inc/standard/vclxaccessiblefixedhyperlink.hxx
@@ -0,0 +1,47 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEFIXEDHYPERLINK_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEFIXEDHYPERLINK_HXX
+
+#include <standard/vclxaccessibletextcomponent.hxx>
+
+
+// class VCLXAccessibleFixedHyperlink
+
+
+class VCLXAccessibleFixedHyperlink : public VCLXAccessibleTextComponent
+{
+protected:
+ virtual ~VCLXAccessibleFixedHyperlink();
+
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) override;
+ virtual void implGetLineBoundary( css::i18n::Boundary& rBoundary, sal_Int32 nIndex ) override;
+
+public:
+ VCLXAccessibleFixedHyperlink( VCLXWindow* pVCLXindow );
+
+ // XServiceInfo
+ virtual OUString SAL_CALL getImplementationName() throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (css::uno::RuntimeException, std::exception) override;
+};
+
+#endif // INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEFIXEDHYPERLINK_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/vclxaccessiblefixedtext.hxx b/accessibility/inc/standard/vclxaccessiblefixedtext.hxx
new file mode 100644
index 000000000000..c5a52e9d430d
--- /dev/null
+++ b/accessibility/inc/standard/vclxaccessiblefixedtext.hxx
@@ -0,0 +1,47 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEFIXEDTEXT_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEFIXEDTEXT_HXX
+
+#include <standard/vclxaccessibletextcomponent.hxx>
+
+
+// class VCLXAccessibleFixedText
+
+
+class VCLXAccessibleFixedText : public VCLXAccessibleTextComponent
+{
+protected:
+ virtual ~VCLXAccessibleFixedText();
+
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) override;
+ virtual void implGetLineBoundary( css::i18n::Boundary& rBoundary, sal_Int32 nIndex ) override;
+
+public:
+ VCLXAccessibleFixedText( VCLXWindow* pVCLXindow );
+
+ // XServiceInfo
+ virtual OUString SAL_CALL getImplementationName() throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (css::uno::RuntimeException, std::exception) override;
+};
+
+#endif // INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEFIXEDTEXT_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/vclxaccessiblelist.hxx b/accessibility/inc/standard/vclxaccessiblelist.hxx
new file mode 100644
index 000000000000..7476f8603fd3
--- /dev/null
+++ b/accessibility/inc/standard/vclxaccessiblelist.hxx
@@ -0,0 +1,210 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLELIST_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLELIST_HXX
+
+#include <vector>
+#include <functional>
+#include "standard/vclxaccessiblelistitem.hxx"
+#include <standard/vclxaccessibleedit.hxx>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
+#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
+#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
+#include <cppuhelper/implbase2.hxx>
+
+typedef ::cppu::ImplHelper2<
+ css::accessibility::XAccessible,
+ css::accessibility::XAccessibleSelection
+ > VCLXAccessibleList_BASE;
+
+typedef std::vector< css::uno::WeakReference< css::accessibility::XAccessible > >
+ ListItems;
+
+namespace accessibility
+{
+ class IComboListBoxHelper;
+}
+
+
+/** Base class for the list contained in list- and combo boxes. This class
+ does not support selection because lists of combo boxes give no direct
+ access to their underlying list implementation. Look into derived
+ classes for selection.
+*/
+class VCLXAccessibleList
+ : public VCLXAccessibleComponent,
+ public VCLXAccessibleList_BASE
+{
+public:
+ enum BoxType {COMBOBOX, LISTBOX};
+
+ VCLXAccessibleList (VCLXWindow* pVCLXindow, BoxType aBoxType,
+ const css::uno::Reference<
+ css::accessibility::XAccessible >& _xParent);
+
+ /** The index that is passed to this method is returned on following
+ calls to getAccessibleIndexInParent.
+ */
+ void SetIndexInParent (sal_Int32 nIndex);
+
+ /** Process some of the events and delegate the rest to the base classes.
+ */
+ virtual void ProcessWindowEvent (const VclWindowEvent& rVclWindowEvent) override;
+ virtual void FillAccessibleRelationSet( utl::AccessibleRelationSetHelper& rRelationSet ) override;
+
+ /** Called on reception of selection events this method checks all known
+ list items for a possible change in their selection state and
+ updates that accordingly. No accessibility events are send because
+ the XAccessibleSelection interface is not supported and the items
+ are transient.
+ @param sTextOfSelectedItem
+ This string contains the text of the currently selected
+ item. It is used to retrieve the index of that item.
+ */
+ void UpdateSelection (const OUString& sTextOfSelectedItem);
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XAccessible
+ virtual css::uno::Reference< css::accessibility::XAccessibleContext> SAL_CALL
+ getAccessibleContext()
+ throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount()
+ throw (css::uno::RuntimeException, std::exception) override;
+ css::uno::Reference< css::accessibility::XAccessible> SAL_CALL
+ getAccessibleChild (sal_Int32 i)
+ throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
+ getAccessibleParent( )
+ throw (css::uno::RuntimeException, std::exception) override;
+
+ /** The index returned as index in parent is always the one set with the
+ SetIndexInParent() method.
+ */
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent()
+ throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int16 SAL_CALL getAccessibleRole()
+ throw (css::uno::RuntimeException, std::exception) override;
+
+ // XServiceInfo
+ virtual OUString SAL_CALL getImplementationName()
+ throw (css::uno::RuntimeException, std::exception) override;
+ // Return list specific services.
+ virtual css::uno::Sequence< OUString > SAL_CALL
+ getSupportedServiceNames()
+ throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleSelection
+ virtual void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual void SAL_CALL clearAccessibleSelection( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual void SAL_CALL selectAllAccessibleChildren( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual void SAL_CALL deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+
+ virtual css::awt::Point SAL_CALL getLocationOnScreen( ) throw (css::uno::RuntimeException, std::exception) override;
+ bool IsInDropDown();
+ void HandleDropOpen();
+ void ProcessWindowEvent (const VclWindowEvent& rVclWindowEvent, bool b_IsDropDownList);
+ void UpdateSelection_Acc (const ::rtl::OUString& sTextOfSelectedItem, bool b_IsDropDownList);
+ void UpdateSelection_Impl_Acc (bool b_IsDropDownList);
+
+ void UpdateFocus_Impl_Acc ( sal_Int32 nPos, bool b_IsDropDownList) ;
+ static void NotifyListItem(css::uno::Any& val);
+protected:
+ BoxType m_aBoxType;
+ ::accessibility::IComboListBoxHelper* m_pListBoxHelper;
+ ListItems m_aAccessibleChildren;
+ sal_Int32 m_nVisibleLineCount;
+ /// Index in parent. This is settable from the outside.
+ sal_Int32 m_nIndexInParent;
+ sal_Int32 m_nLastTopEntry;
+ sal_Int32 m_nLastSelectedPos;
+ bool m_bDisableProcessEvent;
+ bool m_bVisible;
+ sal_Int32 m_nCurSelectedPos;
+
+
+ virtual ~VCLXAccessibleList();
+
+ /** This function is called from the implementation helper during a
+ XComponent::dispose call. Free the list of items and the items themselves.
+ */
+ virtual void SAL_CALL disposing() override;
+
+ /** This method adds the states
+ AccessibleStateType::FOCUSABLE and possibly
+ AccessibleStateType::MULTI_SELECTABLE to the state set
+ of the base classes.
+ */
+ virtual void FillAccessibleStateSet (utl::AccessibleStateSetHelper& rStateSet) override;
+
+ /** Create the specified child and insert it into the list of children.
+ Sets the child's states.
+ */
+ css::uno::Reference< css::accessibility::XAccessible >
+ CreateChild (sal_Int32 i);
+
+ /** Call this method when the item list has been changed, i.e. items
+ have been deleted or inserted.
+ @param bItemInserted
+ Indicate whether items have been inserted (TRUE) or removed (FALSE).
+ @param nIndex
+ Index of the new or removed item. A value of -1 indicates that
+ the whole list has been cleared.
+ */
+ void HandleChangedItemList (bool bItemInserted, sal_Int32 nIndex);
+
+ // VCLXAccessibleComponent
+ virtual css::awt::Rectangle implGetBounds( ) throw (css::uno::RuntimeException) override;
+
+private:
+ /** We need to save the accessible parent to return it in getAccessibleParent(),
+ because this method of the base class returns the wrong parent.
+ */
+ css::uno::Reference< css::accessibility::XAccessible > m_xParent;
+
+
+ /** dispose all items aand clears the container
+ */
+ void clearItems();
+
+ void UpdateEntryRange_Impl();
+protected:
+ void UpdateSelection_Impl(sal_Int32 nPos = 0);
+ bool checkEntrySelected(sal_Int32 _nPos,
+ css::uno::Any& _rNewValue,
+ css::uno::Reference< css::accessibility::XAccessible >& _rxNewAcc);
+private:
+ void notifyVisibleStates(bool _bSetNew );
+ void UpdateVisibleLineCount();
+};
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/vclxaccessiblelistbox.hxx b/accessibility/inc/standard/vclxaccessiblelistbox.hxx
new file mode 100644
index 000000000000..22d24eec687f
--- /dev/null
+++ b/accessibility/inc/standard/vclxaccessiblelistbox.hxx
@@ -0,0 +1,56 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLELISTBOX_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLELISTBOX_HXX
+
+#include <standard/vclxaccessiblebox.hxx>
+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
+#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
+#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
+
+
+/** The accessible drop down combobox has one children. It is the list
+ containing all items and is represented by an object of the
+ VCLXAccessibleListBoxList class which does support
+ selection.
+*/
+class VCLXAccessibleListBox : public VCLXAccessibleBox
+{
+public:
+ VCLXAccessibleListBox (VCLXWindow* pVCLXindow);
+
+ // XServiceInfo
+ virtual OUString SAL_CALL getImplementationName()
+ throw (css::uno::RuntimeException, std::exception) override;
+ // Return list box specific services.
+ virtual css::uno::Sequence< OUString > SAL_CALL
+ getSupportedServiceNames()
+ throw (css::uno::RuntimeException, std::exception) override;
+
+protected:
+ virtual ~VCLXAccessibleListBox();
+
+ virtual bool IsValid() const override;
+ virtual void ProcessWindowEvent (const VclWindowEvent& rVclWindowEvent) override;
+};
+
+#endif // INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLELISTBOX_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/vclxaccessiblelistitem.hxx b/accessibility/inc/standard/vclxaccessiblelistitem.hxx
new file mode 100644
index 000000000000..1a1e2f958eae
--- /dev/null
+++ b/accessibility/inc/standard/vclxaccessiblelistitem.hxx
@@ -0,0 +1,173 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLELISTITEM_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLELISTITEM_HXX
+
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#include <com/sun/star/accessibility/XAccessibleComponent.hpp>
+#include <com/sun/star/accessibility/XAccessibleContext.hpp>
+#include <com/sun/star/accessibility/XAccessibleStateSet.hpp>
+#include <com/sun/star/accessibility/XAccessibleText.hpp>
+#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <cppuhelper/compbase6.hxx>
+#include <comphelper/broadcasthelper.hxx>
+#include <comphelper/accessibletexthelper.hxx>
+
+// forward ---------------------------------------------------------------
+
+namespace com { namespace sun { namespace star { namespace awt {
+ struct Point;
+ struct Rectangle;
+ struct Size;
+ class XFocusListener;
+} } } }
+
+namespace accessibility
+{
+ class IComboListBoxHelper;
+}
+
+// class VCLXAccessibleListItem ------------------------------------------
+
+typedef ::cppu::WeakAggComponentImplHelper6< css::accessibility::XAccessible
+ , css::accessibility::XAccessibleContext
+ , css::accessibility::XAccessibleComponent
+ , css::accessibility::XAccessibleEventBroadcaster
+ , css::accessibility::XAccessibleText
+ , css::lang::XServiceInfo > VCLXAccessibleListItem_BASE;
+
+/** the class OAccessibleListBoxEntry represents the base class for an accessible object of a listbox entry
+*/
+class VCLXAccessibleListItem : public ::comphelper::OBaseMutex,
+ public ::comphelper::OCommonAccessibleText,
+ public VCLXAccessibleListItem_BASE
+{
+private:
+ OUString m_sEntryText;
+ sal_Int32 m_nIndexInParent;
+ bool m_bSelected;
+ bool m_bVisible;
+
+protected:
+ /// client id in the AccessibleEventNotifier queue
+ sal_uInt32 m_nClientId;
+ ::accessibility::IComboListBoxHelper* m_pListBoxHelper;
+
+ css::uno::Reference< css::accessibility::XAccessible > m_xParent;
+ css::uno::Reference< css::accessibility::XAccessibleContext > m_xParentContext;
+
+protected:
+ virtual ~VCLXAccessibleListItem();
+ /** this function is called upon disposing the component
+ */
+ virtual void SAL_CALL disposing() override;
+
+ // OCommonAccessibleText
+ virtual OUString implGetText() override;
+ virtual css::lang::Locale implGetLocale() override;
+ virtual void implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex ) override;
+
+public:
+ /** OAccessibleBase needs a valid view
+ @param _pListBoxHelper
+ is the list- or combobox for which we implement an accessible object
+ @param _nIndexInParent
+ is the position of the entry inside the listbox
+ @param _xParent
+ is our parent accessible object
+ */
+ VCLXAccessibleListItem( ::accessibility::IComboListBoxHelper* _pListBoxHelper,
+ sal_Int32 _nIndexInParent,
+ const css::uno::Reference< css::accessibility::XAccessible >& _xParent );
+
+ void NotifyAccessibleEvent( sal_Int16 _nEventId, const css::uno::Any& _aOldValue, const css::uno::Any& _aNewValue );
+
+ inline bool IsSelected() const { return m_bSelected; }
+ void SetSelected( bool _bSelected );
+ void SetVisible( bool _bVisible );
+
+ // XInterface
+ virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type& aType ) throw(css::uno::RuntimeException, std::exception) override;
+ virtual void SAL_CALL acquire( ) throw() override;
+ virtual void SAL_CALL release( ) throw() override;
+
+ // XTypeProvider
+ virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (css::uno::RuntimeException, std::exception) override;
+
+ // XServiceInfo
+ virtual OUString SAL_CALL getImplementationName() throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL supportsService( const OUString& rServiceName ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessible
+ virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getAccessibleDescription( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getAccessibleName( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::lang::Locale SAL_CALL getLocale( ) throw (css::accessibility::IllegalAccessibleComponentStateException, css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleComponent
+ virtual sal_Bool SAL_CALL containsPoint( const css::awt::Point& aPoint ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::awt::Rectangle SAL_CALL getBounds( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::awt::Point SAL_CALL getLocation( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::awt::Point SAL_CALL getLocationOnScreen( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::awt::Size SAL_CALL getSize( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual void SAL_CALL grabFocus( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getForeground() throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getBackground() throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleText
+ virtual sal_Int32 SAL_CALL getCaretPosition() throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Unicode SAL_CALL getCharacter( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL getCharacterAttributes( sal_Int32 nIndex, const css::uno::Sequence< OUString >& aRequestedAttributes ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getCharacterCount() throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getIndexAtPoint( const css::awt::Point& aPoint ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getSelectedText() throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getSelectionStart() throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getSelectionEnd() throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getText() throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::accessibility::TextSegment SAL_CALL getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (css::lang::IndexOutOfBoundsException, css::lang::IllegalArgumentException, css::uno::RuntimeException, std::exception) override;
+ virtual css::accessibility::TextSegment SAL_CALL getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (css::lang::IndexOutOfBoundsException, css::lang::IllegalArgumentException, css::uno::RuntimeException, std::exception) override;
+ virtual css::accessibility::TextSegment SAL_CALL getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (css::lang::IndexOutOfBoundsException, css::lang::IllegalArgumentException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleEventBroadcaster
+ virtual void SAL_CALL addAccessibleEventListener( const css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual void SAL_CALL removeAccessibleEventListener( const css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener ) throw (css::uno::RuntimeException, std::exception) override;
+};
+
+#endif // ACCESSIBILITY_STANDARD_ACCESSIBLELISTBOXENTRY_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/vclxaccessiblemenu.hxx b/accessibility/inc/standard/vclxaccessiblemenu.hxx
new file mode 100644
index 000000000000..98ba4ec19eac
--- /dev/null
+++ b/accessibility/inc/standard/vclxaccessiblemenu.hxx
@@ -0,0 +1,79 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEMENU_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEMENU_HXX
+
+#include <standard/vclxaccessiblemenuitem.hxx>
+#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
+
+#include <cppuhelper/implbase1.hxx>
+
+
+// class VCLXAccessibleMenu
+
+
+typedef ::cppu::ImplHelper1 <
+ css::accessibility::XAccessibleSelection > VCLXAccessibleMenu_BASE;
+
+class VCLXAccessibleMenu : public VCLXAccessibleMenuItem,
+ public VCLXAccessibleMenu_BASE
+{
+protected:
+ virtual bool IsFocused() override;
+ virtual bool IsPopupMenuOpen() override;
+
+public:
+ VCLXAccessibleMenu( Menu* pParent, sal_uInt16 nItemPos, Menu* pMenu );
+ virtual ~VCLXAccessibleMenu();
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XServiceInfo
+ virtual OUString SAL_CALL getImplementationName() throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleComponent
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleSelection
+ virtual void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual void SAL_CALL clearAccessibleSelection( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual void SAL_CALL selectAllAccessibleChildren( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual void SAL_CALL deselectAccessibleChild( sal_Int32 nChildIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleAction
+ virtual ::rtl::OUString SAL_CALL getAccessibleActionDescription ( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+};
+
+#endif // INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEMENU_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/vclxaccessiblemenubar.hxx b/accessibility/inc/standard/vclxaccessiblemenubar.hxx
new file mode 100644
index 000000000000..9ea5c585ae28
--- /dev/null
+++ b/accessibility/inc/standard/vclxaccessiblemenubar.hxx
@@ -0,0 +1,66 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEMENUBAR_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEMENUBAR_HXX
+
+#include <standard/accessiblemenucomponent.hxx>
+#include <vcl/vclptr.hxx>
+
+class VclSimpleEvent;
+class VclWindowEvent;
+namespace vcl { class Window; }
+
+
+// class VCLXAccessibleMenuBar
+
+
+class VCLXAccessibleMenuBar : public OAccessibleMenuComponent
+{
+protected:
+ VclPtr<vcl::Window> m_pWindow;
+
+ virtual bool IsFocused() override;
+
+ DECL_LINK_TYPED( WindowEventListener, VclWindowEvent&, void );
+
+ void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent );
+
+ // XComponent
+ virtual void SAL_CALL disposing() override;
+
+public:
+ VCLXAccessibleMenuBar( Menu* pMenu );
+ virtual ~VCLXAccessibleMenuBar();
+
+ // XServiceInfo
+ virtual OUString SAL_CALL getImplementationName() throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleExtendedComponent
+ virtual sal_Int32 SAL_CALL getBackground( ) throw (css::uno::RuntimeException, std::exception) override;
+};
+
+#endif // INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEMENUBAR_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/vclxaccessiblemenuitem.hxx b/accessibility/inc/standard/vclxaccessiblemenuitem.hxx
new file mode 100644
index 000000000000..df2249ab6d22
--- /dev/null
+++ b/accessibility/inc/standard/vclxaccessiblemenuitem.hxx
@@ -0,0 +1,109 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEMENUITEM_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEMENUITEM_HXX
+
+#include <standard/accessiblemenuitemcomponent.hxx>
+
+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
+#include <com/sun/star/accessibility/XAccessibleValue.hpp>
+
+#include <cppuhelper/implbase3.hxx>
+#include <comphelper/accessibletexthelper.hxx>
+
+
+// class VCLXAccessibleMenuItem
+
+
+typedef ::cppu::ImplHelper3<
+ css::accessibility::XAccessibleText,
+ css::accessibility::XAccessibleAction,
+ css::accessibility::XAccessibleValue > VCLXAccessibleMenuItem_BASE;
+
+class VCLXAccessibleMenuItem : public OAccessibleMenuItemComponent,
+ public ::comphelper::OCommonAccessibleText,
+ public VCLXAccessibleMenuItem_BASE
+{
+protected:
+ virtual bool IsFocused() override;
+ virtual bool IsSelected() override;
+ virtual bool IsChecked() override;
+
+ virtual bool IsHighlighted() override;
+
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) override;
+
+ // OCommonAccessibleText
+ virtual OUString implGetText() override;
+ virtual css::lang::Locale implGetLocale() override;
+ virtual void implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex ) override;
+
+public:
+ VCLXAccessibleMenuItem( Menu* pParent, sal_uInt16 nItemPos, Menu* pMenu = nullptr );
+ virtual ~VCLXAccessibleMenuItem();
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XServiceInfo
+ virtual OUString SAL_CALL getImplementationName() throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleContext
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleText
+ virtual sal_Int32 SAL_CALL getCaretPosition() throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Unicode SAL_CALL getCharacter( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL getCharacterAttributes( sal_Int32 nIndex, const css::uno::Sequence< OUString >& aRequestedAttributes ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getCharacterCount() throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getIndexAtPoint( const css::awt::Point& aPoint ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getSelectedText() throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getSelectionStart() throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getSelectionEnd() throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getText() throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::accessibility::TextSegment SAL_CALL getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (css::lang::IndexOutOfBoundsException, css::lang::IllegalArgumentException, css::uno::RuntimeException, std::exception) override;
+ virtual css::accessibility::TextSegment SAL_CALL getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (css::lang::IndexOutOfBoundsException, css::lang::IllegalArgumentException, css::uno::RuntimeException, std::exception) override;
+ virtual css::accessibility::TextSegment SAL_CALL getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (css::lang::IndexOutOfBoundsException, css::lang::IllegalArgumentException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleAction
+ virtual sal_Int32 SAL_CALL getAccessibleActionCount( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL doAccessibleAction ( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getAccessibleActionDescription ( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessibleKeyBinding > SAL_CALL getAccessibleActionKeyBinding( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleValue
+ virtual css::uno::Any SAL_CALL getCurrentValue( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL setCurrentValue( const css::uno::Any& aNumber ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Any SAL_CALL getMaximumValue( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Any SAL_CALL getMinimumValue( ) throw (css::uno::RuntimeException, std::exception) override;
+};
+
+#endif // INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEMENUITEM_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/vclxaccessiblemenuseparator.hxx b/accessibility/inc/standard/vclxaccessiblemenuseparator.hxx
new file mode 100644
index 000000000000..065740cc2691
--- /dev/null
+++ b/accessibility/inc/standard/vclxaccessiblemenuseparator.hxx
@@ -0,0 +1,46 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEMENUSEPARATOR_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEMENUSEPARATOR_HXX
+
+#include <standard/accessiblemenuitemcomponent.hxx>
+
+
+// class VCLXAccessibleMenuSeparator
+
+
+class VCLXAccessibleMenuSeparator : public OAccessibleMenuItemComponent
+{
+public:
+ VCLXAccessibleMenuSeparator( Menu* pParent, sal_uInt16 nItemPos, Menu* pMenu = nullptr );
+ virtual ~VCLXAccessibleMenuSeparator();
+
+ // XServiceInfo
+ virtual OUString SAL_CALL getImplementationName() throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleContext
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (css::uno::RuntimeException, std::exception) override;
+};
+
+
+#endif // INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEMENUSEPARATOR_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/vclxaccessiblepopupmenu.hxx b/accessibility/inc/standard/vclxaccessiblepopupmenu.hxx
new file mode 100644
index 000000000000..bae088140c0a
--- /dev/null
+++ b/accessibility/inc/standard/vclxaccessiblepopupmenu.hxx
@@ -0,0 +1,52 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEPOPUPMENU_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEPOPUPMENU_HXX
+
+#include <standard/accessiblemenucomponent.hxx>
+
+
+// class VCLXAccessiblePopupMenu
+
+
+class VCLXAccessiblePopupMenu : public OAccessibleMenuComponent
+{
+protected:
+ virtual bool IsFocused() override;
+
+public:
+ VCLXAccessiblePopupMenu( Menu* pMenu );
+ virtual ~VCLXAccessiblePopupMenu();
+
+ // XServiceInfo
+ virtual OUString SAL_CALL getImplementationName() throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleExtendedComponent
+ virtual sal_Int32 SAL_CALL getBackground( ) throw (css::uno::RuntimeException, std::exception) override;
+};
+
+#endif // INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLEPOPUPMENU_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/vclxaccessibleradiobutton.hxx b/accessibility/inc/standard/vclxaccessibleradiobutton.hxx
new file mode 100644
index 000000000000..8a13c7eb116a
--- /dev/null
+++ b/accessibility/inc/standard/vclxaccessibleradiobutton.hxx
@@ -0,0 +1,76 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLERADIOBUTTON_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLERADIOBUTTON_HXX
+
+#include <standard/vclxaccessibletextcomponent.hxx>
+
+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
+#include <com/sun/star/accessibility/XAccessibleValue.hpp>
+
+#include <cppuhelper/implbase2.hxx>
+
+
+// class VCLXAccessibleRadioButton
+
+
+typedef ::cppu::ImplHelper2<
+ css::accessibility::XAccessibleAction,
+ css::accessibility::XAccessibleValue > VCLXAccessibleRadioButton_BASE;
+
+class VCLXAccessibleRadioButton : public VCLXAccessibleTextComponent,
+ public VCLXAccessibleRadioButton_BASE
+{
+protected:
+ virtual ~VCLXAccessibleRadioButton();
+
+ virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent ) override;
+ virtual void FillAccessibleRelationSet( utl::AccessibleRelationSetHelper& rRelationSet ) override;
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) override;
+
+public:
+ VCLXAccessibleRadioButton( VCLXWindow* pVCLXindow );
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XServiceInfo
+ virtual OUString SAL_CALL getImplementationName() throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleAction
+ virtual sal_Int32 SAL_CALL getAccessibleActionCount( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL doAccessibleAction ( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getAccessibleActionDescription ( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessibleKeyBinding > SAL_CALL getAccessibleActionKeyBinding( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleValue
+ virtual css::uno::Any SAL_CALL getCurrentValue( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL setCurrentValue( const css::uno::Any& aNumber ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Any SAL_CALL getMaximumValue( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Any SAL_CALL getMinimumValue( ) throw (css::uno::RuntimeException, std::exception) override;
+};
+
+#endif // INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLERADIOBUTTON_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/vclxaccessiblescrollbar.hxx b/accessibility/inc/standard/vclxaccessiblescrollbar.hxx
new file mode 100644
index 000000000000..40f51cceaa45
--- /dev/null
+++ b/accessibility/inc/standard/vclxaccessiblescrollbar.hxx
@@ -0,0 +1,79 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLESCROLLBAR_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLESCROLLBAR_HXX
+
+#include <toolkit/awt/vclxaccessiblecomponent.hxx>
+
+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
+#include <com/sun/star/accessibility/XAccessibleValue.hpp>
+
+#include <cppuhelper/implbase2.hxx>
+
+
+// class VCLXAccessibleScrollBar
+
+
+typedef ::cppu::ImplHelper2<
+ css::accessibility::XAccessibleAction,
+ css::accessibility::XAccessibleValue > VCLXAccessibleScrollBar_BASE;
+
+class VCLXAccessibleScrollBar : public VCLXAccessibleComponent,
+ public VCLXAccessibleScrollBar_BASE
+{
+protected:
+ virtual ~VCLXAccessibleScrollBar();
+
+ virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent ) override;
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) override;
+
+public:
+ VCLXAccessibleScrollBar( VCLXWindow* pVCLXindow );
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XServiceInfo
+ virtual OUString SAL_CALL getImplementationName() throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleAction
+ virtual sal_Int32 SAL_CALL getAccessibleActionCount( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL doAccessibleAction ( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getAccessibleActionDescription ( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessibleKeyBinding > SAL_CALL getAccessibleActionKeyBinding( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleValue
+ virtual css::uno::Any SAL_CALL getCurrentValue( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL setCurrentValue( const css::uno::Any& aNumber ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Any SAL_CALL getMaximumValue( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Any SAL_CALL getMinimumValue( ) throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleContext
+ ::rtl::OUString SAL_CALL getAccessibleName( ) throw (css::uno::RuntimeException, std::exception) override;
+
+};
+
+#endif // INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLESCROLLBAR_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/vclxaccessiblestatusbar.hxx b/accessibility/inc/standard/vclxaccessiblestatusbar.hxx
new file mode 100644
index 000000000000..24fd96e8ad58
--- /dev/null
+++ b/accessibility/inc/standard/vclxaccessiblestatusbar.hxx
@@ -0,0 +1,74 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLESTATUSBAR_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLESTATUSBAR_HXX
+
+#include <toolkit/awt/vclxaccessiblecomponent.hxx>
+#include <vcl/vclptr.hxx>
+
+#include <vector>
+
+class StatusBar;
+
+
+// class VCLXAccessibleStatusBar
+
+
+class VCLXAccessibleStatusBar : public VCLXAccessibleComponent
+{
+private:
+ typedef ::std::vector< css::uno::Reference< css::accessibility::XAccessible > > AccessibleChildren;
+
+ AccessibleChildren m_aAccessibleChildren;
+ VclPtr<StatusBar> m_pStatusBar;
+
+protected:
+ void UpdateShowing( sal_Int32 i, bool bShowing );
+ void UpdateItemName( sal_Int32 i );
+ void UpdateItemText( sal_Int32 i );
+
+ void InsertChild( sal_Int32 i );
+ void RemoveChild( sal_Int32 i );
+
+ virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent ) override;
+
+ // XComponent
+ virtual void SAL_CALL disposing() override;
+
+public:
+ VCLXAccessibleStatusBar( VCLXWindow* pVCLXWindow );
+ virtual ~VCLXAccessibleStatusBar();
+
+ // XServiceInfo
+ virtual OUString SAL_CALL getImplementationName() throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleComponent
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) throw (css::uno::RuntimeException, std::exception) override;
+};
+
+
+#endif // INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLESTATUSBAR_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/vclxaccessiblestatusbaritem.hxx b/accessibility/inc/standard/vclxaccessiblestatusbaritem.hxx
new file mode 100644
index 000000000000..fb919df30207
--- /dev/null
+++ b/accessibility/inc/standard/vclxaccessiblestatusbaritem.hxx
@@ -0,0 +1,134 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLESTATUSBARITEM_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLESTATUSBARITEM_HXX
+
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <comphelper/accessibletexthelper.hxx>
+#include <cppuhelper/implbase2.hxx>
+#include <vcl/vclptr.hxx>
+
+class StatusBar;
+class VCLExternalSolarLock;
+
+namespace utl {
+class AccessibleStateSetHelper;
+}
+
+
+// class VCLXAccessibleStatusBarItem
+
+
+typedef ::comphelper::OAccessibleTextHelper AccessibleTextHelper_BASE;
+
+typedef ::cppu::ImplHelper2<
+ css::accessibility::XAccessible,
+ css::lang::XServiceInfo > VCLXAccessibleStatusBarItem_BASE;
+
+class VCLXAccessibleStatusBarItem : public AccessibleTextHelper_BASE,
+ public VCLXAccessibleStatusBarItem_BASE
+{
+ friend class VCLXAccessibleStatusBar;
+
+private:
+ VCLExternalSolarLock* m_pExternalLock;
+ VclPtr<StatusBar> m_pStatusBar;
+ sal_uInt16 m_nItemId;
+ OUString m_sItemName;
+ OUString m_sItemText;
+ bool m_bShowing;
+
+protected:
+ bool IsShowing();
+ void SetShowing( bool bShowing );
+ void SetItemName( const OUString& sItemName );
+ OUString GetItemName();
+ void SetItemText( const OUString& sItemText );
+ OUString GetItemText();
+ sal_uInt16 GetItemId() const { return m_nItemId; }
+
+ void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
+
+ // OCommonAccessibleComponent
+ virtual css::awt::Rectangle implGetBounds( ) throw (css::uno::RuntimeException) override;
+
+ // OCommonAccessibleText
+ virtual OUString implGetText() override;
+ virtual css::lang::Locale implGetLocale() override;
+ virtual void implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex ) override;
+
+ // XComponent
+ virtual void SAL_CALL disposing() override;
+
+public:
+ VCLXAccessibleStatusBarItem( StatusBar* pStatusBar, sal_uInt16 nItemId );
+ virtual ~VCLXAccessibleStatusBarItem();
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XServiceInfo
+ virtual OUString SAL_CALL getImplementationName() throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL supportsService( const OUString& rServiceName ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessible
+ virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getAccessibleDescription( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getAccessibleName( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::lang::Locale SAL_CALL getLocale( ) throw (css::accessibility::IllegalAccessibleComponentStateException, css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleComponent
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual void SAL_CALL grabFocus( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getForeground( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getBackground( ) throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleExtendedComponent
+ virtual css::uno::Reference< css::awt::XFont > SAL_CALL getFont( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getTitledBorderText( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getToolTipText( ) throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleText
+ virtual sal_Int32 SAL_CALL getCaretPosition() throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL getCharacterAttributes( sal_Int32 nIndex, const css::uno::Sequence< OUString >& aRequestedAttributes ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getIndexAtPoint( const css::awt::Point& aPoint ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+};
+
+#endif // INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLESTATUSBARITEM_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/vclxaccessibletabcontrol.hxx b/accessibility/inc/standard/vclxaccessibletabcontrol.hxx
new file mode 100644
index 000000000000..d024176132f4
--- /dev/null
+++ b/accessibility/inc/standard/vclxaccessibletabcontrol.hxx
@@ -0,0 +1,96 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLETABCONTROL_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLETABCONTROL_HXX
+
+#include <toolkit/awt/vclxaccessiblecomponent.hxx>
+#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
+#include <vcl/vclptr.hxx>
+
+#include <vector>
+
+class TabControl;
+
+
+// class VCLXAccessibleTabControl
+
+
+typedef ::cppu::ImplHelper1 <
+ css::accessibility::XAccessibleSelection > VCLXAccessibleTabControl_BASE;
+
+class VCLXAccessibleTabControl : public VCLXAccessibleComponent,
+ public VCLXAccessibleTabControl_BASE
+{
+private:
+ typedef ::std::vector< css::uno::Reference< css::accessibility::XAccessible > > AccessibleChildren;
+
+ AccessibleChildren m_aAccessibleChildren;
+ VclPtr<TabControl> m_pTabControl;
+
+protected:
+ void UpdateFocused();
+ void UpdateSelected( sal_Int32 i, bool bSelected );
+ void UpdatePageText( sal_Int32 i );
+ void UpdateTabPage( sal_Int32 i, bool bNew );
+
+ void InsertChild( sal_Int32 i );
+ void RemoveChild( sal_Int32 i );
+
+ virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent ) override;
+ virtual void ProcessWindowChildEvent( const VclWindowEvent& rVclWindowEvent ) override;
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) override;
+
+ // XComponent
+ virtual void SAL_CALL disposing() override;
+
+public:
+ VCLXAccessibleTabControl( VCLXWindow* pVCLXWindow );
+ virtual ~VCLXAccessibleTabControl();
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XServiceInfo
+ virtual OUString SAL_CALL getImplementationName() throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getAccessibleName( ) throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleSelection
+ virtual void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual void SAL_CALL clearAccessibleSelection( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual void SAL_CALL selectAllAccessibleChildren( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual void SAL_CALL deselectAccessibleChild( sal_Int32 nChildIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+};
+
+
+#endif // INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLETABCONTROL_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/vclxaccessibletabpage.hxx b/accessibility/inc/standard/vclxaccessibletabpage.hxx
new file mode 100644
index 000000000000..4ea0d272a2cb
--- /dev/null
+++ b/accessibility/inc/standard/vclxaccessibletabpage.hxx
@@ -0,0 +1,139 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLETABPAGE_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLETABPAGE_HXX
+
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <comphelper/accessibletexthelper.hxx>
+#include <cppuhelper/implbase2.hxx>
+#include <vcl/vclptr.hxx>
+
+
+class TabControl;
+class VCLExternalSolarLock;
+
+namespace utl {
+class AccessibleStateSetHelper;
+}
+
+
+// class VCLXAccessibleTabPage
+
+
+typedef ::comphelper::OAccessibleTextHelper AccessibleTextHelper_BASE;
+
+typedef ::cppu::ImplHelper2<
+ css::accessibility::XAccessible,
+ css::lang::XServiceInfo > VCLXAccessibleTabPage_BASE;
+
+class VCLXAccessibleTabPage : public AccessibleTextHelper_BASE,
+ public VCLXAccessibleTabPage_BASE
+{
+ friend class VCLXAccessibleTabControl;
+
+private:
+ VCLExternalSolarLock* m_pExternalLock;
+ VclPtr<TabControl> m_pTabControl;
+ sal_uInt16 m_nPageId;
+ bool m_bFocused;
+ bool m_bSelected;
+ OUString m_sPageText;
+
+protected:
+ bool IsFocused();
+ bool IsSelected();
+
+ void SetFocused( bool bFocused );
+ void SetSelected( bool bSelected );
+ void SetPageText( const OUString& sPageText );
+ OUString GetPageText();
+
+ void Update( bool bNew );
+
+ sal_uInt16 GetPageId() const { return m_nPageId; }
+
+ void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
+
+ // OCommonAccessibleComponent
+ virtual css::awt::Rectangle implGetBounds( ) throw (css::uno::RuntimeException) override;
+
+ // OCommonAccessibleText
+ virtual OUString implGetText() override;
+ virtual css::lang::Locale implGetLocale() override;
+ virtual void implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex ) override;
+
+ // XComponent
+ virtual void SAL_CALL disposing() override;
+
+public:
+ VCLXAccessibleTabPage( TabControl* pTabControl, sal_uInt16 nPageId );
+ virtual ~VCLXAccessibleTabPage();
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XServiceInfo
+ virtual OUString SAL_CALL getImplementationName() throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL supportsService( const OUString& rServiceName ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessible
+ virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getAccessibleDescription( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getAccessibleName( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::lang::Locale SAL_CALL getLocale( ) throw (css::accessibility::IllegalAccessibleComponentStateException, css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleComponent
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual void SAL_CALL grabFocus( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getForeground( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getBackground( ) throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleExtendedComponent
+ virtual css::uno::Reference< css::awt::XFont > SAL_CALL getFont( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getTitledBorderText( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getToolTipText( ) throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleText
+ virtual sal_Int32 SAL_CALL getCaretPosition() throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL getCharacterAttributes( sal_Int32 nIndex, const css::uno::Sequence< OUString >& aRequestedAttributes ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getIndexAtPoint( const css::awt::Point& aPoint ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+};
+
+#endif // INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLETABPAGE_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/vclxaccessibletabpagewindow.hxx b/accessibility/inc/standard/vclxaccessibletabpagewindow.hxx
new file mode 100644
index 000000000000..b485f081173f
--- /dev/null
+++ b/accessibility/inc/standard/vclxaccessibletabpagewindow.hxx
@@ -0,0 +1,60 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLETABPAGEWINDOW_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLETABPAGEWINDOW_HXX
+
+#include <toolkit/awt/vclxaccessiblecomponent.hxx>
+#include <vcl/vclptr.hxx>
+
+
+class TabControl;
+class TabPage;
+
+
+// class VCLXAccessibleTabPageWindow
+
+
+class VCLXAccessibleTabPageWindow : public VCLXAccessibleComponent
+{
+private:
+ VclPtr<TabControl> m_pTabControl;
+ VclPtr<TabPage> m_pTabPage;
+ sal_uInt16 m_nPageId;
+
+protected:
+ // OCommonAccessibleComponent
+ virtual css::awt::Rectangle implGetBounds( ) throw (css::uno::RuntimeException) override;
+
+ // XComponent
+ virtual void SAL_CALL disposing() override;
+
+public:
+ VCLXAccessibleTabPageWindow( VCLXWindow* pVCLXWindow );
+ virtual ~VCLXAccessibleTabPageWindow();
+
+ // XAccessibleContext
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) throw (css::uno::RuntimeException, std::exception) override;
+};
+
+
+#endif // INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLETABPAGEWINDOW_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/vclxaccessibletextcomponent.hxx b/accessibility/inc/standard/vclxaccessibletextcomponent.hxx
new file mode 100644
index 000000000000..24cc9c34a3cb
--- /dev/null
+++ b/accessibility/inc/standard/vclxaccessibletextcomponent.hxx
@@ -0,0 +1,85 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLETEXTCOMPONENT_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLETEXTCOMPONENT_HXX
+
+#include <toolkit/awt/vclxaccessiblecomponent.hxx>
+#include <comphelper/accessibletexthelper.hxx>
+
+
+// class VCLXAccessibleTextComponent
+
+
+typedef ::cppu::ImplHelper1 <
+ css::accessibility::XAccessibleText > VCLXAccessibleTextComponent_BASE;
+
+class VCLXAccessibleTextComponent : public VCLXAccessibleComponent,
+ public ::comphelper::OCommonAccessibleText,
+ public VCLXAccessibleTextComponent_BASE
+{
+protected:
+ OUString m_sText;
+
+ void SetText( const OUString& sText );
+
+ virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent ) override;
+
+ // OCommonAccessibleText
+ virtual OUString implGetText() override;
+ virtual css::lang::Locale implGetLocale() override;
+ virtual void implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex ) override;
+
+ // XComponent
+ virtual void SAL_CALL disposing() override;
+
+public:
+ VCLXAccessibleTextComponent( VCLXWindow* pVCLXWindow );
+ virtual ~VCLXAccessibleTextComponent();
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XAccessibleText
+ virtual sal_Int32 SAL_CALL getCaretPosition() throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Unicode SAL_CALL getCharacter( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL getCharacterAttributes( sal_Int32 nIndex, const css::uno::Sequence< OUString >& aRequestedAttributes ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getCharacterCount() throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getIndexAtPoint( const css::awt::Point& aPoint ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getSelectedText() throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getSelectionStart() throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getSelectionEnd() throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getText() throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::accessibility::TextSegment SAL_CALL getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (css::lang::IndexOutOfBoundsException, css::lang::IllegalArgumentException, css::uno::RuntimeException, std::exception) override;
+ virtual css::accessibility::TextSegment SAL_CALL getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (css::lang::IndexOutOfBoundsException, css::lang::IllegalArgumentException, css::uno::RuntimeException, std::exception) override;
+ virtual css::accessibility::TextSegment SAL_CALL getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (css::lang::IndexOutOfBoundsException, css::lang::IllegalArgumentException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+};
+
+
+#endif // INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLETEXTCOMPONENT_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/vclxaccessibletextfield.hxx b/accessibility/inc/standard/vclxaccessibletextfield.hxx
new file mode 100644
index 000000000000..d71b7c275e96
--- /dev/null
+++ b/accessibility/inc/standard/vclxaccessibletextfield.hxx
@@ -0,0 +1,92 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLETEXTFIELD_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLETEXTFIELD_HXX
+
+#include <standard/vclxaccessibletextcomponent.hxx>
+
+#include <cppuhelper/implbase1.hxx>
+
+typedef ::cppu::ImplHelper1< css::accessibility::XAccessible > VCLXAccessible_BASE;
+
+
+/** This class represents non editable text fields. The object passed to
+ the constructor is expected to be a list (a ListBox to be
+ more specific). From this always the selected item is token to be made
+ accessible by this class. When the selected item changes then also the
+ exported text changes.
+*/
+class VCLXAccessibleTextField :
+ public VCLXAccessibleTextComponent,
+ public VCLXAccessible_BASE
+{
+public:
+ VCLXAccessibleTextField (VCLXWindow* pVCLXindow,
+ const css::uno::Reference< css::accessibility::XAccessible >& _xParent);
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XAccessible
+ css::uno::Reference< css::accessibility::XAccessibleContext> SAL_CALL
+ getAccessibleContext()
+ throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleContext
+ sal_Int32 SAL_CALL getAccessibleChildCount()
+ throw (css::uno::RuntimeException, std::exception) override;
+ css::uno::Reference< css::accessibility::XAccessible> SAL_CALL
+ getAccessibleChild (sal_Int32 i)
+ throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ sal_Int16 SAL_CALL getAccessibleRole()
+ throw (css::uno::RuntimeException, std::exception) override;
+ css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
+ getAccessibleParent( )
+ throw (css::uno::RuntimeException, std::exception) override;
+
+ // XServiceInfo
+ virtual OUString SAL_CALL getImplementationName()
+ throw (css::uno::RuntimeException, std::exception) override;
+ // Return text field specific services.
+ virtual css::uno::Sequence< OUString > SAL_CALL
+ getSupportedServiceNames()
+ throw (css::uno::RuntimeException, std::exception) override;
+
+protected:
+ virtual ~VCLXAccessibleTextField();
+
+ /** With this method the text of the currently selected item is made
+ available to the VCLXAccessibleTextComponent base class.
+ */
+ OUString implGetText() override;
+
+private:
+ /** We need to save the accessible parent to return it in getAccessibleParent(),
+ because this method of the base class returns the wrong parent.
+ */
+ css::uno::Reference< css::accessibility::XAccessible > m_xParent;
+};
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/vclxaccessibletoolbox.hxx b/accessibility/inc/standard/vclxaccessibletoolbox.hxx
new file mode 100644
index 000000000000..63dfa107829a
--- /dev/null
+++ b/accessibility/inc/standard/vclxaccessibletoolbox.hxx
@@ -0,0 +1,105 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLETOOLBOX_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLETOOLBOX_HXX
+
+#include <map>
+#include <toolkit/awt/vclxaccessiblecomponent.hxx>
+#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
+
+
+// class VCLXAccessibleToolBox
+
+
+typedef ::cppu::ImplHelper1 < css::accessibility::XAccessibleSelection > VCLXAccessibleToolBox_BASE;
+
+typedef std::map< sal_Int32, css::uno::Reference< css::accessibility::XAccessible > > ToolBoxItemsMap;
+
+class VCLXAccessibleToolBoxItem;
+class ToolBox;
+
+class VCLXAccessibleToolBox : public VCLXAccessibleComponent, public VCLXAccessibleToolBox_BASE
+{
+private:
+ ToolBoxItemsMap m_aAccessibleChildren;
+
+ VCLXAccessibleToolBoxItem* GetItem_Impl( sal_Int32 _nPos );
+
+ void UpdateFocus_Impl();
+ void ReleaseFocus_Impl( sal_Int32 _nPos );
+ void UpdateChecked_Impl( sal_Int32 _nPos );
+ void UpdateIndeterminate_Impl( sal_Int32 _nPos );
+ void UpdateItem_Impl( sal_Int32 _nPos );
+ void UpdateAllItems_Impl();
+ void UpdateItemName_Impl( sal_Int32 _nPos );
+ void UpdateItemEnabled_Impl( sal_Int32 _nPos );
+ void UpdateCustomPopupItemp_Impl( vcl::Window* pWindow, bool bOpen );
+ void HandleSubToolBarEvent( const VclWindowEvent& rVclWindowEvent );
+ void ReleaseSubToolBox( ToolBox* _pSubToolBox );
+
+protected:
+ virtual ~VCLXAccessibleToolBox();
+
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) override;
+ virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent ) override;
+ virtual void ProcessWindowChildEvent( const VclWindowEvent& rVclWindowEvent ) override;
+
+ virtual css::uno::Reference< css::accessibility::XAccessible > GetChildAccessible( const VclWindowEvent& rVclWindowEvent ) override;
+ css::uno::Reference< css::accessibility::XAccessible > GetItemWindowAccessible( const VclWindowEvent& rVclWindowEvent );
+
+ // XComponent
+ virtual void SAL_CALL disposing() override;
+
+public:
+ VCLXAccessibleToolBox( VCLXWindow* pVCLXWindow );
+
+ // XInterface
+ DECLARE_XINTERFACE( )
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER( )
+
+ // XServiceInfo
+ virtual OUString SAL_CALL getImplementationName() throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleSelection
+ virtual void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual void SAL_CALL clearAccessibleSelection( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual void SAL_CALL selectAllAccessibleChildren( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual void SAL_CALL deselectAccessibleChild( sal_Int32 nChildIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+
+private:
+ void implReleaseToolboxItem(
+ ToolBoxItemsMap::iterator& _rMapPos,
+ bool _bNotifyRemoval
+ );
+};
+
+#endif // INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLETOOLBOX_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/inc/standard/vclxaccessibletoolboxitem.hxx b/accessibility/inc/standard/vclxaccessibletoolboxitem.hxx
new file mode 100644
index 000000000000..3411640637c7
--- /dev/null
+++ b/accessibility/inc/standard/vclxaccessibletoolboxitem.hxx
@@ -0,0 +1,154 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLETOOLBOXITEM_HXX
+#define INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLETOOLBOXITEM_HXX
+
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
+#include <com/sun/star/accessibility/XAccessibleComponent.hpp>
+#include <com/sun/star/accessibility/XAccessibleContext.hpp>
+#include <com/sun/star/accessibility/XAccessibleStateSet.hpp>
+#include <com/sun/star/accessibility/XAccessibleText.hpp>
+#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
+#include <com/sun/star/accessibility/XAccessibleValue.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <cppuhelper/implbase4.hxx>
+#include <comphelper/accessibletexthelper.hxx>
+#include <vcl/vclptr.hxx>
+
+class ToolBox;
+
+typedef ::comphelper::OAccessibleTextHelper AccessibleTextHelper_BASE;
+typedef ::cppu::ImplHelper4 < css::accessibility::XAccessible,
+ css::accessibility::XAccessibleAction,
+ css::accessibility::XAccessibleValue,
+ css::lang::XServiceInfo > VCLXAccessibleToolBoxItem_BASE;
+
+class VCLExternalSolarLock;
+
+class VCLXAccessibleToolBoxItem : public AccessibleTextHelper_BASE,
+ public VCLXAccessibleToolBoxItem_BASE
+{
+private:
+ OUString m_sOldName;
+ VclPtr<ToolBox> m_pToolBox;
+ VCLExternalSolarLock* m_pExternalLock;
+ sal_Int32 m_nIndexInParent;
+ sal_Int16 m_nRole;
+ sal_uInt16 m_nItemId;
+ bool m_bHasFocus;
+ bool m_bIsChecked;
+ bool m_bIndeterminate;
+
+ css::uno::Reference< css::accessibility::XAccessible > m_xChild;
+
+public:
+ inline sal_Int32 getIndexInParent() const { return m_nIndexInParent; }
+ inline void setIndexInParent( sal_Int32 _nNewIndex ) { m_nIndexInParent = _nNewIndex; }
+
+protected:
+ virtual ~VCLXAccessibleToolBoxItem();
+
+ virtual void SAL_CALL disposing() override;
+
+ /// implements the calculation of the bounding rectangle
+ virtual css::awt::Rectangle implGetBounds( ) throw (css::uno::RuntimeException) override;
+
+ // OCommonAccessibleText
+ virtual OUString implGetText() override;
+ virtual css::lang::Locale implGetLocale() override;
+ virtual void implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex ) override;
+
+ OUString GetText();
+
+public:
+ VCLXAccessibleToolBoxItem( ToolBox* _pToolBox, sal_Int32 _nPos );
+
+ void SetFocus( bool _bFocus );
+ inline bool HasFocus() const { return m_bHasFocus; }
+ void SetChecked( bool _bCheck );
+ void SetIndeterminate( bool _bIndeterminate );
+ inline void ReleaseToolBox() { m_pToolBox = nullptr; }
+ void NameChanged();
+ void SetChild( const css::uno::Reference< css::accessibility::XAccessible >& _xChild );
+ const css::uno::Reference< css::accessibility::XAccessible >&
+ GetChild() const { return m_xChild; }
+ void NotifyChildEvent( const css::uno::Reference< css::accessibility::XAccessible >& _xChild, bool _bShow );
+
+ void ToggleEnableState();
+
+ // XInterface
+ DECLARE_XINTERFACE( )
+ DECLARE_XTYPEPROVIDER( )
+
+ // XServiceInfo
+ virtual OUString SAL_CALL getImplementationName() throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL supportsService( const OUString& rServiceName ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessible
+ virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getAccessibleDescription( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getAccessibleName( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleText
+ virtual sal_Int32 SAL_CALL getCaretPosition() throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL getCharacterAttributes( sal_Int32 nIndex, const css::uno::Sequence< OUString >& aRequestedAttributes ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getIndexAtPoint( const css::awt::Point& aPoint ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleComponent
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual void SAL_CALL grabFocus( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getForeground( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Int32 SAL_CALL getBackground( ) throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleExtendedComponent
+ virtual css::uno::Reference< css::awt::XFont > SAL_CALL getFont( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getTitledBorderText( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getToolTipText( ) throw (css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleAction
+ virtual sal_Int32 SAL_CALL getAccessibleActionCount( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL doAccessibleAction ( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual OUString SAL_CALL getAccessibleActionDescription ( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Reference< css::accessibility::XAccessibleKeyBinding > SAL_CALL getAccessibleActionKeyBinding( sal_Int32 nIndex ) throw (css::lang::IndexOutOfBoundsException, css::uno::RuntimeException, std::exception) override;
+
+ // XAccessibleValue
+ virtual css::uno::Any SAL_CALL getCurrentValue( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual sal_Bool SAL_CALL setCurrentValue( const css::uno::Any& aNumber ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Any SAL_CALL getMaximumValue( ) throw (css::uno::RuntimeException, std::exception) override;
+ virtual css::uno::Any SAL_CALL getMinimumValue( ) throw (css::uno::RuntimeException, std::exception) override;
+};
+
+#endif // INCLUDED_ACCESSIBILITY_INC_STANDARD_VCLXACCESSIBLETOOLBOXITEM_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */