diff options
Diffstat (limited to 'vcl/inc')
65 files changed, 953 insertions, 2366 deletions
diff --git a/vcl/inc/IconThemeScanner.hxx b/vcl/inc/IconThemeScanner.hxx index 60841eeddaab..85a7d8543ba4 100644 --- a/vcl/inc/IconThemeScanner.hxx +++ b/vcl/inc/IconThemeScanner.hxx @@ -13,6 +13,7 @@ #include <rtl/ustring.hxx> #include <vcl/IconThemeInfo.hxx> +#include <vcl/UserResourceScanner.hxx> #include <memory> #include <vector> @@ -24,16 +25,10 @@ namespace vcl { /** This class scans a folder for icon themes and provides the results. */ -class VCL_DLLPUBLIC IconThemeScanner +class VCL_DLLPUBLIC IconThemeScanner : public UserResourceScanner { public: - /** Provide a semicolon-separated list of paths to search for IconThemes. - * - * There are several cases when scan will fail: - * - The directory does not exist - * - There are no files which match the pattern images_xxx.zip - */ - explicit IconThemeScanner(std::u16string_view paths); + IconThemeScanner(); /** This method will return the standard path where icon themes are located. */ @@ -53,19 +48,11 @@ public: bool IconThemeIsInstalled(const OUString& themeId) const; private: - IconThemeScanner(); - - /** Adds the provided icon theme by path. - */ - bool AddIconThemeByPath(const OUString& path); - - /** Scans the provided directory for icon themes. - * The returned strings will contain the URLs to the icon themes. - */ - static std::vector<OUString> ReadIconThemesFromPath(const OUString& dir); + /** Adds the provided icon theme by path. */ + bool addResource(const OUString& path) override; /** Check whether a single file is valid */ - static bool FileIsValidIconTheme(const OUString&); + bool isValidResource(const OUString& rFilename) override; std::vector<IconThemeInfo> mFoundIconThemes; diff --git a/vcl/inc/WidgetDrawInterface.hxx b/vcl/inc/WidgetDrawInterface.hxx index 78d5d7625491..8e51f13819bb 100644 --- a/vcl/inc/WidgetDrawInterface.hxx +++ b/vcl/inc/WidgetDrawInterface.hxx @@ -8,8 +8,7 @@ * */ -#ifndef INCLUDED_VCL_INC_WIDGETDRAWINTERFACE_HXX -#define INCLUDED_VCL_INC_WIDGETDRAWINTERFACE_HXX +#pragma once #include <vcl/dllapi.h> #include <vcl/salnativewidgets.hxx> @@ -121,6 +120,4 @@ bool WidgetDrawInterface::getNativeControlRegion(ControlType, ControlPart, const bool WidgetDrawInterface::updateSettings(AllSettings&) { return false; } } -#endif - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/accessibility/AccessibleBrowseBox.hxx b/vcl/inc/accessibility/AccessibleBrowseBox.hxx index ed78bb407044..c8edc8a89341 100644 --- a/vcl/inc/accessibility/AccessibleBrowseBox.hxx +++ b/vcl/inc/accessibility/AccessibleBrowseBox.hxx @@ -25,10 +25,8 @@ #include <vcl/accessibletableprovider.hxx> #include <mutex> -namespace accessibility { - - class AccessibleBrowseBoxHeaderBar; - class AccessibleBrowseBoxTable; +class AccessibleBrowseBoxHeaderBar; +class AccessibleBrowseBoxTable; /** This class represents the complete accessible BrowseBox object. */ @@ -260,9 +258,4 @@ private: AccessibleBrowseBoxAccess& operator=( const AccessibleBrowseBoxAccess& ) = delete; }; - -} // namespace accessibility - - - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/accessibility/AccessibleBrowseBoxBase.hxx b/vcl/inc/accessibility/AccessibleBrowseBoxBase.hxx index f75aa59c2b16..b8758c4aeac5 100644 --- a/vcl/inc/accessibility/AccessibleBrowseBoxBase.hxx +++ b/vcl/inc/accessibility/AccessibleBrowseBoxBase.hxx @@ -46,8 +46,6 @@ namespace vcl { class IAccessibleTableProvider; } -namespace accessibility { - typedef ::cppu::WeakComponentImplHelper< css::accessibility::XAccessibleContext, css::accessibility::XAccessibleComponent, @@ -291,9 +289,6 @@ protected: css::uno::Reference< css::awt::XWindow > m_xFocusWindow; private: - ::comphelper::AccessibleEventNotifier::TClientId getClientId() const { return m_aClientId; } - void setClientId(::comphelper::AccessibleEventNotifier::TClientId _aNewClientId) { m_aClientId = _aNewClientId; } - /** Localized name. */ OUString maName; /** Localized description text. */ @@ -386,8 +381,4 @@ inline void AccessibleBrowseBoxBase::implSetName( maName = rName; } -} // namespace accessibility - - - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/accessibility/AccessibleBrowseBoxCheckBoxCell.hxx b/vcl/inc/accessibility/AccessibleBrowseBoxCheckBoxCell.hxx index b1b44cc25e26..e26bbd90463c 100644 --- a/vcl/inc/accessibility/AccessibleBrowseBoxCheckBoxCell.hxx +++ b/vcl/inc/accessibility/AccessibleBrowseBoxCheckBoxCell.hxx @@ -23,57 +23,54 @@ #include <accessibility/accessiblebrowseboxcell.hxx> #include <cppuhelper/implbase2.hxx> -namespace accessibility -{ - typedef ::cppu::ImplHelper2 < css::accessibility::XAccessible, - css::accessibility::XAccessibleValue - > AccessibleCheckBoxCell_BASE; +typedef ::cppu::ImplHelper2 < css::accessibility::XAccessible, + css::accessibility::XAccessibleValue + > AccessibleCheckBoxCell_BASE; - class AccessibleCheckBoxCell final : public AccessibleBrowseBoxCell - ,public AccessibleCheckBoxCell_BASE - { - private: - TriState m_eState; - bool m_bIsTriState; +class AccessibleCheckBoxCell final : public AccessibleBrowseBoxCell + ,public AccessibleCheckBoxCell_BASE +{ +private: + TriState m_eState; + bool m_bIsTriState; - virtual ~AccessibleCheckBoxCell() override {} + virtual ~AccessibleCheckBoxCell() override {} - virtual sal_Int64 implCreateStateSet() override; + virtual sal_Int64 implCreateStateSet() override; - public: - AccessibleCheckBoxCell(const css::uno::Reference< css::accessibility::XAccessible >& _rxParent, - ::vcl::IAccessibleTableProvider& _rBrowseBox, - sal_Int32 _nRowPos, - sal_uInt16 _nColPos, - const TriState& _eState, - bool _bIsTriState); +public: + AccessibleCheckBoxCell(const css::uno::Reference< css::accessibility::XAccessible >& _rxParent, + ::vcl::IAccessibleTableProvider& _rBrowseBox, + sal_Int32 _nRowPos, + sal_uInt16 _nColPos, + const TriState& _eState, + bool _bIsTriState); - // XInterface - DECLARE_XINTERFACE( ) - // XTypeProvider - DECLARE_XTYPEPROVIDER( ) + // XInterface + DECLARE_XINTERFACE( ) + // XTypeProvider + DECLARE_XTYPEPROVIDER( ) - // XAccessible - virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override; + // XAccessible + virtual css::uno::Reference< css::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; - virtual OUString SAL_CALL getImplementationName() override; - virtual sal_Int64 SAL_CALL getAccessibleIndexInParent( ) override; + // XAccessibleContext + virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override; + virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int64 i ) override; + virtual OUString SAL_CALL getImplementationName() override; + virtual sal_Int64 SAL_CALL getAccessibleIndexInParent( ) override; - // XAccessibleValue - virtual css::uno::Any SAL_CALL getCurrentValue( ) override; - virtual sal_Bool SAL_CALL setCurrentValue( const css::uno::Any& aNumber ) override; - virtual css::uno::Any SAL_CALL getMaximumValue( ) override; - virtual css::uno::Any SAL_CALL getMinimumValue( ) override; - virtual css::uno::Any SAL_CALL getMinimumIncrement( ) override; + // XAccessibleValue + virtual css::uno::Any SAL_CALL getCurrentValue( ) override; + virtual sal_Bool SAL_CALL setCurrentValue( const css::uno::Any& aNumber ) override; + virtual css::uno::Any SAL_CALL getMaximumValue( ) override; + virtual css::uno::Any SAL_CALL getMinimumValue( ) override; + virtual css::uno::Any SAL_CALL getMinimumIncrement( ) override; - // internal - void SetChecked( bool _bChecked ); - }; -} + // internal + void SetChecked( bool _bChecked ); +}; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/accessibility/AccessibleBrowseBoxHeaderBar.hxx b/vcl/inc/accessibility/AccessibleBrowseBoxHeaderBar.hxx index fdd37cbe3173..791f3548535d 100644 --- a/vcl/inc/accessibility/AccessibleBrowseBoxHeaderBar.hxx +++ b/vcl/inc/accessibility/AccessibleBrowseBoxHeaderBar.hxx @@ -25,9 +25,6 @@ #include <com/sun/star/accessibility/XAccessibleSelection.hpp> -namespace accessibility { - - typedef ::cppu::ImplHelper1< css::accessibility::XAccessibleSelection > AccessibleBrowseBoxHeaderBarImplHelper; @@ -210,9 +207,4 @@ inline bool AccessibleBrowseBoxHeaderBar::isColumnBar() const return getType() == AccessibleBrowseBoxObjType::ColumnHeaderBar; } - -} // namespace accessibility - - - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/accessibility/AccessibleBrowseBoxHeaderCell.hxx b/vcl/inc/accessibility/AccessibleBrowseBoxHeaderCell.hxx index be60bee26c5a..aa9a0d8672d4 100644 --- a/vcl/inc/accessibility/AccessibleBrowseBoxHeaderCell.hxx +++ b/vcl/inc/accessibility/AccessibleBrowseBoxHeaderCell.hxx @@ -20,49 +20,45 @@ #include <accessibility/AccessibleBrowseBoxBase.hxx> -namespace accessibility +class AccessibleBrowseBoxHeaderCell final : public BrowseBoxAccessibleElement { - class AccessibleBrowseBoxHeaderCell final : public BrowseBoxAccessibleElement - { - sal_Int32 m_nColumnRowId; - public: - AccessibleBrowseBoxHeaderCell(sal_Int32 _nColumnRowId, - const css::uno::Reference< css::accessibility::XAccessible >& rxParent, - ::vcl::IAccessibleTableProvider& _rBrowseBox, - AccessibleBrowseBoxObjType _eObjType); - /** @return The count of visible children. */ - virtual sal_Int64 SAL_CALL getAccessibleChildCount() override; - - /** @return The XAccessible interface of the specified child. */ - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL - getAccessibleChild( sal_Int64 nChildIndex ) override; + sal_Int32 m_nColumnRowId; +public: + AccessibleBrowseBoxHeaderCell(sal_Int32 _nColumnRowId, + const css::uno::Reference< css::accessibility::XAccessible >& rxParent, + ::vcl::IAccessibleTableProvider& _rBrowseBox, + AccessibleBrowseBoxObjType _eObjType); + /** @return The count of visible children. */ + virtual sal_Int64 SAL_CALL getAccessibleChildCount() override; - /** @return The index of this object among the parent's children. */ - virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override; + /** @return The XAccessible interface of the specified child. */ + virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL + getAccessibleChild( sal_Int64 nChildIndex ) override; - /** Grabs the focus to the BrowseBox. */ - virtual void SAL_CALL grabFocus() override; + /** @return The index of this object among the parent's children. */ + virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override; - bool isRowBarCell() const - { - return getType() == AccessibleBrowseBoxObjType::RowHeaderCell; - } + /** Grabs the focus to the BrowseBox. */ + virtual void SAL_CALL grabFocus() override; - /** @return - The name of this class. - */ - virtual OUString SAL_CALL getImplementationName() override; + bool isRowBarCell() const + { + return getType() == AccessibleBrowseBoxObjType::RowHeaderCell; + } - /** Return a bitset of states of the current object. - */ - sal_Int64 implCreateStateSet() override; + /** @return + The name of this class. + */ + virtual OUString SAL_CALL getImplementationName() override; - private: - virtual tools::Rectangle implGetBoundingBox() override; + /** Return a bitset of states of the current object. + */ + sal_Int64 implCreateStateSet() override; - virtual AbsoluteScreenPixelRectangle implGetBoundingBoxOnScreen() override; - }; -} +private: + virtual tools::Rectangle implGetBoundingBox() override; + virtual AbsoluteScreenPixelRectangle implGetBoundingBoxOnScreen() override; +}; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/accessibility/AccessibleBrowseBoxTable.hxx b/vcl/inc/accessibility/AccessibleBrowseBoxTable.hxx index abff6092fcff..8406ea8ec18d 100644 --- a/vcl/inc/accessibility/AccessibleBrowseBoxTable.hxx +++ b/vcl/inc/accessibility/AccessibleBrowseBoxTable.hxx @@ -23,14 +23,10 @@ #include <accessibility/AccessibleBrowseBoxTableBase.hxx> -namespace accessibility { - /** This class represents the accessible object of the data table of a BrowseBox control. */ class AccessibleBrowseBoxTable : public AccessibleBrowseBoxTableBase { - friend class AccessibleBrowseBox; // to create header bars - public: AccessibleBrowseBoxTable( const css::uno::Reference< css::accessibility::XAccessible >& rxParent, @@ -121,9 +117,4 @@ protected: implGetHeaderBar( sal_Int32 nChildIndex ); }; - -} // namespace accessibility - - - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/accessibility/AccessibleBrowseBoxTableBase.hxx b/vcl/inc/accessibility/AccessibleBrowseBoxTableBase.hxx index ac7f1dd00362..208f9765fff7 100644 --- a/vcl/inc/accessibility/AccessibleBrowseBoxTableBase.hxx +++ b/vcl/inc/accessibility/AccessibleBrowseBoxTableBase.hxx @@ -25,8 +25,6 @@ #include <com/sun/star/accessibility/XAccessibleTable.hpp> -namespace accessibility { - typedef cppu::ImplInheritanceHelper<BrowseBoxAccessibleElement, css::accessibility::XAccessibleTable> AccessibleBrowseBoxTableImplHelper; @@ -210,9 +208,4 @@ protected: void ensureIsValidIndex( sal_Int64 nChildIndex ); }; - -} // namespace accessibility - - - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/accessibility/AccessibleBrowseBoxTableCell.hxx b/vcl/inc/accessibility/AccessibleBrowseBoxTableCell.hxx index 3a49ad9eeb59..a7fa5bcfc3ef 100644 --- a/vcl/inc/accessibility/AccessibleBrowseBoxTableCell.hxx +++ b/vcl/inc/accessibility/AccessibleBrowseBoxTableCell.hxx @@ -23,96 +23,93 @@ #include <cppuhelper/implbase2.hxx> #include <com/sun/star/accessibility/AccessibleScrollType.hpp> -namespace accessibility +typedef ::cppu::ImplHelper2 < css::accessibility::XAccessibleText + , css::accessibility::XAccessible + > AccessibleTextHelper_BASE; + +// implementation of a table cell of BrowseBox +class AccessibleBrowseBoxTableCell final : public AccessibleBrowseBoxCell + ,public AccessibleTextHelper_BASE + ,public ::comphelper::OCommonAccessibleText { - typedef ::cppu::ImplHelper2 < css::accessibility::XAccessibleText - , css::accessibility::XAccessible - > AccessibleTextHelper_BASE; - - // implementation of a table cell of BrowseBox - class AccessibleBrowseBoxTableCell final : public AccessibleBrowseBoxCell - ,public AccessibleTextHelper_BASE - ,public ::comphelper::OCommonAccessibleText - { - private: - sal_Int32 m_nOffset; - - // OCommonAccessibleText - virtual OUString implGetText() final override; - virtual css::lang::Locale implGetLocale() override; - virtual void implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex ) override; - - public: - AccessibleBrowseBoxTableCell( const css::uno::Reference< css::accessibility::XAccessible >& _rxParent, - ::vcl::IAccessibleTableProvider& _rBrowseBox, - sal_Int32 _nRowId, - sal_uInt16 _nColId, - sal_Int32 _nOffset ); - - // XInterface ------------------------------------------------------------- - - /** Queries for a new interface. */ - css::uno::Any SAL_CALL queryInterface( const css::uno::Type& rType ) override; - - /** Acquires the object (calls acquire() on base class). */ - virtual void SAL_CALL acquire() noexcept override; - - /** Releases the object (calls release() on base class). */ - virtual void SAL_CALL release() noexcept override; - - // XEventListener - using AccessibleBrowseBoxBase::disposing; - virtual void SAL_CALL disposing( const css::lang::EventObject& Source ) override; - - /** @return The index of this object among the parent's children. */ - virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override; - - /** @return - The name of this class. - */ - virtual OUString SAL_CALL getImplementationName() override; - - /** @return - The count of visible children. - */ - virtual sal_Int64 SAL_CALL getAccessibleChildCount() override; - - /** @return - The XAccessible interface of the specified child. - */ - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL - getAccessibleChild( sal_Int64 nChildIndex ) override; - - /** Return a bitset of states of the current object. - */ - sal_Int64 implCreateStateSet() override; - - // XAccessible ------------------------------------------------------------ - - /** @return The XAccessibleContext interface of this object. */ - virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL - getAccessibleContext() override; - - // XAccessibleText - virtual sal_Int32 SAL_CALL getCaretPosition() override; - virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) override; - virtual sal_Unicode SAL_CALL getCharacter( sal_Int32 nIndex ) override; - virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL getCharacterAttributes( sal_Int32 nIndex, const css::uno::Sequence< OUString >& aRequestedAttributes ) override; - virtual css::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) override; - virtual sal_Int32 SAL_CALL getCharacterCount() override; - virtual sal_Int32 SAL_CALL getIndexAtPoint( const css::awt::Point& aPoint ) override; - virtual OUString SAL_CALL getSelectedText() override; - virtual sal_Int32 SAL_CALL getSelectionStart() override; - virtual sal_Int32 SAL_CALL getSelectionEnd() override; - virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) override; - virtual OUString SAL_CALL getText() final override; - virtual OUString SAL_CALL getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) override; - virtual css::accessibility::TextSegment SAL_CALL getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) override; - virtual css::accessibility::TextSegment SAL_CALL getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) override; - virtual css::accessibility::TextSegment SAL_CALL getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) override; - virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) override; - virtual sal_Bool SAL_CALL scrollSubstringTo( sal_Int32 nStartIndex, sal_Int32 nEndIndex, css::accessibility::AccessibleScrollType aScrollType) override; - }; -} +private: + sal_Int32 m_nOffset; + + // OCommonAccessibleText + virtual OUString implGetText() final override; + virtual css::lang::Locale implGetLocale() override; + virtual void implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex ) override; + +public: + AccessibleBrowseBoxTableCell( const css::uno::Reference< css::accessibility::XAccessible >& _rxParent, + ::vcl::IAccessibleTableProvider& _rBrowseBox, + sal_Int32 _nRowId, + sal_uInt16 _nColId, + sal_Int32 _nOffset ); + + // XInterface ------------------------------------------------------------- + + /** Queries for a new interface. */ + css::uno::Any SAL_CALL queryInterface( const css::uno::Type& rType ) override; + + /** Acquires the object (calls acquire() on base class). */ + virtual void SAL_CALL acquire() noexcept override; + + /** Releases the object (calls release() on base class). */ + virtual void SAL_CALL release() noexcept override; + + // XEventListener + using AccessibleBrowseBoxBase::disposing; + virtual void SAL_CALL disposing( const css::lang::EventObject& Source ) override; + + /** @return The index of this object among the parent's children. */ + virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override; + + /** @return + The name of this class. + */ + virtual OUString SAL_CALL getImplementationName() override; + + /** @return + The count of visible children. + */ + virtual sal_Int64 SAL_CALL getAccessibleChildCount() override; + + /** @return + The XAccessible interface of the specified child. + */ + virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL + getAccessibleChild( sal_Int64 nChildIndex ) override; + + /** Return a bitset of states of the current object. + */ + sal_Int64 implCreateStateSet() override; + + // XAccessible ------------------------------------------------------------ + + /** @return The XAccessibleContext interface of this object. */ + virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL + getAccessibleContext() override; + + // XAccessibleText + virtual sal_Int32 SAL_CALL getCaretPosition() override; + virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) override; + virtual sal_Unicode SAL_CALL getCharacter( sal_Int32 nIndex ) override; + virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL getCharacterAttributes( sal_Int32 nIndex, const css::uno::Sequence< OUString >& aRequestedAttributes ) override; + virtual css::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) override; + virtual sal_Int32 SAL_CALL getCharacterCount() override; + virtual sal_Int32 SAL_CALL getIndexAtPoint( const css::awt::Point& aPoint ) override; + virtual OUString SAL_CALL getSelectedText() override; + virtual sal_Int32 SAL_CALL getSelectionStart() override; + virtual sal_Int32 SAL_CALL getSelectionEnd() override; + virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) override; + virtual OUString SAL_CALL getText() final override; + virtual OUString SAL_CALL getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) override; + virtual css::accessibility::TextSegment SAL_CALL getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) override; + virtual css::accessibility::TextSegment SAL_CALL getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) override; + virtual css::accessibility::TextSegment SAL_CALL getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) override; + virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) override; + virtual sal_Bool SAL_CALL scrollSubstringTo( sal_Int32 nStartIndex, sal_Int32 nEndIndex, css::accessibility::AccessibleScrollType aScrollType) override; +}; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/accessibility/AccessibleGridControl.hxx b/vcl/inc/accessibility/AccessibleGridControl.hxx deleted file mode 100644 index 399a6b453bb5..000000000000 --- a/vcl/inc/accessibility/AccessibleGridControl.hxx +++ /dev/null @@ -1,223 +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 <accessibility/AccessibleGridControlBase.hxx> -#include <accessibility/AccessibleGridControlTable.hxx> -#include <cppuhelper/weakref.hxx> -#include <rtl/ref.hxx> -#include <vcl/accessibletable.hxx> - -namespace accessibility { - - class AccessibleGridControlHeader; - - -/** This class represents the complete accessible Grid Control object. */ -class AccessibleGridControl final : public AccessibleGridControlBase -{ - friend class AccessibleGridControlAccess; - - AccessibleGridControl( - const css::uno::Reference< css::accessibility::XAccessible >& _rxParent, - const css::uno::Reference< css::accessibility::XAccessible >& _rxCreator, - ::vcl::table::IAccessibleTable& _rTable - ); - - virtual ~AccessibleGridControl() override = default; - - /** Cleans up members. */ - using AccessibleGridControlBase::disposing; - virtual void SAL_CALL disposing() override; - - // XAccessibleContext ----------------------------------------------------- - - /** @return The count of visible children. */ - virtual sal_Int64 SAL_CALL getAccessibleChildCount() override; - - /** @return The XAccessible interface of the specified child. */ - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL - getAccessibleChild( sal_Int64 nChildIndex ) override; - - /** @return The role of this object (a table). */ - virtual sal_Int16 SAL_CALL getAccessibleRole() override; - - // XAccessibleComponent --------------------------------------------------- - - /** @return - The accessible child rendered under the given point. - */ - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL - getAccessibleAtPoint( const css::awt::Point& rPoint ) override; - - /** Grabs the focus to the Grid Control. */ - virtual void SAL_CALL grabFocus() override; - - // XServiceInfo ----------------------------------------------------------- - - /** @return - The name of this class. - */ - virtual OUString SAL_CALL getImplementationName() override; - -public: - // helper functions - - /** commitCellEvent commit the event at all listeners of the table - @param nEventId - the event id - @param rNewValue - the new value - @param rOldValue - the old value - */ - void commitCellEvent(sal_Int16 nEventId, const css::uno::Any& rNewValue, - const css::uno::Any& rOldValue); - - /** commitTableEvent commit the event at all listeners of the table - @param nEventId - the event id - @param rNewValue - the new value - @param rOldValue - the old value - */ - void commitTableEvent(sal_Int16 nEventId, const css::uno::Any& rNewValue, - const css::uno::Any& rOldValue); - -private: - // internal virtual methods ----------------------------------------------- - - /** @attention This method requires locked mutex's and a living object. - @return The bounding box (VCL rect.) relative to the parent window. */ - virtual tools::Rectangle implGetBoundingBox() override; - /** @attention This method requires locked mutex's and a living object. - @return The bounding box (VCL rect.) in screen coordinates. */ - virtual AbsoluteScreenPixelRectangle implGetBoundingBoxOnScreen() override; - - // internal helper methods ------------------------------------------------ - - /** This method creates (once) and returns the accessible data table child. - @attention This method requires locked mutex's and a living object. - @return The XAccessible interface of the data table. */ - css::uno::Reference< css::accessibility::XAccessible > implGetTable(); - - /** This method creates (once) and returns the specified header bar. - @attention This method requires locked mutex's and a living object. - @return The XAccessible interface of the header bar. */ - css::uno::Reference< css::accessibility::XAccessible > - implGetHeaderBar( ::vcl::table::AccessibleTableControlObjType eObjType ); - - /** This method returns one of the children that are always present: - Data table, row and column header bar or corner control. - @attention This method requires locked mutex's and a living object. - @return The XAccessible interface of the specified child. */ - css::uno::Reference< css::accessibility::XAccessible > - implGetFixedChild( sal_Int64 nChildIndex ); - - /** This method creates and returns an accessible table. - @return An AccessibleGridControlTable. */ - rtl::Reference<AccessibleGridControlTable> createAccessibleTable(); - - /// the css::accessibility::XAccessible which created the AccessibleGridControl - css::uno::WeakReference< css::accessibility::XAccessible > m_aCreator; - - /** The data table child. */ - rtl::Reference<AccessibleGridControlTable> m_xTable; - - /** The header bar for rows. */ - rtl::Reference<AccessibleGridControlHeader> m_xRowHeaderBar; - - /** The header bar for columns (first row of the table). */ - rtl::Reference<AccessibleGridControlHeader> m_xColumnHeaderBar; - - /** @return The count of visible children. */ - inline sal_Int64 implGetAccessibleChildCount(); -}; - - -/** the XAccessible which creates/returns an AccessibleGridControl - - <p>The instance holds its XAccessibleContext with a hard reference, while - the context holds this instance weak.</p> -*/ - -class AccessibleGridControlAccess final : public ::vcl::table::IAccessibleTableControl -{ -private: - css::uno::Reference< css::accessibility::XAccessible > m_xParent; - ::vcl::table::IAccessibleTable * m_pTable; - rtl::Reference<AccessibleGridControl> m_xContext; - -public: - AccessibleGridControlAccess( - css::uno::Reference< css::accessibility::XAccessible > _xParent, - ::vcl::table::IAccessibleTable& _rTable - ); - - /// returns the AccessibleContext belonging to this Accessible - AccessibleGridControl* getContext() { return m_xContext.get(); } - -private: - virtual ~AccessibleGridControlAccess() override; - - // XAccessible - virtual css::uno::Reference< css::accessibility::XAccessibleContext > - SAL_CALL getAccessibleContext() override; - - // IAccessibleTable - void DisposeAccessImpl() override; - virtual bool isAlive() const override - { - return m_xContext.is() && m_xContext->isAlive(); - } - virtual void commitCellEvent( sal_Int16 nEventId, - const css::uno::Any& rNewValue, const css::uno::Any& rOldValue ) override - { - AccessibleGridControl* pContext( getContext() ); - if ( pContext ) - pContext->commitCellEvent( nEventId, rNewValue, rOldValue ); - } - virtual void commitTableEvent( sal_Int16 nEventId, - const css::uno::Any& rNewValue, const css::uno::Any& rOldValue ) override - { - AccessibleGridControl* pContext( getContext() ); - if ( pContext ) - pContext->commitTableEvent( nEventId, rNewValue, rOldValue ); - } - virtual void commitEvent( sal_Int16 nEventId, - const css::uno::Any& rNewValue ) override - { - AccessibleGridControl* pContext( getContext() ); - if ( pContext ) - pContext->commitEvent( nEventId, rNewValue, css::uno::Any() ); - } - -private: - AccessibleGridControlAccess( const AccessibleGridControlAccess& ) = delete; - AccessibleGridControlAccess& operator=( const AccessibleGridControlAccess& ) = delete; -}; - - -} // namespace accessibility - - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/accessibility/AccessibleGridControlBase.hxx b/vcl/inc/accessibility/AccessibleGridControlBase.hxx deleted file mode 100644 index 4e30bddda541..000000000000 --- a/vcl/inc/accessibility/AccessibleGridControlBase.hxx +++ /dev/null @@ -1,299 +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 <vcl/accessibletable.hxx> -#include <rtl/ustring.hxx> -#include <rtl/ref.hxx> -#include <tools/gen.hxx> -#include <cppuhelper/compbase.hxx> -#include <cppuhelper/implbase1.hxx> -#include <cppuhelper/basemutex.hxx> -#include <com/sun/star/lang/XServiceInfo.hpp> -#include <com/sun/star/accessibility/XAccessible.hpp> -#include <com/sun/star/accessibility/XAccessibleContext.hpp> -#include <com/sun/star/accessibility/XAccessibleComponent.hpp> -#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp> -#include <comphelper/accessibleeventnotifier.hxx> -#include <comphelper/uno3.hxx> - - -namespace vcl { class Window; } - - -namespace accessibility { - -typedef ::cppu::WeakComponentImplHelper< - css::accessibility::XAccessibleContext, - css::accessibility::XAccessibleComponent, - css::accessibility::XAccessibleEventBroadcaster, - css::lang::XServiceInfo > - AccessibleGridControlImplHelper; - -/** The GridControl accessible objects inherit from this base class. It - implements basic functionality for various Accessibility interfaces and - the event broadcaster and contains the osl::Mutex. */ -class AccessibleGridControlBase : - public ::cppu::BaseMutex, - public AccessibleGridControlImplHelper -{ -public: - /** Constructor. - @param rxParent XAccessible interface of the parent object. - @param rTable The Table control. - @param eObjType Type of accessible table control. */ - AccessibleGridControlBase( - css::uno::Reference< css::accessibility::XAccessible > xParent, - ::vcl::table::IAccessibleTable& rTable, - ::vcl::table::AccessibleTableControlObjType eObjType ); - -protected: - virtual ~AccessibleGridControlBase() override; - - /** Commits DeFunc event to listeners and cleans up members. */ - virtual void SAL_CALL disposing() override; - -public: - // XAccessibleContext - - /** @return A reference to the parent accessible object. */ - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL - getAccessibleParent() override; - - /** @return The index of this object among the parent's children. */ - virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override; - - /** @return - The description of this object. - */ - virtual OUString SAL_CALL getAccessibleDescription() override; - - /** @return - The name of this object. - */ - virtual OUString SAL_CALL getAccessibleName() override; - - /** @return - The relation set (the GridControl does not have one). - */ - virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL - getAccessibleRelationSet() override; - - /** @return The set of current states. */ - virtual sal_Int64 SAL_CALL getAccessibleStateSet() override; - - /** @return The parent's locale. */ - virtual css::lang::Locale SAL_CALL getLocale() override; - - /** @return - The role of this object. Panel, ROWHEADER, COLUMNHEADER, TABLE, TABLE_CELL are supported. - */ - virtual sal_Int16 SAL_CALL getAccessibleRole() override; - - /* Derived classes have to implement: - - getAccessibleChildCount, - - getAccessibleChild, - - getAccessibleRole. - Derived classes may overwrite getAccessibleIndexInParent to increase - performance. */ - - // XAccessibleComponent - - /** @return - TRUE, if the point lies within the bounding box of this object. */ - virtual sal_Bool SAL_CALL containsPoint( const css::awt::Point& rPoint ) override; - - /** @return The bounding box of this object. */ - virtual css::awt::Rectangle SAL_CALL getBounds() override; - - /** @return - The upper left corner of the bounding box relative to the parent. */ - virtual css::awt::Point SAL_CALL getLocation() override; - - /** @return - The upper left corner of the bounding box in screen coordinates. */ - virtual css::awt::Point SAL_CALL getLocationOnScreen() override; - - /** @return The size of the bounding box. */ - virtual css::awt::Size SAL_CALL getSize() override; - - virtual sal_Int32 SAL_CALL getForeground( ) override; - virtual sal_Int32 SAL_CALL getBackground( ) override; - - - /* Derived classes have to implement: - - getAccessibleAt, - - grabFocus. */ - - /** @return - The accessible child rendered under the given point. - */ - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL - getAccessibleAtPoint( const css::awt::Point& rPoint ) override; - - // XAccessibleEventBroadcaster - - /** Adds a new event listener */ - virtual void SAL_CALL addAccessibleEventListener( - const css::uno::Reference< css::accessibility::XAccessibleEventListener>& rxListener ) override; - - /** Removes an event listener. */ - virtual void SAL_CALL removeAccessibleEventListener( - const css::uno::Reference< css::accessibility::XAccessibleEventListener>& rxListener ) override; - - // XTypeProvider - - /** @return a unique implementation ID. */ - virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override; - - // XServiceInfo - - /** @return Whether the specified service is supported by this class. */ - virtual sal_Bool SAL_CALL supportsService( const OUString& rServiceName ) override; - - /** @return a list of all supported services. */ - virtual css::uno::Sequence< OUString > SAL_CALL - getSupportedServiceNames() override; - - /* Derived classes have to implement: - - getImplementationName. */ - - // helper methods - - /** @return The GridControl object type. */ - inline ::vcl::table::AccessibleTableControlObjType getType() const; - - /** Commits an event to all listeners. */ - virtual void commitEvent(sal_Int16 nEventId, const css::uno::Any& rNewValue, - const css::uno::Any& rOldValue); - /** @return TRUE, if the object is not disposed or disposing. */ - bool isAlive() const; - -protected: - // internal virtual methods - - /** Determines whether the Grid control is really showing inside of - its parent accessible window. Derived classes may implement different - behaviour. - @attention This method requires locked mutex's and a living object. - @return TRUE, if the object is really showing. */ - bool implIsShowing(); - - /** Derived classes return the bounding box relative to the parent window. - @attention This method requires locked mutex's and a living object. - @return The bounding box (VCL rect.) relative to the parent window. */ - virtual tools::Rectangle implGetBoundingBox() = 0; - ///** Derived classes return the bounding box in screen coordinates. - // @attention This method requires locked mutex's and a living object. - // @return The bounding box (VCL rect.) in screen coordinates. */ - virtual AbsoluteScreenPixelRectangle implGetBoundingBoxOnScreen() = 0; - - /** Creates a bitset of states of the - current object. This method calls FillStateSet at the GridControl which - fills it with more states depending on the object type. Derived classes - may overwrite this method and add more states. - @attention This method requires locked mutex's. - */ - virtual sal_Int64 implCreateStateSet(); - - // internal helper methods - - /** @throws <type>DisposedException</type> If the object is not alive. */ - void ensureIsAlive() const; - - /** Locks all mutex's and calculates the bounding box relative to the - parent window. - @return The bounding box (VCL rect.) relative to the parent object. - @throws css::lang::DisposedException - */ - tools::Rectangle getBoundingBox(); - ///** Locks all mutex's and calculates the bounding box in screen - // coordinates. - // @return The bounding box (VCL rect.) in screen coordinates. */ - /// @throws css::lang::DisposedException - AbsoluteScreenPixelRectangle getBoundingBoxOnScreen(); - - ::comphelper::AccessibleEventNotifier::TClientId getClientId() const { return m_aClientId; } - void setClientId(::comphelper::AccessibleEventNotifier::TClientId _aNewClientId) { m_aClientId = _aNewClientId; } - -protected: - // members - - /** The parent accessible object. */ - css::uno::Reference< css::accessibility::XAccessible > m_xParent; - /** The SVT Table control. */ - ::vcl::table::IAccessibleTable& m_aTable; - /** The type of this object (for names, descriptions, state sets, ...). */ - ::vcl::table::AccessibleTableControlObjType m_eObjType; - -private: - ::comphelper::AccessibleEventNotifier::TClientId m_aClientId; -}; - - -// a version of AccessibleGridControlBase which implements not only the XAccessibleContext, -// but also the XAccessible - -typedef cppu::ImplInheritanceHelper <AccessibleGridControlBase, css::accessibility::XAccessible> - GridControlAccessibleElement_Base; - -class GridControlAccessibleElement : public GridControlAccessibleElement_Base -{ -protected: - /** Constructor sets specified name and description. - - @param rxParent XAccessible interface of the parent object. - @param rTable The Table control. - @param eObjType Type of table control - */ - GridControlAccessibleElement( - const css::uno::Reference< css::accessibility::XAccessible >& rxParent, - ::vcl::table::IAccessibleTable& rTable, - ::vcl::table::AccessibleTableControlObjType eObjType ); - -protected: - virtual ~GridControlAccessibleElement() override; - -protected: - // XAccessible - - /** @return The XAccessibleContext interface of this object. */ - virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL - getAccessibleContext() override; - -private: - GridControlAccessibleElement( const GridControlAccessibleElement& ) = delete; - GridControlAccessibleElement& operator=( const GridControlAccessibleElement& ) = delete; -}; - -// inlines - -inline ::vcl::table::AccessibleTableControlObjType AccessibleGridControlBase::getType() const -{ - return m_eObjType; -} - - -} // namespace accessibility - - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/accessibility/AccessibleGridControlHeader.hxx b/vcl/inc/accessibility/AccessibleGridControlHeader.hxx deleted file mode 100644 index d1cabbeb4aeb..000000000000 --- a/vcl/inc/accessibility/AccessibleGridControlHeader.hxx +++ /dev/null @@ -1,155 +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 <accessibility/AccessibleGridControlTableBase.hxx> - -namespace accessibility { - -/** This class represents the accessible object of a header bar of a Grid Control - (row or column header bar). This object supports the - XAccessibleSelection interface. Selecting a child of this object selects - complete rows or columns of the data table. */ -class AccessibleGridControlHeader final : public AccessibleGridControlTableBase -{ -public: - /** @param rxParent accessible parent control - @param rTable accessible table - @param eObjType One of the two allowed types AccessibleTableControlObjType::ROWHEADERBAR or - AccessibleTableControlObjType::COLUMNHEADERBAR. */ - AccessibleGridControlHeader( - const css::uno::Reference< - css::accessibility::XAccessible >& rxParent, - ::vcl::table::IAccessibleTable& rTable, - ::vcl::table::AccessibleTableControlObjType eObjType ); - -private: - virtual ~AccessibleGridControlHeader() override = default; - -public: - // XAccessibleContext - - /** @return - The XAccessible interface of the specified child. - */ - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL - getAccessibleChild( sal_Int64 nChildIndex ) override; - - /** @return The index of this object among the parent's children. */ - virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override; - - // XAccessibleComponent - - /** @return The accessible child rendered under the given point. */ - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL - getAccessibleAtPoint( const css::awt::Point& rPoint ) override; - - /** Grabs the focus to (the current cell of) the data table. */ - virtual void SAL_CALL grabFocus() override; - - // XAccessibleTable - - /** @return The description text of the specified row. */ - virtual OUString SAL_CALL - getAccessibleRowDescription( sal_Int32 nRow ) override; - - /** @return The description text of the specified column. */ - virtual OUString SAL_CALL - getAccessibleColumnDescription( sal_Int32 nColumn ) override; - - /** @return The XAccessibleTable interface of the row header bar. */ - virtual css::uno::Reference< css::accessibility::XAccessibleTable > SAL_CALL - getAccessibleRowHeaders() override; - - /** @return The XAccessibleTable interface of the column header bar. */ - virtual css::uno::Reference< css::accessibility::XAccessibleTable > SAL_CALL - getAccessibleColumnHeaders() override; - - /** @return An index list of completely selected rows. */ - virtual css::uno::Sequence< sal_Int32 > SAL_CALL - getSelectedAccessibleRows() override; - - /** @return An index list of completely selected columns. */ - virtual css::uno::Sequence< sal_Int32 > SAL_CALL - getSelectedAccessibleColumns() override; - - /** @return TRUE, if the specified row is completely selected. */ - virtual sal_Bool SAL_CALL isAccessibleRowSelected( sal_Int32 nRow ) override; - - /** @return TRUE, if the specified column is completely selected. */ - virtual sal_Bool SAL_CALL isAccessibleColumnSelected( sal_Int32 nColumn ) override; - - /** @return The XAccessible interface of the cell object at the specified - cell position. */ - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL - getAccessibleCellAt( sal_Int32 nRow, sal_Int32 nColumn ) override; - - /** @return TRUE, if the specified cell is selected. */ - virtual sal_Bool SAL_CALL isAccessibleSelected( sal_Int32 nRow, sal_Int32 nColumn ) override; - - // XServiceInfo - - /** @return The name of this class. */ - virtual OUString SAL_CALL getImplementationName() override; - - /** @return a unique implementation ID. */ - virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override; - -private: - /** Returns the specified row or column. Uses one of the parameters, - depending on object type. - @attention This method requires locked mutex's and a living object. - @return The XAccessible interface of the specified column/row. */ - css::uno::Reference< css::accessibility::XAccessible > - implGetChild( sal_Int32 nRow, sal_uInt32 nColumnPos ); - /** @attention This method requires locked mutex's and a living object. - @return The bounding box (VCL rect.) relative to the parent window. */ - virtual tools::Rectangle implGetBoundingBox() override; - /** @attention This method requires locked mutex's and a living object. - @return The bounding box (VCL rect.) in screen coordinates. */ - virtual AbsoluteScreenPixelRectangle implGetBoundingBoxOnScreen() override; - - // internal helper methods - - /** @return TRUE, if the objects is a header bar for rows. */ - inline bool isRowBar() const; - /** @return TRUE, if the objects is a header bar for columns. */ - inline bool isColumnBar() const; -}; - -// inlines - -inline bool AccessibleGridControlHeader::isRowBar() const -{ - return getType() == ::vcl::table::AccessibleTableControlObjType::ROWHEADERBAR; -} - -inline bool AccessibleGridControlHeader::isColumnBar() const -{ - return getType() == ::vcl::table::AccessibleTableControlObjType::COLUMNHEADERBAR; -} - - -} // namespace accessibility - - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/accessibility/AccessibleGridControlHeaderCell.hxx b/vcl/inc/accessibility/AccessibleGridControlHeaderCell.hxx deleted file mode 100644 index cd59894b92bb..000000000000 --- a/vcl/inc/accessibility/AccessibleGridControlHeaderCell.hxx +++ /dev/null @@ -1,79 +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 <accessibility/AccessibleGridControlTableCell.hxx> - -namespace accessibility -{ - class AccessibleGridControlHeaderCell final : public AccessibleGridControlCell, public css::accessibility::XAccessible - { - sal_Int32 m_nColumnRowId; - public: - AccessibleGridControlHeaderCell(sal_Int32 _nColumnRowId, - const css::uno::Reference< css::accessibility::XAccessible >& rxParent, - ::vcl::table::IAccessibleTable& _rTable, - ::vcl::table::AccessibleTableControlObjType _eObjType); - /** @return The count of visible children. */ - virtual sal_Int64 SAL_CALL getAccessibleChildCount() override; - - /** @return The XAccessible interface of the specified child. */ - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL - getAccessibleChild( sal_Int64 nChildIndex ) override; - - /** @return The index of this object among the parent's children. */ - virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override; - - /** Grabs the focus to the GridControl. */ - virtual void SAL_CALL grabFocus() override; - - // XInterface - - /** Queries for a new interface. */ - css::uno::Any SAL_CALL queryInterface( const css::uno::Type& rType ) override; - - /** Acquires the object (calls acquire() on base class). */ - virtual void SAL_CALL acquire() noexcept override; - - /** Releases the object (calls release() on base class). */ - virtual void SAL_CALL release() noexcept override; - // XAccessible - - /** @return The XAccessibleContext interface of this object. */ - virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL - getAccessibleContext() override; - - /** @return - The name of this class. - */ - virtual OUString SAL_CALL getImplementationName() override; - - /** Return a bitset of states of the current object. - */ - sal_Int64 implCreateStateSet() override; - - private: - virtual tools::Rectangle implGetBoundingBox() override; - - virtual AbsoluteScreenPixelRectangle implGetBoundingBoxOnScreen() override; - }; -} - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/accessibility/AccessibleGridControlTable.hxx b/vcl/inc/accessibility/AccessibleGridControlTable.hxx deleted file mode 100644 index 5c043f8860a9..000000000000 --- a/vcl/inc/accessibility/AccessibleGridControlTable.hxx +++ /dev/null @@ -1,172 +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 <accessibility/AccessibleGridControlTableBase.hxx> -#include <cppuhelper/implbase1.hxx> -#include <com/sun/star/accessibility/XAccessibleSelection.hpp> -#include <accessibility/AccessibleGridControlTableCell.hxx> - - -namespace accessibility { - - -typedef ::cppu::ImplHelper1 < css::accessibility::XAccessibleSelection > - AccessibleGridControlTableSelectionImplHelper; -/** This class represents the accessible object of the data table of a - Grid control. */ -class AccessibleGridControlTable final : public AccessibleGridControlTableBase, - public AccessibleGridControlTableSelectionImplHelper -{ -public: - AccessibleGridControlTable( - const css::uno::Reference< css::accessibility::XAccessible >& rxParent, - ::vcl::table::IAccessibleTable& rTable); - -private: - virtual ~AccessibleGridControlTable() override = default; - std::vector< rtl::Reference<AccessibleGridControlTableCell> > m_aCellVector; -public: - // XAccessibleContext - - /** @return The XAccessible interface of the specified child. */ - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL - getAccessibleChild( sal_Int64 nChildIndex ) override; - - /** @return The index of this object among the parent's children. */ - virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override; - - // XAccessibleComponent - - /** @return The accessible child rendered under the given point. */ - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL - getAccessibleAtPoint( const css::awt::Point& rPoint ) override; - - /** Grabs the focus to (the current cell of) the data table. */ - virtual void SAL_CALL grabFocus() override; - - // XAccessibleTable - - /** @return The description text of the specified row. */ - virtual OUString SAL_CALL getAccessibleRowDescription( sal_Int32 nRow ) override; - - /** @return The description text of the specified column. */ - virtual OUString SAL_CALL getAccessibleColumnDescription( sal_Int32 nColumn ) override; - - /** @return The XAccessibleTable interface of the row header bar. */ - virtual css::uno::Reference< css::accessibility::XAccessibleTable > SAL_CALL - getAccessibleRowHeaders() override; - - /** @return The XAccessibleTable interface of the column header bar. */ - virtual css::uno::Reference< css::accessibility::XAccessibleTable > SAL_CALL - getAccessibleColumnHeaders() override; - - /** @return An index list of completely selected rows. */ - virtual css::uno::Sequence< sal_Int32 > SAL_CALL - getSelectedAccessibleRows() override; - - /** @return An index list of completely selected columns. */ - virtual css::uno::Sequence< sal_Int32 > SAL_CALL - getSelectedAccessibleColumns() override; - - /** @return TRUE, if the specified row is completely selected. */ - virtual sal_Bool SAL_CALL isAccessibleRowSelected( sal_Int32 nRow ) override; - - /** @return TRUE, if the specified column is completely selected. */ - virtual sal_Bool SAL_CALL isAccessibleColumnSelected( sal_Int32 nColumn ) override; - - /** @return The XAccessible interface of the cell object at the specified - cell position. */ - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL - getAccessibleCellAt( sal_Int32 nRow, sal_Int32 nColumn ) override; - - /** @return TRUE, if the specified cell is selected. */ - virtual sal_Bool SAL_CALL isAccessibleSelected( sal_Int32 nRow, sal_Int32 nColumn ) override; - - // XAccessibleSelection - - /** Selects the specified child (row or column of the table). */ - virtual void SAL_CALL selectAccessibleChild( sal_Int64 nChildIndex ) override; - - /** @return TRUE, if the specified child (row/column) is selected. */ - virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int64 nChildIndex ) override; - - /** Clears the complete selection. */ - virtual void SAL_CALL clearAccessibleSelection() override; - - /** Selects all children or first, if multiselection is not supported. */ - virtual void SAL_CALL selectAllAccessibleChildren() override; - - /** @return The number of selected rows/columns. */ - virtual sal_Int64 SAL_CALL getSelectedAccessibleChildCount() override; - - /** @return The specified selected row/column. */ - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL - getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex ) override; - - /** Removes the specified row/column from the selection. */ - virtual void SAL_CALL deselectAccessibleChild( sal_Int64 nSelectedChildIndex ) override; - // XInterface - - /** Queries for a new interface. */ - css::uno::Any SAL_CALL queryInterface( const css::uno::Type& rType ) override; - - /** Acquires the object (calls acquire() on base class). */ - virtual void SAL_CALL acquire() noexcept override; - - /** Releases the object (calls release() on base class). */ - virtual void SAL_CALL release() noexcept override; - // XServiceInfo - - /** @return The name of this class. */ - virtual OUString SAL_CALL getImplementationName() override; - - // XComponent - virtual void SAL_CALL dispose() override; - - virtual void commitEvent(sal_Int16 nEventId, const css::uno::Any& rNewValue, - const css::uno::Any& rOldValue) override; - -private: - // internal virtual methods - - /** @attention This method requires locked mutex's and a living object. - @return The bounding box (VCL rect.) relative to the parent window. */ - virtual tools::Rectangle implGetBoundingBox() override; - ///** @attention This method requires locked mutex's and a living object. - // @return The bounding box (VCL rect.) in screen coordinates. */ - virtual AbsoluteScreenPixelRectangle implGetBoundingBoxOnScreen() override; - - - //// internal helper methods - ///** @attention This method requires a locked mutex. - // @return The XAccessibleTable interface of the specified header bar. */ - /// @throws css::uno::RuntimeException - css::uno::Reference< css::accessibility::XAccessibleTable > - implGetHeaderBar( sal_Int32 nChildIndex ); -}; - - -} // namespace accessibility - - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/accessibility/AccessibleGridControlTableBase.hxx b/vcl/inc/accessibility/AccessibleGridControlTableBase.hxx deleted file mode 100644 index 53ca49307e6b..000000000000 --- a/vcl/inc/accessibility/AccessibleGridControlTableBase.hxx +++ /dev/null @@ -1,155 +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 <accessibility/AccessibleGridControlBase.hxx> -#include <cppuhelper/implbase1.hxx> -#include <com/sun/star/accessibility/XAccessibleTable.hpp> - - -namespace accessibility { - -typedef cppu::ImplInheritanceHelper<GridControlAccessibleElement, css::accessibility::XAccessibleTable> - AccessibleGridControlTableImplHelper; - -/** The Grid Control accessible table objects inherit from this base class. It - implements basic functionality for the XAccessibleTable interface. - Grid COntrol table objects are: the data table, the column header bar and the - row header bar. */ -class AccessibleGridControlTableBase : - public AccessibleGridControlTableImplHelper -{ -public: - /** Constructor sets specified name and description. - @param rxParent XAccessible interface of the parent object. - @param rTable The Table control. - @param eObjType Type of table control object */ - AccessibleGridControlTableBase( - const css::uno::Reference< css::accessibility::XAccessible >& rxParent, - ::vcl::table::IAccessibleTable& rTable, - ::vcl::table::AccessibleTableControlObjType eObjType ); - -protected: - virtual ~AccessibleGridControlTableBase() override = default; - -public: - // XAccessibleContext - - /** @return The count of visible children. */ - virtual sal_Int64 SAL_CALL getAccessibleChildCount() override; - - /** @return The role of this object (a table). */ - virtual sal_Int16 SAL_CALL getAccessibleRole() override; - - /* Derived classes have to implement: - - getAccessibleChild, - - getAccessibleIndexInParent. */ - - // XAccessibleComponent - - /* Derived classes have to implement: - - getAccessibleAt, - - grabFocus. */ - - // XAccessibleTable - - /** @return The number of used rows in the table (0 = empty table). */ - virtual sal_Int32 SAL_CALL getAccessibleRowCount() override; - - /** @return The number of used columns in the table (0 = empty table). */ - virtual sal_Int32 SAL_CALL getAccessibleColumnCount() override; - - /** @return The row extent of the specified cell (always 1). */ - virtual sal_Int32 SAL_CALL - getAccessibleRowExtentAt( sal_Int32 nRow, sal_Int32 nColumn ) override; - - /** @return The column extent of the specified cell (always 1). */ - virtual sal_Int32 SAL_CALL - getAccessibleColumnExtentAt( sal_Int32 nRow, sal_Int32 nColumn ) override; - - /** @return The caption cell of the table (not supported). */ - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL - getAccessibleCaption() override; - - /** @return The summary object of the table (not supported). */ - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL - getAccessibleSummary() override; - - /** @return The child index of the specified cell. */ - virtual sal_Int64 SAL_CALL getAccessibleIndex( sal_Int32 nRow, sal_Int32 nColumn ) override; - - /** @return The row index of the specified child cell. */ - virtual sal_Int32 SAL_CALL getAccessibleRow( sal_Int64 nChildIndex ) override; - - /** @return The column index of the specified child cell. */ - virtual sal_Int32 SAL_CALL getAccessibleColumn( sal_Int64 nChildIndex ) override; - - /* Derived classes have to implement: - - getAccessibleRowDescription, - - getAccessibleColumnDescription, - - getAccessibleRowHeaders, - - getAccessibleColumnHeaders, - - getSelectedAccessibleRows, - - getSelectedAccessibleColumns, - - isAccessibleRowSelected, - - isAccessibleColumnSelected, - - getAccessibleCellAt, - - isAccessibleSelected. */ - -protected: - // internal helper methods - - /** @attention This method requires locked mutex's and a living object. - @return The row index of the specified cell index. */ - sal_Int32 implGetRow( sal_Int64 nChildIndex ); - /** @attention This method requires locked mutex's and a living object. - @return The column index of the specified cell index. */ - sal_Int32 implGetColumn( sal_Int64 nChildIndex ); - - /** Fills a sequence with sorted indexes of completely selected rows. - @attention This method requires locked mutex's and a living object. - @param rSeq Out-parameter that takes the sorted row index list. */ - void implGetSelectedRows( css::uno::Sequence< sal_Int32 >& rSeq ); - - /** @attention This method requires locked mutex's and a living object. - @throws <type>IndexOutOfBoundsException</type> - If the specified row index is invalid. */ - void ensureIsValidRow( sal_Int32 nRow ); - /** @attention This method requires locked mutex's and a living object. - @throws <type>IndexOutOfBoundsException</type> - If the specified column index is invalid. */ - void ensureIsValidColumn( sal_Int32 nColumn ); - /** @attention This method requires locked mutex's and a living object. - @throws <type>IndexOutOfBoundsException</type> - If the specified cell address is invalid. */ - void ensureIsValidAddress( sal_Int32 nRow, sal_Int32 nColumn ); - /** @attention This method requires locked mutex's and a living object. - @throws <type>IndexOutOfBoundsException</type> - If the specified child index is invalid. */ - void ensureIsValidIndex( sal_Int64 nChildIndex ); -}; - - -} // namespace accessibility - - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/accessibility/AccessibleGridControlTableCell.hxx b/vcl/inc/accessibility/AccessibleGridControlTableCell.hxx deleted file mode 100644 index 7d9053932a36..000000000000 --- a/vcl/inc/accessibility/AccessibleGridControlTableCell.hxx +++ /dev/null @@ -1,147 +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 <comphelper/accessibletexthelper.hxx> -#include <cppuhelper/implbase2.hxx> -#include <accessibility/AccessibleGridControlBase.hxx> -#include <vcl/accessibletable.hxx> -#include <com/sun/star/accessibility/AccessibleScrollType.hpp> - -namespace accessibility -{ - class AccessibleGridControlCell : public AccessibleGridControlBase - { - private: - sal_Int32 m_nRowPos; // the row number of the table cell - sal_Int32 m_nColPos; // the column id of the table cell - - protected: - // attribute access - sal_Int32 getRowPos( ) const { return m_nRowPos; } - sal_Int32 getColumnPos( ) const { return m_nColPos; } - - // XAccessibleComponent - virtual void SAL_CALL grabFocus() override; - - public: - // XAccessibleContext - virtual OUString SAL_CALL getAccessibleName() override; - - protected: - AccessibleGridControlCell( - const css::uno::Reference< css::accessibility::XAccessible >& _rxParent, - ::vcl::table::IAccessibleTable& _rTable, - sal_Int32 _nRowPos, - sal_uInt16 _nColPos, - ::vcl::table::AccessibleTableControlObjType _eType - ); - - virtual ~AccessibleGridControlCell() override = default; - - private: - AccessibleGridControlCell( const AccessibleGridControlCell& ) = delete; - AccessibleGridControlCell& operator=( const AccessibleGridControlCell& ) = delete; - }; - - typedef ::cppu::ImplHelper2 < css::accessibility::XAccessibleText - , css::accessibility::XAccessible - > AccessibleTextHelper_BASE; - // implementation of a table cell of GridControl - class AccessibleGridControlTableCell final :public AccessibleGridControlCell - ,public AccessibleTextHelper_BASE - ,public ::comphelper::OCommonAccessibleText - { - private: - // OCommonAccessibleText - virtual OUString implGetText() override; - virtual css::lang::Locale implGetLocale() override; - virtual void implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex ) override final; - virtual tools::Rectangle implGetBoundingBox() override; - virtual AbsoluteScreenPixelRectangle implGetBoundingBoxOnScreen() override; - - public: - AccessibleGridControlTableCell( const css::uno::Reference< css::accessibility::XAccessible >& _rxParent, - ::vcl::table::IAccessibleTable& _rTable, - sal_Int32 _nRowId, - sal_uInt16 _nColId); - - // XInterface ------------------------------------------------------------- - - /** Queries for a new interface. */ - css::uno::Any SAL_CALL queryInterface( const css::uno::Type& rType ) override; - - /** Acquires the object (calls acquire() on base class). */ - virtual void SAL_CALL acquire() noexcept override; - - /** Releases the object (calls release() on base class). */ - virtual void SAL_CALL release() noexcept override; - - /** @return The index of this object among the parent's children. */ - virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override; - - /** @return - The name of this class. - */ - virtual OUString SAL_CALL getImplementationName() override; - - /** @return - The count of visible children. - */ - virtual sal_Int64 SAL_CALL getAccessibleChildCount() override; - - /** @return - The XAccessible interface of the specified child. - */ - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL - getAccessibleChild( sal_Int64 nChildIndex ) override; - - /** Return a bitset of states of the current object. - */ - sal_Int64 implCreateStateSet() override; - - // XAccessible ------------------------------------------------------------ - - /** @return The XAccessibleContext interface of this object. */ - virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL - getAccessibleContext() override; - - // XAccessibleText - virtual sal_Int32 SAL_CALL getCaretPosition() override; - virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) override; - virtual sal_Unicode SAL_CALL getCharacter( sal_Int32 nIndex ) override; - virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL getCharacterAttributes( sal_Int32 nIndex, const css::uno::Sequence< OUString >& aRequestedAttributes ) override; - virtual css::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) override; - virtual sal_Int32 SAL_CALL getCharacterCount() override; - virtual sal_Int32 SAL_CALL getIndexAtPoint( const css::awt::Point& aPoint ) override; - virtual OUString SAL_CALL getSelectedText() override; - virtual sal_Int32 SAL_CALL getSelectionStart() override; - virtual sal_Int32 SAL_CALL getSelectionEnd() override; - virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) override; - virtual OUString SAL_CALL getText() override; - virtual OUString SAL_CALL getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) override; - virtual css::accessibility::TextSegment SAL_CALL getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) override; - virtual css::accessibility::TextSegment SAL_CALL getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) override; - virtual css::accessibility::TextSegment SAL_CALL getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) override; - virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) override; - virtual sal_Bool SAL_CALL scrollSubstringTo( sal_Int32 nStartIndex, sal_Int32 nEndIndex, css::accessibility::AccessibleScrollType aScrollType) override; - }; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/accessibility/AccessibleIconView.hxx b/vcl/inc/accessibility/AccessibleIconView.hxx index 5accfbdfe4c5..a128af5009e4 100644 --- a/vcl/inc/accessibility/AccessibleIconView.hxx +++ b/vcl/inc/accessibility/AccessibleIconView.hxx @@ -13,8 +13,6 @@ #include "accessiblelistbox.hxx" -namespace accessibility -{ class AccessibleIconView final : public AccessibleListBox { public: @@ -25,6 +23,5 @@ protected: // VCLXAccessibleComponent virtual void ProcessWindowEvent(const VclWindowEvent& rVclWindowEvent) override; }; -} // namespace accessibility /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/vcl/inc/accessibility/IComboListBoxHelper.hxx b/vcl/inc/accessibility/IComboListBoxHelper.hxx index 43d30aadab74..46cda9f9adad 100644 --- a/vcl/inc/accessibility/IComboListBoxHelper.hxx +++ b/vcl/inc/accessibility/IComboListBoxHelper.hxx @@ -32,38 +32,36 @@ class AbsoluteScreenPixelRectangle; class Point; namespace tools { class Rectangle; } namespace vcl { class Window; } -namespace accessibility + +class IComboListBoxHelper { - class IComboListBoxHelper - { - public: - virtual ~IComboListBoxHelper() = 0; +public: + virtual ~IComboListBoxHelper() = 0; - virtual OUString GetEntry( sal_Int32 nPos ) const = 0; - virtual tools::Rectangle GetDropDownPosSizePixel( ) const = 0; - virtual tools::Rectangle GetBoundingRectangle( sal_uInt16 nItem ) const = 0; - virtual AbsoluteScreenPixelRectangle GetWindowExtentsAbsolute() = 0; - virtual bool IsEnabled() const = 0; - virtual bool IsEntryVisible( sal_Int32 nPos ) const = 0; - virtual sal_uInt16 GetDisplayLineCount() const = 0; - virtual void GetMaxVisColumnsAndLines( sal_uInt16& rnCols, sal_uInt16& rnLines ) const = 0; - virtual WinBits GetStyle() const = 0; - virtual bool IsMultiSelectionEnabled() const = 0; - virtual sal_Int32 GetTopEntry() const = 0; - virtual bool IsEntryPosSelected( sal_Int32 nPos ) const = 0; - virtual sal_Int32 GetEntryCount() const = 0; - virtual void Select() = 0; - virtual void SelectEntryPos( sal_Int32 nPos, bool bSelect = true ) = 0; - virtual sal_Int32 GetSelectedEntryCount() const = 0; - virtual void SetNoSelection() = 0; - virtual sal_Int32 GetSelectedEntryPos( sal_Int32 nSelIndex ) const = 0; - virtual bool IsInDropDown() const = 0; - virtual tools::Rectangle GetEntryCharacterBounds( const sal_Int32 _nEntryPos, const sal_Int32 _nCharacterIndex ) const = 0; - virtual tools::Long GetIndexForPoint( const Point& rPoint, sal_Int32 & nPos ) const = 0; - virtual css::uno::Reference< css::datatransfer::clipboard::XClipboard > - GetClipboard() = 0; - }; -} + virtual OUString GetEntry( sal_Int32 nPos ) const = 0; + virtual tools::Rectangle GetDropDownPosSizePixel( ) const = 0; + virtual tools::Rectangle GetBoundingRectangle( sal_uInt16 nItem ) const = 0; + virtual AbsoluteScreenPixelRectangle GetWindowExtentsAbsolute() = 0; + virtual bool IsEnabled() const = 0; + virtual bool IsEntryVisible( sal_Int32 nPos ) const = 0; + virtual sal_uInt16 GetDisplayLineCount() const = 0; + virtual void GetMaxVisColumnsAndLines( sal_uInt16& rnCols, sal_uInt16& rnLines ) const = 0; + virtual WinBits GetStyle() const = 0; + virtual bool IsMultiSelectionEnabled() const = 0; + virtual sal_Int32 GetTopEntry() const = 0; + virtual bool IsEntryPosSelected( sal_Int32 nPos ) const = 0; + virtual sal_Int32 GetEntryCount() const = 0; + virtual void Select() = 0; + virtual void SelectEntryPos( sal_Int32 nPos, bool bSelect = true ) = 0; + virtual sal_Int32 GetSelectedEntryCount() const = 0; + virtual void SetNoSelection() = 0; + virtual sal_Int32 GetSelectedEntryPos( sal_Int32 nSelIndex ) const = 0; + virtual bool IsInDropDown() const = 0; + virtual tools::Rectangle GetEntryCharacterBounds( const sal_Int32 _nEntryPos, const sal_Int32 _nCharacterIndex ) const = 0; + virtual tools::Long GetIndexForPoint( const Point& rPoint, sal_Int32 & nPos ) const = 0; + virtual css::uno::Reference< css::datatransfer::clipboard::XClipboard > + GetClipboard() = 0; +}; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/accessibility/accessiblebrowseboxcell.hxx b/vcl/inc/accessibility/accessiblebrowseboxcell.hxx index c209619dce6c..7cf98875df04 100644 --- a/vcl/inc/accessibility/accessiblebrowseboxcell.hxx +++ b/vcl/inc/accessibility/accessiblebrowseboxcell.hxx @@ -22,53 +22,45 @@ #include <accessibility/AccessibleBrowseBoxBase.hxx> #include <vcl/AccessibleBrowseBoxObjType.hxx> -namespace accessibility -{ - - - // = AccessibleBrowseBoxCell - - /** common accessibility-functionality for browse box elements which occupy a cell - */ - class AccessibleBrowseBoxCell : public AccessibleBrowseBoxBase - { - private: - sal_Int32 m_nRowPos; // the row number of the table cell - sal_uInt16 m_nColPos; // the column id of the table cell - - protected: - // attribute access - sal_Int32 getRowPos( ) const { return m_nRowPos; } - sal_Int32 getColumnPos( ) const { return m_nColPos; } - - protected: - // AccessibleBrowseBoxBase overridables - virtual tools::Rectangle implGetBoundingBox() override; - virtual AbsoluteScreenPixelRectangle implGetBoundingBoxOnScreen() override; - - // XAccessibleComponent - virtual void SAL_CALL grabFocus() override; - - protected: - AccessibleBrowseBoxCell( - const css::uno::Reference< css::accessibility::XAccessible >& _rxParent, - ::vcl::IAccessibleTableProvider& _rBrowseBox, - const css::uno::Reference< css::awt::XWindow >& _xFocusWindow, - sal_Int32 _nRowPos, - sal_uInt16 _nColPos, - AccessibleBrowseBoxObjType _eType = AccessibleBrowseBoxObjType::TableCell - ); - - virtual ~AccessibleBrowseBoxCell() override; - - private: - AccessibleBrowseBoxCell( const AccessibleBrowseBoxCell& ) = delete; - AccessibleBrowseBoxCell& operator=( const AccessibleBrowseBoxCell& ) = delete; - }; - - -} // namespace accessibility +// = AccessibleBrowseBoxCell +/** common accessibility-functionality for browse box elements which occupy a cell +*/ +class AccessibleBrowseBoxCell : public AccessibleBrowseBoxBase +{ +private: + sal_Int32 m_nRowPos; // the row number of the table cell + sal_uInt16 m_nColPos; // the column id of the table cell + +protected: + // attribute access + sal_Int32 getRowPos( ) const { return m_nRowPos; } + sal_Int32 getColumnPos( ) const { return m_nColPos; } + +protected: + // AccessibleBrowseBoxBase overridables + virtual tools::Rectangle implGetBoundingBox() override; + virtual AbsoluteScreenPixelRectangle implGetBoundingBoxOnScreen() override; + + // XAccessibleComponent + virtual void SAL_CALL grabFocus() override; + +protected: + AccessibleBrowseBoxCell( + const css::uno::Reference< css::accessibility::XAccessible >& _rxParent, + ::vcl::IAccessibleTableProvider& _rBrowseBox, + const css::uno::Reference< css::awt::XWindow >& _xFocusWindow, + sal_Int32 _nRowPos, + sal_uInt16 _nColPos, + AccessibleBrowseBoxObjType _eType = AccessibleBrowseBoxObjType::TableCell + ); + + virtual ~AccessibleBrowseBoxCell() override; + +private: + AccessibleBrowseBoxCell( const AccessibleBrowseBoxCell& ) = delete; + AccessibleBrowseBoxCell& operator=( const AccessibleBrowseBoxCell& ) = delete; +}; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/accessibility/accessibleeditbrowseboxcell.hxx b/vcl/inc/accessibility/accessibleeditbrowseboxcell.hxx index b137eace05cc..cb4d424bb72c 100644 --- a/vcl/inc/accessibility/accessibleeditbrowseboxcell.hxx +++ b/vcl/inc/accessibility/accessibleeditbrowseboxcell.hxx @@ -23,109 +23,105 @@ #include <comphelper/compbase.hxx> #include <comphelper/accessiblewrapper.hxx> -namespace accessibility + +// = EditBrowseBoxTableCell + +class EditBrowseBoxTableCell final : public AccessibleBrowseBoxCell + ,public ::comphelper::OAccessibleContextWrapperHelper { +public: + EditBrowseBoxTableCell( + const css::uno::Reference< css::accessibility::XAccessible >& _rxParent, + const css::uno::Reference< css::accessibility::XAccessible >& _rxOwningAccessible, + const css::uno::Reference< css::accessibility::XAccessibleContext >& _xControlChild, + ::vcl::IAccessibleTableProvider& _rBrowseBox, + const css::uno::Reference< css::awt::XWindow >& _xFocusWindow, + sal_Int32 _nRowPos, + sal_uInt16 _nColPos + ); + +private: + virtual ~EditBrowseBoxTableCell() override; + + // XAccessibleComponent + virtual sal_Int32 SAL_CALL getForeground( ) override ; + virtual sal_Int32 SAL_CALL getBackground( ) override ; + + // XServiceInfo + virtual OUString SAL_CALL getImplementationName() override; + + // XInterface + DECLARE_XINTERFACE( ) + // XTypeProvider + DECLARE_XTYPEPROVIDER( ) + + // XAccessibleContext + virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) override; + virtual OUString SAL_CALL getAccessibleDescription( ) override; + virtual OUString SAL_CALL getAccessibleName( ) override; + virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) override; + virtual sal_Int64 SAL_CALL getAccessibleStateSet( ) override; + + sal_Int16 SAL_CALL getAccessibleRole() override; - // = EditBrowseBoxTableCell - - class EditBrowseBoxTableCell final : public AccessibleBrowseBoxCell - ,public ::comphelper::OAccessibleContextWrapperHelper - { - public: - EditBrowseBoxTableCell( - const css::uno::Reference< css::accessibility::XAccessible >& _rxParent, - const css::uno::Reference< css::accessibility::XAccessible >& _rxOwningAccessible, - const css::uno::Reference< css::accessibility::XAccessibleContext >& _xControlChild, - ::vcl::IAccessibleTableProvider& _rBrowseBox, - const css::uno::Reference< css::awt::XWindow >& _xFocusWindow, - sal_Int32 _nRowPos, - sal_uInt16 _nColPos - ); - - private: - virtual ~EditBrowseBoxTableCell() override; - - // XAccessibleComponent - virtual sal_Int32 SAL_CALL getForeground( ) override ; - virtual sal_Int32 SAL_CALL getBackground( ) override ; - - // XServiceInfo - virtual OUString SAL_CALL getImplementationName() override; - - // XInterface - DECLARE_XINTERFACE( ) - // XTypeProvider - DECLARE_XTYPEPROVIDER( ) - - // XAccessibleContext - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) override; - virtual OUString SAL_CALL getAccessibleDescription( ) override; - virtual OUString SAL_CALL getAccessibleName( ) override; - virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) override; - virtual sal_Int64 SAL_CALL getAccessibleStateSet( ) override; - - sal_Int16 SAL_CALL getAccessibleRole() override; - - virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override; - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int64 i ) override; - - virtual void SAL_CALL disposing( const css::lang::EventObject& Source ) override; - - // OComponentHelper - virtual void SAL_CALL disposing() override; - - // XComponent/OComponentProxyAggregationHelper (needs to be disambiguated) - virtual void SAL_CALL dispose() final override; - - // OAccessibleContextWrapperHelper(); - void notifyTranslatedEvent( const css::accessibility::AccessibleEventObject& _rEvent ) override; - - EditBrowseBoxTableCell( const EditBrowseBoxTableCell& ) = delete; - EditBrowseBoxTableCell& operator=( const EditBrowseBoxTableCell& ) = delete; - }; - - - // = EditBrowseBoxTableCell - - // XAccessible providing an EditBrowseBoxTableCell - class EditBrowseBoxTableCellAccess final : - public comphelper::WeakComponentImplHelper<css::accessibility::XAccessible> - { - css::uno::WeakReference< css::accessibility::XAccessibleContext > - m_aContext; - css::uno::Reference< css::accessibility::XAccessible > - m_xParent; - css::uno::Reference< css::accessibility::XAccessible > - m_xControlAccessible; - css::uno::Reference< css::awt::XWindow > - m_xFocusWindow; - ::vcl::IAccessibleTableProvider* m_pBrowseBox; - sal_Int32 m_nRowPos; - sal_uInt16 m_nColPos; - - public: - EditBrowseBoxTableCellAccess( - css::uno::Reference< css::accessibility::XAccessible > _xParent, - css::uno::Reference< css::accessibility::XAccessible > _xControlAccessible, - css::uno::Reference< css::awt::XWindow > _xFocusWindow, - ::vcl::IAccessibleTableProvider& _rBrowseBox, - sal_Int32 _nRowPos, - sal_uInt16 _nColPos - ); - - private: - virtual ~EditBrowseBoxTableCellAccess() override; - - // XAccessible - virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override; - - // XComponent/WeakComponentImplHelper - virtual void disposing(std::unique_lock<std::mutex>&) override; - - EditBrowseBoxTableCellAccess( const EditBrowseBoxTableCellAccess& ) = delete; - EditBrowseBoxTableCellAccess& operator=( const EditBrowseBoxTableCellAccess& ) = delete; - }; -} + virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override; + virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int64 i ) override; + virtual void SAL_CALL disposing( const css::lang::EventObject& Source ) override; + + // OComponentHelper + virtual void SAL_CALL disposing() override; + + // XComponent/OComponentProxyAggregationHelper (needs to be disambiguated) + virtual void SAL_CALL dispose() final override; + + // OAccessibleContextWrapperHelper(); + void notifyTranslatedEvent( const css::accessibility::AccessibleEventObject& _rEvent ) override; + + EditBrowseBoxTableCell( const EditBrowseBoxTableCell& ) = delete; + EditBrowseBoxTableCell& operator=( const EditBrowseBoxTableCell& ) = delete; +}; + + +// = EditBrowseBoxTableCell + +// XAccessible providing an EditBrowseBoxTableCell +class EditBrowseBoxTableCellAccess final : + public comphelper::WeakComponentImplHelper<css::accessibility::XAccessible> +{ + css::uno::WeakReference< css::accessibility::XAccessibleContext > + m_aContext; + css::uno::Reference< css::accessibility::XAccessible > + m_xParent; + css::uno::Reference< css::accessibility::XAccessible > + m_xControlAccessible; + css::uno::Reference< css::awt::XWindow > + m_xFocusWindow; + ::vcl::IAccessibleTableProvider* m_pBrowseBox; + sal_Int32 m_nRowPos; + sal_uInt16 m_nColPos; + +public: + EditBrowseBoxTableCellAccess( + css::uno::Reference< css::accessibility::XAccessible > _xParent, + css::uno::Reference< css::accessibility::XAccessible > _xControlAccessible, + css::uno::Reference< css::awt::XWindow > _xFocusWindow, + ::vcl::IAccessibleTableProvider& _rBrowseBox, + sal_Int32 _nRowPos, + sal_uInt16 _nColPos + ); + +private: + virtual ~EditBrowseBoxTableCellAccess() override; + + // XAccessible + virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override; + + // XComponent/WeakComponentImplHelper + virtual void disposing(std::unique_lock<std::mutex>&) override; + + EditBrowseBoxTableCellAccess( const EditBrowseBoxTableCellAccess& ) = delete; + EditBrowseBoxTableCellAccess& operator=( const EditBrowseBoxTableCellAccess& ) = delete; +}; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/accessibility/accessibleiconchoicectrl.hxx b/vcl/inc/accessibility/accessibleiconchoicectrl.hxx index 8cf4e343670f..7a5f8dd33204 100644 --- a/vcl/inc/accessibility/accessibleiconchoicectrl.hxx +++ b/vcl/inc/accessibility/accessibleiconchoicectrl.hxx @@ -28,67 +28,60 @@ class SvtIconChoiceCtrl; -namespace accessibility +/** the class OAccessibleListBoxEntry represents the base class for an accessible object of a listbox entry +*/ +class AccessibleIconChoiceCtrl final : + public cppu::ImplInheritanceHelper< + VCLXAccessibleComponent, + css::accessibility::XAccessible, + css::accessibility::XAccessibleSelection> { - /** the class OAccessibleListBoxEntry represents the base class for an accessible object of a listbox entry - */ - class AccessibleIconChoiceCtrl final : - public cppu::ImplInheritanceHelper< - VCLXAccessibleComponent, - css::accessibility::XAccessible, - css::accessibility::XAccessibleSelection> - { - css::uno::Reference< css::accessibility::XAccessible > m_xParent; - - virtual ~AccessibleIconChoiceCtrl() override = default; - - /** this function is called upon disposing the component */ - virtual void SAL_CALL disposing() override; - - virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent ) override; - virtual void FillAccessibleStateSet( sal_Int64& rStateSet ) override; - - VclPtr< SvtIconChoiceCtrl > getCtrl() const; + css::uno::Reference< css::accessibility::XAccessible > m_xParent; - public: - /** OAccessibleBase needs a valid view - @param _rIconCtrl - is the box for which we implement an accessible object - @param _xParent - is our parent accessible object - */ - AccessibleIconChoiceCtrl( - SvtIconChoiceCtrl& _rIconCtrl, - const css::uno::Reference<css::accessibility::XAccessible>& _xParent); + virtual ~AccessibleIconChoiceCtrl() override = default; - // XServiceInfo - virtual OUString SAL_CALL getImplementationName() override; - virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override; + /** this function is called upon disposing the component */ + virtual void SAL_CALL disposing() override; - // XAccessible - virtual css::uno::Reference< css::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; - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) override; - virtual sal_Int16 SAL_CALL getAccessibleRole( ) override; - virtual OUString SAL_CALL getAccessibleDescription( ) override; - virtual OUString SAL_CALL getAccessibleName( ) override; - - // XAccessibleSelection - void SAL_CALL selectAccessibleChild( sal_Int64 nChildIndex ) override; - sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int64 nChildIndex ) override; - void SAL_CALL clearAccessibleSelection( ) override; - void SAL_CALL selectAllAccessibleChildren( ) override; - sal_Int64 SAL_CALL getSelectedAccessibleChildCount( ) override; - css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex ) override; - void SAL_CALL deselectAccessibleChild( sal_Int64 nSelectedChildIndex ) override; - }; - - -}// namespace accessibility + virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent ) override; + virtual void FillAccessibleStateSet( sal_Int64& rStateSet ) override; + VclPtr< SvtIconChoiceCtrl > getCtrl() const; +public: + /** OAccessibleBase needs a valid view + @param _rIconCtrl + is the box for which we implement an accessible object + @param _xParent + is our parent accessible object + */ + AccessibleIconChoiceCtrl( + SvtIconChoiceCtrl& _rIconCtrl, + const css::uno::Reference<css::accessibility::XAccessible>& _xParent); + + // XServiceInfo + virtual OUString SAL_CALL getImplementationName() override; + virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override; + + // XAccessible + virtual css::uno::Reference< css::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; + virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) override; + virtual sal_Int16 SAL_CALL getAccessibleRole( ) override; + virtual OUString SAL_CALL getAccessibleDescription( ) override; + virtual OUString SAL_CALL getAccessibleName( ) override; + + // XAccessibleSelection + void SAL_CALL selectAccessibleChild( sal_Int64 nChildIndex ) override; + sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int64 nChildIndex ) override; + void SAL_CALL clearAccessibleSelection( ) override; + void SAL_CALL selectAllAccessibleChildren( ) override; + sal_Int64 SAL_CALL getSelectedAccessibleChildCount( ) override; + css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex ) override; + void SAL_CALL deselectAccessibleChild( sal_Int64 nSelectedChildIndex ) override; +}; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/accessibility/accessibleiconchoicectrlentry.hxx b/vcl/inc/accessibility/accessibleiconchoicectrlentry.hxx index 30ac955caf9c..87e5e1e82db0 100644 --- a/vcl/inc/accessibility/accessibleiconchoicectrlentry.hxx +++ b/vcl/inc/accessibility/accessibleiconchoicectrlentry.hxx @@ -38,127 +38,118 @@ class SvxIconChoiceCtrlEntry; class SvtIconChoiceCtrl; -namespace accessibility +typedef ::cppu::ImplInheritanceHelper< comphelper::OAccessibleComponentHelper + , css::accessibility::XAccessible + , css::accessibility::XAccessibleText + , css::accessibility::XAccessibleAction + , css::lang::XServiceInfo + , css::lang::XEventListener > AccessibleIconChoiceCtrlEntry_BASE; + +/** the class AccessibleListBoxEntry represents the class for an accessible object of a listbox entry */ +class AccessibleIconChoiceCtrlEntry final : public AccessibleIconChoiceCtrlEntry_BASE, + public ::comphelper::OCommonAccessibleText { - - - typedef ::cppu::ImplInheritanceHelper< comphelper::OAccessibleComponentHelper - , css::accessibility::XAccessible - , css::accessibility::XAccessibleText - , css::accessibility::XAccessibleAction - , css::lang::XServiceInfo - , css::lang::XEventListener > AccessibleIconChoiceCtrlEntry_BASE; - - /** the class AccessibleListBoxEntry represents the class for an accessible object of a listbox entry */ - class AccessibleIconChoiceCtrlEntry final : public AccessibleIconChoiceCtrlEntry_BASE, - public ::comphelper::OCommonAccessibleText - { - /** The treelistbox control */ - VclPtr<SvtIconChoiceCtrl> m_pIconCtrl; - sal_Int32 m_nIndex; - - css::uno::Reference< css::accessibility::XAccessible > m_xParent; - - tools::Rectangle GetBoundingBox_Impl() const; - AbsoluteScreenPixelRectangle GetBoundingBoxOnScreen_Impl() const; - bool IsAlive_Impl() const; - bool IsShowing_Impl() const; - - /// @throws css::lang::DisposedException - /// @throws css::uno::RuntimeException - AbsoluteScreenPixelRectangle GetBoundingBoxOnScreen(); - /// @throws css::lang::DisposedException - void EnsureIsAlive() const; - - virtual ~AccessibleIconChoiceCtrlEntry() override; - /** this function is called upon disposing the component - */ - virtual void SAL_CALL disposing() override; - - // OCommonAccessibleComponent - virtual css::awt::Rectangle implGetBounds() override; - - // OCommonAccessibleText - virtual OUString implGetText() override; - virtual css::lang::Locale implGetLocale() override; - virtual void implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex ) override final; - - public: - /** Ctor() - @param _rIconCtrl - the icon control - @param _nPos - the entry number - @param _xParent - is our parent accessible object - */ - AccessibleIconChoiceCtrlEntry( SvtIconChoiceCtrl& _rIconCtrl, - sal_Int32 _nPos, - const css::uno::Reference< css::accessibility::XAccessible >& _xParent ); - - // XTypeProvider - virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override; - - // XServiceInfo - virtual OUString SAL_CALL getImplementationName() override; - virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override; - virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override; - - // XEventListener - virtual void SAL_CALL disposing( const css::lang::EventObject& Source ) override; - - // XAccessible - virtual css::uno::Reference< css::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; - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) override; - virtual sal_Int64 SAL_CALL getAccessibleIndexInParent( ) override; - virtual sal_Int16 SAL_CALL getAccessibleRole( ) override; - virtual OUString SAL_CALL getAccessibleDescription( ) override; - virtual OUString SAL_CALL getAccessibleName( ) override; - virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) override; - virtual sal_Int64 SAL_CALL getAccessibleStateSet( ) override; - virtual css::lang::Locale SAL_CALL getLocale( ) override; - - // XAccessibleComponent - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) override; - virtual css::awt::Point SAL_CALL getLocationOnScreen( ) override; - virtual void SAL_CALL grabFocus( ) override; - virtual sal_Int32 SAL_CALL getForeground( ) override; - virtual sal_Int32 SAL_CALL getBackground( ) override; - - // XAccessibleText - virtual sal_Int32 SAL_CALL getCaretPosition() override; - virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) override; - virtual sal_Unicode SAL_CALL getCharacter( sal_Int32 nIndex ) override; - virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL getCharacterAttributes( sal_Int32 nIndex, const css::uno::Sequence< OUString >& aRequestedAttributes ) override; - virtual css::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) override; - virtual sal_Int32 SAL_CALL getCharacterCount() override; - virtual sal_Int32 SAL_CALL getIndexAtPoint( const css::awt::Point& aPoint ) override; - virtual OUString SAL_CALL getSelectedText() override; - virtual sal_Int32 SAL_CALL getSelectionStart() override; - virtual sal_Int32 SAL_CALL getSelectionEnd() override; - virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) override; - virtual OUString SAL_CALL getText() override; - virtual OUString SAL_CALL getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) override; - virtual css::accessibility::TextSegment SAL_CALL getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) override; - virtual css::accessibility::TextSegment SAL_CALL getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) override; - virtual css::accessibility::TextSegment SAL_CALL getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) override; - virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) override; - virtual sal_Bool SAL_CALL scrollSubstringTo( sal_Int32 nStartIndex, sal_Int32 nEndIndex, css::accessibility::AccessibleScrollType aScrollType) override; - - // XAccessibleAction - virtual sal_Int32 SAL_CALL getAccessibleActionCount( ) override; - virtual sal_Bool SAL_CALL doAccessibleAction( sal_Int32 nIndex ) override; - virtual OUString SAL_CALL getAccessibleActionDescription( sal_Int32 nIndex ) override; - virtual css::uno::Reference< css::accessibility::XAccessibleKeyBinding > SAL_CALL getAccessibleActionKeyBinding( sal_Int32 nIndex ) override; - }; - - -}// namespace accessibility - - + /** The treelistbox control */ + VclPtr<SvtIconChoiceCtrl> m_pIconCtrl; + sal_Int32 m_nIndex; + + css::uno::Reference< css::accessibility::XAccessible > m_xParent; + + tools::Rectangle GetBoundingBox_Impl() const; + AbsoluteScreenPixelRectangle GetBoundingBoxOnScreen_Impl() const; + bool IsAlive_Impl() const; + bool IsShowing_Impl() const; + + /// @throws css::lang::DisposedException + /// @throws css::uno::RuntimeException + AbsoluteScreenPixelRectangle GetBoundingBoxOnScreen(); + /// @throws css::lang::DisposedException + void EnsureIsAlive() const; + + virtual ~AccessibleIconChoiceCtrlEntry() override; + /** this function is called upon disposing the component + */ + virtual void SAL_CALL disposing() override; + + // OCommonAccessibleComponent + virtual css::awt::Rectangle implGetBounds() override; + + // OCommonAccessibleText + virtual OUString implGetText() override; + virtual css::lang::Locale implGetLocale() override; + virtual void implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex ) override final; + +public: + /** Ctor() + @param _rIconCtrl + the icon control + @param _nPos + the entry number + @param _xParent + is our parent accessible object + */ + AccessibleIconChoiceCtrlEntry( SvtIconChoiceCtrl& _rIconCtrl, + sal_Int32 _nPos, + const css::uno::Reference< css::accessibility::XAccessible >& _xParent ); + + // XTypeProvider + virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override; + + // XServiceInfo + virtual OUString SAL_CALL getImplementationName() override; + virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override; + virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override; + + // XEventListener + virtual void SAL_CALL disposing( const css::lang::EventObject& Source ) override; + + // XAccessible + virtual css::uno::Reference< css::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; + virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) override; + virtual sal_Int64 SAL_CALL getAccessibleIndexInParent( ) override; + virtual sal_Int16 SAL_CALL getAccessibleRole( ) override; + virtual OUString SAL_CALL getAccessibleDescription( ) override; + virtual OUString SAL_CALL getAccessibleName( ) override; + virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) override; + virtual sal_Int64 SAL_CALL getAccessibleStateSet( ) override; + virtual css::lang::Locale SAL_CALL getLocale( ) override; + + // XAccessibleComponent + virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) override; + virtual css::awt::Point SAL_CALL getLocationOnScreen( ) override; + virtual void SAL_CALL grabFocus( ) override; + virtual sal_Int32 SAL_CALL getForeground( ) override; + virtual sal_Int32 SAL_CALL getBackground( ) override; + + // XAccessibleText + virtual sal_Int32 SAL_CALL getCaretPosition() override; + virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) override; + virtual sal_Unicode SAL_CALL getCharacter( sal_Int32 nIndex ) override; + virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL getCharacterAttributes( sal_Int32 nIndex, const css::uno::Sequence< OUString >& aRequestedAttributes ) override; + virtual css::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) override; + virtual sal_Int32 SAL_CALL getCharacterCount() override; + virtual sal_Int32 SAL_CALL getIndexAtPoint( const css::awt::Point& aPoint ) override; + virtual OUString SAL_CALL getSelectedText() override; + virtual sal_Int32 SAL_CALL getSelectionStart() override; + virtual sal_Int32 SAL_CALL getSelectionEnd() override; + virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) override; + virtual OUString SAL_CALL getText() override; + virtual OUString SAL_CALL getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) override; + virtual css::accessibility::TextSegment SAL_CALL getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) override; + virtual css::accessibility::TextSegment SAL_CALL getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) override; + virtual css::accessibility::TextSegment SAL_CALL getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) override; + virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) override; + virtual sal_Bool SAL_CALL scrollSubstringTo( sal_Int32 nStartIndex, sal_Int32 nEndIndex, css::accessibility::AccessibleScrollType aScrollType) override; + + // XAccessibleAction + virtual sal_Int32 SAL_CALL getAccessibleActionCount( ) override; + virtual sal_Bool SAL_CALL doAccessibleAction( sal_Int32 nIndex ) override; + virtual OUString SAL_CALL getAccessibleActionDescription( sal_Int32 nIndex ) override; + virtual css::uno::Reference< css::accessibility::XAccessibleKeyBinding > SAL_CALL getAccessibleActionKeyBinding( sal_Int32 nIndex ) override; +}; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/accessibility/accessiblelistbox.hxx b/vcl/inc/accessibility/accessiblelistbox.hxx index dd7f63c51fd4..746ef60ae006 100644 --- a/vcl/inc/accessibility/accessiblelistbox.hxx +++ b/vcl/inc/accessibility/accessiblelistbox.hxx @@ -28,91 +28,83 @@ // class AccessibleListBox ----------------------------------------------- +class AccessibleListBoxEntry; class SvTreeListBox; class SvTreeListEntry; -namespace accessibility +/** the class OAccessibleListBoxEntry represents the base class for an accessible object of a listbox entry +*/ +class AccessibleListBox : + public cppu::ImplInheritanceHelper< + VCLXAccessibleComponent, + css::accessibility::XAccessible, + css::accessibility::XAccessibleSelection> { - class AccessibleListBoxEntry; - /** the class OAccessibleListBoxEntry represents the base class for an accessible object of a listbox entry - */ - class AccessibleListBox : - public cppu::ImplInheritanceHelper< - VCLXAccessibleComponent, - css::accessibility::XAccessible, - css::accessibility::XAccessibleSelection> - { - - css::uno::Reference< css::accessibility::XAccessible > m_xParent; - // OComponentHelper overridables - /** this function is called upon disposing the component */ - virtual void SAL_CALL disposing() override; - - protected: - // VCLXAccessibleComponent - virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent ) override; - virtual void FillAccessibleStateSet( sal_Int64& rStateSet ) override; - - private: - VclPtr< SvTreeListBox > getListBox() const; + css::uno::Reference< css::accessibility::XAccessible > m_xParent; + // OComponentHelper overridables + /** this function is called upon disposing the component */ + virtual void SAL_CALL disposing() override; - void RemoveChildEntries(SvTreeListEntry*); +protected: + // VCLXAccessibleComponent + virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent ) override; + virtual void FillAccessibleStateSet( sal_Int64& rStateSet ) override; - sal_Int32 GetRoleType() const; +private: + VclPtr< SvTreeListBox > getListBox() const; - public: - /** OAccessibleBase needs a valid view - @param _rListBox - is the box for which we implement an accessible object - @param _xParent - is our parent accessible object - */ - AccessibleListBox(SvTreeListBox& _rListBox, - const css::uno::Reference< css::accessibility::XAccessible >& _xParent ); + void RemoveChildEntries(SvTreeListEntry*); - virtual ~AccessibleListBox() override; + sal_Int32 GetRoleType() const; - rtl::Reference<AccessibleListBoxEntry> implGetAccessible(SvTreeListEntry & rEntry); - - // XServiceInfo - virtual OUString SAL_CALL getImplementationName() override; - virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override; - - // XAccessible - virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override; +public: + /** OAccessibleBase needs a valid view + @param _rListBox + is the box for which we implement an accessible object + @param _xParent + is our parent accessible object + */ + AccessibleListBox(SvTreeListBox& _rListBox, + const css::uno::Reference< css::accessibility::XAccessible >& _xParent ); - // XAccessibleContext - virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override; - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int64 i ) override; - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) override; - virtual sal_Int16 SAL_CALL getAccessibleRole( ) override; - virtual OUString SAL_CALL getAccessibleDescription( ) override; - virtual OUString SAL_CALL getAccessibleName( ) override; + virtual ~AccessibleListBox() override; - // XAccessibleSelection - void SAL_CALL selectAccessibleChild( sal_Int64 nChildIndex ) override; - sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int64 nChildIndex ) override; - void SAL_CALL clearAccessibleSelection( ) override; - void SAL_CALL selectAllAccessibleChildren( ) override; - sal_Int64 SAL_CALL getSelectedAccessibleChildCount( ) override; - css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex ) override; - void SAL_CALL deselectAccessibleChild( sal_Int64 nSelectedChildIndex ) override; + rtl::Reference<AccessibleListBoxEntry> implGetAccessible(SvTreeListEntry & rEntry); - private: + // XServiceInfo + virtual OUString SAL_CALL getImplementationName() override; + virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override; - typedef std::unordered_map<SvTreeListEntry*, rtl::Reference<AccessibleListBoxEntry>> MAP_ENTRY; - MAP_ENTRY m_mapEntry; + // XAccessible + virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override; - rtl::Reference<AccessibleListBoxEntry> m_xFocusedEntry; + // XAccessibleContext + virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override; + virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int64 i ) override; + virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) override; + virtual sal_Int16 SAL_CALL getAccessibleRole( ) override; + virtual OUString SAL_CALL getAccessibleDescription( ) override; + virtual OUString SAL_CALL getAccessibleName( ) override; - accessibility::AccessibleListBoxEntry* GetCurEventEntry( const VclWindowEvent& rVclWindowEvent ); + // XAccessibleSelection + void SAL_CALL selectAccessibleChild( sal_Int64 nChildIndex ) override; + sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int64 nChildIndex ) override; + void SAL_CALL clearAccessibleSelection( ) override; + void SAL_CALL selectAllAccessibleChildren( ) override; + sal_Int64 SAL_CALL getSelectedAccessibleChildCount( ) override; + css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex ) override; + void SAL_CALL deselectAccessibleChild( sal_Int64 nSelectedChildIndex ) override; - }; +private: + typedef std::unordered_map<SvTreeListEntry*, rtl::Reference<AccessibleListBoxEntry>> MAP_ENTRY; + MAP_ENTRY m_mapEntry; -}// namespace accessibility + rtl::Reference<AccessibleListBoxEntry> m_xFocusedEntry; + AccessibleListBoxEntry* GetCurEventEntry( const VclWindowEvent& rVclWindowEvent ); +}; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/accessibility/accessiblelistboxentry.hxx b/vcl/inc/accessibility/accessiblelistboxentry.hxx index 050dc948d9c4..3cafc35055b1 100644 --- a/vcl/inc/accessibility/accessiblelistboxentry.hxx +++ b/vcl/inc/accessibility/accessiblelistboxentry.hxx @@ -45,180 +45,143 @@ namespace com::sun::star::awt { class XFocusListener; } +class AccessibleListBox; class SvTreeListBox; class SvTreeListEntry; - -namespace accessibility -{ - class AccessibleListBox; - // class AccessibleListBoxEntry ------------------------------------------ - typedef ::cppu::WeakComponentImplHelper< css::accessibility::XAccessible - , css::accessibility::XAccessibleContext - , css::accessibility::XAccessibleComponent - , css::accessibility::XAccessibleEventBroadcaster - , css::accessibility::XAccessibleAction - , css::accessibility::XAccessibleSelection - , css::accessibility::XAccessibleText - , css::accessibility::XAccessibleValue - , css::lang::XServiceInfo > AccessibleListBoxEntry_BASE; - - /** the class AccessibleListBoxEntry represents the class for an accessible object of a listbox entry */ - class AccessibleListBoxEntry final : public ::cppu::BaseMutex - ,public AccessibleListBoxEntry_BASE - ,public ::comphelper::OCommonAccessibleText - { - friend class AccessibleListBox; - - private: - VclPtr<SvTreeListBox> m_pTreeListBox; - /** The treelistbox control */ - std::deque< sal_Int32 > m_aEntryPath; - SvTreeListEntry* m_pSvLBoxEntry; // Needed for a11y focused item... - - - /// client id in the AccessibleEventNotifier queue - sal_uInt32 m_nClientId; - - unotools::WeakReference<AccessibleListBox> m_wListBox; - - tools::Rectangle GetBoundingBox_Impl() const; - tools::Rectangle GetBoundingBoxOnScreen_Impl() const; - bool IsAlive_Impl() const; - bool IsShowing_Impl() const; - - /// @throws css::lang::DisposedException - /// @throws css::uno::RuntimeException - tools::Rectangle GetBoundingBox(); - /// @throws css::lang::DisposedException - /// @throws css::uno::RuntimeException - tools::Rectangle GetBoundingBoxOnScreen(); - /// @throws css::lang::IndexOutOfBoundsException - void CheckActionIndex(sal_Int32 nIndex); - /// @throws css::lang::DisposedException - void EnsureIsAlive() const; - - void NotifyAccessibleEvent( sal_Int16 _nEventId, const css::uno::Any& _aOldValue, const css::uno::Any& _aNewValue ); - - virtual ~AccessibleListBoxEntry() override; - - /** this function is called upon disposing the component - */ - virtual void SAL_CALL disposing() override; - - DECL_LINK( WindowEventListener, VclWindowEvent&, void ); - - // OCommonAccessibleText - virtual OUString implGetText() override; - virtual css::lang::Locale implGetLocale() override; - virtual void implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex ) override; - - public: - /** Ctor() - @param _rListBox - the view control - @param rEntry - the entry - @param rListBox - the a11y object for _rListBox - */ - AccessibleListBoxEntry( SvTreeListBox& _rListBox, - SvTreeListEntry& rEntry, - AccessibleListBox & rListBox); - - SvTreeListEntry* GetSvLBoxEntry() const { return m_pSvLBoxEntry; } - - - private: - // XTypeProvider - virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override; - - // XServiceInfo - virtual OUString SAL_CALL getImplementationName() override; - virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override; - virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override; - - // XAccessible - virtual css::uno::Reference< css::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; - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) override; - virtual sal_Int64 SAL_CALL getAccessibleIndexInParent( ) override; - virtual sal_Int16 SAL_CALL getAccessibleRole( ) override; - virtual OUString SAL_CALL getAccessibleDescription( ) override; - virtual OUString SAL_CALL getAccessibleName( ) override; - virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) override; - virtual sal_Int64 SAL_CALL getAccessibleStateSet( ) override; - virtual css::lang::Locale SAL_CALL getLocale( ) override; - - // XAccessibleComponent - virtual sal_Bool SAL_CALL containsPoint( const css::awt::Point& aPoint ) override; - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) override; - virtual css::awt::Rectangle SAL_CALL getBounds( ) override; - virtual css::awt::Point SAL_CALL getLocation( ) override; - virtual css::awt::Point SAL_CALL getLocationOnScreen( ) override; - virtual css::awt::Size SAL_CALL getSize( ) override; - virtual void SAL_CALL grabFocus( ) override; - virtual sal_Int32 SAL_CALL getForeground( ) override; - virtual sal_Int32 SAL_CALL getBackground( ) override; - - // XAccessibleText - virtual sal_Int32 SAL_CALL getCaretPosition() override; - virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) override; - virtual sal_Unicode SAL_CALL getCharacter( sal_Int32 nIndex ) override; - virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL getCharacterAttributes( sal_Int32 nIndex, const css::uno::Sequence< OUString >& aRequestedAttributes ) override; - virtual css::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) override; - virtual sal_Int32 SAL_CALL getCharacterCount() override; - virtual sal_Int32 SAL_CALL getIndexAtPoint( const css::awt::Point& aPoint ) override; - virtual OUString SAL_CALL getSelectedText() override; - virtual sal_Int32 SAL_CALL getSelectionStart() override; - virtual sal_Int32 SAL_CALL getSelectionEnd() override; - virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) override; - virtual OUString SAL_CALL getText() override; - virtual OUString SAL_CALL getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) override; - virtual css::accessibility::TextSegment SAL_CALL getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) override; - virtual css::accessibility::TextSegment SAL_CALL getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) override; - virtual css::accessibility::TextSegment SAL_CALL getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) override; - virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) override; - virtual sal_Bool SAL_CALL scrollSubstringTo( sal_Int32 nStartIndex, sal_Int32 nEndIndex, css::accessibility::AccessibleScrollType aScrollType) override; - - // XAccessibleEventBroadcaster - virtual void SAL_CALL addAccessibleEventListener( const css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener ) override; - virtual void SAL_CALL removeAccessibleEventListener( const css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener ) override; - - // XAccessibleAction - virtual sal_Int32 SAL_CALL getAccessibleActionCount( ) override; - virtual sal_Bool SAL_CALL doAccessibleAction( sal_Int32 nIndex ) override; - virtual OUString SAL_CALL getAccessibleActionDescription( sal_Int32 nIndex ) override; - virtual css::uno::Reference< css::accessibility::XAccessibleKeyBinding > SAL_CALL getAccessibleActionKeyBinding( sal_Int32 nIndex ) override; - - // XAccessibleSelection - void SAL_CALL selectAccessibleChild( sal_Int64 nChildIndex ) override; - sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int64 nChildIndex ) override; - void SAL_CALL clearAccessibleSelection( ) override; - void SAL_CALL selectAllAccessibleChildren( ) override; - sal_Int64 SAL_CALL getSelectedAccessibleChildCount( ) override; - css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex ) override; - void SAL_CALL deselectAccessibleChild( sal_Int64 nSelectedChildIndex ) override; - - // XAccessibleValue - virtual css::uno::Any SAL_CALL getCurrentValue( ) override; - virtual sal_Bool SAL_CALL setCurrentValue( const css::uno::Any& aNumber ) override; - virtual css::uno::Any SAL_CALL getMaximumValue( ) override; - virtual css::uno::Any SAL_CALL getMinimumValue( ) override; - virtual css::uno::Any SAL_CALL getMinimumIncrement( ) override; - - css::uno::Reference< css::accessibility::XAccessible > implGetParentAccessible( ) const; - SvTreeListEntry* GetRealChild(sal_Int32 nIndex); - sal_Int32 GetRoleType() const; - }; - - -}// namespace accessibility - - +typedef cppu::ImplInheritanceHelper<comphelper::OAccessibleComponentHelper + , css::accessibility::XAccessible + , css::accessibility::XAccessibleAction + , css::accessibility::XAccessibleSelection + , css::accessibility::XAccessibleText + , css::accessibility::XAccessibleValue + , css::lang::XServiceInfo > AccessibleListBoxEntry_BASE; + +/** the class AccessibleListBoxEntry represents the class for an accessible object of a listbox entry */ +class AccessibleListBoxEntry final : public AccessibleListBoxEntry_BASE + ,public ::comphelper::OCommonAccessibleText +{ +friend class AccessibleListBox; + +private: + VclPtr<SvTreeListBox> m_pTreeListBox; + /** The treelistbox control */ + std::deque< sal_Int32 > m_aEntryPath; + SvTreeListEntry* m_pSvLBoxEntry; // Needed for a11y focused item... + + unotools::WeakReference<AccessibleListBox> m_wListBox; + + tools::Rectangle GetBoundingBox_Impl() const; + bool IsAlive_Impl() const; + bool IsShowing_Impl() const; + + /// @throws css::lang::IndexOutOfBoundsException + void CheckActionIndex(sal_Int32 nIndex); + /// @throws css::lang::DisposedException + void EnsureIsAlive() const; + + /** this function is called upon disposing the component + */ + virtual void SAL_CALL disposing() override; + + DECL_LINK( WindowEventListener, VclWindowEvent&, void ); + + // OCommonAccessibleText + virtual OUString implGetText() override; + virtual css::lang::Locale implGetLocale() override; + virtual void implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex ) override; + +public: + /** Ctor() + @param _rListBox + the view control + @param rEntry + the entry + @param rListBox + the a11y object for _rListBox + */ + AccessibleListBoxEntry( SvTreeListBox& _rListBox, + SvTreeListEntry& rEntry, + AccessibleListBox & rListBox); + + SvTreeListEntry* GetSvLBoxEntry() const { return m_pSvLBoxEntry; } + +protected: + virtual css::awt::Rectangle implGetBounds() override; + +private: + // XServiceInfo + virtual OUString SAL_CALL getImplementationName() override; + virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override; + virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override; + + // XAccessible + virtual css::uno::Reference< css::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; + virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) override; + virtual sal_Int64 SAL_CALL getAccessibleIndexInParent( ) override; + virtual sal_Int16 SAL_CALL getAccessibleRole( ) override; + virtual OUString SAL_CALL getAccessibleDescription( ) override; + virtual OUString SAL_CALL getAccessibleName( ) override; + virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) override; + virtual sal_Int64 SAL_CALL getAccessibleStateSet( ) override; + virtual css::lang::Locale SAL_CALL getLocale( ) override; + + // XAccessibleComponent + virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) override; + virtual void SAL_CALL grabFocus( ) override; + virtual sal_Int32 SAL_CALL getForeground( ) override; + virtual sal_Int32 SAL_CALL getBackground( ) override; + + // XAccessibleText + virtual sal_Int32 SAL_CALL getCaretPosition() override; + virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) override; + virtual sal_Unicode SAL_CALL getCharacter( sal_Int32 nIndex ) override; + virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL getCharacterAttributes( sal_Int32 nIndex, const css::uno::Sequence< OUString >& aRequestedAttributes ) override; + virtual css::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) override; + virtual sal_Int32 SAL_CALL getCharacterCount() override; + virtual sal_Int32 SAL_CALL getIndexAtPoint( const css::awt::Point& aPoint ) override; + virtual OUString SAL_CALL getSelectedText() override; + virtual sal_Int32 SAL_CALL getSelectionStart() override; + virtual sal_Int32 SAL_CALL getSelectionEnd() override; + virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) override; + virtual OUString SAL_CALL getText() override; + virtual OUString SAL_CALL getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) override; + virtual css::accessibility::TextSegment SAL_CALL getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) override; + virtual css::accessibility::TextSegment SAL_CALL getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) override; + virtual css::accessibility::TextSegment SAL_CALL getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) override; + virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) override; + virtual sal_Bool SAL_CALL scrollSubstringTo( sal_Int32 nStartIndex, sal_Int32 nEndIndex, css::accessibility::AccessibleScrollType aScrollType) override; + + // XAccessibleAction + virtual sal_Int32 SAL_CALL getAccessibleActionCount( ) override; + virtual sal_Bool SAL_CALL doAccessibleAction( sal_Int32 nIndex ) override; + virtual OUString SAL_CALL getAccessibleActionDescription( sal_Int32 nIndex ) override; + virtual css::uno::Reference< css::accessibility::XAccessibleKeyBinding > SAL_CALL getAccessibleActionKeyBinding( sal_Int32 nIndex ) override; + + // XAccessibleSelection + void SAL_CALL selectAccessibleChild( sal_Int64 nChildIndex ) override; + sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int64 nChildIndex ) override; + void SAL_CALL clearAccessibleSelection( ) override; + void SAL_CALL selectAllAccessibleChildren( ) override; + sal_Int64 SAL_CALL getSelectedAccessibleChildCount( ) override; + css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex ) override; + void SAL_CALL deselectAccessibleChild( sal_Int64 nSelectedChildIndex ) override; + + // XAccessibleValue + virtual css::uno::Any SAL_CALL getCurrentValue( ) override; + virtual sal_Bool SAL_CALL setCurrentValue( const css::uno::Any& aNumber ) override; + virtual css::uno::Any SAL_CALL getMaximumValue( ) override; + virtual css::uno::Any SAL_CALL getMinimumValue( ) override; + virtual css::uno::Any SAL_CALL getMinimumIncrement( ) override; + + css::uno::Reference< css::accessibility::XAccessible > implGetParentAccessible( ) const; + SvTreeListEntry* GetRealChild(sal_Int32 nIndex); + sal_Int32 GetRoleType() const; +}; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/accessibility/accessibletablistbox.hxx b/vcl/inc/accessibility/accessibletablistbox.hxx index ebd532a55bca..3edd331b3f6c 100644 --- a/vcl/inc/accessibility/accessibletablistbox.hxx +++ b/vcl/inc/accessibility/accessibletablistbox.hxx @@ -23,21 +23,12 @@ #include <cppuhelper/implbase1.hxx> #include <vcl/accessibletableprovider.hxx> -class SvHeaderTabListBox; - - -namespace accessibility { - class AccessibleBrowseBoxTable; - -typedef ::cppu::ImplHelper1 < css::accessibility::XAccessible - > AccessibleTabListBox_Base; +class SvHeaderTabListBox; /** !!! */ class AccessibleTabListBox final - :public AccessibleBrowseBox - ,public AccessibleTabListBox_Base - ,public ::vcl::IAccessibleTabListBox + : public cppu::ImplInheritanceHelper<AccessibleBrowseBox, css::accessibility::XAccessible> { private: VclPtr<SvHeaderTabListBox> m_pTabListBox; @@ -50,11 +41,6 @@ public: const css::uno::Reference< css::accessibility::XAccessible >& rxParent, SvHeaderTabListBox& rBox ); - // XInterface - DECLARE_XINTERFACE( ) - // XTypeProvider - DECLARE_XTYPEPROVIDER( ) - // XAccessibleContext ----------------------------------------------------- /** @return The count of visible children. */ @@ -67,24 +53,12 @@ public: // XAccessibleContext css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext() override; - // IAccessibleTabListBox - virtual css::uno::Reference< css::accessibility::XAccessible > - getMyself() override - { - return this; - } - css::uno::Reference< css::accessibility::XAccessible > - getHeaderBar() override + getHeaderBar() { return AccessibleBrowseBox::getHeaderBar( AccessibleBrowseBoxObjType::ColumnHeaderBar ); } - css::uno::Reference<css::accessibility::XAccessible> getTable() override - { - return implGetTable(); - } - private: /** dtor() */ virtual ~AccessibleTabListBox() override; @@ -94,9 +68,4 @@ private: virtual rtl::Reference<AccessibleBrowseBoxTable> createAccessibleTable() override; }; - -} // namespace accessibility - - - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/accessibility/accessibletablistboxtable.hxx b/vcl/inc/accessibility/accessibletablistboxtable.hxx index ec36d413acbe..40650afe0fec 100644 --- a/vcl/inc/accessibility/accessibletablistboxtable.hxx +++ b/vcl/inc/accessibility/accessibletablistboxtable.hxx @@ -26,13 +26,9 @@ class SvHeaderTabListBox; - -namespace accessibility { - -typedef ::cppu::ImplHelper1< css::accessibility::XAccessibleSelection > - AccessibleTabListBoxTableImplHelper; - -class AccessibleTabListBoxTable final : public AccessibleBrowseBoxTable, public AccessibleTabListBoxTableImplHelper +class AccessibleTabListBoxTable final + : public cppu::ImplInheritanceHelper<AccessibleBrowseBoxTable, + css::accessibility::XAccessibleSelection> { private: VclPtr<SvHeaderTabListBox> m_pTabListBox; @@ -81,12 +77,6 @@ private: virtual ~AccessibleTabListBoxTable() override; public: - // XInterface - DECLARE_XINTERFACE( ) - - // XTypeProvider - DECLARE_XTYPEPROVIDER( ) - // XServiceInfo virtual OUString SAL_CALL getImplementationName() override; @@ -100,9 +90,4 @@ public: void SAL_CALL deselectAccessibleChild( sal_Int64 nSelectedChildIndex ) override; }; - -} // namespace accessibility - - - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/accessibility/listboxhelper.hxx b/vcl/inc/accessibility/listboxhelper.hxx index af9c301fcaf8..5fd43e6eedd1 100644 --- a/vcl/inc/accessibility/listboxhelper.hxx +++ b/vcl/inc/accessibility/listboxhelper.hxx @@ -32,7 +32,7 @@ const sal_Int32 DEFAULT_INDEX_IN_PARENT = -1; -template< class T > class VCLListBoxHelper final : public ::accessibility::IComboListBoxHelper +template< class T > class VCLListBoxHelper final : public IComboListBoxHelper { private: T& m_aComboListBox; diff --git a/vcl/inc/accessibility/textwindowaccessibility.hxx b/vcl/inc/accessibility/textwindowaccessibility.hxx index 1a6fa921bb7d..e13215970c79 100644 --- a/vcl/inc/accessibility/textwindowaccessibility.hxx +++ b/vcl/inc/accessibility/textwindowaccessibility.hxx @@ -47,9 +47,6 @@ class TextEngine; class TextView; -namespace accessibility -{ - class Document; class SfxListenerGuard @@ -114,21 +111,19 @@ private: typedef std::vector< ParagraphInfo > Paragraphs; -typedef ::cppu::WeakComponentImplHelper< +typedef cppu::ImplInheritanceHelper< + comphelper::OAccessibleComponentHelper, css::accessibility::XAccessible, - css::accessibility::XAccessibleContext, - css::accessibility::XAccessibleComponent, css::accessibility::XAccessibleEditableText, css::accessibility::XAccessibleMultiLineText, - css::accessibility::XAccessibleTextAttributes, - css::accessibility::XAccessibleEventBroadcaster > ParagraphBase; + css::accessibility::XAccessibleTextAttributes> ParagraphBase; // The Paragraph's number is the absolute position within the text engine (from // 0 to N - 1), whereas the Paragraph's index is the position within the text // view/accessible parent (from 0 to M - 1). Paragraphs outside the currently // visible range have an index of -1. -class Paragraph final: - private cppu::BaseMutex, public ParagraphBase, private ::comphelper::OCommonAccessibleText +class Paragraph final + : public ParagraphBase, private ::comphelper::OCommonAccessibleText { public: Paragraph(::rtl::Reference< Document > xDocument, @@ -148,6 +143,9 @@ public: css::uno::Any const & rNewValue); private: + // OAccessibleComponentHelper + virtual css::awt::Rectangle implGetBounds() override; + // OCommonAccessibleText virtual void implGetParagraphBoundary( const OUString& rText, css::i18n::Boundary& rBoundary, @@ -183,19 +181,9 @@ private: virtual css::lang::Locale SAL_CALL getLocale() override; - virtual sal_Bool SAL_CALL containsPoint(css::awt::Point const & rPoint) override; - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint(css::awt::Point const & rPoint) override; - virtual css::awt::Rectangle SAL_CALL getBounds() override; - - virtual css::awt::Point SAL_CALL getLocation() override; - - virtual css::awt::Point SAL_CALL getLocationOnScreen() override; - - virtual css::awt::Size SAL_CALL getSize() override; - virtual void SAL_CALL grabFocus() override; virtual sal_Int32 SAL_CALL getForeground() override; @@ -278,16 +266,6 @@ private: virtual ::sal_Int32 SAL_CALL getNumberOfLineWithCaret( ) override; - virtual void SAL_CALL addAccessibleEventListener( - css::uno::Reference< - css::accessibility::XAccessibleEventListener > const & rListener) override; - - virtual void SAL_CALL removeAccessibleEventListener( - css::uno::Reference< - css::accessibility::XAccessibleEventListener > const & rListener) override; - - virtual void SAL_CALL disposing() override; - virtual OUString implGetText() override; virtual css::lang::Locale implGetLocale() override; @@ -295,15 +273,9 @@ private: virtual void implGetSelection(::sal_Int32 & rStartIndex, ::sal_Int32 & rEndIndex) override; - // Throws css::lang::DisposedException: - void checkDisposed(); - ::rtl::Reference< Document > m_xDocument; Paragraphs::size_type m_nNumber; - /// client id in the AccessibleEventNotifier queue - sal_uInt32 m_nClientId; - OUString m_aParagraphText; }; @@ -570,7 +542,4 @@ private: bool m_bInParagraphNotificationsHandler = false; }; -} - - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/accessibility/vclxaccessiblelist.hxx b/vcl/inc/accessibility/vclxaccessiblelist.hxx index b0389c06692c..54a214021632 100644 --- a/vcl/inc/accessibility/vclxaccessiblelist.hxx +++ b/vcl/inc/accessibility/vclxaccessiblelist.hxx @@ -25,14 +25,9 @@ #include <cppuhelper/implbase.hxx> #include <vcl/accessibility/vclxaccessiblecomponent.hxx> +class IComboListBoxHelper; class VCLXAccessibleListItem; -namespace accessibility -{ - class IComboListBoxHelper; -} - - /** Base class for the list contained in list- and combo boxes. This class does not support selection because lists of combo boxes give no direct access to their underlying list implementation. Look into derived @@ -111,10 +106,10 @@ public: void UpdateSelection_Impl_Acc (bool b_IsDropDownList); static void NotifyListItem(css::uno::Any const & val); - ::accessibility::IComboListBoxHelper* getListBoxHelper() { return m_pListBoxHelper.get(); } + IComboListBoxHelper* getListBoxHelper() { return m_pListBoxHelper.get(); } private: BoxType m_aBoxType; - std::unique_ptr<::accessibility::IComboListBoxHelper> m_pListBoxHelper; + std::unique_ptr<IComboListBoxHelper> m_pListBoxHelper; std::vector<rtl::Reference<VCLXAccessibleListItem>> m_aAccessibleChildren; sal_Int32 m_nVisibleLineCount; /// Index in parent. This is settable from the outside. diff --git a/vcl/inc/headless/svpinst.hxx b/vcl/inc/headless/svpinst.hxx index f3d9205a8981..2edd71dd78c7 100644 --- a/vcl/inc/headless/svpinst.hxx +++ b/vcl/inc/headless/svpinst.hxx @@ -136,12 +136,19 @@ public: // VirtualDevice // nDX and nDY in Pixel - // nBitCount: 0 == Default(=as window) / 1 == Mono + SAL_DLLPRIVATE virtual std::unique_ptr<SalVirtualDevice> + CreateVirtualDevice( SalGraphics& rGraphics, + tools::Long nDX, tools::Long nDY, + DeviceFormat eFormat ) override; + + // VirtualDevice + // nDX and nDY in Pixel // pData allows for using a system dependent graphics or device context SAL_DLLPRIVATE virtual std::unique_ptr<SalVirtualDevice> CreateVirtualDevice( SalGraphics& rGraphics, tools::Long &nDX, tools::Long &nDY, - DeviceFormat eFormat, const SystemGraphicsData *pData = nullptr ) override; + DeviceFormat eFormat, + const SystemGraphicsData& rData ) override; // Printer // pSetupData->mpDriverData can be 0 diff --git a/vcl/inc/hyperlabel.hxx b/vcl/inc/hyperlabel.hxx index 6415742616fb..fa69d30f83f1 100644 --- a/vcl/inc/hyperlabel.hxx +++ b/vcl/inc/hyperlabel.hxx @@ -32,8 +32,6 @@ namespace vcl virtual void GetFocus() override; virtual void LoseFocus() override; - void implInit(); - using FixedText::CalcMinimumSize; public: diff --git a/vcl/inc/impgraph.hxx b/vcl/inc/impgraph.hxx index cad519c87e5c..3d93621e9978 100644 --- a/vcl/inc/impgraph.hxx +++ b/vcl/inc/impgraph.hxx @@ -40,7 +40,7 @@ struct ImpSwapInfo bool mbIsAlpha; sal_uInt32 mnAnimationLoopCount; - sal_Int32 mnPageIndex; + sal_Int32 mnPageIndex = -1; }; class OutputDevice; diff --git a/vcl/inc/ios/iosinst.hxx b/vcl/inc/ios/iosinst.hxx index 63182bcd0c0a..aef3ea79c2d2 100644 --- a/vcl/inc/ios/iosinst.hxx +++ b/vcl/inc/ios/iosinst.hxx @@ -41,9 +41,6 @@ public: SalSystem* CreateSalSystem() override; - css::uno::Reference<css::uno::XInterface> - CreateClipboard(const css::uno::Sequence<css::uno::Any>& i_rArguments) override; - void GetWorkArea(AbsoluteScreenPixelRectangle& rRect); SalFrame* CreateFrame(SalFrame* pParent, SalFrameStyleFlags nStyle) override; SalFrame* CreateChildFrame(SystemParentData* pParent, SalFrameStyleFlags nStyle) override; diff --git a/vcl/inc/osx/salframeview.h b/vcl/inc/osx/salframeview.h index 287ccaedbc06..52459ea99cde 100644 --- a/vcl/inc/osx/salframeview.h +++ b/vcl/inc/osx/salframeview.h @@ -112,6 +112,9 @@ enum class SalEvent; NSAttributedString* mpLastMarkedText; BOOL mbTextInputWantsNonRepeatKeyDown; NSTrackingArea* mpLastTrackingArea; + + NSTimeInterval mfLastScrollEventTime; + NSEventModifierFlags mnLastScrollModifierFlags; } +(void)unsetMouseFrame: (AquaSalFrame*)pFrame; -(id)initWithSalFrame: (AquaSalFrame*)pFrame; diff --git a/vcl/inc/osx/salinst.h b/vcl/inc/osx/salinst.h index 8811fa3c9c72..dbc9066d373d 100644 --- a/vcl/inc/osx/salinst.h +++ b/vcl/inc/osx/salinst.h @@ -108,9 +108,13 @@ public: virtual void DestroyObject( SalObject* pObject ) override; virtual std::unique_ptr<SalVirtualDevice> CreateVirtualDevice( SalGraphics& rGraphics, + tools::Long nDX, tools::Long nDY, + DeviceFormat eFormat ) override; + virtual std::unique_ptr<SalVirtualDevice> + CreateVirtualDevice( SalGraphics& rGraphics, tools::Long &nDX, tools::Long &nDY, DeviceFormat eFormat, - const SystemGraphicsData *pData = nullptr ) override; + const SystemGraphicsData& rData ) override; virtual SalInfoPrinter* CreateInfoPrinter( SalPrinterQueueInfo* pQueueInfo, ImplJobSetup* pSetupData ) override; virtual void DestroyInfoPrinter( SalInfoPrinter* pPrinter ) override; diff --git a/vcl/inc/pdf/COSWriter.hxx b/vcl/inc/pdf/COSWriter.hxx index 627aa30b780d..18b8ccdeedcb 100644 --- a/vcl/inc/pdf/COSWriter.hxx +++ b/vcl/inc/pdf/COSWriter.hxx @@ -117,6 +117,12 @@ public: mrBuffer.append(")"); } + void writeKeyAndLiteral(std::string_view key, std::string_view value) + { + mrBuffer.append(key); + writeLiteral(value); + } + void writeLiteralEncrypt(std::u16string_view value, sal_Int32 nObject, rtl_TextEncoding nEncoding = RTL_TEXTENCODING_ASCII_US); diff --git a/vcl/inc/pdf/XmpMetadata.hxx b/vcl/inc/pdf/XmpMetadata.hxx index 452ad7f85267..a7cf5a223ff8 100644 --- a/vcl/inc/pdf/XmpMetadata.hxx +++ b/vcl/inc/pdf/XmpMetadata.hxx @@ -46,7 +46,7 @@ public: OString m_sCreateDate; sal_Int32 mnPDF_A = 0; - bool mbPDF_UA = false; + sal_Int32 mnPDF_UA = 0; public: XmpMetadata(); diff --git a/vcl/inc/pdf/pdfwriter_impl.hxx b/vcl/inc/pdf/pdfwriter_impl.hxx index 2d931ba729f8..1500ecba0e1d 100644 --- a/vcl/inc/pdf/pdfwriter_impl.hxx +++ b/vcl/inc/pdf/pdfwriter_impl.hxx @@ -835,6 +835,8 @@ private: ::comphelper::Hash m_DocDigest; + std::unordered_map<std::string_view, sal_Int32> m_aNamespacesMap; + // reduce repeated allocations OStringBuffer updateGraphicsStateLine{256}; OStringBuffer drawBitmapLine{80}; @@ -890,7 +892,10 @@ private: /* writes an XObject of type image, may create a second for the mask */ - bool writeBitmapObject( const BitmapEmit& rObject, bool bMask = false ); + bool writeBitmapObject( const BitmapEmit& rObject ); + /* writes an XObject of type mask image + */ + bool writeBitmapMaskObject( const BitmapEmit& rObject ); void writeJPG( const JPGEmit& rEmit ); /// Writes the form XObject proxy for the image. @@ -989,6 +994,8 @@ private: //check if internal dummy container are needed in the structure elements void addInternalStructureContainer( PDFStructureElement& rEle ); //<---i94258 + // writes namespaces + void emitNamespaces(); // writes document structure sal_Int32 emitStructure( PDFStructureElement& rEle ); // writes structure parent tree diff --git a/vcl/inc/qt5/QtBuilder.hxx b/vcl/inc/qt5/QtBuilder.hxx index bb5ba7ad6278..f5a33571fbd8 100644 --- a/vcl/inc/qt5/QtBuilder.hxx +++ b/vcl/inc/qt5/QtBuilder.hxx @@ -20,6 +20,7 @@ #include <QtWidgets/QMessageBox> #include <QtWidgets/QPushButton> #include <QtWidgets/QSlider> +#include <QtWidgets/QToolButton> #include <rtl/ustring.hxx> #include <unotools/resmgr.hxx> @@ -96,8 +97,10 @@ private: // remove pOldWidget from the widget hierarchy and set (child widget) pNewWidget in its place static void replaceWidget(QWidget* pOldWidget, QWidget* pNewWidget); static void setProperties(QObject* obj, stringmap& rProps); - void setButtonProperties(QPushButton& rButton, stringmap& rProps); + void setButtonProperties(QAbstractButton& rButton, stringmap& rProps); + static void setEntryProperties(QLineEdit& rLineEdit, stringmap& rProps); static void setLabelProperties(QLabel& rLabel, stringmap& rProps); + void setMenuButtonProperties(QToolButton& rButton, stringmap& rProps); void setScaleProperties(QSlider& rSlider, stringmap& rProps); void setSpinButtonProperties(QDoubleSpinBox& rSpinBox, stringmap& rProps); static QWidget* windowForObject(QObject* pObject); diff --git a/vcl/inc/qt5/QtInstance.hxx b/vcl/inc/qt5/QtInstance.hxx index cf2cec53f762..90c32bf06bd5 100644 --- a/vcl/inc/qt5/QtInstance.hxx +++ b/vcl/inc/qt5/QtInstance.hxx @@ -124,9 +124,13 @@ public: bool bShow) override; virtual void DestroyObject(SalObject* pObject) override; + virtual std::unique_ptr<SalVirtualDevice> CreateVirtualDevice(SalGraphics& rGraphics, + tools::Long nDX, tools::Long nDY, + DeviceFormat eFormat) override; + virtual std::unique_ptr<SalVirtualDevice> CreateVirtualDevice(SalGraphics& rGraphics, tools::Long& nDX, tools::Long& nDY, - DeviceFormat eFormat, const SystemGraphicsData* pData = nullptr) override; + DeviceFormat eFormat, const SystemGraphicsData& rData) override; virtual SalInfoPrinter* CreateInfoPrinter(SalPrinterQueueInfo* pQueueInfo, ImplJobSetup* pSetupData) override; diff --git a/vcl/inc/qt5/QtInstanceBox.hxx b/vcl/inc/qt5/QtInstanceBox.hxx new file mode 100644 index 000000000000..68ac5f22807b --- /dev/null +++ b/vcl/inc/qt5/QtInstanceBox.hxx @@ -0,0 +1,25 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * 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/. + */ + +#pragma once + +#include "QtInstanceContainer.hxx" + +class QtInstanceBox : public QtInstanceContainer, public virtual weld::Box +{ + Q_OBJECT + +public: + QtInstanceBox(QWidget* pWidget); + + virtual void reorder_child(weld::Widget* pWidget, int nPosition) override; + virtual void sort_native_button_order() override; +}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/vcl/inc/qt5/QtInstanceBuilder.hxx b/vcl/inc/qt5/QtInstanceBuilder.hxx index 340d332a86e0..8b1051a4a3f0 100644 --- a/vcl/inc/qt5/QtInstanceBuilder.hxx +++ b/vcl/inc/qt5/QtInstanceBuilder.hxx @@ -35,7 +35,7 @@ public: virtual std::unique_ptr<weld::Window> create_screenshot_window() override; virtual std::unique_ptr<weld::Widget> weld_widget(const OUString& rId) override; virtual std::unique_ptr<weld::Container> weld_container(const OUString& rId) override; - virtual std::unique_ptr<weld::Box> weld_box(const OUString&) override; + virtual std::unique_ptr<weld::Box> weld_box(const OUString& rId) override; virtual std::unique_ptr<weld::Grid> weld_grid(const OUString& rId) override; virtual std::unique_ptr<weld::Paned> weld_paned(const OUString&) override; virtual std::unique_ptr<weld::Frame> weld_frame(const OUString& rId) override; diff --git a/vcl/inc/qt5/QtInstanceMenuButton.hxx b/vcl/inc/qt5/QtInstanceMenuButton.hxx index 5e472b24d183..52b8af9c1839 100644 --- a/vcl/inc/qt5/QtInstanceMenuButton.hxx +++ b/vcl/inc/qt5/QtInstanceMenuButton.hxx @@ -18,6 +18,7 @@ class QtInstanceMenuButton : public QtInstanceToggleButton, public virtual weld: Q_OBJECT QToolButton* m_pToolButton; + QWidget* m_pPopover; public: QtInstanceMenuButton(QToolButton* pButton); @@ -26,7 +27,7 @@ public: const OUString* pIconName, VirtualDevice* pImageSurface, TriState eCheckRadioFalse) override; - virtual void insert_separator(int pos, const OUString& rId) override; + virtual void insert_separator(int nPos, const OUString& rId) override; virtual void remove_item(const OUString& rId) override; virtual void clear() override; virtual void set_item_sensitive(const OUString& rIdent, bool bSensitive) override; @@ -40,8 +41,10 @@ public: private: QMenu& getMenu() const; QAction* getAction(const OUString& rIdent) const; + void insertAction(QAction* pAction, int nPos); private Q_SLOTS: + void handleButtonClicked(); void handleMenuItemTriggered(QAction* pAction); }; diff --git a/vcl/inc/qt5/QtInstanceMessageDialog.hxx b/vcl/inc/qt5/QtInstanceMessageDialog.hxx index f8430e98a609..f016eb8b1b7a 100644 --- a/vcl/inc/qt5/QtInstanceMessageDialog.hxx +++ b/vcl/inc/qt5/QtInstanceMessageDialog.hxx @@ -44,7 +44,7 @@ public: private: void positionExtraControlsContainer(); - virtual QPushButton* buttonForResponseCode(int nResponse); + QPushButton* buttonForResponseCode(int nResponse); protected slots: virtual void dialogFinished(int nResult) override; diff --git a/vcl/inc/qt5/QtInstanceScrolledWindow.hxx b/vcl/inc/qt5/QtInstanceScrolledWindow.hxx index 5cebe1a597cd..16ffe5b4c727 100644 --- a/vcl/inc/qt5/QtInstanceScrolledWindow.hxx +++ b/vcl/inc/qt5/QtInstanceScrolledWindow.hxx @@ -27,8 +27,8 @@ public: virtual css::uno::Reference<css::awt::XWindow> CreateChildFrame() override; virtual void child_grab_focus() override; - virtual void hadjustment_configure(int value, int lower, int upper, int step_increment, - int page_increment, int page_size) override; + virtual void hadjustment_configure(int nValue, int nLower, int nUpper, int nStepIncrement, + int nPageIncrement, int nPageSize) override; virtual int hadjustment_get_value() const override; virtual void hadjustment_set_value(int nValue) override; virtual int hadjustment_get_upper() const override; @@ -40,8 +40,8 @@ public: virtual void set_hpolicy(VclPolicyType eHPolicy) override; virtual VclPolicyType get_hpolicy() const override; - virtual void vadjustment_configure(int value, int lower, int upper, int step_increment, - int page_increment, int page_size) override; + virtual void vadjustment_configure(int nValue, int nLower, int nUpper, int nStepIncrement, + int nPageIncrement, int nPageSize) override; virtual int vadjustment_get_value() const override; virtual void vadjustment_set_value(int nValue) override; virtual int vadjustment_get_upper() const override; diff --git a/vcl/inc/qt5/QtInstanceToggleButton.hxx b/vcl/inc/qt5/QtInstanceToggleButton.hxx index 1f7566c4cd5f..c7da7454f4d6 100644 --- a/vcl/inc/qt5/QtInstanceToggleButton.hxx +++ b/vcl/inc/qt5/QtInstanceToggleButton.hxx @@ -25,6 +25,9 @@ public: virtual void set_inconsistent(bool bInconsistent) override; virtual bool get_inconsistent() const override; + +private Q_SLOTS: + void signalToggled(); }; /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/vcl/inc/qt5/QtInstanceWidget.hxx b/vcl/inc/qt5/QtInstanceWidget.hxx index d20812f998c4..d2bc8823ecd4 100644 --- a/vcl/inc/qt5/QtInstanceWidget.hxx +++ b/vcl/inc/qt5/QtInstanceWidget.hxx @@ -168,6 +168,7 @@ public: virtual void set_highlight_background() override; + void setFontColor(const Color& rFontColor); virtual void set_background(const Color& rBackColor) override; virtual void draw(OutputDevice&, const Point&, const Size&) override; diff --git a/vcl/inc/qt5/QtMenu.hxx b/vcl/inc/qt5/QtMenu.hxx index 8042c67720ba..09cd015463cd 100644 --- a/vcl/inc/qt5/QtMenu.hxx +++ b/vcl/inc/qt5/QtMenu.hxx @@ -72,6 +72,9 @@ private: public: QtMenu(bool bMenuBar); + ~QtMenu(); + + bool eventFilter(QObject* pObject, QEvent* pEvent) override; virtual bool VisibleMenuBar() override; // must return TRUE to actually DISPLAY native menu bars @@ -89,6 +92,8 @@ public: virtual void ShowItem(unsigned nPos, bool bShow) override; virtual void SetItemText(unsigned nPos, SalMenuItem* pSalMenuItem, const OUString& rText) override; + + virtual void SetItemTooltip(SalMenuItem* pSalMenuItem, const OUString& rTooltip) override; virtual void SetItemImage(unsigned nPos, SalMenuItem* pSalMenuItem, const Image& rImage) override; virtual void SetAccelerator(unsigned nPos, SalMenuItem* pSalMenuItem, diff --git a/vcl/inc/qt5/QtVirtualDevice.hxx b/vcl/inc/qt5/QtVirtualDevice.hxx index 0673c03268cf..f20b937d5488 100644 --- a/vcl/inc/qt5/QtVirtualDevice.hxx +++ b/vcl/inc/qt5/QtVirtualDevice.hxx @@ -45,8 +45,6 @@ public: virtual void ReleaseGraphics(SalGraphics* pGraphics) override; virtual bool SetSize(tools::Long nNewDX, tools::Long nNewDY) override; - virtual bool SetSizeUsingBuffer(tools::Long nNewDX, tools::Long nNewDY, - sal_uInt8* pBuffer) override; // SalGeometryProvider virtual tools::Long GetWidth() const override; diff --git a/vcl/inc/qt6/QtInstanceBox.hxx b/vcl/inc/qt6/QtInstanceBox.hxx new file mode 100644 index 000000000000..3917bce997e8 --- /dev/null +++ b/vcl/inc/qt6/QtInstanceBox.hxx @@ -0,0 +1,12 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * 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/. + */ + +#include "../qt5/QtInstanceBox.hxx" + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/vcl/inc/quartz/salvd.h b/vcl/inc/quartz/salvd.h index 939bd041cee1..db953d1ec295 100644 --- a/vcl/inc/quartz/salvd.h +++ b/vcl/inc/quartz/salvd.h @@ -52,7 +52,8 @@ private: void Destroy(); public: - AquaSalVirtualDevice( AquaSalGraphics* pGraphic, tools::Long &nDX, tools::Long &nDY, DeviceFormat eFormat, const SystemGraphicsData *pData ); + AquaSalVirtualDevice( AquaSalGraphics* pGraphic, tools::Long nDX, tools::Long nDY, DeviceFormat eFormat ); + AquaSalVirtualDevice( tools::Long &nDX, tools::Long &nDY, DeviceFormat eFormat, const SystemGraphicsData& rData ); virtual ~AquaSalVirtualDevice() override; virtual SalGraphics* AcquireGraphics() override; diff --git a/vcl/inc/salinst.hxx b/vcl/inc/salinst.hxx index b8549b23fc5f..ee67654830d3 100644 --- a/vcl/inc/salinst.hxx +++ b/vcl/inc/salinst.hxx @@ -106,14 +106,22 @@ public: // VirtualDevice // nDX and nDY in pixels - // nBitCount: 0 == default(=as window) / 1 == mono // pData allows for using a system dependent graphics or device context, // if a system context is passed in nDX and nDY are updated to reflect // its size; otherwise these remain unchanged. virtual std::unique_ptr<SalVirtualDevice> CreateVirtualDevice( SalGraphics& rGraphics, + tools::Long nDX, tools::Long nDY, + DeviceFormat eFormat ) = 0; + + // VirtualDevice + // nDX and nDY in pixels + // pData allows for using a system dependent graphics or device context, + // nDX and nDY are updated to reflect its size; otherwise these remain unchanged. + virtual std::unique_ptr<SalVirtualDevice> + CreateVirtualDevice( SalGraphics& rGraphics, tools::Long &rDX, tools::Long &rDY, - DeviceFormat eFormat, const SystemGraphicsData *pData = nullptr ) = 0; + DeviceFormat eFormat, const SystemGraphicsData& rData ) = 0; // Printer // pSetupData->mpDriverData can be 0 diff --git a/vcl/inc/salmenu.hxx b/vcl/inc/salmenu.hxx index 84939574d447..7ecd220209bb 100644 --- a/vcl/inc/salmenu.hxx +++ b/vcl/inc/salmenu.hxx @@ -71,6 +71,7 @@ public: virtual void CheckItem( unsigned nPos, bool bCheck ) = 0; virtual void EnableItem( unsigned nPos, bool bEnable ) = 0; virtual void SetItemText( unsigned nPos, SalMenuItem* pSalMenuItem, const OUString& rText )= 0; + virtual void SetItemTooltip(SalMenuItem* /*pSalMenuItem*/, const OUString& /*rTooltip*/) {}; virtual void SetItemImage( unsigned nPos, SalMenuItem* pSalMenuItem, const Image& rImage ) = 0; virtual void SetAccelerator( unsigned nPos, SalMenuItem* pSalMenuItem, const vcl::KeyCode& rKeyCode, const OUString& rKeyName ) = 0; virtual void GetSystemMenuData(SystemMenuData& rData); diff --git a/vcl/inc/skia/x11/salvd.hxx b/vcl/inc/skia/x11/salvd.hxx index 9dc952350f7b..02babb2366e6 100644 --- a/vcl/inc/skia/x11/salvd.hxx +++ b/vcl/inc/skia/x11/salvd.hxx @@ -24,7 +24,9 @@ class X11SkiaSalVirtualDevice final : public SalVirtualDevice public: X11SkiaSalVirtualDevice(const SalGraphics& rGraphics, tools::Long nDX, tools::Long nDY, - const SystemGraphicsData* pData, + std::unique_ptr<X11SalGraphics> pNewGraphics); + X11SkiaSalVirtualDevice(const SalGraphics& rGraphics, tools::Long nDX, tools::Long nDY, + const SystemGraphicsData& rData, std::unique_ptr<X11SalGraphics> pNewGraphics); virtual ~X11SkiaSalVirtualDevice() override; diff --git a/vcl/inc/treeglue.hxx b/vcl/inc/treeglue.hxx index 6e3930a017df..9c18057b0eb3 100644 --- a/vcl/inc/treeglue.hxx +++ b/vcl/inc/treeglue.hxx @@ -15,41 +15,6 @@ //the configured drag drop mode would make more sense to me, but I'm not //going to change the baseclass -class LclHeaderTabListBox final : public SvHeaderTabListBox -{ -private: - Link<SvTreeListEntry*, bool> m_aEditingEntryHdl; - Link<const IterString&, bool> m_aEditedEntryHdl; - -public: - LclHeaderTabListBox(vcl::Window* pParent, WinBits nWinStyle) - : SvHeaderTabListBox(pParent, nWinStyle) - { - } - - void SetEditingEntryHdl(const Link<SvTreeListEntry*, bool>& rLink) - { - m_aEditingEntryHdl = rLink; - } - - void SetEditedEntryHdl(const Link<const IterString&, bool>& rLink) - { - m_aEditedEntryHdl = rLink; - } - - virtual DragDropMode NotifyStartDrag() override { return GetDragDropMode(); } - - virtual bool EditingEntry(SvTreeListEntry* pEntry) override - { - return m_aEditingEntryHdl.Call(pEntry); - } - - virtual bool EditedEntry(SvTreeListEntry* pEntry, const OUString& rNewText) override - { - return m_aEditedEntryHdl.Call(IterString(pEntry, rNewText)); - } -}; - class LclTabListBox final : public SvTabListBox { Link<SvTreeListBox*, void> m_aModelChangedHdl; diff --git a/vcl/inc/unx/gtk/gtkinst.hxx b/vcl/inc/unx/gtk/gtkinst.hxx index 1f9e328bb8d8..319622abb0ba 100644 --- a/vcl/inc/unx/gtk/gtkinst.hxx +++ b/vcl/inc/unx/gtk/gtkinst.hxx @@ -265,9 +265,13 @@ public: virtual void AddToRecentDocumentList(const OUString& rFileUrl, const OUString& rMimeType, const OUString& rDocumentService) override; virtual std::unique_ptr<SalVirtualDevice> CreateVirtualDevice( SalGraphics&, + tools::Long nDX, tools::Long nDY, + DeviceFormat eFormat ) override; + virtual std::unique_ptr<SalVirtualDevice> + CreateVirtualDevice( SalGraphics&, tools::Long &nDX, tools::Long &nDY, DeviceFormat eFormat, - const SystemGraphicsData* = nullptr ) override; + const SystemGraphicsData& ) override; virtual std::shared_ptr<SalBitmap> CreateSalBitmap() override; virtual bool DoYield(bool bWait, bool bHandleAllCurrentEvents) override; diff --git a/vcl/inc/unx/saldisp.hxx b/vcl/inc/unx/saldisp.hxx index f14893617598..81bfc830780a 100644 --- a/vcl/inc/unx/saldisp.hxx +++ b/vcl/inc/unx/saldisp.hxx @@ -50,7 +50,6 @@ typedef unsigned long Pixel; class BitmapPalette; class SalFrame; -class ColorMask; namespace vcl_sal { class WMAdaptor; } diff --git a/vcl/inc/unx/salinst.h b/vcl/inc/unx/salinst.h index e8f24e255c91..00616e2a5d44 100644 --- a/vcl/inc/unx/salinst.h +++ b/vcl/inc/unx/salinst.h @@ -50,13 +50,19 @@ public: virtual void DestroyObject( SalObject* pObject ) override; /// Gtk vclplug needs to pass GtkSalGraphics to X11SalVirtualDevice, so create it, and pass as pNewGraphics. + static std::unique_ptr<SalVirtualDevice> CreateX11VirtualDevice(const SalGraphics& rGraphics, tools::Long nDX, tools::Long nDY, + DeviceFormat eFormat, std::unique_ptr<X11SalGraphics> pNewGraphics); static std::unique_ptr<SalVirtualDevice> CreateX11VirtualDevice(const SalGraphics& rGraphics, tools::Long &nDX, tools::Long &nDY, - DeviceFormat eFormat, const SystemGraphicsData* pData, std::unique_ptr<X11SalGraphics> pNewGraphics); + DeviceFormat eFormat, const SystemGraphicsData& rData, std::unique_ptr<X11SalGraphics> pNewGraphics); virtual std::unique_ptr<SalVirtualDevice> CreateVirtualDevice( SalGraphics& rGraphics, + tools::Long nDX, tools::Long nDY, + DeviceFormat eFormat ) override; + virtual std::unique_ptr<SalVirtualDevice> + CreateVirtualDevice( SalGraphics& rGraphics, tools::Long &nDX, tools::Long &nDY, - DeviceFormat eFormat, const SystemGraphicsData *pData = nullptr ) override; + DeviceFormat eFormat, const SystemGraphicsData& rData ) override; virtual void PostPrintersChanged() override; virtual std::unique_ptr<GenPspGraphics> CreatePrintGraphics() override; diff --git a/vcl/inc/unx/salvd.h b/vcl/inc/unx/salvd.h index f85d5363589d..ca5a73506aad 100644 --- a/vcl/inc/unx/salvd.h +++ b/vcl/inc/unx/salvd.h @@ -50,8 +50,10 @@ class X11SalVirtualDevice final : public SalVirtualDevice bool m_bOwnsSurface; // nearly always true, except for edge case of tdf#127529 public: + X11SalVirtualDevice(const SalGraphics& rGraphics, tools::Long nDX, tools::Long nDY, + DeviceFormat eFormat, std::unique_ptr<X11SalGraphics> pNewGraphics); X11SalVirtualDevice(const SalGraphics& rGraphics, tools::Long &nDX, tools::Long &nDY, - DeviceFormat eFormat, const SystemGraphicsData *pData, std::unique_ptr<X11SalGraphics> pNewGraphics); + DeviceFormat eFormat, const SystemGraphicsData& rData, std::unique_ptr<X11SalGraphics> pNewGraphics); virtual ~X11SalVirtualDevice() override; diff --git a/vcl/inc/win/salbmp.h b/vcl/inc/win/salbmp.h index 2edf291342cc..89135570d661 100644 --- a/vcl/inc/win/salbmp.h +++ b/vcl/inc/win/salbmp.h @@ -67,7 +67,7 @@ public: public: - bool Create( HANDLE hBitmap ); + bool Create( HBITMAP hBitmap ); virtual bool Create( const Size& rSize, vcl::PixelFormat ePixelFormat, const BitmapPalette& rPal ) override; virtual bool Create( const SalBitmap& rSalBmpImpl ) override; virtual bool Create( const SalBitmap& rSalBmpImpl, SalGraphics* pGraphics ) override; diff --git a/vcl/inc/win/saldata.hxx b/vcl/inc/win/saldata.hxx index 607788fbd34f..4ab4e2c0401a 100644 --- a/vcl/inc/win/saldata.hxx +++ b/vcl/inc/win/saldata.hxx @@ -98,13 +98,6 @@ public: public: HINSTANCE mhInst; // default instance handle int mnCmdShow; // default frame show style - HPALETTE mhDitherPal; // dither palette - HGLOBAL mhDitherDIB; // dither memory handle - BYTE* mpDitherDIB; // dither memory - BYTE* mpDitherDIBData; // beginning of DIB data - std::unique_ptr<tools::Long[]> mpDitherDiff; // Dither mapping table - std::unique_ptr<BYTE[]> mpDitherLow; // Dither mapping table - std::unique_ptr<BYTE[]> mpDitherHigh; // Dither mapping table HHOOK mhSalObjMsgHook; // hook to get interesting msg for SalObject HWND mhWantLeaveMsg; // window handle, that want a MOUSELEAVE message WinSalInstance* mpInstance; @@ -124,7 +117,6 @@ public: WPARAM mnSalObjWantKeyEvt; // KeyEvent that should be processed by SalObj-Hook BYTE mnCacheDCInUse; // count of CacheDC in use bool mbObjClassInit; // is SALOBJECTCLASS initialised - bool mbInPalChange; // is in WM_QUERYNEWPALETTE DWORD mnAppThreadId; // Id from Application-Thread SalIcon* mpFirstIcon; // icon cache, points to first icon, NULL if none TempFontItem* mpSharedTempFontItem; // LibreOffice shared fonts @@ -233,17 +225,11 @@ OUString ImplSalGetUniString(const char* pStr, sal_Int32 nLen = -1); // wParam == 0; lParam == 0 #define SAL_MSG_POSTFOCUS (WM_USER+133) // wParam == wParam; lParam == lParam -#define SAL_MSG_POSTQUERYNEWPAL (WM_USER+134) -// wParam == wParam; lParam == lParam -#define SAL_MSG_POSTPALCHANGED (WM_USER+135) -// wParam == wParam; lParam == lParam #define SAL_MSG_POSTMOVE (WM_USER+136) // wParam == wParam; lParam == lParam #define SAL_MSG_POSTCALLSIZE (WM_USER+137) // wParam == pRECT; lParam == 0 #define SAL_MSG_POSTPAINT (WM_USER+138) -// wParam == 0; lParam == pFrame; lResult 0 -#define SAL_MSG_FORCEPALETTE (WM_USER+139) // wParam == 0; lParam == 0 #define SAL_MSG_CAPTUREMOUSE (WM_USER+140) // wParam == 0; lParam == 0 diff --git a/vcl/inc/win/salgdi.h b/vcl/inc/win/salgdi.h index d210dd22bb68..bd82cb387319 100644 --- a/vcl/inc/win/salgdi.h +++ b/vcl/inc/win/salgdi.h @@ -142,52 +142,7 @@ class WinSalGraphics : public SalGraphics friend class WinSalGraphicsImpl; friend class ScopedFont; -protected: - std::unique_ptr<SalGraphicsImpl> mpImpl; - WinSalGraphicsImplBase * mWinSalGraphicsImplBase; - -private: - HDC mhLocalDC; // HDC - bool mbPrinter : 1; // is Printer - bool mbVirDev : 1; // is VirDev - bool mbWindow : 1; // is Window - bool mbScreen : 1; // is Screen compatible - HWND mhWnd; // Window-Handle, when Window-Graphics - - rtl::Reference<WinFontInstance> - mpWinFontEntry[ MAX_FALLBACK ]; // pointer to the most recent font instance - HRGN mhRegion; // vcl::Region Handle - HPEN mhDefPen; // DefaultPen - HBRUSH mhDefBrush; // DefaultBrush - HFONT mhDefFont; // DefaultFont - HPALETTE mhDefPal; // DefaultPalette - COLORREF mnTextColor; // TextColor - RGNDATA* mpClipRgnData; // ClipRegion-Data - RGNDATA* mpStdClipRgnData; // Cache Standard-ClipRegion-Data - int mnPenWidth; // line width - - // just call both from setHDC! - void InitGraphics(); - void DeInitGraphics(); - public: - // Returns base HFONT, an optional HFONT for non-rotated CJK glyphs, - // and tmDescent value for adjusting offset in vertical writing mode. - std::tuple<HFONT, HFONT, sal_Int32> - ImplDoSetFont(HDC hDC, vcl::font::FontSelectPattern const& i_rFont, - const vcl::font::PhysicalFontFace* i_pFontFace, HFONT& o_rOldFont); - - HDC getHDC() const { return mhLocalDC; } - // NOTE: this doesn't transfer ownership! See class comment. - void setHDC(HDC aNew); - - HPALETTE getDefPal() const; - // returns the result from RealizePalette, otherwise 0 on success or GDI_ERROR - UINT setPalette(HPALETTE, BOOL bForceBkgd = TRUE); - - HRGN getRegion() const; - - enum Type { PRINTER, @@ -196,15 +151,6 @@ public: SCREEN }; - static IDWriteFactory* getDWriteFactory(); - static IDWriteGdiInterop* getDWriteGdiInterop(); - -public: - - HWND gethWnd(); - - -public: explicit WinSalGraphics(WinSalGraphics::Type eType, bool bScreen, HWND hWnd, SalGeometryProvider *pProvider); virtual ~WinSalGraphics() override; @@ -219,73 +165,6 @@ public: void setHWND(HWND hWnd); void Flush(); -protected: - virtual void setClipRegion( const vcl::Region& ) override; - // draw --> LineColor and FillColor and RasterOp and ClipRegion - virtual void drawPixel( tools::Long nX, tools::Long nY ) override; - virtual void drawPixel( tools::Long nX, tools::Long nY, Color nColor ) override; - virtual void drawLine( tools::Long nX1, tools::Long nY1, tools::Long nX2, tools::Long nY2 ) override; - virtual void drawRect( tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight ) override; - virtual void drawPolyLine( sal_uInt32 nPoints, const Point* pPtAry ) override; - virtual void drawPolygon( sal_uInt32 nPoints, const Point* pPtAry ) override; - virtual void drawPolyPolygon( sal_uInt32 nPoly, const sal_uInt32* pPoints, const Point** pPtAry ) override; - virtual void drawPolyPolygon( - const basegfx::B2DHomMatrix& rObjectToDevice, - const basegfx::B2DPolyPolygon&, - double fTransparency) override; - virtual bool drawPolyLine( - const basegfx::B2DHomMatrix& rObjectToDevice, - const basegfx::B2DPolygon&, - double fTransparency, - double fLineWidth, - const std::vector< double >* pStroke, // MM01 - basegfx::B2DLineJoin, - css::drawing::LineCap, - double fMiterMinimumAngle, - bool bPixelSnapHairline) override; - virtual bool drawPolyLineBezier( sal_uInt32 nPoints, const Point* pPtAry, const PolyFlags* pFlgAry ) override; - virtual bool drawPolygonBezier( sal_uInt32 nPoints, const Point* pPtAry, const PolyFlags* pFlgAry ) override; - virtual bool drawPolyPolygonBezier( sal_uInt32 nPoly, const sal_uInt32* pPoints, const Point* const* pPtAry, const PolyFlags* const* pFlgAry ) override; - virtual bool drawGradient( const tools::PolyPolygon&, const Gradient& ) override; - virtual bool implDrawGradient(basegfx::B2DPolyPolygon const & rPolyPolygon, SalGradient const & rGradient) override; - - // CopyArea --> No RasterOp, but ClipRegion - virtual void copyArea( tools::Long nDestX, tools::Long nDestY, tools::Long nSrcX, tools::Long nSrcY, tools::Long nSrcWidth, - tools::Long nSrcHeight, bool bWindowInvalidate ) override; - - // CopyBits and DrawBitmap --> RasterOp and ClipRegion - // CopyBits() --> pSrcGraphics == NULL, then CopyBits on same Graphics - virtual void copyBits( const SalTwoRect& rPosAry, SalGraphics* pSrcGraphics ) override; - virtual void drawBitmap( const SalTwoRect& rPosAry, const SalBitmap& rSalBitmap ) override; - virtual void drawBitmap( const SalTwoRect& rPosAry, - const SalBitmap& rSalBitmap, - const SalBitmap& rTransparentBitmap ) override; - virtual void drawMask( const SalTwoRect& rPosAry, - const SalBitmap& rSalBitmap, - Color nMaskColor ) override; - - virtual std::shared_ptr<SalBitmap> getBitmap( tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight ) override; - virtual Color getPixel( tools::Long nX, tools::Long nY ) override; - - // invert --> ClipRegion (only Windows or VirDevs) - virtual void invert( tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, SalInvert nFlags) override; - virtual void invert( sal_uInt32 nPoints, const Point* pPtAry, SalInvert nFlags ) override; - - virtual bool drawEPS( tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, void* pPtr, sal_uInt32 nSize ) override; - - // native widget rendering methods that require mirroring -protected: - virtual bool isNativeControlSupported( ControlType nType, ControlPart nPart ) override; - virtual bool hitTestNativeControl( ControlType nType, ControlPart nPart, const tools::Rectangle& rControlRegion, - const Point& aPos, bool& rIsInside ) override; - virtual bool drawNativeControl( ControlType nType, ControlPart nPart, const tools::Rectangle& rControlRegion, - ControlState nState, const ImplControlValue& aValue, - const OUString& aCaption, const Color& rBackgroundColor ) override; - virtual bool getNativeControlRegion( ControlType nType, ControlPart nPart, const tools::Rectangle& rControlRegion, ControlState nState, - const ImplControlValue& aValue, const OUString& aCaption, - tools::Rectangle &rNativeBoundingRegion, tools::Rectangle &rNativeContentRegion ) override; - -public: virtual bool blendBitmap( const SalTwoRect&, const SalBitmap& rBitmap ) override; @@ -309,12 +188,6 @@ public: virtual bool drawAlphaRect( tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, sal_uInt8 nTransparency ) override; -private: - // local helpers - - void DrawTextLayout(const GenericSalLayout&, HDC, bool bUseDWrite, bool bRenderingModeNatural); - -public: // public SalGraphics methods, the interface to the independent vcl part // get device resolution @@ -368,6 +241,125 @@ public: /// Update settings based on the platform values static void updateSettingsNative( AllSettings& rSettings ); + + // Returns base HFONT, an optional HFONT for non-rotated CJK glyphs, + // and tmDescent value for adjusting offset in vertical writing mode. + std::tuple<HFONT, HFONT, sal_Int32> + ImplDoSetFont(HDC hDC, vcl::font::FontSelectPattern const& i_rFont, + const vcl::font::PhysicalFontFace* i_pFontFace, HFONT& o_rOldFont); + + HDC getHDC() const { return mhLocalDC; } + // NOTE: this doesn't transfer ownership! See class comment. + void setHDC(HDC aNew); + + HPALETTE getDefPal() const; + // returns the result from RealizePalette, otherwise 0 on success or GDI_ERROR + UINT setPalette(HPALETTE, BOOL bForceBkgd = TRUE); + + HRGN getRegion() const; + + static IDWriteFactory* getDWriteFactory(); + static IDWriteGdiInterop* getDWriteGdiInterop(); + + HWND gethWnd(); + +protected: + + virtual void setClipRegion( const vcl::Region& ) override; + // draw --> LineColor and FillColor and RasterOp and ClipRegion + virtual void drawPixel( tools::Long nX, tools::Long nY ) override; + virtual void drawPixel( tools::Long nX, tools::Long nY, Color nColor ) override; + virtual void drawLine( tools::Long nX1, tools::Long nY1, tools::Long nX2, tools::Long nY2 ) override; + virtual void drawRect( tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight ) override; + virtual void drawPolyLine( sal_uInt32 nPoints, const Point* pPtAry ) override; + virtual void drawPolygon( sal_uInt32 nPoints, const Point* pPtAry ) override; + virtual void drawPolyPolygon( sal_uInt32 nPoly, const sal_uInt32* pPoints, const Point** pPtAry ) override; + virtual void drawPolyPolygon( + const basegfx::B2DHomMatrix& rObjectToDevice, + const basegfx::B2DPolyPolygon&, + double fTransparency) override; + virtual bool drawPolyLine( + const basegfx::B2DHomMatrix& rObjectToDevice, + const basegfx::B2DPolygon&, + double fTransparency, + double fLineWidth, + const std::vector< double >* pStroke, // MM01 + basegfx::B2DLineJoin, + css::drawing::LineCap, + double fMiterMinimumAngle, + bool bPixelSnapHairline) override; + virtual bool drawPolyLineBezier( sal_uInt32 nPoints, const Point* pPtAry, const PolyFlags* pFlgAry ) override; + virtual bool drawPolygonBezier( sal_uInt32 nPoints, const Point* pPtAry, const PolyFlags* pFlgAry ) override; + virtual bool drawPolyPolygonBezier( sal_uInt32 nPoly, const sal_uInt32* pPoints, const Point* const* pPtAry, const PolyFlags* const* pFlgAry ) override; + virtual bool drawGradient( const tools::PolyPolygon&, const Gradient& ) override; + virtual bool implDrawGradient(basegfx::B2DPolyPolygon const & rPolyPolygon, SalGradient const & rGradient) override; + + // CopyArea --> No RasterOp, but ClipRegion + virtual void copyArea( tools::Long nDestX, tools::Long nDestY, tools::Long nSrcX, tools::Long nSrcY, tools::Long nSrcWidth, + tools::Long nSrcHeight, bool bWindowInvalidate ) override; + + // CopyBits and DrawBitmap --> RasterOp and ClipRegion + // CopyBits() --> pSrcGraphics == NULL, then CopyBits on same Graphics + virtual void copyBits( const SalTwoRect& rPosAry, SalGraphics* pSrcGraphics ) override; + virtual void drawBitmap( const SalTwoRect& rPosAry, const SalBitmap& rSalBitmap ) override; + virtual void drawBitmap( const SalTwoRect& rPosAry, + const SalBitmap& rSalBitmap, + const SalBitmap& rTransparentBitmap ) override; + virtual void drawMask( const SalTwoRect& rPosAry, + const SalBitmap& rSalBitmap, + Color nMaskColor ) override; + + virtual std::shared_ptr<SalBitmap> getBitmap( tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight ) override; + virtual Color getPixel( tools::Long nX, tools::Long nY ) override; + + // invert --> ClipRegion (only Windows or VirDevs) + virtual void invert( tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, SalInvert nFlags) override; + virtual void invert( sal_uInt32 nPoints, const Point* pPtAry, SalInvert nFlags ) override; + + virtual bool drawEPS( tools::Long nX, tools::Long nY, tools::Long nWidth, tools::Long nHeight, void* pPtr, sal_uInt32 nSize ) override; + + // native widget rendering methods that require mirroring + virtual bool isNativeControlSupported( ControlType nType, ControlPart nPart ) override; + virtual bool hitTestNativeControl( ControlType nType, ControlPart nPart, const tools::Rectangle& rControlRegion, + const Point& aPos, bool& rIsInside ) override; + virtual bool drawNativeControl( ControlType nType, ControlPart nPart, const tools::Rectangle& rControlRegion, + ControlState nState, const ImplControlValue& aValue, + const OUString& aCaption, const Color& rBackgroundColor ) override; + virtual bool getNativeControlRegion( ControlType nType, ControlPart nPart, const tools::Rectangle& rControlRegion, ControlState nState, + const ImplControlValue& aValue, const OUString& aCaption, + tools::Rectangle &rNativeBoundingRegion, tools::Rectangle &rNativeContentRegion ) override; + +private: + // just call both from setHDC! + void InitGraphics(); + void DeInitGraphics(); + + // local helpers + void DrawTextLayout(const GenericSalLayout&, HDC, bool bUseDWrite, bool bRenderingModeNatural); + +protected: + std::unique_ptr<SalGraphicsImpl> mpImpl; + WinSalGraphicsImplBase * mWinSalGraphicsImplBase; + +private: + HDC mhLocalDC; // HDC + bool mbPrinter : 1; // is Printer + bool mbVirDev : 1; // is VirDev + bool mbWindow : 1; // is Window + bool mbScreen : 1; // is Screen compatible + HWND mhWnd; // Window-Handle, when Window-Graphics + + rtl::Reference<WinFontInstance> + mpWinFontEntry[ MAX_FALLBACK ]; // pointer to the most recent font instance + HRGN mhRegion; // vcl::Region Handle + HPEN mhDefPen; // DefaultPen + HBRUSH mhDefBrush; // DefaultBrush + HFONT mhDefFont; // DefaultFont + HPALETTE mhDefPal; // DefaultPalette + COLORREF mnTextColor; // TextColor + RGNDATA* mpClipRgnData; // ClipRegion-Data + RGNDATA* mpStdClipRgnData; // Cache Standard-ClipRegion-Data + int mnPenWidth; // line width }; // Init/Deinit Graphics @@ -376,6 +368,4 @@ int ImplIsSysColorEntry( Color nColor ); void ImplGetLogFontFromFontSelect( const vcl::font::FontSelectPattern&, const vcl::font::PhysicalFontFace*, LOGFONTW&, bool bAntiAliased); -#define MAX_64KSALPOINTS ((((sal_uInt16)0xFFFF)-8)/sizeof(POINTS)) - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/win/salinst.h b/vcl/inc/win/salinst.h index cc02c8bad4a2..0bd3026619c9 100644 --- a/vcl/inc/win/salinst.h +++ b/vcl/inc/win/salinst.h @@ -51,8 +51,12 @@ public: virtual void DestroyObject( SalObject* pObject ) override; virtual std::unique_ptr<SalVirtualDevice> CreateVirtualDevice( SalGraphics& rGraphics, + tools::Long nDX, tools::Long nDY, + DeviceFormat eFormat ) override; + virtual std::unique_ptr<SalVirtualDevice> + CreateVirtualDevice( SalGraphics& rGraphics, tools::Long &nDX, tools::Long &nDY, - DeviceFormat eFormat, const SystemGraphicsData *pData = nullptr ) override; + DeviceFormat eFormat, const SystemGraphicsData& rData ) override; virtual SalInfoPrinter* CreateInfoPrinter( SalPrinterQueueInfo* pQueueInfo, ImplJobSetup* pSetupData ) override; virtual void DestroyInfoPrinter( SalInfoPrinter* pPrinter ) override; diff --git a/vcl/inc/window.h b/vcl/inc/window.h index 72d07bc85c01..6d04f20217d3 100644 --- a/vcl/inc/window.h +++ b/vcl/inc/window.h @@ -383,7 +383,6 @@ public: mbMenuFloatingWindow:1, mbDrawSelectionBackground:1, mbIsInTaskPaneList:1, - mbToolbarFloatingWindow:1, mbHelpTextDynamic:1, mbFakeFocusSet:1, mbHexpand:1, |