diff options
Diffstat (limited to 'basctl/source/basicide')
-rw-r--r-- | basctl/source/basicide/baside2.hxx | 2 | ||||
-rw-r--r-- | basctl/source/basicide/baside2b.cxx | 47 | ||||
-rw-r--r-- | basctl/source/basicide/textwindowaccessibility.cxx | 14 | ||||
-rw-r--r-- | basctl/source/basicide/textwindowaccessibility.hxx | 8 |
4 files changed, 20 insertions, 51 deletions
diff --git a/basctl/source/basicide/baside2.hxx b/basctl/source/basicide/baside2.hxx index c5b8f15aca17..060b3a7997dd 100644 --- a/basctl/source/basicide/baside2.hxx +++ b/basctl/source/basicide/baside2.hxx @@ -109,7 +109,7 @@ private: Color m_aLineHighlightColor; - virtual css::uno::Reference< css::awt::XVclWindowPeer > GetComponentInterface(bool bCreate = true) override; + virtual css::uno::Reference<css::accessibility::XAccessible> CreateAccessible() override; CodeCompleteDataCache aCodeCompleteCache; VclPtr<CodeCompleteWindow> pCodeCompleteWnd; OUString GetActualSubName( sal_uInt32 nLine ); // gets the actual subroutine name according to line number diff --git a/basctl/source/basicide/baside2b.cxx b/basctl/source/basicide/baside2b.cxx index 2e5dd6c7daad..16a1e679ec5a 100644 --- a/basctl/source/basicide/baside2b.cxx +++ b/basctl/source/basicide/baside2b.cxx @@ -1680,35 +1680,6 @@ void BreakPointWindow::setBackgroundColor(Color aColor) namespace { -class TextWindowPeer final : public VCLXWindow -{ -public: - explicit TextWindowPeer(TextView& view); - - TextWindowPeer(const TextWindowPeer&) = delete; - TextWindowPeer& operator=(const TextWindowPeer&) = delete; - -private: - virtual css::uno::Reference<css::accessibility::XAccessibleContext> - CreateAccessibleContext() override; - - TextEngine& m_rEngine; - TextView& m_rView; -}; - -TextWindowPeer::TextWindowPeer(TextView& view) - : m_rEngine(*view.GetTextEngine()) - , m_rView(view) -{ - SetWindow(view.GetWindow()); -} - -css::uno::Reference<css::accessibility::XAccessibleContext> -TextWindowPeer::CreateAccessibleContext() -{ - return new ::accessibility::Document(GetWindow(), m_rEngine, m_rView); -} - struct WatchItem { OUString maName; @@ -2181,21 +2152,13 @@ void ComplexEditorWindow::SetLineNumberDisplay(bool b) Resize(); } -uno::Reference< awt::XVclWindowPeer > -EditorWindow::GetComponentInterface(bool bCreate) +css::uno::Reference<css::accessibility::XAccessible> EditorWindow::CreateAccessible() { - uno::Reference< awt::XVclWindowPeer > xPeer( - Window::GetComponentInterface(false)); - if (!xPeer.is() && bCreate) - { - // Make sure edit engine and view are available: - if (!pEditEngine) - CreateEditEngine(); + // Make sure edit engine and view are available: + if (!pEditEngine) + CreateEditEngine(); - xPeer = new TextWindowPeer(*GetEditView()); - SetComponentInterface(xPeer); - } - return xPeer; + return new ::accessibility::Document(this, *pEditView->GetTextEngine(), *pEditView); } static sal_uInt32 getCorrectedPropCount(SbxArray* p) diff --git a/basctl/source/basicide/textwindowaccessibility.cxx b/basctl/source/basicide/textwindowaccessibility.cxx index 633cb6c1069f..e9ee3ee30bf5 100644 --- a/basctl/source/basicide/textwindowaccessibility.cxx +++ b/basctl/source/basicide/textwindowaccessibility.cxx @@ -152,7 +152,7 @@ css::uno::Reference< css::accessibility::XAccessible > SAL_CALL Paragraph::getAccessibleParent() { ensureAlive(); - return m_xDocument->getAccessible(); + return m_xDocument; } // virtual @@ -590,7 +590,7 @@ void Paragraph::implGetLineBoundary( const OUString& rText, Document::Document(vcl::Window* pWindow, ::TextEngine & rEngine, ::TextView & rView) - : VCLXAccessibleComponent(pWindow), + : ImplInheritanceHelper(pWindow), m_rEngine(rEngine), m_rView(rView), m_aEngineListener(*this), @@ -615,11 +615,13 @@ Document::Document(vcl::Window* pWindow, ::TextEngine & rEngine, m_aViewListener.startListening(*m_rView.GetWindow()); } -css::uno::Reference<css::accessibility::XAccessible> Document::getAccessible() const +css::uno::Reference<css::accessibility::XAccessibleContext> + SAL_CALL Document::getAccessibleContext() { - if (vcl::Window* pWindow = GetWindow()) - return pWindow->GetAccessible(); - return nullptr; + SolarMutexGuard aGuard; + ensureAlive(); + + return this; } css::lang::Locale Document::retrieveLocale() diff --git a/basctl/source/basicide/textwindowaccessibility.hxx b/basctl/source/basicide/textwindowaccessibility.hxx index 7ee39ce81545..0f9ffd26a514 100644 --- a/basctl/source/basicide/textwindowaccessibility.hxx +++ b/basctl/source/basicide/textwindowaccessibility.hxx @@ -285,12 +285,16 @@ private: typedef std::unordered_map< OUString, css::beans::PropertyValue > tPropValMap; -class Document final : public ::VCLXAccessibleComponent, public ::SfxListener +class Document final + : public cppu::ImplInheritanceHelper<VCLXAccessibleComponent, css::accessibility::XAccessible>, + public ::SfxListener { public: Document(vcl::Window* pWindow, ::TextEngine & rEngine, ::TextView & rView); - css::uno::Reference<css::accessibility::XAccessible> getAccessible() const; + // XAccessible + virtual css::uno::Reference<css::accessibility::XAccessibleContext> + SAL_CALL getAccessibleContext() override; css::lang::Locale retrieveLocale(); |