accessibility/Library_acc.mk                             |    8 ----
 accessibility/inc/pch/precompiled_acc.hxx                |    2 -
 accessibility/source/helper/acc_factory.cxx              |   15 --------
 include/toolkit/helper/accessiblefactory.hxx             |    5 --
 include/vcl/menu.hxx                                     |    3 +
 include/vcl/toolkit/unowrap.hxx                          |    4 --
 solenv/clang-format/excludelist                          |   26 +++++++--------
 toolkit/inc/helper/unowrapper.hxx                        |    4 --
 toolkit/source/helper/unowrapper.cxx                     |    5 --
 vcl/Library_vcl.mk                                       |    8 ++++
 vcl/inc/accessibility/accessiblemenucomponent.hxx        |    3 +
 vcl/inc/accessibility/accessiblemenuitemcomponent.hxx    |    2 -
 vcl/inc/accessibility/vclxaccessiblemenu.hxx             |    2 -
 vcl/inc/accessibility/vclxaccessiblemenubar.hxx          |    2 -
 vcl/inc/accessibility/vclxaccessiblemenuitem.hxx         |    2 -
 vcl/inc/accessibility/vclxaccessiblemenuseparator.hxx    |    2 -
 vcl/inc/accessibility/vclxaccessiblepopupmenu.hxx        |    2 -
 vcl/source/accessibility/accessiblemenubasecomponent.cxx |    8 ++--
 vcl/source/accessibility/accessiblemenucomponent.cxx     |    2 -
 vcl/source/accessibility/accessiblemenuitemcomponent.cxx |    2 -
 vcl/source/accessibility/vclxaccessiblemenu.cxx          |    2 -
 vcl/source/accessibility/vclxaccessiblemenubar.cxx       |    2 -
 vcl/source/accessibility/vclxaccessiblemenuitem.cxx      |    3 +
 vcl/source/accessibility/vclxaccessiblemenuseparator.cxx |    2 -
 vcl/source/accessibility/vclxaccessiblepopupmenu.cxx     |    2 -
 vcl/source/window/menu.cxx                               |   21 +++++++++---
 26 files changed, 60 insertions(+), 79 deletions(-)

New commits:
commit e18bf1760548129743a7adf2477cda6fe5a09cf2
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Wed Dec 4 15:48:51 2024 +0100
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Fri Dec 6 14:06:48 2024 +0100

    a11y: Move menu a11y classes to vcl, no more use factory
    
    Other than most of the a11y implementations for vcl
    classes, VCLXAccessiblePopupMenu etc. do not
    make use of any VCLXWindow (i.e. UNO/toolkit wrapper of a
    vcl::Window) and thus do not depend on the toolkit
    module, which the accessibility module depends on.
    
    Therefore, there's also no need to use the accessible
    factory to create them (which is needed when toolkit
    classes are involved to avoid a dependency cycle).
    
    Move those classes from the accessibility module to
    vcl and add a new method Menu::CreateAccessible and
    move the logic from AccessibleFactory::createAccessible
    there. Drop the now unnecessary factory methods
    previously used for those classes.
    
    No change in behavior intended (yet), but this
    also simplifies the code involved for the
    tdf#164093 scenario.
    
    Change-Id: Ie3f6f1a02bf6662206d31383473cdc868e1f9164
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177812
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>
    (cherry picked from commit 739b0716504d2526fb7283100420e4bd5eacb7c2)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177937

diff --git a/accessibility/Library_acc.mk b/accessibility/Library_acc.mk
index 7080203fccaf..5acdf2a7be99 100644
--- a/accessibility/Library_acc.mk
+++ b/accessibility/Library_acc.mk
@@ -72,9 +72,6 @@ $(eval $(call gb_Library_add_exception_objects,acc,\
     accessibility/source/helper/acc_factory \
     accessibility/source/helper/accresmgr \
     accessibility/source/helper/IComboListBoxHelper \
-    accessibility/source/standard/accessiblemenubasecomponent \
-    accessibility/source/standard/accessiblemenucomponent \
-    accessibility/source/standard/accessiblemenuitemcomponent \
     accessibility/source/standard/floatingwindowaccessible \
     accessibility/source/standard/svtaccessiblenumericfield \
     accessibility/source/standard/vclxaccessiblebox \
@@ -91,11 +88,6 @@ $(eval $(call gb_Library_add_exception_objects,acc,\
     accessibility/source/standard/vclxaccessiblelist \
     accessibility/source/standard/vclxaccessiblelistbox \
     accessibility/source/standard/vclxaccessiblelistitem \
-    accessibility/source/standard/vclxaccessiblemenu \
-    accessibility/source/standard/vclxaccessiblemenubar \
-    accessibility/source/standard/vclxaccessiblemenuitem \
-    accessibility/source/standard/vclxaccessiblemenuseparator \
-    accessibility/source/standard/vclxaccessiblepopupmenu \
     accessibility/source/standard/vclxaccessibleradiobutton \
     accessibility/source/standard/vclxaccessiblescrollbar \
     accessibility/source/standard/vclxaccessiblestatusbar \
diff --git a/accessibility/inc/pch/precompiled_acc.hxx 
b/accessibility/inc/pch/precompiled_acc.hxx
index 7919e40b3c08..ca08b4d1858e 100644
--- a/accessibility/inc/pch/precompiled_acc.hxx
+++ b/accessibility/inc/pch/precompiled_acc.hxx
@@ -305,8 +305,6 @@
 #include <sot/exchange.hxx>
 #include <sot/formats.hxx>
 #include <sot/sotdllapi.h>
-#include <standard/accessiblemenubasecomponent.hxx>
-#include <standard/accessiblemenuitemcomponent.hxx>
 #include <standard/vclxaccessiblebox.hxx>
 #include <standard/vclxaccessibletextcomponent.hxx>
 #include <svl/SfxBroadcaster.hxx>
diff --git a/accessibility/source/helper/acc_factory.cxx 
b/accessibility/source/helper/acc_factory.cxx
index d95d47b214d9..191cc7528703 100644
--- a/accessibility/source/helper/acc_factory.cxx
+++ b/accessibility/source/helper/acc_factory.cxx
@@ -42,8 +42,6 @@
 #include <standard/vclxaccessiblestatusbar.hxx>
 #include <standard/vclxaccessibletabcontrol.hxx>
 #include <standard/vclxaccessibletabpagewindow.hxx>
-#include <standard/vclxaccessiblemenubar.hxx>
-#include <standard/vclxaccessiblepopupmenu.hxx>
 #include <extended/accessibletablistbox.hxx>
 #include <extended/AccessibleBrowseBox.hxx>
 #include <extended/accessibleiconchoicectrl.hxx>
@@ -115,8 +113,6 @@ public:
         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;
 
     // ::vcl::IAccessibleFactory
     virtual vcl::IAccessibleTabListBox*
@@ -224,17 +220,6 @@ AccessibleFactory::~AccessibleFactory()
 {
 }
 
-Reference< XAccessible > AccessibleFactory::createAccessible( Menu* _pMenu, 
bool _bIsMenuBar )
-{
-    rtl::Reference<OAccessibleMenuBaseComponent> pAccessible;
-    if ( _bIsMenuBar )
-        pAccessible = new VCLXAccessibleMenuBar( _pMenu );
-    else
-        pAccessible = new VCLXAccessiblePopupMenu( _pMenu );
-    pAccessible->SetStates();
-    return pAccessible;
-}
-
 Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( 
VCLXButton* _pXWindow )
 {
     return new VCLXAccessibleButton( _pXWindow );
diff --git a/include/toolkit/helper/accessiblefactory.hxx 
b/include/toolkit/helper/accessiblefactory.hxx
index 6c0532ce9edb..2b2c3455abd7 100644
--- a/include/toolkit/helper/accessiblefactory.hxx
+++ b/include/toolkit/helper/accessiblefactory.hxx
@@ -133,11 +133,6 @@ namespace toolkit
         virtual css::uno::Reference< css::accessibility::XAccessibleContext >
             createAccessibleContext( VCLXWindow* _pXWindow ) = 0;
 
-        /** creates an accessible component for the given menu
-        */
-        virtual css::uno::Reference< css::accessibility::XAccessible >
-            createAccessible( Menu* _pMenu, bool _bIsMenuBar ) = 0;
-
     protected:
         virtual ~IAccessibleFactory() override {}
     };
diff --git a/include/vcl/menu.hxx b/include/vcl/menu.hxx
index 19216d9585cc..e241609fcdb6 100644
--- a/include/vcl/menu.hxx
+++ b/include/vcl/menu.hxx
@@ -401,6 +401,9 @@ public:
      * Get the ID of the window.
      */
     const OUString& get_id() const { return maID; }
+
+private:
+    css::uno::Reference<css::accessibility::XAccessible> CreateAccessible();
 };
 
 struct MenuBarButtonCallbackArg
diff --git a/include/vcl/toolkit/unowrap.hxx b/include/vcl/toolkit/unowrap.hxx
index 359810652e05..9d1231919229 100644
--- a/include/vcl/toolkit/unowrap.hxx
+++ b/include/vcl/toolkit/unowrap.hxx
@@ -65,10 +65,6 @@ public:
 
     virtual void                WindowDestroyed( vcl::Window* pWindow ) = 0;
 
-    // Accessibility
-    virtual css::uno::Reference< css::accessibility::XAccessible >
-                                CreateAccessible( Menu* pMenu, bool bIsMenuBar 
) = 0;
-
     /** Get the application's UNO wrapper object.
 
      Note that this static function will only ever try to create UNO wrapper 
object once, and
diff --git a/solenv/clang-format/excludelist b/solenv/clang-format/excludelist
index acffbef29a58..74614d7f5a58 100644
--- a/solenv/clang-format/excludelist
+++ b/solenv/clang-format/excludelist
@@ -46,9 +46,6 @@ accessibility/inc/extended/accessibletablistboxtable.hxx
 accessibility/inc/extended/textwindowaccessibility.hxx
 accessibility/inc/helper/IComboListBoxHelper.hxx
 accessibility/inc/helper/listboxhelper.hxx
-accessibility/inc/standard/accessiblemenubasecomponent.hxx
-accessibility/inc/standard/accessiblemenucomponent.hxx
-accessibility/inc/standard/accessiblemenuitemcomponent.hxx
 accessibility/inc/standard/vclxaccessiblebox.hxx
 accessibility/inc/standard/vclxaccessiblebutton.hxx
 accessibility/inc/standard/vclxaccessiblecheckbox.hxx
@@ -56,9 +53,6 @@ accessibility/inc/standard/vclxaccessibleedit.hxx
 accessibility/inc/standard/vclxaccessibleheaderbaritem.hxx
 accessibility/inc/standard/vclxaccessiblelist.hxx
 accessibility/inc/standard/vclxaccessiblelistitem.hxx
-accessibility/inc/standard/vclxaccessiblemenu.hxx
-accessibility/inc/standard/vclxaccessiblemenubar.hxx
-accessibility/inc/standard/vclxaccessiblemenuitem.hxx
 accessibility/inc/standard/vclxaccessibleradiobutton.hxx
 accessibility/inc/standard/vclxaccessiblescrollbar.hxx
 accessibility/inc/standard/vclxaccessiblestatusbar.hxx
@@ -99,9 +93,6 @@ accessibility/source/extended/accessibletablistbox.cxx
 accessibility/source/extended/accessibletablistboxtable.cxx
 accessibility/source/extended/textwindowaccessibility.cxx
 accessibility/source/helper/acc_factory.cxx
-accessibility/source/standard/accessiblemenubasecomponent.cxx
-accessibility/source/standard/accessiblemenucomponent.cxx
-accessibility/source/standard/accessiblemenuitemcomponent.cxx
 accessibility/source/standard/floatingwindowaccessible.cxx
 accessibility/source/standard/vclxaccessiblebox.cxx
 accessibility/source/standard/vclxaccessiblebutton.cxx
@@ -114,10 +105,6 @@ 
accessibility/source/standard/vclxaccessibleheaderbaritem.cxx
 accessibility/source/standard/vclxaccessiblelist.cxx
 accessibility/source/standard/vclxaccessiblelistbox.cxx
 accessibility/source/standard/vclxaccessiblelistitem.cxx
-accessibility/source/standard/vclxaccessiblemenu.cxx
-accessibility/source/standard/vclxaccessiblemenubar.cxx
-accessibility/source/standard/vclxaccessiblemenuitem.cxx
-accessibility/source/standard/vclxaccessiblepopupmenu.cxx
 accessibility/source/standard/vclxaccessibleradiobutton.cxx
 accessibility/source/standard/vclxaccessiblescrollbar.cxx
 accessibility/source/standard/vclxaccessiblestatusbar.cxx
@@ -14173,6 +14160,12 @@ vcl/inc/IPrioritable.hxx
 vcl/inc/ResampleKernel.hxx
 vcl/inc/bitmap/bmpfast.hxx
 vcl/inc/accel.hxx
+vcl/inc/accessibility/accessiblemenubasecomponent.hxx
+vcl/inc/accessibility/accessiblemenucomponent.hxx
+vcl/inc/accessibility/accessiblemenuitemcomponent.hxx
+vcl/inc/accessibility/vclxaccessiblemenu.hxx
+vcl/inc/accessibility/vclxaccessiblemenubar.hxx
+vcl/inc/accessibility/vclxaccessiblemenuitem.hxx
 vcl/inc/accmgr.hxx
 vcl/inc/animate/AnimationRenderer.hxx
 vcl/inc/brdwin.hxx
@@ -14522,6 +14515,13 @@ vcl/quartz/salgdicommon.cxx
 vcl/quartz/salvd.cxx
 vcl/quartz/utils.cxx
 vcl/source/accessibility/characterattributeshelper.cxx
+vcl/source/accessibility/accessiblemenubasecomponent.cxx
+vcl/source/accessibility/accessiblemenucomponent.cxx
+vcl/source/accessibility/accessiblemenuitemcomponent.cxx
+vcl/source/accessibility/vclxaccessiblemenu.cxx
+vcl/source/accessibility/vclxaccessiblemenubar.cxx
+vcl/source/accessibility/vclxaccessiblemenuitem.cxx
+vcl/source/accessibility/vclxaccessiblepopupmenu.cxx
 vcl/source/animate/AnimationRenderer.cxx
 vcl/source/app/IconThemeInfo.cxx
 vcl/source/app/IconThemeScanner.cxx
diff --git a/toolkit/inc/helper/unowrapper.hxx 
b/toolkit/inc/helper/unowrapper.hxx
index dfed1b1215f1..274e60beb2c3 100644
--- a/toolkit/inc/helper/unowrapper.hxx
+++ b/toolkit/inc/helper/unowrapper.hxx
@@ -60,10 +60,6 @@ public:
 
     void                WindowDestroyed( vcl::Window* pWindow ) override;
 
-    // Accessibility
-    virtual css::uno::Reference< css::accessibility::XAccessible >
-                        CreateAccessible( Menu* pMenu, bool bIsMenuBar ) 
override;
-
 private:
     virtual ~UnoWrapper();
 };
diff --git a/toolkit/source/helper/unowrapper.cxx 
b/toolkit/source/helper/unowrapper.cxx
index 50e1c8e74d90..3c2b7dbaff7f 100644
--- a/toolkit/source/helper/unowrapper.cxx
+++ b/toolkit/source/helper/unowrapper.cxx
@@ -312,9 +312,4 @@ void UnoWrapper::WindowDestroyed( vcl::Window* pWindow )
     }
 }
 
-css::uno::Reference< css::accessibility::XAccessible > 
UnoWrapper::CreateAccessible( Menu* pMenu, bool bIsMenuBar )
-{
-    return maAccessibleFactoryAccess.getFactory().createAccessible( pMenu, 
bIsMenuBar );
-}
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk
index ae12cf9cfda7..420024cc2ab2 100644
--- a/vcl/Library_vcl.mk
+++ b/vcl/Library_vcl.mk
@@ -99,6 +99,14 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\
     vcl/skia/SkiaHelper \
     vcl/source/accessibility/AccessibleTextAttributeHelper \
     vcl/source/accessibility/characterattributeshelper \
+    vcl/source/accessibility/accessiblemenubasecomponent \
+    vcl/source/accessibility/accessiblemenucomponent \
+    vcl/source/accessibility/accessiblemenuitemcomponent \
+    vcl/source/accessibility/vclxaccessiblemenu \
+    vcl/source/accessibility/vclxaccessiblemenubar \
+    vcl/source/accessibility/vclxaccessiblemenuitem \
+    vcl/source/accessibility/vclxaccessiblemenuseparator \
+    vcl/source/accessibility/vclxaccessiblepopupmenu \
     vcl/source/animate/Animation \
     vcl/source/animate/AnimationFrame \
     vcl/source/animate/AnimationRenderer \
diff --git a/accessibility/inc/standard/accessiblemenubasecomponent.hxx 
b/vcl/inc/accessibility/accessiblemenubasecomponent.hxx
similarity index 100%
rename from accessibility/inc/standard/accessiblemenubasecomponent.hxx
rename to vcl/inc/accessibility/accessiblemenubasecomponent.hxx
diff --git a/accessibility/inc/standard/accessiblemenucomponent.hxx 
b/vcl/inc/accessibility/accessiblemenucomponent.hxx
similarity index 98%
rename from accessibility/inc/standard/accessiblemenucomponent.hxx
rename to vcl/inc/accessibility/accessiblemenucomponent.hxx
index e9d46dcfa70a..2954b52119e5 100644
--- a/accessibility/inc/standard/accessiblemenucomponent.hxx
+++ b/vcl/inc/accessibility/accessiblemenucomponent.hxx
@@ -19,7 +19,8 @@
 
 #pragma once
 
-#include <standard/accessiblemenubasecomponent.hxx>
+#include <accessibility/accessiblemenubasecomponent.hxx>
+
 #include <com/sun/star/accessibility/XAccessibleSelection.hpp>
 #include <cppuhelper/implbase.hxx>
 
diff --git a/accessibility/inc/standard/accessiblemenuitemcomponent.hxx 
b/vcl/inc/accessibility/accessiblemenuitemcomponent.hxx
similarity index 98%
rename from accessibility/inc/standard/accessiblemenuitemcomponent.hxx
rename to vcl/inc/accessibility/accessiblemenuitemcomponent.hxx
index fae6e577b590..58b819f8ad66 100644
--- a/accessibility/inc/standard/accessiblemenuitemcomponent.hxx
+++ b/vcl/inc/accessibility/accessiblemenuitemcomponent.hxx
@@ -19,7 +19,7 @@
 
 #pragma once
 
-#include <standard/accessiblemenubasecomponent.hxx>
+#include <accessibility/accessiblemenubasecomponent.hxx>
 
 
 
diff --git a/accessibility/inc/standard/vclxaccessiblemenu.hxx 
b/vcl/inc/accessibility/vclxaccessiblemenu.hxx
similarity index 98%
rename from accessibility/inc/standard/vclxaccessiblemenu.hxx
rename to vcl/inc/accessibility/vclxaccessiblemenu.hxx
index ce7b3f0580de..3f6903587166 100644
--- a/accessibility/inc/standard/vclxaccessiblemenu.hxx
+++ b/vcl/inc/accessibility/vclxaccessiblemenu.hxx
@@ -19,7 +19,7 @@
 
 #pragma once
 
-#include <standard/vclxaccessiblemenuitem.hxx>
+#include <accessibility/vclxaccessiblemenuitem.hxx>
 #include <com/sun/star/accessibility/XAccessibleSelection.hpp>
 
 #include <cppuhelper/implbase.hxx>
diff --git a/accessibility/inc/standard/vclxaccessiblemenubar.hxx 
b/vcl/inc/accessibility/vclxaccessiblemenubar.hxx
similarity index 97%
rename from accessibility/inc/standard/vclxaccessiblemenubar.hxx
rename to vcl/inc/accessibility/vclxaccessiblemenubar.hxx
index c5b3984e0b7e..31e50c8b75ff 100644
--- a/accessibility/inc/standard/vclxaccessiblemenubar.hxx
+++ b/vcl/inc/accessibility/vclxaccessiblemenubar.hxx
@@ -19,7 +19,7 @@
 
 #pragma once
 
-#include <standard/accessiblemenucomponent.hxx>
+#include <accessibility/accessiblemenucomponent.hxx>
 #include <vcl/vclptr.hxx>
 
 class VclSimpleEvent;
diff --git a/accessibility/inc/standard/vclxaccessiblemenuitem.hxx 
b/vcl/inc/accessibility/vclxaccessiblemenuitem.hxx
similarity index 98%
rename from accessibility/inc/standard/vclxaccessiblemenuitem.hxx
rename to vcl/inc/accessibility/vclxaccessiblemenuitem.hxx
index aa6a0afc814a..ddde3cda04b6 100644
--- a/accessibility/inc/standard/vclxaccessiblemenuitem.hxx
+++ b/vcl/inc/accessibility/vclxaccessiblemenuitem.hxx
@@ -19,7 +19,7 @@
 
 #pragma once
 
-#include <standard/accessiblemenuitemcomponent.hxx>
+#include <accessibility/accessiblemenuitemcomponent.hxx>
 
 #include <com/sun/star/accessibility/AccessibleScrollType.hpp>
 #include <com/sun/star/accessibility/XAccessibleAction.hpp>
diff --git a/accessibility/inc/standard/vclxaccessiblemenuseparator.hxx 
b/vcl/inc/accessibility/vclxaccessiblemenuseparator.hxx
similarity index 96%
rename from accessibility/inc/standard/vclxaccessiblemenuseparator.hxx
rename to vcl/inc/accessibility/vclxaccessiblemenuseparator.hxx
index 51071c19d130..ce971ca49ac0 100644
--- a/accessibility/inc/standard/vclxaccessiblemenuseparator.hxx
+++ b/vcl/inc/accessibility/vclxaccessiblemenuseparator.hxx
@@ -19,7 +19,7 @@
 
 #pragma once
 
-#include <standard/accessiblemenuitemcomponent.hxx>
+#include <accessibility/accessiblemenuitemcomponent.hxx>
 
 class VCLXAccessibleMenuSeparator final : public OAccessibleMenuItemComponent
 {
diff --git a/accessibility/inc/standard/vclxaccessiblepopupmenu.hxx 
b/vcl/inc/accessibility/vclxaccessiblepopupmenu.hxx
similarity index 96%
rename from accessibility/inc/standard/vclxaccessiblepopupmenu.hxx
rename to vcl/inc/accessibility/vclxaccessiblepopupmenu.hxx
index 8e93af22d8d9..6f099b722452 100644
--- a/accessibility/inc/standard/vclxaccessiblepopupmenu.hxx
+++ b/vcl/inc/accessibility/vclxaccessiblepopupmenu.hxx
@@ -19,7 +19,7 @@
 
 #pragma once
 
-#include <standard/accessiblemenucomponent.hxx>
+#include <accessibility/accessiblemenucomponent.hxx>
 
 class VCLXAccessiblePopupMenu final : public OAccessibleMenuComponent
 {
diff --git a/accessibility/source/standard/accessiblemenubasecomponent.cxx 
b/vcl/source/accessibility/accessiblemenubasecomponent.cxx
similarity index 98%
rename from accessibility/source/standard/accessiblemenubasecomponent.cxx
rename to vcl/source/accessibility/accessiblemenubasecomponent.cxx
index dbedd1daff30..10f7dff9e6b5 100644
--- a/accessibility/source/standard/accessiblemenubasecomponent.cxx
+++ b/vcl/source/accessibility/accessiblemenubasecomponent.cxx
@@ -17,10 +17,10 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#include <standard/accessiblemenubasecomponent.hxx>
-#include <standard/vclxaccessiblemenu.hxx>
-#include <standard/vclxaccessiblemenuitem.hxx>
-#include <standard/vclxaccessiblemenuseparator.hxx>
+#include <accessibility/accessiblemenubasecomponent.hxx>
+#include <accessibility/vclxaccessiblemenu.hxx>
+#include <accessibility/vclxaccessiblemenuitem.hxx>
+#include <accessibility/vclxaccessiblemenuseparator.hxx>
 
 #include <com/sun/star/accessibility/AccessibleEventId.hpp>
 #include <com/sun/star/accessibility/AccessibleRole.hpp>
diff --git a/accessibility/source/standard/accessiblemenucomponent.cxx 
b/vcl/source/accessibility/accessiblemenucomponent.cxx
similarity index 99%
rename from accessibility/source/standard/accessiblemenucomponent.cxx
rename to vcl/source/accessibility/accessiblemenucomponent.cxx
index 7fe594721294..4163d096011e 100644
--- a/accessibility/source/standard/accessiblemenucomponent.cxx
+++ b/vcl/source/accessibility/accessiblemenucomponent.cxx
@@ -17,7 +17,7 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#include <standard/accessiblemenucomponent.hxx>
+#include <accessibility/accessiblemenucomponent.hxx>
 
 #include <com/sun/star/accessibility/AccessibleRole.hpp>
 #include <com/sun/star/accessibility/AccessibleStateType.hpp>
diff --git a/accessibility/source/standard/accessiblemenuitemcomponent.cxx 
b/vcl/source/accessibility/accessiblemenuitemcomponent.cxx
similarity index 99%
rename from accessibility/source/standard/accessiblemenuitemcomponent.cxx
rename to vcl/source/accessibility/accessiblemenuitemcomponent.cxx
index 0d171e64ccaa..a50415e9ab77 100644
--- a/accessibility/source/standard/accessiblemenuitemcomponent.cxx
+++ b/vcl/source/accessibility/accessiblemenuitemcomponent.cxx
@@ -17,7 +17,7 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#include <standard/accessiblemenuitemcomponent.hxx>
+#include <accessibility/accessiblemenuitemcomponent.hxx>
 
 #include <com/sun/star/accessibility/AccessibleEventId.hpp>
 #include <com/sun/star/accessibility/AccessibleRole.hpp>
diff --git a/accessibility/source/standard/vclxaccessiblemenu.cxx 
b/vcl/source/accessibility/vclxaccessiblemenu.cxx
similarity index 99%
rename from accessibility/source/standard/vclxaccessiblemenu.cxx
rename to vcl/source/accessibility/vclxaccessiblemenu.cxx
index 5ba208d2f368..c38cc84ebed2 100644
--- a/accessibility/source/standard/vclxaccessiblemenu.cxx
+++ b/vcl/source/accessibility/vclxaccessiblemenu.cxx
@@ -17,7 +17,7 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#include <standard/vclxaccessiblemenu.hxx>
+#include <accessibility/vclxaccessiblemenu.hxx>
 
 #include <com/sun/star/accessibility/AccessibleRole.hpp>
 #include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
diff --git a/accessibility/source/standard/vclxaccessiblemenubar.cxx 
b/vcl/source/accessibility/vclxaccessiblemenubar.cxx
similarity index 98%
rename from accessibility/source/standard/vclxaccessiblemenubar.cxx
rename to vcl/source/accessibility/vclxaccessiblemenubar.cxx
index 9664254fa543..4e64803db783 100644
--- a/accessibility/source/standard/vclxaccessiblemenubar.cxx
+++ b/vcl/source/accessibility/vclxaccessiblemenubar.cxx
@@ -17,7 +17,7 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#include <standard/vclxaccessiblemenubar.hxx>
+#include <accessibility/vclxaccessiblemenubar.hxx>
 
 #include <com/sun/star/accessibility/AccessibleRole.hpp>
 #include <comphelper/accessiblecontexthelper.hxx>
diff --git a/accessibility/source/standard/vclxaccessiblemenuitem.cxx 
b/vcl/source/accessibility/vclxaccessiblemenuitem.cxx
similarity index 99%
rename from accessibility/source/standard/vclxaccessiblemenuitem.cxx
rename to vcl/source/accessibility/vclxaccessiblemenuitem.cxx
index a1491c99bc4c..a8696f43e380 100644
--- a/accessibility/source/standard/vclxaccessiblemenuitem.cxx
+++ b/vcl/source/accessibility/vclxaccessiblemenuitem.cxx
@@ -17,8 +17,9 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#include <standard/vclxaccessiblemenuitem.hxx>
+#include <accessibility/vclxaccessiblemenuitem.hxx>
 #include <comphelper/accessiblecontexthelper.hxx>
+
 #include <comphelper/accessiblekeybindinghelper.hxx>
 #include <com/sun/star/awt/KeyModifier.hpp>
 
diff --git a/accessibility/source/standard/vclxaccessiblemenuseparator.cxx 
b/vcl/source/accessibility/vclxaccessiblemenuseparator.cxx
similarity index 96%
rename from accessibility/source/standard/vclxaccessiblemenuseparator.cxx
rename to vcl/source/accessibility/vclxaccessiblemenuseparator.cxx
index d64ccb0baa25..7100d1972c39 100644
--- a/accessibility/source/standard/vclxaccessiblemenuseparator.cxx
+++ b/vcl/source/accessibility/vclxaccessiblemenuseparator.cxx
@@ -17,7 +17,7 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#include <standard/vclxaccessiblemenuseparator.hxx>
+#include <accessibility/vclxaccessiblemenuseparator.hxx>
 
 #include <com/sun/star/accessibility/AccessibleRole.hpp>
 
diff --git a/accessibility/source/standard/vclxaccessiblepopupmenu.cxx 
b/vcl/source/accessibility/vclxaccessiblepopupmenu.cxx
similarity index 97%
rename from accessibility/source/standard/vclxaccessiblepopupmenu.cxx
rename to vcl/source/accessibility/vclxaccessiblepopupmenu.cxx
index d8b840eee784..95df37593bd2 100644
--- a/accessibility/source/standard/vclxaccessiblepopupmenu.cxx
+++ b/vcl/source/accessibility/vclxaccessiblepopupmenu.cxx
@@ -17,7 +17,7 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#include <standard/vclxaccessiblepopupmenu.hxx>
+#include <accessibility/vclxaccessiblepopupmenu.hxx>
 
 #include <com/sun/star/accessibility/AccessibleRole.hpp>
 #include <comphelper/accessiblecontexthelper.hxx>
diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx
index 6e7fc5494ca5..581279acd8bf 100644
--- a/vcl/source/window/menu.cxx
+++ b/vcl/source/window/menu.cxx
@@ -17,6 +17,10 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
+#include <accessibility/accessiblemenubasecomponent.hxx>
+#include <accessibility/vclxaccessiblemenubar.hxx>
+#include <accessibility/vclxaccessiblepopupmenu.hxx>
+
 #include <comphelper/diagnose_ex.hxx>
 #include <sal/log.hxx>
 
@@ -1317,6 +1321,17 @@ bool Menu::ImplIsSelectable( sal_uInt16 nPos ) const
     return bSelectable;
 }
 
+css::uno::Reference<css::accessibility::XAccessible> Menu::CreateAccessible()
+{
+    rtl::Reference<OAccessibleMenuBaseComponent> xAccessible;
+    if (IsMenuBar())
+        xAccessible = new VCLXAccessibleMenuBar(this);
+    else
+        xAccessible = new VCLXAccessiblePopupMenu(this);
+    xAccessible->SetStates();
+    return xAccessible;
+}
+
 css::uno::Reference<css::accessibility::XAccessible> Menu::GetAccessible()
 {
     // Since PopupMenu are sometimes shared by different instances of MenuBar, 
the mxAccessible member gets
@@ -1340,11 +1355,7 @@ css::uno::Reference<css::accessibility::XAccessible> 
Menu::GetAccessible()
         }
     }
     else if ( !mxAccessible.is() )
-    {
-        UnoWrapperBase* pWrapper = UnoWrapperBase::GetUnoWrapper();
-        if ( pWrapper )
-            mxAccessible = pWrapper->CreateAccessible(this, IsMenuBar());
-    }
+        mxAccessible = CreateAccessible();
 
     return mxAccessible;
 }

Reply via email to