From ed5640d8b587fbcfed7dd7967f3de04b37a76f26 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 11:06:44 +0200 Subject: Adding upstream version 4:7.4.7. Signed-off-by: Daniel Baumann --- .../star/drawing/framework/XPaneBorderPainter.idl | 152 +++++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 offapi/com/sun/star/drawing/framework/XPaneBorderPainter.idl (limited to 'offapi/com/sun/star/drawing/framework/XPaneBorderPainter.idl') diff --git a/offapi/com/sun/star/drawing/framework/XPaneBorderPainter.idl b/offapi/com/sun/star/drawing/framework/XPaneBorderPainter.idl new file mode 100644 index 000000000..b0e172ba5 --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XPaneBorderPainter.idl @@ -0,0 +1,152 @@ +/* -*- 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 __com_sun_star_drawing_framework_XPaneBorderPainter_idl__ +#define __com_sun_star_drawing_framework_XPaneBorderPainter_idl__ + +#include +#include +#include +#include + +module com { module sun { module star { module drawing { module framework { + +/** Paint the border around a rectangular region, typically a pane. + +

Calling objects have to be able to derive inner bounding boxes of the + border from the outer ones and inner ones from outer ones. This + conversion and the painting of the border involves three rectangles. + The inner and outer bounding box of the border. This is a logical + bounding box which the paint methods may paint over. The center box is + the third rectangle. This is the actual border between outer and inner + background color or bitmap and it is used for placing the bitmaps that are used + paint the border. The inner sides and corners are places relative to + this center box, i.e. when not further offsets are given then the upper + left corner bitmap is painted with its lower right at the upper left of + the center box.

+*/ +interface XPaneBorderPainter +{ + /** Enlarge the given rectangle by the size of the specified part of the + border. This method can be used to convert an inner bounding box + into the center box or the outer bounding box. + @param sPaneBorderStyleName + The pane style defines the sizes of the border. + @param aRectangle + This rectangle will be converted into a larger one. This should + be the center box or the inner bounding box of the border. + @param eBorderType + The part of the border to add to the given rectangle. + Use INNER_BORDER to convert an inner bounding box into the + center box or TOTAL_BORDER to convert it into the outer bounding + box. OUTER_BORDER can be used to convert the center box into + the outer bounding box. + */ + ::com::sun::star::awt::Rectangle addBorder ( + [in] string sPaneBorderStyleName, + [in] ::com::sun::star::awt::Rectangle aRectangle, + [in] BorderType eBorderType); + + /** Shrink the given rectangle by the size of the specified part of the + border. This method can be used to convert an outer bounding box + into the center box or the inner bounding box. + @param sPaneBorderStyleName + The pane style defines the sizes of the border. + @param aRectangle + This rectangle will be converted into a smaller one that lies + inside it. It should be the center box or the outer bounding + box of the border. + @param eBorderType + The part of the border to remove from the given rectangle. + Use OUTER_BORDER to convert an outer bounding box into the + center box or TOTAL_BORDER to convert it into the inner bounding + box. INNER_BORDER can be used to convert the center box into + the inner bounding box. + */ + ::com::sun::star::awt::Rectangle removeBorder ( + [in] string sPaneBorderStyleName, + [in] ::com::sun::star::awt::Rectangle aRectangle, + [in] BorderType eBorderType); + + /** Paint the border around a pane. + @param sPaneBorderStyleName + The pane style to use for painting the border. + @param xCanvas + The canvas onto which the border is painted. + @param aOuterBorderRectangle + The outer bounding box of the border. Use addBorder to convert + the bounding box of a pane (the inner bounding box of the + border) into this outer bounding box of the border. + @param aRepaintArea + The area in which the border has to be repainted. The clip + rectangle. + @param sTitle + The pane title. Supply an empty string for panes without + title. It is the responsibility of the caller to supply a title + only for pane border styles that support a title. + */ + void paintBorder ( + [in] string sPaneBorderStyleName, + [in] ::com::sun::star::rendering::XCanvas xCanvas, + [in] ::com::sun::star::awt::Rectangle aOuterBorderRectangle, + [in] ::com::sun::star::awt::Rectangle aRepaintArea, + [in] string sTitle); + + /** Paint the border around a pane where the border includes a call out + that is anchored at the given point. Most arguments have the same + meaning as in the paintBorder(). + + @see paintBorder + + @param sPaneBorderStyleName + See description in #paintBorder. + @param xCanvas + See description in #paintBorder. + @param aOuterBorderRectangle + See description in #paintBorder. + @param aRepaintArea + See description in #paintBorder. + @param sTitle + See description in #paintBorder. + @param aCalloutAnchor + The anchor point of the call out. It is usually located outside + the border. + */ + void paintBorderWithCallout ( + [in] string sPaneBorderStyleName, + [in] ::com::sun::star::rendering::XCanvas xCanvas, + [in] ::com::sun::star::awt::Rectangle aOuterBorderRectangle, + [in] ::com::sun::star::awt::Rectangle aRepaintArea, + [in] string sTitle, + [in] ::com::sun::star::awt::Point aCalloutAnchor); + + /** Return the offset of a call out anchor with respect to the outer + border. This value is used when the call out is realized by a fixed + bitmap in order to determine the size and/or location of the outer + border for a given call out. + */ + ::com::sun::star::awt::Point getCalloutOffset ( + [in] string sPaneBorderStyleName); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit v1.2.3