summaryrefslogtreecommitdiff
path: root/basctl/source/basicide
diff options
context:
space:
mode:
Diffstat (limited to 'basctl/source/basicide')
-rw-r--r--basctl/source/basicide/baside2.hxx2
-rw-r--r--basctl/source/basicide/baside2b.cxx47
-rw-r--r--basctl/source/basicide/textwindowaccessibility.cxx14
-rw-r--r--basctl/source/basicide/textwindowaccessibility.hxx8
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();