diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
commit | ed5640d8b587fbcfed7dd7967f3de04b37a76f26 (patch) | |
tree | 7a5f7c6c9d02226d7471cb3cc8fbbf631b415303 /include/svx/IAccessibleViewForwarder.hxx | |
parent | Initial commit. (diff) | |
download | libreoffice-ed5640d8b587fbcfed7dd7967f3de04b37a76f26.tar.xz libreoffice-ed5640d8b587fbcfed7dd7967f3de04b37a76f26.zip |
Adding upstream version 4:7.4.7.upstream/4%7.4.7upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'include/svx/IAccessibleViewForwarder.hxx')
-rw-r--r-- | include/svx/IAccessibleViewForwarder.hxx | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/include/svx/IAccessibleViewForwarder.hxx b/include/svx/IAccessibleViewForwarder.hxx new file mode 100644 index 000000000..fd9a5f638 --- /dev/null +++ b/include/svx/IAccessibleViewForwarder.hxx @@ -0,0 +1,97 @@ +/* -*- 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 . + */ + +#ifndef INCLUDED_SVX_IACCESSIBLEVIEWFORWARDER_HXX +#define INCLUDED_SVX_IACCESSIBLEVIEWFORWARDER_HXX + +#include <tools/gen.hxx> + +namespace accessibility +{ +/** <p>This interface provides the means to transform between internal + coordinates in 100th of mm and screen coordinates without giving direct + access to the underlying view. Each view forwarder represents a + specific real or virtual window. A call to + <method>GetVisibleArea</method> returns the visible rectangle that + corresponds to this window.</p> + + <p>This interface is similar to the SvxViewForwarder but + differs in two important points: Firstly the <member>GetVisArea</member> + method returns a rectangle in internal coordinates and secondly the + transformation methods do not require explicit mapmodes. These have to + be provided implicitly by the classes that implement this + interface. A third, less important, difference are the additional + transformation methods for sizes. The reasons for their existence are + convenience and improved performance.</p> + + @attention + Note, that modifications of the underlying view that lead to + different transformations between internal and screen coordinates or + change the validity of the forwarder have to be signaled separately. +*/ +class IAccessibleViewForwarder +{ +public: + IAccessibleViewForwarder() = default; + IAccessibleViewForwarder(IAccessibleViewForwarder const&) = default; + IAccessibleViewForwarder(IAccessibleViewForwarder&&) = default; + IAccessibleViewForwarder& operator=(IAccessibleViewForwarder const&) = default; + IAccessibleViewForwarder& operator=(IAccessibleViewForwarder&&) = default; + + virtual ~IAccessibleViewForwarder(){}; + + /** Returns the area of the underlying document that is visible in the + * corresponding window. + + @return + The rectangle of the visible part of the document. The values + are, contrary to the base class, in internal coordinates of + 100th of mm. + */ + virtual tools::Rectangle GetVisibleArea() const = 0; + + /** Transform the specified point from internal coordinates in 100th of + mm to an absolute screen position. + + @param rPoint + Point in internal coordinates (100th of mm). + + @return + The same point but in screen coordinates relative to the upper + left corner of the (current) screen. + */ + virtual Point LogicToPixel(const Point& rPoint) const = 0; + + /** Transform the specified size from internal coordinates in 100th of + mm to a screen oriented pixel size. + + @param rSize + Size in internal coordinates (100th of mm). + + @return + The same size but in screen coordinates. + */ + virtual Size LogicToPixel(const Size& rSize) const = 0; +}; + +} // end of namespace accessibility + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |