| /************************************************************** |
| * |
| * 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 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| |
| #ifndef __com_sun_star_drawing_framework_XPaneBorderPainter_idl__ |
| #define __com_sun_star_drawing_framework_XPaneBorderPainter_idl__ |
| |
| #ifndef __com_sun_star_awt_Rectangle_idl__ |
| #include <com/sun/star/awt/Rectangle.idl> |
| #endif |
| #ifndef __com_sun_star_awt_Point_idl__ |
| #include <com/sun/star/awt/Point.idl> |
| #endif |
| #ifndef __com_sun_star_rendering_XCanvas_idl__ |
| #include <com/sun/star/rendering/XCanvas.idl> |
| #endif |
| |
| module com { module sun { module star { module drawing { module framework { |
| |
| /** See XPaneBorderPainter and its addBorder() and removeBorder() methods |
| for an explanation of the border type and its values. |
| */ |
| published enum BorderType |
| { |
| INNER_BORDER, |
| OUTER_BORDER, |
| TOTAL_BORDER |
| }; |
| |
| |
| /** Paint the border around a rectangular region, typically a pane. |
| |
| <p>Calling objects have to be able to derive inner bounding boxs 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.</p> |
| */ |
| published 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); |
| |
| /** Shring 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 callout |
| that is anchored at the given point. Most arguments have the same |
| meaning as in the <method>paintBorder</method>. |
| @param aCalloutAnchor |
| The anchor point of the callout. 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 callout anchor with respect to the outer |
| border. This value is used when the callout is realized by a fixed |
| bitmap in order to determine the size and/or location of the outer |
| border for a given callout. |
| */ |
| ::com::sun::star::awt::Point getCalloutOffset ( |
| [in] string sPaneBorderStyleName); |
| }; |
| |
| }; }; }; }; }; // ::com::sun::star::drawing::framework |
| |
| #endif |