include/toolkit/awt/vclxwindows.hxx                    |    5 --
 include/vcl/accessiblefactory.hxx                      |   11 -----
 include/vcl/toolkit/edit.hxx                           |    2 +
 test/source/a11y/accessibletestbase.cxx                |   13 +++++-
 test/source/a11y/eventposter.cxx                       |   13 ++++--
 toolkit/inc/awt/vclxwindows.hxx                        |    3 -
 toolkit/source/awt/vclxwindows.cxx                     |   34 -----------------
 vcl/inc/accessibility/svtaccessiblenumericfield.hxx    |    7 ---
 vcl/inc/accessibility/vclxaccessibleedit.hxx           |   13 ++++--
 vcl/source/accessibility/acc_factory.cxx               |    5 --
 vcl/source/accessibility/svtaccessiblenumericfield.cxx |    9 ----
 vcl/source/accessibility/vclxaccessibleedit.cxx        |    9 ++++
 vcl/source/control/edit.cxx                            |    6 +++
 vcl/source/control/field2.cxx                          |    4 +-
 14 files changed, 46 insertions(+), 88 deletions(-)

New commits:
commit 3cb6bae61d0d7a34570d035b229a38069380abad
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Mon May 26 09:34:24 2025 +0200
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Wed May 28 09:20:47 2025 +0200

    vcl a11y: Let Edit and subclasses create their accessible directly
    
    This is the equivalent of
    
        commit f82aac71ede9c3f2dc059ca4c8b24f60e0841933
        Author: Michael Weghorn <m.wegh...@posteo.de>
        Date:   Thu May 22 12:30:12 2025 +0200
    
            vcl a11y: Let PushButton create its accessible directly
    
    for Edit subclasses, see that commit's message for more background.
    
    Since all of DateField, TimeField, MultiLineEdit and VclMultiLineEdit
    are (not necessarily direct) subclasses of Edit and none of their
    subclasses further up the class hierarchy than Edit override
    Edit::CreateAccessible, there is no need for them to do so either,
    but they can use the Edit implementation. Therefore, just drop the
    corresponding methods of their VCLXWindow subclasses that were
    calling `AccessibleFactory::createAccessibleContext(Edit* pEdit)`
    explicitly.
    
    (Before
    
        Change-Id: Ifb7452de3e011a73aa798d1ea0302bbbc74ed7d2
        Author: Michael Weghorn <m.wegh...@posteo.de>
        Date:   Thu May 22 20:13:09 2025 +0200
    
            vcl a11y: Set DateField/TimeField window type in ctor
    
    , two of them had some additional extra logic that might
    have required them to override the base class implementation.)
    
    Since VCLXAccessibleEdit implements the XAccessible interface
    now, its SVTXAccessibleNumericField subclass no longer needs
    to implement that directly.
    
    Change-Id: I5fe96a9061afb9f51e494cdd41a27636d0aa4d74
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185838
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>
    Tested-by: Jenkins

diff --git a/include/toolkit/awt/vclxwindows.hxx 
b/include/toolkit/awt/vclxwindows.hxx
index f65bef419d65..814fa7670baf 100644
--- a/include/toolkit/awt/vclxwindows.hxx
+++ b/include/toolkit/awt/vclxwindows.hxx
@@ -356,8 +356,6 @@ private:
 
 protected:
     void            ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent 
) override;
-    virtual css::uno::Reference< css::accessibility::XAccessibleContext > 
CreateAccessibleContext() override;
-
 
 public:
                     VCLXEdit();
@@ -453,9 +451,6 @@ public:
 
     static void     ImplGetPropertyIds( std::vector< sal_uInt16 > &aIds );
     virtual void    GetPropertyIds( std::vector< sal_uInt16 > &aIds ) override 
{ return ImplGetPropertyIds( aIds ); }
-
-protected:
-    virtual css::uno::Reference<css::accessibility::XAccessibleContext> 
CreateAccessibleContext() override;
 };
 
 //  class VCLXSpinField
diff --git a/include/vcl/accessiblefactory.hxx 
b/include/vcl/accessiblefactory.hxx
index b70e99e64108..1d119216e9d1 100644
--- a/include/vcl/accessiblefactory.hxx
+++ b/include/vcl/accessiblefactory.hxx
@@ -21,21 +21,12 @@
 
 #include <vcl/dllapi.h>
 
-#include <com/sun/star/lang/XUnoTunnel.hpp>
 #include <com/sun/star/uno/Reference.hxx>
 
-#include <salhelper/simplereferenceobject.hxx>
-#include <tools/gen.hxx>
-#include <rtl/ref.hxx>
-
 namespace com::sun::star {
     namespace accessibility {
-        class XAccessible;
         class XAccessibleContext;
     }
-    namespace awt {
-        class XWindow;
-    }
 }
 
 namespace vcl { class Window; }
@@ -62,8 +53,6 @@ class VCL_DLLPUBLIC AccessibleFactory
 public:
     AccessibleFactory() = delete;
 
-    static css::uno::Reference<css::accessibility::XAccessibleContext>
-    createAccessibleContext(Edit* pEdit);
     static css::uno::Reference<css::accessibility::XAccessibleContext>
     createAccessibleContext(vcl::Window* pWindow);
 };
diff --git a/include/vcl/toolkit/edit.hxx b/include/vcl/toolkit/edit.hxx
index 2451f89f2166..44c4f8244e21 100644
--- a/include/vcl/toolkit/edit.hxx
+++ b/include/vcl/toolkit/edit.hxx
@@ -148,6 +148,8 @@ public:
     virtual ~Edit() override;
     virtual void dispose() override;
 
+    virtual css::uno::Reference<css::accessibility::XAccessible> 
CreateAccessible() override;
+
     virtual void        MouseButtonDown( const MouseEvent& rMEvt ) override;
     virtual void        MouseButtonUp( const MouseEvent& rMEvt ) override;
     virtual void        KeyInput( const KeyEvent& rKEvt ) override;
diff --git a/toolkit/inc/awt/vclxwindows.hxx b/toolkit/inc/awt/vclxwindows.hxx
index 22367ddcc08b..3f8035b19385 100644
--- a/toolkit/inc/awt/vclxwindows.hxx
+++ b/toolkit/inc/awt/vclxwindows.hxx
@@ -263,8 +263,6 @@ public:
 class VCLXDateField :
     public cppu::ImplInheritanceHelper<VCLXFormattedSpinField, 
css::awt::XDateField>
 {
-protected:
-    virtual css::uno::Reference< css::accessibility::XAccessibleContext > 
CreateAccessibleContext() override;
 public:
                     VCLXDateField();
                     virtual ~VCLXDateField() override;
@@ -302,7 +300,6 @@ public:
 class VCLXTimeField final :
     public cppu::ImplInheritanceHelper<VCLXFormattedSpinField, 
css::awt::XTimeField>
 {
-    virtual css::uno::Reference< css::accessibility::XAccessibleContext > 
CreateAccessibleContext() override;
 public:
                     VCLXTimeField();
                     virtual ~VCLXTimeField() override;
diff --git a/toolkit/source/awt/vclxwindows.cxx 
b/toolkit/source/awt/vclxwindows.cxx
index 36d92741a9d8..e0ae26a51718 100644
--- a/toolkit/source/awt/vclxwindows.cxx
+++ b/toolkit/source/awt/vclxwindows.cxx
@@ -3592,12 +3592,6 @@ VCLXEdit::VCLXEdit() : maTextListeners( *this )
 {
 }
 
-css::uno::Reference< css::accessibility::XAccessibleContext > 
VCLXEdit::CreateAccessibleContext()
-{
-    VclPtr<Edit> pEdit = GetAs<Edit>();
-    return AccessibleFactory::createAccessibleContext(pEdit);
-}
-
 void VCLXEdit::dispose()
 {
     SolarMutexGuard aGuard;
@@ -4583,12 +4577,6 @@ VCLXDateField::~VCLXDateField()
 {
 }
 
-css::uno::Reference< css::accessibility::XAccessibleContext > 
VCLXDateField::CreateAccessibleContext()
-{
-    VclPtr<Edit> pEdit = GetAs<Edit>();
-    return AccessibleFactory::createAccessibleContext(pEdit);
-}
-
 void VCLXDateField::setProperty( const OUString& PropertyName, const 
css::uno::Any& Value)
 {
     SolarMutexGuard aGuard;
@@ -4912,12 +4900,6 @@ VCLXTimeField::~VCLXTimeField()
 {
 }
 
-css::uno::Reference< css::accessibility::XAccessibleContext > 
VCLXTimeField::CreateAccessibleContext()
-{
-    VclPtr<Edit> pEdit = GetAs<Edit>();
-    return AccessibleFactory::createAccessibleContext(pEdit);
-}
-
 void VCLXTimeField::setTime( const util::Time& aTime )
 {
     SolarMutexGuard aGuard;
@@ -7789,10 +7771,4 @@ void VCLXMultiLineEdit::ImplGetPropertyIds( std::vector< 
sal_uInt16 > &rIds )
     VCLXWindow::ImplGetPropertyIds( rIds, true );
 }
 
-css::uno::Reference<css::accessibility::XAccessibleContext> 
VCLXMultiLineEdit::CreateAccessibleContext()
-{
-    VclPtr<MultiLineEdit> pMultiLineEdit = GetAs<MultiLineEdit>();
-    return AccessibleFactory::createAccessibleContext(pMultiLineEdit);
-}
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/accessibility/svtaccessiblenumericfield.hxx 
b/vcl/inc/accessibility/svtaccessiblenumericfield.hxx
index 3231f5c83221..6b2f1390e8d0 100644
--- a/vcl/inc/accessibility/svtaccessiblenumericfield.hxx
+++ b/vcl/inc/accessibility/svtaccessiblenumericfield.hxx
@@ -28,18 +28,13 @@
 #include <com/sun/star/accessibility/XAccessibleValue.hpp>
 
 class SVTXAccessibleNumericField final
-    : public cppu::ImplInheritanceHelper<VCLXAccessibleEdit, 
css::accessibility::XAccessible,
-                                         css::accessibility::XAccessibleValue>
+    : public cppu::ImplInheritanceHelper<VCLXAccessibleEdit, 
css::accessibility::XAccessibleValue>
 {
 public:
     SVTXAccessibleNumericField(FormattedField* pFormattedField);
 
     virtual void ProcessWindowEvent(const VclWindowEvent& rVclWindowEvent) 
override;
 
-    // XAccessible
-    virtual 
css::uno::Reference<com::sun::star::accessibility::XAccessibleContext>
-        SAL_CALL getAccessibleContext() override;
-
     // XAccessibleContext
     virtual sal_Int16 SAL_CALL getAccessibleRole() override;
 
diff --git a/vcl/inc/accessibility/vclxaccessibleedit.hxx 
b/vcl/inc/accessibility/vclxaccessibleedit.hxx
index 5ced34ebbd9c..38e2e0f22eda 100644
--- a/vcl/inc/accessibility/vclxaccessibleedit.hxx
+++ b/vcl/inc/accessibility/vclxaccessibleedit.hxx
@@ -27,11 +27,10 @@
 #include <cppuhelper/implbase.hxx>
 #include <vcl/toolkit/edit.hxx>
 
-
-class VCLXAccessibleEdit : public cppu::ImplInheritanceHelper<
-                               VCLXAccessibleTextComponent,
-                               css::accessibility::XAccessibleAction,
-                               css::accessibility::XAccessibleEditableText>
+class VCLXAccessibleEdit
+    : public cppu::ImplInheritanceHelper<
+          VCLXAccessibleTextComponent, css::accessibility::XAccessible,
+          css::accessibility::XAccessibleAction, 
css::accessibility::XAccessibleEditableText>
 {
     friend class VCLXAccessibleBox;
 
@@ -59,6 +58,10 @@ public:
     virtual OUString SAL_CALL getImplementationName() override;
     virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() 
override;
 
+    // XAccessible
+    virtual 
css::uno::Reference<com::sun::star::accessibility::XAccessibleContext>
+        SAL_CALL getAccessibleContext() override;
+
     // XAccessibleContext
     virtual sal_Int64 SAL_CALL getAccessibleChildCount(  ) override;
     virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL 
getAccessibleChild( sal_Int64 i ) override;
diff --git a/vcl/source/accessibility/acc_factory.cxx 
b/vcl/source/accessibility/acc_factory.cxx
index 14d69a85ed25..64687f5bfafe 100644
--- a/vcl/source/accessibility/acc_factory.cxx
+++ b/vcl/source/accessibility/acc_factory.cxx
@@ -63,11 +63,6 @@ bool hasFloatingChild(vcl::Window *pWindow)
 }
 };
 
-Reference< XAccessibleContext > 
AccessibleFactory::createAccessibleContext(Edit* pEdit)
-{
-    return new VCLXAccessibleEdit(pEdit);
-}
-
 Reference< XAccessibleContext > 
AccessibleFactory::createAccessibleContext(vcl::Window* pWindow)
 {
     if (!pWindow)
diff --git a/vcl/source/accessibility/svtaccessiblenumericfield.cxx 
b/vcl/source/accessibility/svtaccessiblenumericfield.cxx
index f9475778bca5..ea39ff8c2a6d 100644
--- a/vcl/source/accessibility/svtaccessiblenumericfield.cxx
+++ b/vcl/source/accessibility/svtaccessiblenumericfield.cxx
@@ -42,15 +42,6 @@ void SVTXAccessibleNumericField::ProcessWindowEvent(const 
VclWindowEvent& rVclWi
     }
 }
 
-// XAccessible
-
-css::uno::Reference<com::sun::star::accessibility::XAccessibleContext>
-SVTXAccessibleNumericField::getAccessibleContext()
-{
-    OExternalLockGuard aGuard(this);
-    return this;
-}
-
 sal_Int16 SVTXAccessibleNumericField::getAccessibleRole() { return 
AccessibleRole::SPIN_BOX; }
 
 css::uno::Any SAL_CALL SVTXAccessibleNumericField::getCurrentValue()
diff --git a/vcl/source/accessibility/vclxaccessibleedit.cxx 
b/vcl/source/accessibility/vclxaccessibleedit.cxx
index 976602643313..240374da5e1c 100644
--- a/vcl/source/accessibility/vclxaccessibleedit.cxx
+++ b/vcl/source/accessibility/vclxaccessibleedit.cxx
@@ -182,9 +182,16 @@ Sequence< OUString > 
VCLXAccessibleEdit::getSupportedServiceNames()
     return { u"com.sun.star.awt.AccessibleEdit"_ustr };
 }
 
+// XAccessible
 
-// XAccessibleContext
+css::uno::Reference<com::sun::star::accessibility::XAccessibleContext>
+VCLXAccessibleEdit::getAccessibleContext()
+{
+    OExternalLockGuard aGuard(this);
+    return this;
+}
 
+// XAccessibleContext
 
 sal_Int64 VCLXAccessibleEdit::getAccessibleChildCount()
 {
diff --git a/vcl/source/control/edit.cxx b/vcl/source/control/edit.cxx
index 1c4b9e22c781..499b79bb0ce5 100644
--- a/vcl/source/control/edit.cxx
+++ b/vcl/source/control/edit.cxx
@@ -33,6 +33,7 @@
 #include <vcl/uitest/uiobject.hxx>
 #include <vcl/weld.hxx>
 
+#include <accessibility/vclxaccessibleedit.hxx>
 #include <window.h>
 #include <svdata.hxx>
 #include <strings.hrc>
@@ -1275,6 +1276,11 @@ void 
Edit::ImplPaste(css::uno::Reference<css::datatransfer::clipboard::XClipboar
     }
 }
 
+css::uno::Reference<css::accessibility::XAccessible> Edit::CreateAccessible()
+{
+    return new VCLXAccessibleEdit(this);
+}
+
 void Edit::MouseButtonDown( const MouseEvent& rMEvt )
 {
     if ( mpSubEdit )
commit 344737c3cab905400184d4bda22107c75c7e7d76
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Mon May 26 09:34:05 2025 +0200
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Wed May 28 09:20:40 2025 +0200

    vcl a11y: Set DateField/TimeField window type in ctor
    
    So far, a DateField (or subclass) would be created
    with WindowType::SPINFIELD due to its SpinField
    base class (and not passing any explicit type to
    the base class ctor).
    
    However, when an accessible context would later be
    retrieved, VCLXDateField::CreateAccessibleContext
    would set WindowType::DATEFIELD on the control
    before creating an XAccessibleContext via the
    AccessibleFactory.
    
    Changing the window type later that way seems odd,
    and implies that the window type would be different
    depending on whether or not accessibility is active.
    
    Change that to set the DATEFIELD window type in the
    ctor already.
    
    The same applies for the TimeField and
    WindowType::TIMEFIELD.
    
    Should that have any unwanted side-effect, then
    it might be that some code path currently only handling
    the WindowType::SPINFIELD type might need to be
    adjusted to handle WindowType::DATEFIELD and/or
    WindowType::TIMEFIELD the same way.
    
    Change-Id: Ifb7452de3e011a73aa798d1ea0302bbbc74ed7d2
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185837
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>

diff --git a/toolkit/source/awt/vclxwindows.cxx 
b/toolkit/source/awt/vclxwindows.cxx
index ffe7dd45e6fd..36d92741a9d8 100644
--- a/toolkit/source/awt/vclxwindows.cxx
+++ b/toolkit/source/awt/vclxwindows.cxx
@@ -4583,14 +4583,9 @@ VCLXDateField::~VCLXDateField()
 {
 }
 
-//change the window type here to match the role
 css::uno::Reference< css::accessibility::XAccessibleContext > 
VCLXDateField::CreateAccessibleContext()
 {
     VclPtr<Edit> pEdit = GetAs<Edit>();
-    if (pEdit)
-    {
-        pEdit->SetType( WindowType::DATEFIELD );
-    }
     return AccessibleFactory::createAccessibleContext(pEdit);
 }
 
@@ -4917,14 +4912,9 @@ VCLXTimeField::~VCLXTimeField()
 {
 }
 
-//change the window type here to match the role
 css::uno::Reference< css::accessibility::XAccessibleContext > 
VCLXTimeField::CreateAccessibleContext()
 {
     VclPtr<Edit> pEdit = GetAs<Edit>();
-    if (pEdit)
-    {
-        pEdit->SetType( WindowType::TIMEFIELD );
-    }
     return AccessibleFactory::createAccessibleContext(pEdit);
 }
 
diff --git a/vcl/source/control/field2.cxx b/vcl/source/control/field2.cxx
index c581b0381599..a51b9a00e385 100644
--- a/vcl/source/control/field2.cxx
+++ b/vcl/source/control/field2.cxx
@@ -2007,7 +2007,7 @@ void DateFormatter::ExpandCentury( Date& rDate, 
sal_uInt16 nTwoDigitYearStart )
 }
 
 DateField::DateField( vcl::Window* pParent, WinBits nWinStyle ) :
-    SpinField( pParent, nWinStyle ),
+    SpinField(pParent, nWinStyle, WindowType::DATEFIELD),
     DateFormatter(this),
     maFirst( GetMin() ),
     maLast( GetMax() )
@@ -2885,7 +2885,7 @@ void TimeFormatter::Reformat()
 }
 
 TimeField::TimeField( vcl::Window* pParent, WinBits nWinStyle ) :
-    SpinField( pParent, nWinStyle ),
+    SpinField(pParent, nWinStyle, WindowType::TIMEFIELD),
     TimeFormatter(this),
     maFirst( GetMin() ),
     maLast( GetMax() )
commit d3262b72f69311b282fbdbe3c38de743e76bdda9
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Mon May 26 09:23:29 2025 +0200
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Wed May 28 09:20:34 2025 +0200

    a11y tests: Don't rely on XWindow being window's XAccessible
    
    See
    
        commit ed03c63f00dee22112a8632df45e5e044541960d
        Author: Michael Weghorn <m.wegh...@posteo.de>
        Date:   Thu May 22 09:45:02 2025 +0100
    
            wina11y: Don't rely on win accessible being VCLXWindow
    
    for more background.
    
    Change-Id: I19a01f9715536918dd9463f18a72c22878d0cd7c
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185836
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>

diff --git a/test/source/a11y/accessibletestbase.cxx 
b/test/source/a11y/accessibletestbase.cxx
index 1e2f3f615190..d1c2ecbdadd7 100644
--- a/test/source/a11y/accessibletestbase.cxx
+++ b/test/source/a11y/accessibletestbase.cxx
@@ -111,8 +111,12 @@ uno::Reference<accessibility::XAccessibleContext>
 test::AccessibleTestBase::getDocumentAccessibleContext()
 {
     uno::Reference<frame::XModel> xModel(mxDocument, uno::UNO_QUERY_THROW);
-    uno::Reference<accessibility::XAccessible> xAccessible(
-        xModel->getCurrentController()->getFrame()->getComponentWindow(), 
uno::UNO_QUERY_THROW);
+    uno::Reference<css::awt::XWindow> xComponentWin
+        = xModel->getCurrentController()->getFrame()->getComponentWindow();
+    assert(xComponentWin.is());
+    uno::Reference<accessibility::XAccessible> xAccessible
+        = VCLUnoHelper::GetWindow(xComponentWin)->GetAccessible();
+    assert(xAccessible.is());
 
     return AccessibilityTools::getAccessibleObjectForPredicate(
         xAccessible->getAccessibleContext(),
@@ -480,7 +484,10 @@ test::AccessibleTestBase::Dialog::Dialog(const 
uno::Reference<awt::XDialog2>& xD
 {
     CPPUNIT_ASSERT(xDialog2.is());
 
-    mxAccessible.set(xDialog2, uno::UNO_QUERY);
+    uno::Reference<css::awt::XWindow> xWindow(xDialog2, uno::UNO_QUERY_THROW);
+    vcl::Window* pWindow = VCLUnoHelper::GetWindow(xWindow);
+    assert(pWindow);
+    mxAccessible = pWindow->GetAccessible();
     if (mxAccessible)
         setWindow(mxAccessible);
     else
diff --git a/test/source/a11y/eventposter.cxx b/test/source/a11y/eventposter.cxx
index 39e178e22756..bc5814369b5d 100644
--- a/test/source/a11y/eventposter.cxx
+++ b/test/source/a11y/eventposter.cxx
@@ -15,7 +15,7 @@
 
 #include <sfx2/lokhelper.hxx>
 #include <test/a11y/AccessibilityTools.hxx>
-#include <toolkit/awt/vclxwindow.hxx>
+#include <vcl/accessibility/vclxaccessiblecomponent.hxx>
 
 void test::EventPosterHelper::postKeyEventAsync(int nType, int nCharCode, int 
nKeyCode) const
 {
@@ -32,15 +32,20 @@ void test::AccessibleEventPosterHelper::setWindow(
 {
     while (auto xParent = xAcc->getAccessibleContext()->getAccessibleParent())
         xAcc = xParent;
-    auto vclXWindow = dynamic_cast<VCLXWindow*>(xAcc.get());
-    if (!vclXWindow)
+    assert(xAcc);
+    css::uno::Reference<css::accessibility::XAccessibleContext> xAccContext
+        = xAcc->getAccessibleContext();
+    assert(xAccContext.is());
+    rtl::Reference<VCLXAccessibleComponent> pVCLAccComponent
+        = dynamic_cast<VCLXAccessibleComponent*>(xAccContext.get());
+    if (!pVCLAccComponent)
     {
         std::cerr << "WARNING: AccessibleEventPosterHelper::setWindow() called 
on "
                      "unsupported object "
                   << AccessibilityTools::debugString(xAcc) << ". Event 
delivery will not work."
                   << std::endl;
     }
-    mxWindow = vclXWindow ? vclXWindow->GetWindow() : nullptr;
+    mxWindow = pVCLAccComponent ? pVCLAccComponent->GetWindow() : nullptr;
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s 
cinkeys+=0=break: */

Reply via email to