diff options
author | Michael Weghorn <m.weghorn@posteo.de> | 2025-04-30 15:09:24 +0200 |
---|---|---|
committer | Michael Weghorn <m.weghorn@posteo.de> | 2025-05-01 09:52:30 +0200 |
commit | 9e96699b4040949699b86e11fd23100f6d59368d (patch) | |
tree | 09feddc0ac60c853b114defcbadc39f7893597fe /basctl/source | |
parent | 3a51a200e552f240d4242ccf32d0421a424306ab (diff) |
basicide a11y: Move basctl::createTextWindowPeer logic to caller
Drop the helper method basctl::createTextWindowPeer
that calls the TextWindowPeer ctor, and instead
call the ctor directly from
EditorWindow::GetComponentInterface.
In order for the class to be known there, move it
to the anonymous namespace in the same source file.
This is an intermediate step towards
getting rid of TextWindowPeer altogether.
Change-Id: I58111af8fadb45c6471af942b300665f3df189c9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184837
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Diffstat (limited to 'basctl/source')
-rw-r--r-- | basctl/source/basicide/baside2b.cxx | 34 | ||||
-rw-r--r-- | basctl/source/basicide/textwindowpeer.cxx | 69 | ||||
-rw-r--r-- | basctl/source/basicide/textwindowpeer.hxx | 37 |
3 files changed, 32 insertions, 108 deletions
diff --git a/basctl/source/basicide/baside2b.cxx b/basctl/source/basicide/baside2b.cxx index 7e9318a283a6..a9588d4b2e4a 100644 --- a/basctl/source/basicide/baside2b.cxx +++ b/basctl/source/basicide/baside2b.cxx @@ -48,11 +48,13 @@ #include <sfx2/viewfrm.hxx> #include <tools/debug.hxx> #include <utility> +#include <vcl/accessiblefactory.hxx> #include <vcl/image.hxx> #include <vcl/weld.hxx> #include <vcl/weldutils.hxx> #include <svl/urihelper.hxx> #include <svx/svxids.hrc> +#include <toolkit/awt/vclxwindow.hxx> #include <vcl/commandevent.hxx> #include <vcl/xtextedt.hxx> #include <vcl/textview.hxx> @@ -67,7 +69,6 @@ #include <vector> #include <com/sun/star/reflection/theCoreReflection.hpp> #include <unotools/charclass.hxx> -#include "textwindowpeer.hxx" #include "uiobject.hxx" #include <basegfx/utils/zoomtools.hxx> #include <svl/itemset.hxx> @@ -1678,6 +1679,35 @@ 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 AccessibleFactory::createAccessibleTextWindowContext(GetWindow(), m_rEngine, m_rView); +} + struct WatchItem { OUString maName; @@ -2161,7 +2191,7 @@ EditorWindow::GetComponentInterface(bool bCreate) if (!pEditEngine) CreateEditEngine(); - xPeer = createTextWindowPeer(*GetEditView()); + xPeer = new TextWindowPeer(*GetEditView()); SetComponentInterface(xPeer); } return xPeer; diff --git a/basctl/source/basicide/textwindowpeer.cxx b/basctl/source/basicide/textwindowpeer.cxx deleted file mode 100644 index 68945f46b630..000000000000 --- a/basctl/source/basicide/textwindowpeer.cxx +++ /dev/null @@ -1,69 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#include <sal/config.h> - -#include <vcl/accessiblefactory.hxx> - -#include <com/sun/star/accessibility/XAccessibleContext.hpp> -#include <com/sun/star/uno/Reference.hxx> -#include <toolkit/awt/vclxwindow.hxx> -#include <vcl/texteng.hxx> -#include <vcl/textview.hxx> -#include <vcl/window.hxx> -#include "textwindowpeer.hxx" - -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 AccessibleFactory::createAccessibleTextWindowContext( - GetWindow(), m_rEngine, m_rView); -} - -} - -css::uno::Reference<css::awt::XVclWindowPeer> basctl::createTextWindowPeer( - TextView & view) -{ - return new TextWindowPeer(view); -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/basctl/source/basicide/textwindowpeer.hxx b/basctl/source/basicide/textwindowpeer.hxx deleted file mode 100644 index e29c4a412dcb..000000000000 --- a/basctl/source/basicide/textwindowpeer.hxx +++ /dev/null @@ -1,37 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#pragma once - -#include <sal/config.h> - -#include <com/sun/star/uno/Reference.hxx> - -namespace com::sun::star::awt -{ -class XVclWindowPeer; -} -class TextView; - -namespace basctl -{ -css::uno::Reference<css::awt::XVclWindowPeer> createTextWindowPeer(TextView& view); -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |