From 940b4d1848e8c70ab7642901a68594e8016caffc Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 27 Apr 2024 18:51:28 +0200 Subject: Adding upstream version 1:7.0.4. Signed-off-by: Daniel Baumann --- include/svx/IAccessibleViewForwarder.hxx | 100 +++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 include/svx/IAccessibleViewForwarder.hxx (limited to 'include/svx/IAccessibleViewForwarder.hxx') diff --git a/include/svx/IAccessibleViewForwarder.hxx b/include/svx/IAccessibleViewForwarder.hxx new file mode 100644 index 000000000..247e29c41 --- /dev/null +++ b/include/svx/IAccessibleViewForwarder.hxx @@ -0,0 +1,100 @@ +/* -*- 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 + + +namespace accessibility { + + +/**

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 + GetVisibleArea returns the visible rectangle that + corresponds to this window.

+ +

This interface is similar to the SvxViewForwarder but + differs in two important points: Firstly the GetVisArea + 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.

+ + @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: */ -- cgit v1.2.3