accessibility/inc/standard/svtaccessiblenumericfield.hxx         |    3 
 accessibility/inc/standard/vclxaccessiblebox.hxx                 |    3 
 accessibility/inc/standard/vclxaccessiblebutton.hxx              |    4 
 accessibility/inc/standard/vclxaccessiblecheckbox.hxx            |    5 
 accessibility/inc/standard/vclxaccessiblecombobox.hxx            |    4 
 accessibility/inc/standard/vclxaccessibledropdowncombobox.hxx    |    4 
 accessibility/inc/standard/vclxaccessibledropdownlistbox.hxx     |    2 
 accessibility/inc/standard/vclxaccessibleedit.hxx                |    5 
 accessibility/inc/standard/vclxaccessibleheaderbar.hxx           |    3 
 accessibility/inc/standard/vclxaccessiblelist.hxx                |    5 
 accessibility/inc/standard/vclxaccessiblelistbox.hxx             |    2 
 accessibility/inc/standard/vclxaccessibleradiobutton.hxx         |    6 
 accessibility/inc/standard/vclxaccessiblescrollbar.hxx           |    6 
 accessibility/inc/standard/vclxaccessiblestatusbar.hxx           |    2 
 accessibility/inc/standard/vclxaccessibletabcontrol.hxx          |    2 
 accessibility/inc/standard/vclxaccessibletabpagewindow.hxx       |    2 
 accessibility/inc/standard/vclxaccessibletextcomponent.hxx       |    2 
 accessibility/inc/standard/vclxaccessibletextfield.hxx           |    4 
 accessibility/inc/standard/vclxaccessibletoolbox.hxx             |    2 
 accessibility/source/extended/accessibleiconchoicectrl.cxx       |    2 
 accessibility/source/extended/accessiblelistbox.cxx              |    2 
 accessibility/source/extended/textwindowaccessibility.cxx        |    2 
 accessibility/source/helper/acc_factory.cxx                      |  114 
++++------
 accessibility/source/standard/svtaccessiblenumericfield.cxx      |    5 
 accessibility/source/standard/vclxaccessiblebox.cxx              |    9 
 accessibility/source/standard/vclxaccessiblecheckbox.cxx         |    5 
 accessibility/source/standard/vclxaccessiblecombobox.cxx         |    4 
 accessibility/source/standard/vclxaccessibledropdowncombobox.cxx |    4 
 accessibility/source/standard/vclxaccessibledropdownlistbox.cxx  |    4 
 accessibility/source/standard/vclxaccessibleedit.cxx             |    5 
 accessibility/source/standard/vclxaccessibleheaderbar.cxx        |    6 
 accessibility/source/standard/vclxaccessiblelist.cxx             |    6 
 accessibility/source/standard/vclxaccessiblelistbox.cxx          |    4 
 accessibility/source/standard/vclxaccessibleradiobutton.cxx      |    1 
 accessibility/source/standard/vclxaccessiblescrollbar.cxx        |    1 
 accessibility/source/standard/vclxaccessiblestatusbar.cxx        |    4 
 accessibility/source/standard/vclxaccessibletabcontrol.cxx       |    4 
 accessibility/source/standard/vclxaccessibletabpagewindow.cxx    |    4 
 accessibility/source/standard/vclxaccessibletextcomponent.cxx    |    5 
 accessibility/source/standard/vclxaccessibletextfield.cxx        |    7 
 accessibility/source/standard/vclxaccessibletoolbox.cxx          |    6 
 dbaccess/source/ui/querydesign/ConnectionLineAccess.cxx          |    2 
 dbaccess/source/ui/querydesign/JAccess.cxx                       |    2 
 dbaccess/source/ui/querydesign/TableWindowAccess.cxx             |    2 
 include/toolkit/awt/vclxaccessiblecomponent.hxx                  |    4 
 include/toolkit/helper/accessiblefactory.hxx                     |   65 ++---
 sw/source/uibase/docvw/AnnotationWin2.cxx                        |    3 
 sw/source/uibase/docvw/SidebarWinAcc.cxx                         |   32 --
 sw/source/uibase/docvw/SidebarWinAcc.hxx                         |   11 
 toolkit/source/awt/vclxaccessiblecomponent.cxx                   |   16 -
 toolkit/source/awt/vclxwindow.cxx                                |    4 
 toolkit/source/awt/vclxwindows.cxx                               |   56 +++-
 52 files changed, 218 insertions(+), 249 deletions(-)

New commits:
commit 168512dce7f1f1453c045584d47bd78a0a6c73f7
Author:     Michael Weghorn <[email protected]>
AuthorDate: Thu Dec 12 18:06:13 2024 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Thu Dec 12 23:02:33 2024 +0100

    a11y: Stop using VCLXWindow in vcl a11y classes
    
    Adjust VCLXAccessibleComponent and subclasses to take
    a vcl::Window arg instead of a VCLXWindow in the ctor
    and drop the VCLXAccessibleComponent::m_xVCLXWindow member
    that used to hold a reference to the VCLXWindow.
    (VCLXAccessibleComponent still holds a VclPtr
    to the corresponding vcl::Window.)
    
    Instead of passing the UNO/toolkit peer (VCLXWindow
    and subclasses) to the AccessibleFactory to create
    an XAccessibleContext context for the underlying VCL
    widget, pass the underlying vcl widget, which can
    now be passed as is to the corresponding ctors
    of VCLXAccessibleComponent and specialized subclasses.
    
    This follows earlier commits replacing the use of the
    VCLXWindow classes by direct uses of the vcl::Window
    subclasses inside VCLXAccessibleComponent and subclasses
    and is the next step in reducing the UNO/toolkit
    dependency in the accessibility implementation for
    vcl widgets.
    
    For now, the logic where those accessible objects
    are created remains in VCLXWindow::CreateAccessibleContext
    and overrides, but that can change in the future.
    
    `IAccessibleFactory::createAccessibleContext(VCLXMultiLineEdit*)`
    is just dropped and doesn't need its own replacement:
    The previous VCLXMultiLineEdit variant was
    creating a VCLXAccessibleEdit like the variant
    taking a VCLXEdit, but VCLXMultiLineEdit doesn't
    subclass VCLXEdit.
    The vcl MultiLineEdit however subclasses Edit,
    so VCLXMultiLineEdit::CreateAccessibleContext can make
    use of `IAccessibleFactory::createAccessibleContext(Edit*)`
    as well now.
    
    This also implements what was mentioned in earlier
    commit
    
        Change-Id: I67bb7a6a237e57d0c522790c09a595c02ac06325
        Author: Michael Weghorn <[email protected]>
        Date:   Thu Dec 12 17:16:29 2024 +0100
    
            sw annotation win a11y: Skip VCLXWindow logic
    
    :
    
    > Drop the comment about the code being dodgy from
    > SwAnnotationWin::CreateAccessible. This commit partially
    > addresses it and switching VCLXAccessibleComponent
    > to using the vcl::Window will take care of the rest,
    > see upcoming commit
    > Change-Id If0894e733273eecad268c6a932ecee7c2e34b4c2
    > ("a11y: Stop using VCLXWindow in vcl a11y classes").
    
    Now that the VCLXAccessibleComponent ctor takes a
    vcl::Window, the sw::annotation::SwAnnotationWin
    can be passed directly.
    
    From a user perspective, no change in behavior is
    intended by this commit.
    
    Change-Id: If0894e733273eecad268c6a932ecee7c2e34b4c2
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178385
    Reviewed-by: Michael Weghorn <[email protected]>
    Tested-by: Jenkins

diff --git a/accessibility/inc/standard/svtaccessiblenumericfield.hxx 
b/accessibility/inc/standard/svtaccessiblenumericfield.hxx
index 29225a5c6072..0bdf122c1fab 100644
--- a/accessibility/inc/standard/svtaccessiblenumericfield.hxx
+++ b/accessibility/inc/standard/svtaccessiblenumericfield.hxx
@@ -20,6 +20,7 @@
 #pragma once
 
 #include <cppuhelper/implbase.hxx>
+#include <vcl/toolkit/fmtfield.hxx>
 #include <vcl/vclevent.hxx>
 
 #include <standard/vclxaccessibleedit.hxx>
@@ -30,7 +31,7 @@ class SVTXAccessibleNumericField final
     : public cppu::ImplInheritanceHelper<VCLXAccessibleEdit, 
css::accessibility::XAccessibleValue>
 {
 public:
-    SVTXAccessibleNumericField(VCLXWindow* pVCLXindow);
+    SVTXAccessibleNumericField(FormattedField* pFormattedField);
 
     virtual void ProcessWindowEvent(const VclWindowEvent& rVclWindowEvent) 
override;
 
diff --git a/accessibility/inc/standard/vclxaccessiblebox.hxx 
b/accessibility/inc/standard/vclxaccessiblebox.hxx
index c2db4a0cdd63..c107245b2432 100644
--- a/accessibility/inc/standard/vclxaccessiblebox.hxx
+++ b/accessibility/inc/standard/vclxaccessiblebox.hxx
@@ -25,6 +25,7 @@
 #include <com/sun/star/accessibility/XAccessibleValue.hpp>
 #include <toolkit/awt/vclxaccessiblecomponent.hxx>
 #include <cppuhelper/implbase.hxx>
+#include <vcl/toolkit/lstbox.hxx>
 
 class VCLXAccessibleList;
 
@@ -46,7 +47,7 @@ public:
         either COMBOBOX or LISTBOX and a flag
         indicating whether the box is a drop down box.
     */
-    VCLXAccessibleBox (VCLXWindow* pVCLXindow, BoxType aType, bool 
bIsDropDownBox);
+    VCLXAccessibleBox(vcl::Window* pBox, BoxType aType, bool bIsDropDownBox);
 
 
     // XAccessible
diff --git a/accessibility/inc/standard/vclxaccessiblebutton.hxx 
b/accessibility/inc/standard/vclxaccessiblebutton.hxx
index 460c90c67c41..fb9db98818a3 100644
--- a/accessibility/inc/standard/vclxaccessiblebutton.hxx
+++ b/accessibility/inc/standard/vclxaccessiblebutton.hxx
@@ -25,6 +25,7 @@
 #include <com/sun/star/accessibility/XAccessibleValue.hpp>
 
 #include <cppuhelper/implbase.hxx>
+#include <vcl/toolkit/button.hxx>
 
 
 
@@ -40,7 +41,8 @@ class VCLXAccessibleButton final : public 
cppu::ImplInheritanceHelper<
     virtual void FillAccessibleStateSet( sal_Int64& rStateSet ) override;
 
 public:
-    VCLXAccessibleButton( VCLXWindow* pVCLXWindow ): 
ImplInheritanceHelper(pVCLXWindow) {}
+    VCLXAccessibleButton(PushButton* pButton)
+        : ImplInheritanceHelper(pButton) {}
 
     // XServiceInfo
     virtual OUString SAL_CALL getImplementationName() override;
diff --git a/accessibility/inc/standard/vclxaccessiblecheckbox.hxx 
b/accessibility/inc/standard/vclxaccessiblecheckbox.hxx
index dc7b0d3c353e..4a0b2de88c99 100644
--- a/accessibility/inc/standard/vclxaccessiblecheckbox.hxx
+++ b/accessibility/inc/standard/vclxaccessiblecheckbox.hxx
@@ -25,8 +25,7 @@
 #include <com/sun/star/accessibility/XAccessibleValue.hpp>
 
 #include <cppuhelper/implbase.hxx>
-
-
+#include <vcl/toolkit/button.hxx>
 
 
 class VCLXAccessibleCheckBox final : public cppu::ImplInheritanceHelper<
@@ -52,7 +51,7 @@ private:
     virtual void FillAccessibleStateSet( sal_Int64& rStateSet ) override;
 
 public:
-    VCLXAccessibleCheckBox( VCLXWindow* pVCLXindow );
+    VCLXAccessibleCheckBox(CheckBox* pCheckBox);
 
     // XServiceInfo
     virtual OUString SAL_CALL getImplementationName() override;
diff --git a/accessibility/inc/standard/vclxaccessiblecombobox.hxx 
b/accessibility/inc/standard/vclxaccessiblecombobox.hxx
index 6294e7df91d1..9475d5baddd7 100644
--- a/accessibility/inc/standard/vclxaccessiblecombobox.hxx
+++ b/accessibility/inc/standard/vclxaccessiblecombobox.hxx
@@ -21,6 +21,8 @@
 
 #include <standard/vclxaccessiblebox.hxx>
 
+#include <vcl/toolkit/combobox.hxx>
+
 /** 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
@@ -30,7 +32,7 @@
 class VCLXAccessibleComboBox final : public VCLXAccessibleBox
 {
 public:
-    VCLXAccessibleComboBox(VCLXWindow* pVCLXindow);
+    VCLXAccessibleComboBox(ComboBox* pComboBox);
 
     // XServiceInfo
     virtual OUString SAL_CALL getImplementationName() override;
diff --git a/accessibility/inc/standard/vclxaccessibledropdowncombobox.hxx 
b/accessibility/inc/standard/vclxaccessibledropdowncombobox.hxx
index 2527b2fbc2c8..3ad1e0e9f92a 100644
--- a/accessibility/inc/standard/vclxaccessibledropdowncombobox.hxx
+++ b/accessibility/inc/standard/vclxaccessibledropdowncombobox.hxx
@@ -21,6 +21,8 @@
 
 #include <standard/vclxaccessiblebox.hxx>
 
+#include <vcl/toolkit/combobox.hxx>
+
 /** 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
@@ -31,7 +33,7 @@
 class VCLXAccessibleDropDownComboBox final : public VCLXAccessibleBox
 {
 public:
-    VCLXAccessibleDropDownComboBox(VCLXWindow* pVCLXindow);
+    VCLXAccessibleDropDownComboBox(ComboBox* pComboBox);
 
     // XServiceInfo
     virtual OUString SAL_CALL getImplementationName() override;
diff --git a/accessibility/inc/standard/vclxaccessibledropdownlistbox.hxx 
b/accessibility/inc/standard/vclxaccessibledropdownlistbox.hxx
index 3a314ad09434..b29b8206cde0 100644
--- a/accessibility/inc/standard/vclxaccessibledropdownlistbox.hxx
+++ b/accessibility/inc/standard/vclxaccessibledropdownlistbox.hxx
@@ -31,7 +31,7 @@
 class VCLXAccessibleDropDownListBox final : public VCLXAccessibleBox
 {
 public:
-    VCLXAccessibleDropDownListBox(VCLXWindow* pVCLXindow);
+    VCLXAccessibleDropDownListBox(ListBox* pListBox);
 
     // XServiceInfo
     virtual OUString SAL_CALL getImplementationName() override;
diff --git a/accessibility/inc/standard/vclxaccessibleedit.hxx 
b/accessibility/inc/standard/vclxaccessibleedit.hxx
index e5d810ccc016..6469101be775 100644
--- a/accessibility/inc/standard/vclxaccessibleedit.hxx
+++ b/accessibility/inc/standard/vclxaccessibleedit.hxx
@@ -25,8 +25,7 @@
 #include <com/sun/star/accessibility/XAccessibleAction.hpp>
 
 #include <cppuhelper/implbase.hxx>
-
-
+#include <vcl/toolkit/edit.hxx>
 
 
 class VCLXAccessibleEdit : public cppu::ImplInheritanceHelper<
@@ -54,7 +53,7 @@ protected:
     virtual bool                PreferFullTextInTextChangedEvent() override;
 
 public:
-    VCLXAccessibleEdit( VCLXWindow* pVCLXindow );
+    VCLXAccessibleEdit(Edit* pEdit);
 
     // XServiceInfo
     virtual OUString SAL_CALL getImplementationName() override;
diff --git a/accessibility/inc/standard/vclxaccessibleheaderbar.hxx 
b/accessibility/inc/standard/vclxaccessibleheaderbar.hxx
index 505e0f2859d8..d89354fca9e9 100644
--- a/accessibility/inc/standard/vclxaccessibleheaderbar.hxx
+++ b/accessibility/inc/standard/vclxaccessibleheaderbar.hxx
@@ -20,7 +20,6 @@
 
 #include <vcl/headbar.hxx>
 #include <toolkit/awt/vclxaccessiblecomponent.hxx>
-#include <toolkit/awt/vclxwindow.hxx>
 
 typedef std::vector<css::uno::WeakReference<css::accessibility::XAccessible>> 
ListItems;
 
@@ -31,7 +30,7 @@ class VCLXAccessibleHeaderBar final : public 
VCLXAccessibleComponent
 public:
     virtual ~VCLXAccessibleHeaderBar() override;
 
-    VCLXAccessibleHeaderBar(VCLXWindow* pVCLXindow);
+    VCLXAccessibleHeaderBar(HeaderBar* pHeaderBar);
 
     // XAccessibleContext
     virtual sal_Int64 SAL_CALL getAccessibleChildCount() override;
diff --git a/accessibility/inc/standard/vclxaccessiblelist.hxx 
b/accessibility/inc/standard/vclxaccessiblelist.hxx
index 7bfb83c7e386..2a1652d04112 100644
--- a/accessibility/inc/standard/vclxaccessiblelist.hxx
+++ b/accessibility/inc/standard/vclxaccessiblelist.hxx
@@ -47,9 +47,8 @@ class VCLXAccessibleList final
 public:
     enum BoxType {COMBOBOX, LISTBOX};
 
-    VCLXAccessibleList (VCLXWindow* pVCLXindow, BoxType aBoxType,
-                        const css::uno::Reference<
-                            css::accessibility::XAccessible >& _xParent);
+    VCLXAccessibleList(vcl::Window* pWindow, 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.
diff --git a/accessibility/inc/standard/vclxaccessiblelistbox.hxx 
b/accessibility/inc/standard/vclxaccessiblelistbox.hxx
index ed2cd05efc56..2e73cc9499d2 100644
--- a/accessibility/inc/standard/vclxaccessiblelistbox.hxx
+++ b/accessibility/inc/standard/vclxaccessiblelistbox.hxx
@@ -29,7 +29,7 @@
 class VCLXAccessibleListBox final : public VCLXAccessibleBox
 {
 public:
-    VCLXAccessibleListBox(VCLXWindow* pVCLXindow);
+    VCLXAccessibleListBox(ListBox* pListBox);
 
     // XServiceInfo
     virtual OUString SAL_CALL getImplementationName() override;
diff --git a/accessibility/inc/standard/vclxaccessibleradiobutton.hxx 
b/accessibility/inc/standard/vclxaccessibleradiobutton.hxx
index 4e93579fa9c1..bec1aea7f1d2 100644
--- a/accessibility/inc/standard/vclxaccessibleradiobutton.hxx
+++ b/accessibility/inc/standard/vclxaccessibleradiobutton.hxx
@@ -25,8 +25,7 @@
 #include <com/sun/star/accessibility/XAccessibleValue.hpp>
 
 #include <cppuhelper/implbase.hxx>
-
-
+#include <vcl/toolkit/button.hxx>
 
 
 class VCLXAccessibleRadioButton final : public cppu::ImplInheritanceHelper<
@@ -41,7 +40,8 @@ class VCLXAccessibleRadioButton final : public 
cppu::ImplInheritanceHelper<
     virtual void FillAccessibleStateSet( sal_Int64& rStateSet ) override;
 
 public:
-    VCLXAccessibleRadioButton( VCLXWindow* pVCLXWindow ): 
ImplInheritanceHelper(pVCLXWindow) {}
+    VCLXAccessibleRadioButton(RadioButton* pRadioButton)
+        : ImplInheritanceHelper(pRadioButton) {}
 
     // XServiceInfo
     virtual OUString SAL_CALL getImplementationName() override;
diff --git a/accessibility/inc/standard/vclxaccessiblescrollbar.hxx 
b/accessibility/inc/standard/vclxaccessiblescrollbar.hxx
index c8f1dd719878..4cbc63033160 100644
--- a/accessibility/inc/standard/vclxaccessiblescrollbar.hxx
+++ b/accessibility/inc/standard/vclxaccessiblescrollbar.hxx
@@ -25,8 +25,7 @@
 #include <com/sun/star/accessibility/XAccessibleValue.hpp>
 
 #include <cppuhelper/implbase.hxx>
-
-
+#include <vcl/toolkit/scrbar.hxx>
 
 
 class VCLXAccessibleScrollBar final : public cppu::ImplInheritanceHelper<
@@ -40,7 +39,8 @@ class VCLXAccessibleScrollBar final : public 
cppu::ImplInheritanceHelper<
     virtual void FillAccessibleStateSet( sal_Int64& rStateSet ) override;
 
 public:
-    VCLXAccessibleScrollBar( VCLXWindow* pVCLXWindow ): 
ImplInheritanceHelper(pVCLXWindow) {}
+    VCLXAccessibleScrollBar(ScrollBar* pScrollBar)
+        : ImplInheritanceHelper(pScrollBar) {}
 
     // XServiceInfo
     virtual OUString SAL_CALL getImplementationName() override;
diff --git a/accessibility/inc/standard/vclxaccessiblestatusbar.hxx 
b/accessibility/inc/standard/vclxaccessiblestatusbar.hxx
index 17f77af4fbb6..5b13f10317f4 100644
--- a/accessibility/inc/standard/vclxaccessiblestatusbar.hxx
+++ b/accessibility/inc/standard/vclxaccessiblestatusbar.hxx
@@ -49,7 +49,7 @@ private:
     virtual void SAL_CALL   disposing() override;
 
 public:
-    VCLXAccessibleStatusBar( VCLXWindow* pVCLXWindow );
+    VCLXAccessibleStatusBar(vcl::Window* pWindow);
 
     // XServiceInfo
     virtual OUString SAL_CALL getImplementationName() override;
diff --git a/accessibility/inc/standard/vclxaccessibletabcontrol.hxx 
b/accessibility/inc/standard/vclxaccessibletabcontrol.hxx
index 32565c6d80ad..bc56e7746e48 100644
--- a/accessibility/inc/standard/vclxaccessibletabcontrol.hxx
+++ b/accessibility/inc/standard/vclxaccessibletabcontrol.hxx
@@ -60,7 +60,7 @@ private:
     virtual void SAL_CALL   disposing() override;
 
 public:
-    VCLXAccessibleTabControl( VCLXWindow* pVCLXWindow );
+    VCLXAccessibleTabControl(vcl::Window* pWindow);
 
     // XServiceInfo
     virtual OUString SAL_CALL getImplementationName() override;
diff --git a/accessibility/inc/standard/vclxaccessibletabpagewindow.hxx 
b/accessibility/inc/standard/vclxaccessibletabpagewindow.hxx
index 826aa8daad91..457cb5b944bc 100644
--- a/accessibility/inc/standard/vclxaccessibletabpagewindow.hxx
+++ b/accessibility/inc/standard/vclxaccessibletabpagewindow.hxx
@@ -41,7 +41,7 @@ private:
     virtual void SAL_CALL   disposing() override;
 
 public:
-    VCLXAccessibleTabPageWindow( VCLXWindow* pVCLXWindow );
+    VCLXAccessibleTabPageWindow(vcl::Window* pWindow);
 
     // XAccessibleContext
     virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL 
getAccessibleParent(  ) override;
diff --git a/accessibility/inc/standard/vclxaccessibletextcomponent.hxx 
b/accessibility/inc/standard/vclxaccessibletextcomponent.hxx
index 9678eb15469b..356c968c1413 100644
--- a/accessibility/inc/standard/vclxaccessibletextcomponent.hxx
+++ b/accessibility/inc/standard/vclxaccessibletextcomponent.hxx
@@ -56,7 +56,7 @@ protected:
     virtual void SAL_CALL                   disposing() override;
 
 public:
-    VCLXAccessibleTextComponent( VCLXWindow* pVCLXWindow );
+    VCLXAccessibleTextComponent(vcl::Window* pWindow);
 
     // XAccessibleText
     virtual sal_Int32 SAL_CALL getCaretPosition() override;
diff --git a/accessibility/inc/standard/vclxaccessibletextfield.hxx 
b/accessibility/inc/standard/vclxaccessibletextfield.hxx
index b730bd107ea2..997041db1f9f 100644
--- a/accessibility/inc/standard/vclxaccessibletextfield.hxx
+++ b/accessibility/inc/standard/vclxaccessibletextfield.hxx
@@ -33,8 +33,8 @@ class VCLXAccessibleTextField final :
     public cppu::ImplInheritanceHelper<VCLXAccessibleTextComponent, 
css::accessibility::XAccessible>
 {
 public:
-    VCLXAccessibleTextField (VCLXWindow* pVCLXindow,
-                             const css::uno::Reference< 
css::accessibility::XAccessible >& _xParent);
+    VCLXAccessibleTextField(vcl::Window* pWindow,
+                            const 
css::uno::Reference<css::accessibility::XAccessible>& _xParent);
 
     // XAccessible
     css::uno::Reference< css::accessibility::XAccessibleContext> SAL_CALL
diff --git a/accessibility/inc/standard/vclxaccessibletoolbox.hxx 
b/accessibility/inc/standard/vclxaccessibletoolbox.hxx
index 4918e511ba2a..efe684f5b31b 100644
--- a/accessibility/inc/standard/vclxaccessibletoolbox.hxx
+++ b/accessibility/inc/standard/vclxaccessibletoolbox.hxx
@@ -63,7 +63,7 @@ private:
     virtual void SAL_CALL disposing() override;
 
 public:
-    VCLXAccessibleToolBox( VCLXWindow* pVCLXWindow );
+    VCLXAccessibleToolBox(ToolBox* pToolBox);
 
     // XServiceInfo
     virtual OUString SAL_CALL getImplementationName() override;
diff --git a/accessibility/source/extended/accessibleiconchoicectrl.cxx 
b/accessibility/source/extended/accessibleiconchoicectrl.cxx
index e0780143ea83..7cebe8379aec 100644
--- a/accessibility/source/extended/accessibleiconchoicectrl.cxx
+++ b/accessibility/source/extended/accessibleiconchoicectrl.cxx
@@ -43,7 +43,7 @@ namespace accessibility
 
     AccessibleIconChoiceCtrl::AccessibleIconChoiceCtrl(SvtIconChoiceCtrl& 
_rIconCtrl,
                                                        const 
Reference<XAccessible>& _xParent)
-        : ImplInheritanceHelper(_rIconCtrl.GetWindowPeer())
+        : ImplInheritanceHelper(&_rIconCtrl)
         , m_xParent(_xParent)
     {
     }
diff --git a/accessibility/source/extended/accessiblelistbox.cxx 
b/accessibility/source/extended/accessiblelistbox.cxx
index 5ad681d3b233..1b8535af1df5 100644
--- a/accessibility/source/extended/accessiblelistbox.cxx
+++ b/accessibility/source/extended/accessiblelistbox.cxx
@@ -43,7 +43,7 @@ namespace accessibility
     // Ctor() and Dtor()
 
     AccessibleListBox::AccessibleListBox(SvTreeListBox& _rListBox, const 
Reference< XAccessible >& _xParent)
-        : ImplInheritanceHelper( _rListBox.GetWindowPeer() ),
+        : ImplInheritanceHelper(&_rListBox),
         m_xParent( _xParent )
     {
     }
diff --git a/accessibility/source/extended/textwindowaccessibility.cxx 
b/accessibility/source/extended/textwindowaccessibility.cxx
index 04939fee3b3a..e19915407e00 100644
--- a/accessibility/source/extended/textwindowaccessibility.cxx
+++ b/accessibility/source/extended/textwindowaccessibility.cxx
@@ -703,7 +703,7 @@ void Paragraph::checkDisposed()
 
 Document::Document(::VCLXWindow * pVclXWindow, ::TextEngine & rEngine,
                    ::TextView & rView):
-    VCLXAccessibleComponent(pVclXWindow),
+    VCLXAccessibleComponent(pVclXWindow->GetWindow()),
     m_xAccessible(pVclXWindow),
     m_rEngine(rEngine),
     m_rView(rView),
diff --git a/accessibility/source/helper/acc_factory.cxx 
b/accessibility/source/helper/acc_factory.cxx
index 9bfdd1f2948e..9ac17ca3e106 100644
--- a/accessibility/source/helper/acc_factory.cxx
+++ b/accessibility/source/helper/acc_factory.cxx
@@ -57,6 +57,8 @@
 #include <com/sun/star/accessibility/AccessibleRole.hpp>
 #include <vcl/toolkit/lstbox.hxx>
 #include <vcl/toolkit/combobox.hxx>
+#include <vcl/toolkit/fixed.hxx>
+#include <vcl/toolkit/fixedhyper.hxx>
 #include <extended/AccessibleGridControl.hxx>
 #include <vcl/accessibletable.hxx>
 
@@ -86,33 +88,31 @@ public:
 
     // ::toolkit::IAccessibleFactory
     virtual css::uno::Reference< css::accessibility::XAccessibleContext >
-        createAccessibleContext( VCLXButton* _pXWindow ) override;
+        createAccessibleContext(PushButton* pButton) override;
     virtual css::uno::Reference< css::accessibility::XAccessibleContext >
-        createAccessibleContext( VCLXCheckBox* _pXWindow ) override;
+        createAccessibleContext(CheckBox* pCheckBox) override;
     virtual css::uno::Reference< css::accessibility::XAccessibleContext >
-        createAccessibleContext( VCLXRadioButton* _pXWindow ) override;
+        createAccessibleContext(RadioButton* pRadioButton) override;
     virtual css::uno::Reference< css::accessibility::XAccessibleContext >
-        createAccessibleContext( VCLXListBox* _pXWindow ) override;
+        createAccessibleContext(ListBox* pListBox) override;
     virtual css::uno::Reference< css::accessibility::XAccessibleContext >
-        createAccessibleContext( VCLXFixedText* _pXWindow ) override;
+        createAccessibleContext(FixedText* pFixedText) override;
     virtual css::uno::Reference< css::accessibility::XAccessibleContext >
-        createAccessibleContext( VCLXFixedHyperlink* _pXWindow ) override;
+        createAccessibleContext(FixedHyperlink* pFixedHyperlink) override;
     virtual css::uno::Reference< css::accessibility::XAccessibleContext >
-        createAccessibleContext( VCLXScrollBar* _pXWindow ) override;
+        createAccessibleContext(ScrollBar* pScrollBar) override;
     virtual css::uno::Reference< css::accessibility::XAccessibleContext >
-        createAccessibleContext( VCLXEdit* _pXWindow ) override;
+        createAccessibleContext(Edit* pEdit) override;
     virtual css::uno::Reference< css::accessibility::XAccessibleContext >
-        createAccessibleContext( VCLXMultiLineEdit* _pXWindow ) override;
+        createAccessibleContext(ComboBox* pComboBox) override;
     virtual css::uno::Reference< css::accessibility::XAccessibleContext >
-        createAccessibleContext( VCLXComboBox* _pXWindow ) override;
+        createAccessibleContext(ToolBox* pToolBox) override;
     virtual css::uno::Reference< css::accessibility::XAccessibleContext >
-        createAccessibleContext( VCLXToolBox* _pXWindow ) override;
+        createAccessibleContext(HeaderBar* pHeaderBar) override;
     virtual css::uno::Reference< css::accessibility::XAccessibleContext >
-        createAccessibleContext( VCLXHeaderBar* _pXWindow ) override;
+        createAccessibleContext(FormattedField* pFormattedField) override;
     virtual css::uno::Reference< css::accessibility::XAccessibleContext >
-        createAccessibleContext( SVTXNumericField* _pXWindow ) override;
-    virtual css::uno::Reference< css::accessibility::XAccessibleContext >
-        createAccessibleContext( VCLXWindow* _pXWindow ) override;
+        createAccessibleContext(vcl::Window* pWindow) override;
 
     // ::vcl::IAccessibleFactory
     virtual vcl::IAccessibleTabListBox*
@@ -220,75 +220,67 @@ AccessibleFactory::~AccessibleFactory()
 {
 }
 
-Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( 
VCLXButton* _pXWindow )
+Reference< XAccessibleContext > 
AccessibleFactory::createAccessibleContext(PushButton* pButton)
 {
-    return new VCLXAccessibleButton( _pXWindow );
+    return new VCLXAccessibleButton(pButton);
 }
 
-Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( 
VCLXCheckBox* _pXWindow )
+Reference< XAccessibleContext > 
AccessibleFactory::createAccessibleContext(CheckBox* pCheckBox)
 {
-    return new VCLXAccessibleCheckBox( _pXWindow );
+    return new VCLXAccessibleCheckBox(pCheckBox);
 }
 
-Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( 
VCLXRadioButton* _pXWindow )
+Reference<XAccessibleContext> 
AccessibleFactory::createAccessibleContext(RadioButton* pRadioButton)
 {
-    return new VCLXAccessibleRadioButton( _pXWindow );
+    return new VCLXAccessibleRadioButton(pRadioButton);
 }
 
-Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( 
VCLXListBox* _pXWindow )
+Reference< XAccessibleContext > 
AccessibleFactory::createAccessibleContext(ListBox* pListBox)
 {
     bool bIsDropDownBox = false;
-    VclPtr< ListBox > pBox = _pXWindow->GetAs< ListBox >();
-    if ( pBox )
-        bIsDropDownBox = ( ( pBox->GetStyle() & WB_DROPDOWN ) == WB_DROPDOWN );
+    if (pListBox)
+        bIsDropDownBox = ((pListBox->GetStyle() & WB_DROPDOWN) == WB_DROPDOWN);
 
     if ( bIsDropDownBox )
-        return new VCLXAccessibleDropDownListBox( _pXWindow );
+        return new VCLXAccessibleDropDownListBox(pListBox);
     else
-        return new VCLXAccessibleListBox( _pXWindow );
-}
-
-Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( 
VCLXFixedText* _pXWindow )
-{
-    return new VCLXAccessibleFixedText( _pXWindow );
+        return new VCLXAccessibleListBox(pListBox);
 }
 
-Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( 
VCLXFixedHyperlink* _pXWindow )
+Reference< XAccessibleContext > 
AccessibleFactory::createAccessibleContext(FixedText* pFixedText)
 {
-    return new VCLXAccessibleFixedHyperlink( _pXWindow );
+    return new VCLXAccessibleFixedText(pFixedText);
 }
 
-Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( 
VCLXScrollBar* _pXWindow )
+Reference< XAccessibleContext > 
AccessibleFactory::createAccessibleContext(FixedHyperlink* pFixedHyperlink)
 {
-    return new VCLXAccessibleScrollBar( _pXWindow );
+    return new VCLXAccessibleFixedHyperlink(pFixedHyperlink);
 }
 
-Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( 
VCLXEdit* _pXWindow )
+Reference< XAccessibleContext > 
AccessibleFactory::createAccessibleContext(ScrollBar* pScrollBar)
 {
-    return new VCLXAccessibleEdit( _pXWindow );
+    return new VCLXAccessibleScrollBar(pScrollBar);
 }
 
-Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( 
VCLXMultiLineEdit* _pXWindow )
+Reference< XAccessibleContext > 
AccessibleFactory::createAccessibleContext(Edit* pEdit)
 {
-    return new VCLXAccessibleEdit( _pXWindow );
+    return new VCLXAccessibleEdit(pEdit);
 }
 
-Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( 
VCLXComboBox* _pXWindow )
+Reference< XAccessibleContext > 
AccessibleFactory::createAccessibleContext(ComboBox* pComboBox)
 {
     bool bIsDropDownBox = false;
-    VclPtr< ComboBox > pBox = _pXWindow->GetAs< ComboBox >();
-    if ( pBox )
-        bIsDropDownBox = ( ( pBox->GetStyle() & WB_DROPDOWN ) == WB_DROPDOWN );
+    if (pComboBox)
+        bIsDropDownBox = ((pComboBox->GetStyle() & WB_DROPDOWN) == 
WB_DROPDOWN);
 
     if ( bIsDropDownBox )
-        return new VCLXAccessibleDropDownComboBox( _pXWindow );
+        return new VCLXAccessibleDropDownComboBox(pComboBox);
     else
-        return new VCLXAccessibleComboBox( _pXWindow );
+        return new VCLXAccessibleComboBox(pComboBox);
 }
 
-Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( 
VCLXWindow* _pXWindow )
+Reference< XAccessibleContext > 
AccessibleFactory::createAccessibleContext(vcl::Window* pWindow)
 {
-    VclPtr<vcl::Window> pWindow = _pXWindow->GetWindow();
     if (!pWindow)
         return nullptr;
 
@@ -310,54 +302,54 @@ Reference< XAccessibleContext > 
AccessibleFactory::createAccessibleContext( VCLX
 
     else if ( nType == WindowType::STATUSBAR )
     {
-        return new VCLXAccessibleStatusBar(_pXWindow);
+        return new VCLXAccessibleStatusBar(pWindow);
     }
 
     else if ( nType == WindowType::TABCONTROL )
     {
-        return new VCLXAccessibleTabControl(_pXWindow);
+        return new VCLXAccessibleTabControl(pWindow);
     }
 
     else if ( nType == WindowType::TABPAGE && 
pWindow->GetAccessibleParentWindow() && 
pWindow->GetAccessibleParentWindow()->GetType() == WindowType::TABCONTROL )
     {
-        return new VCLXAccessibleTabPageWindow(_pXWindow);
+        return new VCLXAccessibleTabPageWindow(pWindow);
     }
 
     else if ( nType == WindowType::FLOATINGWINDOW )
     {
-        return new FloatingWindowAccessible(_pXWindow);
+        return new FloatingWindowAccessible(pWindow);
     }
 
     else if ( nType == WindowType::BORDERWINDOW && hasFloatingChild( pWindow ) 
)
     {
-        return new FloatingWindowAccessible(_pXWindow);
+        return new FloatingWindowAccessible(pWindow);
     }
 
     else if ( ( nType == WindowType::HELPTEXTWINDOW ) || ( nType == 
WindowType::FIXEDLINE ) )
     {
-        return new VCLXAccessibleFixedText(_pXWindow);
+        return new VCLXAccessibleFixedText(pWindow);
     }
     else
     {
-        return new VCLXAccessibleComponent(_pXWindow);
+        return new VCLXAccessibleComponent(pWindow);
     }
 
     return nullptr;
 }
 
-Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( 
VCLXToolBox* _pXWindow )
+Reference< XAccessibleContext > 
AccessibleFactory::createAccessibleContext(ToolBox* pToolBox)
 {
-    return new VCLXAccessibleToolBox( _pXWindow );
+    return new VCLXAccessibleToolBox(pToolBox);
 }
 
-Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( 
VCLXHeaderBar* _pXWindow )
+Reference< XAccessibleContext > 
AccessibleFactory::createAccessibleContext(HeaderBar* pHeaderBar)
 {
-    return new VCLXAccessibleHeaderBar(_pXWindow);
+    return new VCLXAccessibleHeaderBar(pHeaderBar);
 }
 
-Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( 
SVTXNumericField* _pXWindow )
+Reference< XAccessibleContext > 
AccessibleFactory::createAccessibleContext(FormattedField* pFormattedField)
 {
-    return new SVTXAccessibleNumericField( _pXWindow );
+    return new SVTXAccessibleNumericField(pFormattedField);
 }
 
 vcl::IAccessibleTabListBox* AccessibleFactory::createAccessibleTabListBox(
diff --git a/accessibility/source/standard/svtaccessiblenumericfield.cxx 
b/accessibility/source/standard/svtaccessiblenumericfield.cxx
index 50a17a1373ec..2d4630a943b3 100644
--- a/accessibility/source/standard/svtaccessiblenumericfield.cxx
+++ b/accessibility/source/standard/svtaccessiblenumericfield.cxx
@@ -19,7 +19,6 @@
 
 #include <standard/svtaccessiblenumericfield.hxx>
 #include <comphelper/accessiblecontexthelper.hxx>
-#include <vcl/toolkit/fmtfield.hxx>
 
 #include <com/sun/star/accessibility/AccessibleEventId.hpp>
 #include <com/sun/star/accessibility/AccessibleRole.hpp>
@@ -27,8 +26,8 @@
 using namespace ::com::sun::star::accessibility;
 using namespace ::comphelper;
 
-SVTXAccessibleNumericField::SVTXAccessibleNumericField(VCLXWindow* pVCLWindow)
-    : ImplInheritanceHelper(pVCLWindow)
+SVTXAccessibleNumericField::SVTXAccessibleNumericField(FormattedField* 
pFormattedField)
+    : ImplInheritanceHelper(pFormattedField)
 {
 }
 
diff --git a/accessibility/source/standard/vclxaccessiblebox.cxx 
b/accessibility/source/standard/vclxaccessiblebox.cxx
index 9690eff35ee2..32ff3cdab47d 100644
--- a/accessibility/source/standard/vclxaccessiblebox.cxx
+++ b/accessibility/source/standard/vclxaccessiblebox.cxx
@@ -30,7 +30,6 @@
 #include <vcl/accessibility/strings.hxx>
 #include <vcl/svapp.hxx>
 #include <vcl/toolkit/combobox.hxx>
-#include <vcl/toolkit/lstbox.hxx>
 
 using namespace ::com::sun::star;
 using namespace ::com::sun::star::uno;
@@ -38,8 +37,8 @@ using namespace ::com::sun::star::lang;
 using namespace ::com::sun::star::beans;
 using namespace ::com::sun::star::accessibility;
 
-VCLXAccessibleBox::VCLXAccessibleBox (VCLXWindow* pVCLWindow, BoxType aType, 
bool bIsDropDownBox)
-    : ImplInheritanceHelper (pVCLWindow),
+VCLXAccessibleBox::VCLXAccessibleBox(vcl::Window* pBox, BoxType aType, bool 
bIsDropDownBox)
+    : ImplInheritanceHelper(pBox),
       m_aBoxType (aType),
       m_bIsDropDownBox (bIsDropDownBox)
 {
@@ -299,7 +298,7 @@ Reference<XAccessible> SAL_CALL 
VCLXAccessibleBox::getAccessibleChild (sal_Int64
             // List.
             if ( ! m_xList.is())
             {
-                m_xList = new VCLXAccessibleList(GetVCLXWindow(),
+                m_xList = new VCLXAccessibleList(GetWindow(),
                     (m_aBoxType == LISTBOX ? VCLXAccessibleList::LISTBOX : 
VCLXAccessibleList::COMBOBOX),
                                                                     this);
                 m_xList->SetIndexInParent(i);
@@ -318,7 +317,7 @@ Reference<XAccessible> SAL_CALL 
VCLXAccessibleBox::getAccessibleChild (sal_Int64
                         m_xText = pComboBox->GetSubEdit()->GetAccessible();
                 }
                 else if (m_bIsDropDownBox)
-                    m_xText = new VCLXAccessibleTextField 
(GetVCLXWindow(),this);
+                    m_xText = new VCLXAccessibleTextField(GetWindow(), this);
             }
             xChild = m_xText;
         }
diff --git a/accessibility/source/standard/vclxaccessiblecheckbox.cxx 
b/accessibility/source/standard/vclxaccessiblecheckbox.cxx
index debdb086df1e..34eb97635f2d 100644
--- a/accessibility/source/standard/vclxaccessiblecheckbox.cxx
+++ b/accessibility/source/standard/vclxaccessiblecheckbox.cxx
@@ -29,7 +29,6 @@
 #include <com/sun/star/accessibility/AccessibleEventId.hpp>
 #include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
 
-#include <vcl/toolkit/button.hxx>
 #include <vcl/event.hxx>
 #include <vcl/vclevent.hxx>
 
@@ -43,8 +42,8 @@ using namespace ::comphelper;
 // VCLXAccessibleCheckBox
 
 
-VCLXAccessibleCheckBox::VCLXAccessibleCheckBox( VCLXWindow* pVCLWindow )
-    :ImplInheritanceHelper( pVCLWindow )
+VCLXAccessibleCheckBox::VCLXAccessibleCheckBox(CheckBox* pCheckBox)
+    :ImplInheritanceHelper(pCheckBox)
 {
     m_bChecked = IsChecked();
     m_bIndeterminate = IsIndeterminate();
diff --git a/accessibility/source/standard/vclxaccessiblecombobox.cxx 
b/accessibility/source/standard/vclxaccessiblecombobox.cxx
index 1673048cf771..79dffd1c2f26 100644
--- a/accessibility/source/standard/vclxaccessiblecombobox.cxx
+++ b/accessibility/source/standard/vclxaccessiblecombobox.cxx
@@ -25,8 +25,8 @@ using namespace ::com::sun::star;
 using namespace ::com::sun::star::uno;
 
 
-VCLXAccessibleComboBox::VCLXAccessibleComboBox (VCLXWindow* pVCLWindow)
-    : VCLXAccessibleBox (pVCLWindow, VCLXAccessibleBox::COMBOBOX, false)
+VCLXAccessibleComboBox::VCLXAccessibleComboBox(ComboBox* pComboBox)
+    : VCLXAccessibleBox(pComboBox, VCLXAccessibleBox::COMBOBOX, false)
 {
 }
 
diff --git a/accessibility/source/standard/vclxaccessibledropdowncombobox.cxx 
b/accessibility/source/standard/vclxaccessibledropdowncombobox.cxx
index 91b51606d9e0..a621263ff941 100644
--- a/accessibility/source/standard/vclxaccessibledropdowncombobox.cxx
+++ b/accessibility/source/standard/vclxaccessibledropdowncombobox.cxx
@@ -28,8 +28,8 @@ using namespace ::com::sun::star;
 using namespace ::com::sun::star::uno;
 
 
-VCLXAccessibleDropDownComboBox::VCLXAccessibleDropDownComboBox (VCLXWindow* 
pVCLWindow)
-    : VCLXAccessibleBox (pVCLWindow, VCLXAccessibleBox::COMBOBOX, true)
+VCLXAccessibleDropDownComboBox::VCLXAccessibleDropDownComboBox(ComboBox* 
pComboBox)
+    : VCLXAccessibleBox(pComboBox, VCLXAccessibleBox::COMBOBOX, true)
 {
 }
 
diff --git a/accessibility/source/standard/vclxaccessibledropdownlistbox.cxx 
b/accessibility/source/standard/vclxaccessibledropdownlistbox.cxx
index 0445e39b2d29..df9323330d52 100644
--- a/accessibility/source/standard/vclxaccessibledropdownlistbox.cxx
+++ b/accessibility/source/standard/vclxaccessibledropdownlistbox.cxx
@@ -25,8 +25,8 @@ using namespace ::com::sun::star;
 using namespace ::com::sun::star::uno;
 
 
-VCLXAccessibleDropDownListBox::VCLXAccessibleDropDownListBox (VCLXWindow* 
pVCLWindow)
-    : VCLXAccessibleBox (pVCLWindow,  VCLXAccessibleBox::LISTBOX, true)
+VCLXAccessibleDropDownListBox::VCLXAccessibleDropDownListBox (ListBox* 
pListBox)
+    : VCLXAccessibleBox(pListBox,  VCLXAccessibleBox::LISTBOX, true)
 {
 }
 
diff --git a/accessibility/source/standard/vclxaccessibleedit.cxx 
b/accessibility/source/standard/vclxaccessibleedit.cxx
index e87ed8960503..70f25ee40907 100644
--- a/accessibility/source/standard/vclxaccessibleedit.cxx
+++ b/accessibility/source/standard/vclxaccessibleedit.cxx
@@ -33,7 +33,6 @@
 #include <vcl/window.hxx>
 #include <vcl/mnemonic.hxx>
 #include <vcl/settings.hxx>
-#include <vcl/toolkit/edit.hxx>
 #include <vcl/toolkit/vclmedit.hxx>
 #include <vcl/textdata.hxx>
 #include <vcl/txtattr.hxx>
@@ -55,8 +54,8 @@ using namespace ::comphelper;
 // VCLXAccessibleEdit
 
 
-VCLXAccessibleEdit::VCLXAccessibleEdit( VCLXWindow* pVCLWindow )
-    :ImplInheritanceHelper( pVCLWindow )
+VCLXAccessibleEdit::VCLXAccessibleEdit(Edit* pEdit)
+    :ImplInheritanceHelper(pEdit)
 {
     m_nCaretPosition = getCaretPosition();
 }
diff --git a/accessibility/source/standard/vclxaccessibleheaderbar.cxx 
b/accessibility/source/standard/vclxaccessibleheaderbar.cxx
index 2c8ad658b1ab..6c49dbdd747b 100644
--- a/accessibility/source/standard/vclxaccessibleheaderbar.cxx
+++ b/accessibility/source/standard/vclxaccessibleheaderbar.cxx
@@ -31,10 +31,10 @@ using namespace ::com::sun::star::uno;
 using namespace ::com::sun::star::lang;
 using namespace ::com::sun::star::accessibility;
 
-VCLXAccessibleHeaderBar::VCLXAccessibleHeaderBar(VCLXWindow* pVCLWindow)
-    : VCLXAccessibleComponent(pVCLWindow)
+VCLXAccessibleHeaderBar::VCLXAccessibleHeaderBar(HeaderBar* pHeaderBar)
+    : VCLXAccessibleComponent(pHeaderBar)
 {
-    m_pHeadBar = GetAs<HeaderBar>();
+    m_pHeadBar = pHeaderBar;
 }
 
 VCLXAccessibleHeaderBar::~VCLXAccessibleHeaderBar() {}
diff --git a/accessibility/source/standard/vclxaccessiblelist.cxx 
b/accessibility/source/standard/vclxaccessiblelist.cxx
index 79cb5241d567..674b500b8703 100644
--- a/accessibility/source/standard/vclxaccessiblelist.cxx
+++ b/accessibility/source/standard/vclxaccessiblelist.cxx
@@ -53,9 +53,9 @@ namespace
     }
 }
 
-VCLXAccessibleList::VCLXAccessibleList (VCLXWindow* pVCLWindow, BoxType 
aBoxType,
-                                        const Reference< XAccessible >& 
_xParent)
-    : ImplInheritanceHelper     (pVCLWindow),
+VCLXAccessibleList::VCLXAccessibleList(vcl::Window* pWindow, BoxType aBoxType,
+                                       const Reference< XAccessible >& 
_xParent)
+    : ImplInheritanceHelper     (pWindow),
       m_aBoxType                (aBoxType),
       m_nVisibleLineCount       (0),
       m_nIndexInParent          (DEFAULT_INDEX_IN_PARENT),
diff --git a/accessibility/source/standard/vclxaccessiblelistbox.cxx 
b/accessibility/source/standard/vclxaccessiblelistbox.cxx
index de282aba1a64..5c9a9ae074e9 100644
--- a/accessibility/source/standard/vclxaccessiblelistbox.cxx
+++ b/accessibility/source/standard/vclxaccessiblelistbox.cxx
@@ -24,8 +24,8 @@
 using namespace ::com::sun::star;
 using namespace ::com::sun::star::uno;
 
-VCLXAccessibleListBox::VCLXAccessibleListBox (VCLXWindow* pVCLWindow)
-    : VCLXAccessibleBox (pVCLWindow, VCLXAccessibleBox::LISTBOX, false)
+VCLXAccessibleListBox::VCLXAccessibleListBox(ListBox* pListBox)
+    : VCLXAccessibleBox(pListBox, VCLXAccessibleBox::LISTBOX, false)
 {
 }
 
diff --git a/accessibility/source/standard/vclxaccessibleradiobutton.cxx 
b/accessibility/source/standard/vclxaccessibleradiobutton.cxx
index 53dc04bae9ee..0fa74c2a6e31 100644
--- a/accessibility/source/standard/vclxaccessibleradiobutton.cxx
+++ b/accessibility/source/standard/vclxaccessibleradiobutton.cxx
@@ -32,7 +32,6 @@
 #include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
 #include <vcl/accessibility/strings.hxx>
 #include <vcl/window.hxx>
-#include <vcl/toolkit/button.hxx>
 #include <vcl/event.hxx>
 #include <vcl/vclevent.hxx>
 
diff --git a/accessibility/source/standard/vclxaccessiblescrollbar.cxx 
b/accessibility/source/standard/vclxaccessiblescrollbar.cxx
index 2136f54c75ff..8dc4de787af5 100644
--- a/accessibility/source/standard/vclxaccessiblescrollbar.cxx
+++ b/accessibility/source/standard/vclxaccessiblescrollbar.cxx
@@ -29,7 +29,6 @@
 #include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
 #include <comphelper/accessiblecontexthelper.hxx>
 #include <vcl/accessibility/strings.hxx>
-#include <vcl/toolkit/scrbar.hxx>
 #include <vcl/vclevent.hxx>
 
 using namespace ::com::sun::star;
diff --git a/accessibility/source/standard/vclxaccessiblestatusbar.cxx 
b/accessibility/source/standard/vclxaccessiblestatusbar.cxx
index 877abf27e090..862eb0033d46 100644
--- a/accessibility/source/standard/vclxaccessiblestatusbar.cxx
+++ b/accessibility/source/standard/vclxaccessiblestatusbar.cxx
@@ -37,8 +37,8 @@ using namespace ::comphelper;
 
 
 
-VCLXAccessibleStatusBar::VCLXAccessibleStatusBar( VCLXWindow* pVCLXWindow )
-    :VCLXAccessibleComponent( pVCLXWindow )
+VCLXAccessibleStatusBar::VCLXAccessibleStatusBar(vcl::Window* pWindow)
+    : VCLXAccessibleComponent(pWindow)
 {
     m_pStatusBar = GetAs<StatusBar>();
 
diff --git a/accessibility/source/standard/vclxaccessibletabcontrol.cxx 
b/accessibility/source/standard/vclxaccessibletabcontrol.cxx
index 4be0e3b12378..9e9a2f7caedd 100644
--- a/accessibility/source/standard/vclxaccessibletabcontrol.cxx
+++ b/accessibility/source/standard/vclxaccessibletabcontrol.cxx
@@ -41,8 +41,8 @@ using namespace ::comphelper;
 
 
 
-VCLXAccessibleTabControl::VCLXAccessibleTabControl( VCLXWindow* pVCLXWindow )
-    :ImplInheritanceHelper( pVCLXWindow )
+VCLXAccessibleTabControl::VCLXAccessibleTabControl(vcl::Window* pWindow)
+    : ImplInheritanceHelper(pWindow)
 {
     m_pTabControl = GetAs<TabControl>();
     if (!m_pTabControl)
diff --git a/accessibility/source/standard/vclxaccessibletabpagewindow.cxx 
b/accessibility/source/standard/vclxaccessibletabpagewindow.cxx
index be41e86b1634..7bae454d3223 100644
--- a/accessibility/source/standard/vclxaccessibletabpagewindow.cxx
+++ b/accessibility/source/standard/vclxaccessibletabpagewindow.cxx
@@ -32,8 +32,8 @@ using namespace ::comphelper;
 
 
 
-VCLXAccessibleTabPageWindow::VCLXAccessibleTabPageWindow( VCLXWindow* 
pVCLXWindow )
-    :VCLXAccessibleComponent( pVCLXWindow )
+VCLXAccessibleTabPageWindow::VCLXAccessibleTabPageWindow(vcl::Window* pWindow)
+    : VCLXAccessibleComponent(pWindow)
 {
     m_pTabPage = GetAs<TabPage>();
     m_pTabControl = nullptr;
diff --git a/accessibility/source/standard/vclxaccessibletextcomponent.cxx 
b/accessibility/source/standard/vclxaccessibletextcomponent.cxx
index ba2324b1bc94..f3c82134939a 100644
--- a/accessibility/source/standard/vclxaccessibletextcomponent.cxx
+++ b/accessibility/source/standard/vclxaccessibletextcomponent.cxx
@@ -44,10 +44,9 @@ using namespace ::comphelper;
 
 
 
-VCLXAccessibleTextComponent::VCLXAccessibleTextComponent( VCLXWindow* 
pVCLXWindow )
-    :ImplInheritanceHelper( pVCLXWindow )
+VCLXAccessibleTextComponent::VCLXAccessibleTextComponent(vcl::Window* pWindow)
+    : ImplInheritanceHelper(pWindow)
 {
-    VclPtr<vcl::Window> pWindow = GetWindow();
     if ( pWindow )
         m_sText = removeMnemonicFromString( pWindow->GetText() );
 }
diff --git a/accessibility/source/standard/vclxaccessibletextfield.cxx 
b/accessibility/source/standard/vclxaccessibletextfield.cxx
index 238a7f1a670f..1020436b44d3 100644
--- a/accessibility/source/standard/vclxaccessibletextfield.cxx
+++ b/accessibility/source/standard/vclxaccessibletextfield.cxx
@@ -30,10 +30,9 @@ using namespace ::com::sun::star::lang;
 using namespace ::com::sun::star::accessibility;
 
 
-VCLXAccessibleTextField::VCLXAccessibleTextField (VCLXWindow* pVCLWindow, 
const Reference< XAccessible >& _xParent) :
-    ImplInheritanceHelper (pVCLWindow),
-    m_xParent( _xParent )
-
+VCLXAccessibleTextField::VCLXAccessibleTextField(vcl::Window* pWindow, const 
Reference<XAccessible>& _xParent)
+    : ImplInheritanceHelper(pWindow)
+    , m_xParent( _xParent )
 {
 }
 
diff --git a/accessibility/source/standard/vclxaccessibletoolbox.cxx 
b/accessibility/source/standard/vclxaccessibletoolbox.cxx
index c8601d707ad3..610c08ae021b 100644
--- a/accessibility/source/standard/vclxaccessibletoolbox.cxx
+++ b/accessibility/source/standard/vclxaccessibletoolbox.cxx
@@ -112,10 +112,8 @@ namespace
 
 // VCLXAccessibleToolBox
 
-VCLXAccessibleToolBox::VCLXAccessibleToolBox( VCLXWindow* pVCLXWindow ) :
-
-    ImplInheritanceHelper( pVCLXWindow )
-
+VCLXAccessibleToolBox::VCLXAccessibleToolBox(ToolBox* pToolBox)
+    : ImplInheritanceHelper(pToolBox)
 {
 }
 
diff --git a/dbaccess/source/ui/querydesign/ConnectionLineAccess.cxx 
b/dbaccess/source/ui/querydesign/ConnectionLineAccess.cxx
index 34363d470af3..2bff88cf3ecf 100644
--- a/dbaccess/source/ui/querydesign/ConnectionLineAccess.cxx
+++ b/dbaccess/source/ui/querydesign/ConnectionLineAccess.cxx
@@ -34,7 +34,7 @@ namespace dbaui
     using namespace ::com::sun::star;
 
     OConnectionLineAccess::OConnectionLineAccess(OTableConnection* _pLine)
-        : ImplInheritanceHelper(_pLine->GetComponentInterface().is() ? 
_pLine->GetWindowPeer() : nullptr)
+        : ImplInheritanceHelper(_pLine)
         ,m_pLine(_pLine)
     {
     }
diff --git a/dbaccess/source/ui/querydesign/JAccess.cxx 
b/dbaccess/source/ui/querydesign/JAccess.cxx
index 7c6844f3afd7..7548acae3ca4 100644
--- a/dbaccess/source/ui/querydesign/JAccess.cxx
+++ b/dbaccess/source/ui/querydesign/JAccess.cxx
@@ -32,7 +32,7 @@ namespace dbaui
     using namespace ::com::sun::star::lang;
 
     OJoinDesignViewAccess::OJoinDesignViewAccess(OJoinTableView* _pTableView)
-        :ImplInheritanceHelper(_pTableView->GetComponentInterface().is() ? 
_pTableView->GetWindowPeer() : nullptr)
+        :ImplInheritanceHelper(_pTableView)
         ,m_pTableView(_pTableView)
     {
     }
diff --git a/dbaccess/source/ui/querydesign/TableWindowAccess.cxx 
b/dbaccess/source/ui/querydesign/TableWindowAccess.cxx
index 41ff49ea65ed..fd3831b2496b 100644
--- a/dbaccess/source/ui/querydesign/TableWindowAccess.cxx
+++ b/dbaccess/source/ui/querydesign/TableWindowAccess.cxx
@@ -34,7 +34,7 @@ namespace dbaui
     using namespace ::com::sun::star;
 
     OTableWindowAccess::OTableWindowAccess(OTableWindow* _pTable)
-        :ImplInheritanceHelper(_pTable->GetComponentInterface().is() ? 
_pTable->GetWindowPeer() : nullptr)
+        :ImplInheritanceHelper(_pTable)
         ,m_pTable(_pTable)
     {
     }
diff --git a/include/toolkit/awt/vclxaccessiblecomponent.hxx 
b/include/toolkit/awt/vclxaccessiblecomponent.hxx
index 0afe07d9df70..b21a4afd5f6a 100644
--- a/include/toolkit/awt/vclxaccessiblecomponent.hxx
+++ b/include/toolkit/awt/vclxaccessiblecomponent.hxx
@@ -46,7 +46,6 @@ class TOOLKIT_DLLPUBLIC VCLXAccessibleComponent
              comphelper::OAccessibleExtendedComponentHelper, 
css::lang::XServiceInfo>
 {
 private:
-    rtl::Reference<VCLXWindow>      m_xVCLXWindow;
     VclPtr<vcl::Window> m_xWindow;
 
     DECL_DLLPRIVATE_LINK( WindowEventListener, VclWindowEvent&, void );
@@ -62,10 +61,9 @@ protected:
     virtual css::uno::Reference< css::accessibility::XAccessible > 
GetChildAccessible( const VclWindowEvent& rVclWindowEvent );
 
 public:
-    VCLXAccessibleComponent( VCLXWindow* pVCLXWindow );
+    VCLXAccessibleComponent(vcl::Window* pWindow);
     virtual ~VCLXAccessibleComponent() override;
 
-    VCLXWindow*    GetVCLXWindow() const;
     vcl::Window* GetWindow() const;
     template< class derived_type > derived_type* GetAs() const {
         return static_cast< derived_type * >( GetWindow() ); }
diff --git a/include/toolkit/helper/accessiblefactory.hxx 
b/include/toolkit/helper/accessiblefactory.hxx
index 2b2c3455abd7..b331be352775 100644
--- a/include/toolkit/helper/accessiblefactory.hxx
+++ b/include/toolkit/helper/accessiblefactory.hxx
@@ -27,21 +27,23 @@ namespace com::sun::star::accessibility {
     class XAccessible;
     class XAccessibleContext;
 }
-class SVTXNumericField;
-class VCLXButton;
-class VCLXCheckBox;
-class VCLXRadioButton;
-class VCLXListBox;
-class VCLXFixedHyperlink;
-class VCLXFixedText;
-class VCLXScrollBar;
-class VCLXEdit;
-class VCLXComboBox;
-class VCLXMultiLineEdit;
-class VCLXToolBox;
-class VCLXHeaderBar;
-class VCLXWindow;
-class Menu;
+
+namespace vcl {
+    class Window;
+}
+
+class ComboBox;
+class Edit;
+class FixedHyperlink;
+class FixedText;
+class FormattedField;
+class HeaderBar;
+class ListBox;
+class RadioButton;
+class ScrollBar;
+
+#include <vcl/toolbox.hxx>
+#include <vcl/toolkit/button.hxx>
 
 
 namespace toolkit
@@ -49,7 +51,7 @@ namespace toolkit
 
 
     /** a function which is able to create a factory for the standard 
Accessible/Context
-        components needed for standard toolkit controls
+        components needed for standard VCL controls
 
         The returned pointer denotes an instance of the IAccessibleFactory, 
which has been acquired
         <em>once</em>. The caller is responsible for holding this reference as 
long as it needs the
@@ -66,72 +68,67 @@ namespace toolkit
         /** creates an accessible context for a button window
         */
         virtual css::uno::Reference< css::accessibility::XAccessibleContext >
-            createAccessibleContext( VCLXButton* _pXWindow ) = 0;
+            createAccessibleContext(PushButton* pButton) = 0;
 
         /** creates an accessible context for a checkbox window
         */
         virtual css::uno::Reference< css::accessibility::XAccessibleContext >
-            createAccessibleContext( VCLXCheckBox* _pXWindow ) = 0;
+            createAccessibleContext(CheckBox* pCheckBox) = 0;
 
         /** creates an accessible context for a radio button window
         */
         virtual css::uno::Reference< css::accessibility::XAccessibleContext >
-            createAccessibleContext( VCLXRadioButton* _pXWindow ) = 0;
+            createAccessibleContext(RadioButton* pRadioButton) = 0;
 
         /** creates an accessible context for a listbox window
         */
         virtual css::uno::Reference< css::accessibility::XAccessibleContext >
-            createAccessibleContext( VCLXListBox* _pXWindow ) = 0;
+            createAccessibleContext(ListBox* pListBox) = 0;
 
         /** creates an accessible context for a fixed hyperlink window
         */
         virtual css::uno::Reference< css::accessibility::XAccessibleContext >
-            createAccessibleContext( VCLXFixedHyperlink* _pXWindow ) = 0;
+            createAccessibleContext(FixedHyperlink* pFixedHyperlink) = 0;
 
         /** creates an accessible context for a fixed text window
         */
         virtual css::uno::Reference< css::accessibility::XAccessibleContext >
-            createAccessibleContext( VCLXFixedText* _pXWindow ) = 0;
+            createAccessibleContext(FixedText* pFixedText) = 0;
 
         /** creates an accessible context for a scrollbar window
         */
         virtual css::uno::Reference< css::accessibility::XAccessibleContext >
-            createAccessibleContext( VCLXScrollBar* _pXWindow ) = 0;
+            createAccessibleContext(ScrollBar* pScrollBar) = 0;
 
         /** creates an accessible context for an edit window
         */
         virtual css::uno::Reference< css::accessibility::XAccessibleContext >
-            createAccessibleContext( VCLXEdit* _pXWindow ) = 0;
-
-        /** creates an accessible context for a multiline edit window
-        */
-        virtual css::uno::Reference< css::accessibility::XAccessibleContext >
-        createAccessibleContext( VCLXMultiLineEdit* _pXWindow ) = 0;
+            createAccessibleContext(Edit* pEdit) = 0;
 
         /** creates an accessible context for a combo box window
         */
         virtual css::uno::Reference< css::accessibility::XAccessibleContext >
-            createAccessibleContext( VCLXComboBox* _pXWindow ) = 0;
+            createAccessibleContext(ComboBox* pComboBox) = 0;
 
         /** creates an accessible context for a toolbox window
         */
         virtual css::uno::Reference< css::accessibility::XAccessibleContext >
-            createAccessibleContext( VCLXToolBox* _pXWindow ) = 0;
+            createAccessibleContext(ToolBox* pToolBox) = 0;
 
         /** creates an accessible context for a headerbar window
         */
         virtual css::uno::Reference< css::accessibility::XAccessibleContext >
-            createAccessibleContext( VCLXHeaderBar* _pXWindow ) = 0;
+            createAccessibleContext(HeaderBar* pHeaderBar) = 0;
 
         /** creates an accessible context for a numeric field
         */
         virtual css::uno::Reference< css::accessibility::XAccessibleContext >
-            createAccessibleContext( SVTXNumericField* _pXWindow ) = 0;
+            createAccessibleContext(FormattedField* pFormattedField) = 0;
 
         /** creates an accessible context for a generic window
         */
         virtual css::uno::Reference< css::accessibility::XAccessibleContext >
-            createAccessibleContext( VCLXWindow* _pXWindow ) = 0;
+            createAccessibleContext(vcl::Window* pWindow) = 0;
 
     protected:
         virtual ~IAccessibleFactory() override {}
diff --git a/sw/source/uibase/docvw/SidebarWinAcc.cxx 
b/sw/source/uibase/docvw/SidebarWinAcc.cxx
index 003efebae794..b289c0ea9959 100644
--- a/sw/source/uibase/docvw/SidebarWinAcc.cxx
+++ b/sw/source/uibase/docvw/SidebarWinAcc.cxx
@@ -31,8 +31,8 @@ namespace sw::sidebarwindows {
 // implementation of accessible context for <SidebarWinAccessible> instance
 SidebarWinAccessibleContext::SidebarWinAccessibleContext(
     sw::annotation::SwAnnotationWin& rSidebarWin, SwViewShell& rViewShell,
-    const SwFrame* pAnchorFrame, SidebarWinAccessible* pSidebarWinAccessible)
-    : VCLXAccessibleComponent(pSidebarWinAccessible)
+    const SwFrame* pAnchorFrame)
+    : VCLXAccessibleComponent(&rSidebarWin)
     , mrViewShell(rViewShell)
     , mpAnchorFrame(pAnchorFrame)
 {
@@ -100,7 +100,7 @@ css::uno::Reference<css::accessibility::XAccessibleContext>
 SidebarWinAccessible::getAccessibleContext()
 {
     if (!m_xAccContext.is())
-        m_xAccContext = new SidebarWinAccessibleContext(mrSidebarWin, 
mrViewShell, mpAnchorFrame, this);
+        m_xAccContext = new SidebarWinAccessibleContext(mrSidebarWin, 
mrViewShell, mpAnchorFrame);
 
     return m_xAccContext;
 }
diff --git a/sw/source/uibase/docvw/SidebarWinAcc.hxx 
b/sw/source/uibase/docvw/SidebarWinAcc.hxx
index 3ec2b60444cf..f3597f3d509c 100644
--- a/sw/source/uibase/docvw/SidebarWinAcc.hxx
+++ b/sw/source/uibase/docvw/SidebarWinAcc.hxx
@@ -29,14 +29,11 @@ namespace sw::annotation { class SwAnnotationWin; }
 
 namespace sw::sidebarwindows {
 
-class SidebarWinAccessible;
-
 class SidebarWinAccessibleContext : public VCLXAccessibleComponent
 {
 public:
     explicit SidebarWinAccessibleContext(sw::annotation::SwAnnotationWin& 
rSidebarWin,
-                                         SwViewShell& rViewShell, const 
SwFrame* pAnchorFrame,
-                                         SidebarWinAccessible* 
pSidebarWinAccessible);
+                                         SwViewShell& rViewShell, const 
SwFrame* pAnchorFrame);
 
     void ChangeAnchor(const SwFrame* pAnchorFrame);
 
diff --git a/toolkit/source/awt/vclxaccessiblecomponent.cxx 
b/toolkit/source/awt/vclxaccessiblecomponent.cxx
index a42cab94d83f..b9ad1b5574df 100644
--- a/toolkit/source/awt/vclxaccessiblecomponent.cxx
+++ b/toolkit/source/awt/vclxaccessiblecomponent.cxx
@@ -42,12 +42,10 @@
 using namespace ::com::sun::star;
 using namespace ::comphelper;
 
-VCLXAccessibleComponent::VCLXAccessibleComponent( VCLXWindow* pVCLXWindow )
+VCLXAccessibleComponent::VCLXAccessibleComponent(vcl::Window* pWindow)
+    : m_xWindow(pWindow)
 {
-    m_xVCLXWindow = pVCLXWindow;
-
-    DBG_ASSERT( pVCLXWindow->GetWindow(), "VCLXAccessibleComponent - no 
window!" );
-    m_xWindow = pVCLXWindow->GetWindow();
+    DBG_ASSERT(pWindow, "VCLXAccessibleComponent - no window!");
     if (m_xWindow)
     {
         m_xWindow->AddEventListener(LINK(this, VCLXAccessibleComponent, 
WindowEventListener));
@@ -56,11 +54,6 @@ VCLXAccessibleComponent::VCLXAccessibleComponent( 
VCLXWindow* pVCLXWindow )
     }
 }
 
-VCLXWindow* VCLXAccessibleComponent::GetVCLXWindow() const
-{
-    return m_xVCLXWindow.get();
-}
-
 void VCLXAccessibleComponent::DisconnectEvents()
 {
     if (m_xWindow)
@@ -215,7 +208,6 @@ void VCLXAccessibleComponent::ProcessWindowEvent( const 
VclWindowEvent& rVclWind
         case VclEventId::ObjectDying:
         {
             DisconnectEvents();
-            m_xVCLXWindow.clear();
         }
         break;
         case VclEventId::WindowChildDestroyed:
@@ -373,8 +365,6 @@ void VCLXAccessibleComponent::disposing()
     DisconnectEvents();
 
     OAccessibleExtendedComponentHelper::disposing();
-
-    m_xVCLXWindow.clear();
 }
 
 vcl::Window* VCLXAccessibleComponent::GetWindow() const { return m_xWindow; }
diff --git a/toolkit/source/awt/vclxwindow.cxx 
b/toolkit/source/awt/vclxwindow.cxx
index ed9e80e506fe..e90dca918314 100644
--- a/toolkit/source/awt/vclxwindow.cxx
+++ b/toolkit/source/awt/vclxwindow.cxx
@@ -876,7 +876,9 @@ uno::Reference< accessibility::XAccessibleContext > 
VCLXWindow::CreateAccessible
     SolarMutexGuard aGuard;
     if (mpImpl->mbDisposing)
         return nullptr;
-    return getAccessibleFactory().createAccessibleContext( this );
+
+    VclPtr<vcl::Window> pWindow = GetWindow();
+    return getAccessibleFactory().createAccessibleContext(pWindow);
 }
 
 void VCLXWindow::SetSynthesizingVCLEvent( bool _b )
diff --git a/toolkit/source/awt/vclxwindows.cxx 
b/toolkit/source/awt/vclxwindows.cxx
index b64b326a7576..da16d6d81bdf 100644
--- a/toolkit/source/awt/vclxwindows.cxx
+++ b/toolkit/source/awt/vclxwindows.cxx
@@ -41,6 +41,7 @@
 #include <vcl/toolkit/button.hxx>
 #include <vcl/toolkit/fmtfield.hxx>
 #include <vcl/graph.hxx>
+#include <vcl/headbar.hxx>
 #include <vcl/toolkit/lstbox.hxx>
 #include <vcl/toolkit/combobox.hxx>
 #include <vcl/toolkit/field.hxx>
@@ -381,7 +382,8 @@ VCLXButton::~VCLXButton()
 
 css::uno::Reference< css::accessibility::XAccessibleContext > 
VCLXButton::CreateAccessibleContext()
 {
-    return getAccessibleFactory().createAccessibleContext( this );
+    VclPtr<PushButton> pButton = GetAs<PushButton>();
+    return getAccessibleFactory().createAccessibleContext(pButton);
 }
 
 void VCLXButton::dispose()
@@ -782,7 +784,8 @@ VCLXCheckBox::VCLXCheckBox() :  maActionListeners( *this ), 
maItemListeners( *th
 
 css::uno::Reference< css::accessibility::XAccessibleContext > 
VCLXCheckBox::CreateAccessibleContext()
 {
-    return getAccessibleFactory().createAccessibleContext( this );
+    VclPtr<CheckBox> pCheckBox = GetAs<CheckBox>();
+    return getAccessibleFactory().createAccessibleContext(pCheckBox);
 }
 
 void VCLXCheckBox::dispose()
@@ -1066,7 +1069,8 @@ VCLXRadioButton::VCLXRadioButton() : maItemListeners( 
*this ), maActionListeners
 
 css::uno::Reference< css::accessibility::XAccessibleContext > 
VCLXRadioButton::CreateAccessibleContext()
 {
-    return getAccessibleFactory().createAccessibleContext( this );
+    VclPtr<RadioButton> pRadioButton = GetAs<RadioButton>();
+    return getAccessibleFactory().createAccessibleContext(pRadioButton);
 }
 
 void VCLXRadioButton::dispose()
@@ -1793,7 +1797,8 @@ css::uno::Reference< 
css::accessibility::XAccessibleContext > VCLXListBox::Creat
 {
     SolarMutexGuard aGuard;
 
-    return getAccessibleFactory().createAccessibleContext( this );
+    VclPtr<ListBox> pListBox = GetAs<ListBox>();
+    return getAccessibleFactory().createAccessibleContext(pListBox);
 }
 
 void VCLXListBox::setProperty( const OUString& PropertyName, const 
css::uno::Any& Value)
@@ -2781,7 +2786,8 @@ void VCLXFixedHyperlink::ProcessWindowEvent( const 
VclWindowEvent& rVclWindowEve
 
 css::uno::Reference< css::accessibility::XAccessibleContext > 
VCLXFixedHyperlink::CreateAccessibleContext()
 {
-    return getAccessibleFactory().createAccessibleContext( this );
+    VclPtr<FixedHyperlink> pFixedHyperlink = GetAs<FixedHyperlink>();
+    return getAccessibleFactory().createAccessibleContext(pFixedHyperlink);
 }
 
 void VCLXFixedHyperlink::setText( const OUString& Text )
@@ -3032,7 +3038,8 @@ VCLXFixedText::~VCLXFixedText()
 
 css::uno::Reference< css::accessibility::XAccessibleContext > 
VCLXFixedText::CreateAccessibleContext()
 {
-    return getAccessibleFactory().createAccessibleContext( this );
+    VclPtr<FixedText> pFixedText = GetAs<FixedText>();
+    return getAccessibleFactory().createAccessibleContext(pFixedText);
 }
 
 void VCLXFixedText::setText( const OUString& Text )
@@ -3159,7 +3166,8 @@ VCLXScrollBar::VCLXScrollBar() : maAdjustmentListeners( 
*this )
 
 css::uno::Reference< css::accessibility::XAccessibleContext > 
VCLXScrollBar::CreateAccessibleContext()
 {
-    return getAccessibleFactory().createAccessibleContext( this );
+    VclPtr<ScrollBar> pScrollBar = GetAs<ScrollBar>();
+    return getAccessibleFactory().createAccessibleContext(pScrollBar);
 }
 
 // css::lang::XComponent
@@ -3629,7 +3637,8 @@ VCLXEdit::VCLXEdit() : maTextListeners( *this )
 
 css::uno::Reference< css::accessibility::XAccessibleContext > 
VCLXEdit::CreateAccessibleContext()
 {
-    return getAccessibleFactory().createAccessibleContext( this );
+    VclPtr<Edit> pEdit = GetAs<Edit>();
+    return getAccessibleFactory().createAccessibleContext(pEdit);
 }
 
 void VCLXEdit::dispose()
@@ -3997,7 +4006,8 @@ css::uno::Reference< 
css::accessibility::XAccessibleContext > VCLXComboBox::Crea
 {
     SolarMutexGuard aGuard;
 
-    return getAccessibleFactory().createAccessibleContext( this );
+    VclPtr<ComboBox> pComboBox = GetAs<ComboBox>();
+    return getAccessibleFactory().createAccessibleContext(pComboBox);
 }
 
 void VCLXComboBox::dispose()
@@ -4627,12 +4637,12 @@ VCLXDateField::~VCLXDateField()
 //change the window type here to match the role
 css::uno::Reference< css::accessibility::XAccessibleContext > 
VCLXDateField::CreateAccessibleContext()
 {
-    VclPtr< vcl::Window > pWindow = GetWindow();
-    if ( pWindow )
+    VclPtr<Edit> pEdit = GetAs<Edit>();
+    if (pEdit)
     {
-        pWindow->SetType( WindowType::DATEFIELD );
+        pEdit->SetType( WindowType::DATEFIELD );
     }
-    return getAccessibleFactory().createAccessibleContext( this );
+    return getAccessibleFactory().createAccessibleContext(pEdit);
 }
 
 void VCLXDateField::setProperty( const OUString& PropertyName, const 
css::uno::Any& Value)
@@ -4961,12 +4971,12 @@ VCLXTimeField::~VCLXTimeField()
 //change the window type here to match the role
 css::uno::Reference< css::accessibility::XAccessibleContext > 
VCLXTimeField::CreateAccessibleContext()
 {
-    VclPtr< vcl::Window > pWindow = GetWindow();
-    if ( pWindow )
+    VclPtr<Edit> pEdit = GetAs<Edit>();
+    if (pEdit)
     {
-        pWindow->SetType( WindowType::TIMEFIELD );
+        pEdit->SetType( WindowType::TIMEFIELD );
     }
-    return getAccessibleFactory().createAccessibleContext( this );
+    return getAccessibleFactory().createAccessibleContext(pEdit);
 }
 
 void VCLXTimeField::setTime( const util::Time& aTime )
@@ -5954,7 +5964,8 @@ VCLXToolBox::~VCLXToolBox()
 
 css::uno::Reference< css::accessibility::XAccessibleContext > 
VCLXToolBox::CreateAccessibleContext()
 {
-    return getAccessibleFactory().createAccessibleContext( this );
+    VclPtr<ToolBox> pToolBox = GetAs<ToolBox>();
+    return getAccessibleFactory().createAccessibleContext(pToolBox);
 }
 
 VCLXHeaderBar::VCLXHeaderBar()
@@ -5967,7 +5978,8 @@ VCLXHeaderBar::~VCLXHeaderBar()
 
 css::uno::Reference< css::accessibility::XAccessibleContext > 
VCLXHeaderBar::CreateAccessibleContext()
 {
-    return getAccessibleFactory().createAccessibleContext( this );
+    VclPtr<HeaderBar> pHeaderBar = GetAs<HeaderBar>();
+    return getAccessibleFactory().createAccessibleContext(pHeaderBar);
 }
 
 
@@ -7348,7 +7360,8 @@ SVTXNumericField::~SVTXNumericField()
 
 css::uno::Reference<accessibility::XAccessibleContext> 
SVTXNumericField::CreateAccessibleContext()
 {
-    return getAccessibleFactory().createAccessibleContext(this);
+    VclPtr<FormattedField> pFormattedField = GetAs<FormattedField>();
+    return getAccessibleFactory().createAccessibleContext(pFormattedField);
 }
 
 
@@ -7879,7 +7892,8 @@ void VCLXMultiLineEdit::ImplGetPropertyIds( std::vector< 
sal_uInt16 > &rIds )
 
 css::uno::Reference<css::accessibility::XAccessibleContext> 
VCLXMultiLineEdit::CreateAccessibleContext()
 {
-    return getAccessibleFactory().createAccessibleContext(this);
+    VclPtr<MultiLineEdit> pMultiLineEdit = GetAs<MultiLineEdit>();
+    return getAccessibleFactory().createAccessibleContext(pMultiLineEdit);
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 5699b04a0cb64394c7951ec480b663402187fd85
Author:     Michael Weghorn <[email protected]>
AuthorDate: Thu Dec 12 17:16:29 2024 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Thu Dec 12 23:02:23 2024 +0100

    sw annotation win a11y: Skip VCLXWindow logic
    
    Instead of overriding the base class VCLXWindow::CreateAccessibleContext
    which gets called by VCLXWindow::getAccessibleContext and
    results in the VCLXWindow base class also keeping a
    pointer to the XAccessible, override
    VCLXWindow::getAccessibleContext right away, and keep
    a reference to the SidebarWinAccessibleContext
    in SidebarWinAccessible itself.
    
    This simplifies the code, removes the need to cast
    the XAccessibleContext retrieved via the base class
    methods, and also prepares for making VCLXAccessibleComponent
    no more rely on the VCLXWindow, but using a vcl::Window
    directly in an upcoming commit.
    
    Drop the comment about the code being dodgy from
    SwAnnotationWin::CreateAccessible. This commit partially
    addresses it and switching VCLXAccessibleComponent
    to using the vcl::Window will take care of the rest,
    see upcoming commit
    Change-Id If0894e733273eecad268c6a932ecee7c2e34b4c2
    ("a11y: Stop using VCLXWindow in vcl a11y classes").
    
    Change-Id: I67bb7a6a237e57d0c522790c09a595c02ac06325
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178384
    Reviewed-by: Michael Weghorn <[email protected]>
    Tested-by: Jenkins

diff --git a/sw/source/uibase/docvw/AnnotationWin2.cxx 
b/sw/source/uibase/docvw/AnnotationWin2.cxx
index 83344e82d2e2..9eed54376ad0 100644
--- a/sw/source/uibase/docvw/AnnotationWin2.cxx
+++ b/sw/source/uibase/docvw/AnnotationWin2.cxx
@@ -1451,9 +1451,6 @@ void SwAnnotationWin::ChangeSidebarItem( SwSidebarItem 
const & rSidebarItem )
 css::uno::Reference< css::accessibility::XAccessible > 
SwAnnotationWin::CreateAccessible()
 {
 #if !ENABLE_WASM_STRIP_ACCESSIBILITY
-    // This is rather dodgy code. Normally in CreateAccessible, if we want a 
custom
-    // object, we return a custom object, but we do no override the default 
toolkit
-    // window peer.
     if (!mxSidebarWinAccessible)
         mxSidebarWinAccessible = new SidebarWinAccessible( *this,
                                                           mrView.GetWrtShell(),
diff --git a/sw/source/uibase/docvw/SidebarWinAcc.cxx 
b/sw/source/uibase/docvw/SidebarWinAcc.cxx
index 0e3ad3a69e6f..003efebae794 100644
--- a/sw/source/uibase/docvw/SidebarWinAcc.cxx
+++ b/sw/source/uibase/docvw/SidebarWinAcc.cxx
@@ -82,7 +82,6 @@ SidebarWinAccessible::SidebarWinAccessible( 
sw::annotation::SwAnnotationWin& rSi
     : mrSidebarWin( rSidebarWin )
     , mrViewShell( rViewShell )
     , mpAnchorFrame( rSidebarItem.maLayoutInfo.mpAnchorFrame )
-    , m_bAccContextCreated( false )
 {
     SetWindow( &mrSidebarWin );
 }
@@ -93,28 +92,17 @@ SidebarWinAccessible::~SidebarWinAccessible()
 
 void SidebarWinAccessible::ChangeSidebarItem( const SwSidebarItem& 
rSidebarItem )
 {
-    if ( !m_bAccContextCreated )
-        return;
-
-    css::uno::Reference< css::accessibility::XAccessibleContext > xAcc
-                                                = getAccessibleContext();
-    if ( xAcc.is() )
-    {
-        SidebarWinAccessibleContext* pAccContext =
-                    dynamic_cast<SidebarWinAccessibleContext*>(xAcc.get());
-        if ( pAccContext )
-        {
-            pAccContext->ChangeAnchor( rSidebarItem.maLayoutInfo.mpAnchorFrame 
);
-        }
-    }
+    if (m_xAccContext.is())
+        m_xAccContext->ChangeAnchor(rSidebarItem.maLayoutInfo.mpAnchorFrame);
 }
 
-css::uno::Reference< css::accessibility::XAccessibleContext > 
SidebarWinAccessible::CreateAccessibleContext()
+css::uno::Reference<css::accessibility::XAccessibleContext>
+SidebarWinAccessible::getAccessibleContext()
 {
-    rtl::Reference<SidebarWinAccessibleContext> pAccContext
-        = new SidebarWinAccessibleContext(mrSidebarWin, mrViewShell, 
mpAnchorFrame, this);
-    m_bAccContextCreated = true;
-    return pAccContext;
+    if (!m_xAccContext.is())
+        m_xAccContext = new SidebarWinAccessibleContext(mrSidebarWin, 
mrViewShell, mpAnchorFrame, this);
+
+    return m_xAccContext;
 }
 
 } // end of namespace sw::sidebarwindows
diff --git a/sw/source/uibase/docvw/SidebarWinAcc.hxx 
b/sw/source/uibase/docvw/SidebarWinAcc.hxx
index 189905f7d5fa..3ec2b60444cf 100644
--- a/sw/source/uibase/docvw/SidebarWinAcc.hxx
+++ b/sw/source/uibase/docvw/SidebarWinAcc.hxx
@@ -58,8 +58,8 @@ class SidebarWinAccessible : public VCLXWindow
                                        const SwSidebarItem& rSidebarItem );
         virtual ~SidebarWinAccessible() override;
 
-        virtual css::uno::Reference< css::accessibility::XAccessibleContext >
-                CreateAccessibleContext() override;
+        virtual css::uno::Reference<css::accessibility::XAccessibleContext>
+            SAL_CALL getAccessibleContext() override;
 
         void ChangeSidebarItem( const SwSidebarItem& rSidebarItem );
 
@@ -67,7 +67,7 @@ class SidebarWinAccessible : public VCLXWindow
         sw::annotation::SwAnnotationWin& mrSidebarWin;
         SwViewShell& mrViewShell;
         const SwFrame* mpAnchorFrame;
-        bool m_bAccContextCreated;
+        rtl::Reference<SidebarWinAccessibleContext> m_xAccContext;
 };
 
 } // end of namespace sw::sidebarwindows

Reply via email to