diff options
Diffstat (limited to 'accessibility/source/helper/acc_factory.cxx')
-rw-r--r-- | accessibility/source/helper/acc_factory.cxx | 73 |
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); } } |