summaryrefslogtreecommitdiff
path: root/accessibility/source/helper/acc_factory.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'accessibility/source/helper/acc_factory.cxx')
-rw-r--r--accessibility/source/helper/acc_factory.cxx91
1 files changed, 78 insertions, 13 deletions
diff --git a/accessibility/source/helper/acc_factory.cxx b/accessibility/source/helper/acc_factory.cxx
index a4648485c2dc..25622d1c7c22 100644
--- a/accessibility/source/helper/acc_factory.cxx
+++ b/accessibility/source/helper/acc_factory.cxx
@@ -17,11 +17,14 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+#include <config_features.h>
#include <config_feature_desktop.h>
+#include <cppuhelper/supportsservice.hxx>
#include <toolkit/awt/vclxwindows.hxx>
#include <toolkit/helper/accessiblefactory.hxx>
#include <vcl/accessiblefactory.hxx>
+#include <standard/svtaccessiblenumericfield.hxx>
#include <standard/vclxaccessiblebutton.hxx>
#include <standard/vclxaccessiblecheckbox.hxx>
#include <standard/vclxaccessibledropdowncombobox.hxx>
@@ -44,6 +47,7 @@
#include <extended/accessibletablistbox.hxx>
#include <extended/AccessibleBrowseBox.hxx>
#include <extended/accessibleiconchoicectrl.hxx>
+#include <extended/AccessibleIconView.hxx>
#include <extended/accessibletabbar.hxx>
#include <extended/accessiblelistbox.hxx>
#include <extended/AccessibleBrowseBoxHeaderBar.hxx>
@@ -100,12 +104,16 @@ public:
virtual css::uno::Reference< css::accessibility::XAccessibleContext >
createAccessibleContext( VCLXEdit* _pXWindow ) override;
virtual css::uno::Reference< css::accessibility::XAccessibleContext >
+ createAccessibleContext( VCLXMultiLineEdit* _pXWindow ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessibleContext >
createAccessibleContext( VCLXComboBox* _pXWindow ) override;
virtual css::uno::Reference< css::accessibility::XAccessibleContext >
createAccessibleContext( VCLXToolBox* _pXWindow ) override;
virtual css::uno::Reference< css::accessibility::XAccessibleContext >
createAccessibleContext( VCLXHeaderBar* _pXWindow ) override;
virtual css::uno::Reference< css::accessibility::XAccessibleContext >
+ createAccessibleContext( SVTXNumericField* _pXWindow ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessibleContext >
createAccessibleContext( VCLXWindow* _pXWindow ) override;
virtual css::uno::Reference< css::accessibility::XAccessible >
createAccessible( Menu* _pMenu, bool _bIsMenuBar ) override;
@@ -117,13 +125,13 @@ public:
SvHeaderTabListBox& rBox
) const override;
- virtual vcl::IAccessibleBrowseBox*
+ virtual rtl::Reference<vcl::IAccessibleBrowseBox>
createAccessibleBrowseBox(
const css::uno::Reference< css::accessibility::XAccessible >& _rxParent,
vcl::IAccessibleTableProvider& _rBrowseBox
) const override;
- virtual IAccessibleTableControl*
+ virtual rtl::Reference<IAccessibleTableControl>
createAccessibleTableControl(
const css::uno::Reference< css::accessibility::XAccessible >& _rxParent,
IAccessibleTable& _rTable
@@ -152,10 +160,16 @@ public:
) const override;
virtual css::uno::Reference< css::accessibility::XAccessible >
+ createAccessibleIconView(
+ SvTreeListBox& _rListBox,
+ const css::uno::Reference< css::accessibility::XAccessible >& _xParent
+ ) const override;
+
+ virtual css::uno::Reference< css::accessibility::XAccessible >
createAccessibleBrowseBoxHeaderBar(
const css::uno::Reference< css::accessibility::XAccessible >& rxParent,
vcl::IAccessibleTableProvider& _rOwningTable,
- vcl::AccessibleBrowseBoxObjType _eObjType
+ AccessibleBrowseBoxObjType _eObjType
) const override;
virtual css::uno::Reference< css::accessibility::XAccessible >
@@ -174,7 +188,7 @@ public:
const css::uno::Reference< css::accessibility::XAccessible >& rxParent,
vcl::IAccessibleTableProvider& _rBrowseBox,
const css::uno::Reference< css::awt::XWindow >& _xFocusWindow,
- vcl::AccessibleBrowseBoxObjType _eObjType
+ AccessibleBrowseBoxObjType _eObjType
) const override;
virtual css::uno::Reference< css::accessibility::XAccessible >
@@ -212,7 +226,7 @@ AccessibleFactory::~AccessibleFactory()
Reference< XAccessible > AccessibleFactory::createAccessible( Menu* _pMenu, bool _bIsMenuBar )
{
- OAccessibleMenuBaseComponent* pAccessible;
+ rtl::Reference<OAccessibleMenuBaseComponent> pAccessible;
if ( _bIsMenuBar )
pAccessible = new VCLXAccessibleMenuBar( _pMenu );
else
@@ -269,6 +283,11 @@ Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLX
return new VCLXAccessibleEdit( _pXWindow );
}
+Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXMultiLineEdit* _pXWindow )
+{
+ return new VCLXAccessibleEdit( _pXWindow );
+}
+
Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXComboBox* _pXWindow )
{
bool bIsDropDownBox = false;
@@ -352,19 +371,24 @@ Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLX
return new VCLXAccessibleHeaderBar(_pXWindow);
}
+Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( SVTXNumericField* _pXWindow )
+{
+ return new SVTXAccessibleNumericField( _pXWindow );
+}
+
vcl::IAccessibleTabListBox* AccessibleFactory::createAccessibleTabListBox(
const Reference< XAccessible >& rxParent, SvHeaderTabListBox& rBox ) const
{
return new AccessibleTabListBox( rxParent, rBox );
}
-vcl::IAccessibleBrowseBox* AccessibleFactory::createAccessibleBrowseBox(
+rtl::Reference<vcl::IAccessibleBrowseBox> AccessibleFactory::createAccessibleBrowseBox(
const Reference< XAccessible >& _rxParent, vcl::IAccessibleTableProvider& _rBrowseBox ) const
{
return new AccessibleBrowseBoxAccess( _rxParent, _rBrowseBox );
}
-IAccessibleTableControl* AccessibleFactory::createAccessibleTableControl(
+rtl::Reference<IAccessibleTableControl> AccessibleFactory::createAccessibleTableControl(
const Reference< XAccessible >& _rxParent, IAccessibleTable& _rTable ) const
{
return new AccessibleGridControlAccess( _rxParent, _rTable );
@@ -378,7 +402,12 @@ Reference< XAccessible > AccessibleFactory::createAccessibleIconChoiceCtrl(
Reference< XAccessible > AccessibleFactory::createAccessibleTabBar( TabBar& _rTabBar ) const
{
+#if HAVE_FEATURE_SCRIPTING
return new AccessibleTabBar( &_rTabBar );
+#else
+ (void)_rTabBar;
+ return nullptr;
+#endif
}
Reference< XAccessibleContext > AccessibleFactory::createAccessibleTextWindowContext(
@@ -393,9 +422,15 @@ Reference< XAccessible > AccessibleFactory::createAccessibleTreeListBox(
return new AccessibleListBox( _rListBox, _xParent );
}
+Reference< XAccessible > AccessibleFactory::createAccessibleIconView(
+ SvTreeListBox& _rListBox, const Reference< XAccessible >& _xParent ) const
+{
+ return new AccessibleIconView( _rListBox, _xParent );
+}
+
Reference< XAccessible > AccessibleFactory::createAccessibleBrowseBoxHeaderBar(
const Reference< XAccessible >& rxParent, vcl::IAccessibleTableProvider& _rOwningTable,
- vcl::AccessibleBrowseBoxObjType _eObjType ) const
+ AccessibleBrowseBoxObjType _eObjType ) const
{
return new AccessibleBrowseBoxHeaderBar( rxParent, _rOwningTable, _eObjType );
}
@@ -410,7 +445,7 @@ Reference< XAccessible > AccessibleFactory::createAccessibleBrowseBoxTableCell(
Reference< XAccessible > AccessibleFactory::createAccessibleBrowseBoxHeaderCell(
sal_Int32 _nColumnRowId, const Reference< XAccessible >& rxParent, vcl::IAccessibleTableProvider& _rBrowseBox,
- const Reference< XWindow >& _xFocusWindow, vcl::AccessibleBrowseBoxObjType _eObjType ) const
+ const Reference< XWindow >& _xFocusWindow, AccessibleBrowseBoxObjType _eObjType ) const
{
return new AccessibleBrowseBoxHeaderCell( _nColumnRowId, rxParent, _rBrowseBox,
_xFocusWindow, _eObjType );
@@ -437,6 +472,35 @@ Reference< XAccessible > AccessibleFactory::createEditBrowseBoxTableCellAccess(
} // anonymous namespace
#if HAVE_FEATURE_DESKTOP
+
+/// anonymous implementation namespace
+namespace {
+
+class GetStandardAccessibleFactoryService:
+ public ::cppu::WeakImplHelper<
+ css::lang::XServiceInfo,
+ css::lang::XUnoTunnel>
+{
+public:
+ // css::lang::XServiceInfo:
+ virtual OUString SAL_CALL getImplementationName() override
+ { return "com.sun.star.accessibility.comp.GetStandardAccessibleFactoryService"; }
+ virtual sal_Bool SAL_CALL supportsService(const OUString & serviceName) override
+ { return cppu::supportsService(this, serviceName); }
+ virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
+ { return { "com.sun.star.accessibility.GetStandardAccessibleFactoryService" }; }
+
+ // XUnoTunnel
+ virtual sal_Int64 SAL_CALL getSomething( const ::css::uno::Sequence< ::sal_Int8 >& /*aIdentifier*/ ) override
+ {
+ ::toolkit::IAccessibleFactory* pFactory = new AccessibleFactory;
+ pFactory->acquire();
+ return reinterpret_cast<sal_Int64>(pFactory);
+ }
+};
+
+} // closing anonymous implementation namespace
+
/* this is the entry point to retrieve a factory for the toolkit-level Accessible/Contexts supplied
by this library
@@ -445,11 +509,12 @@ Reference< XAccessible > AccessibleFactory::createEditBrowseBoxTableCellAccess(
*/
extern "C"
{
- SAL_DLLPUBLIC_EXPORT void* getStandardAccessibleFactory()
+ SAL_DLLPUBLIC_EXPORT css::uno::XInterface *
+ com_sun_star_accessibility_GetStandardAccessibleFactoryService_get_implementation(
+ css::uno::XComponentContext *,
+ css::uno::Sequence<css::uno::Any> const &)
{
- ::toolkit::IAccessibleFactory* pFactory = new AccessibleFactory;
- pFactory->acquire();
- return pFactory;
+ return cppu::acquire(new GetStandardAccessibleFactoryService);
}
}