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.cxx73
1 files changed, 65 insertions, 8 deletions
diff --git a/accessibility/source/helper/acc_factory.cxx b/accessibility/source/helper/acc_factory.cxx
index 51adeaca8d21..25622d1c7c22 100644
--- a/accessibility/source/helper/acc_factory.cxx
+++ b/accessibility/source/helper/acc_factory.cxx
@@ -17,8 +17,10 @@
* 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>
@@ -45,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>
@@ -101,6 +104,8 @@ 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;
@@ -120,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
@@ -155,6 +160,12 @@ 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,
@@ -272,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;
@@ -366,13 +382,13 @@ vcl::IAccessibleTabListBox* AccessibleFactory::createAccessibleTabListBox(
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 );
@@ -386,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(
@@ -401,6 +422,12 @@ 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,
AccessibleBrowseBoxObjType _eObjType ) const
@@ -445,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
@@ -453,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);
}
}