/* -*- 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_awt_XGraphics_idl__ #define __com_sun_star_awt_XGraphics_idl__ #include #include #include #include #include #include module com { module sun { module star { module awt { published interface XRegion; published interface XDisplayBitmap; published interface XFont; published interface XDevice; /** provides the basic output operation of a device. */ published interface XGraphics: com::sun::star::uno::XInterface { /** returns the device of this graphics. */ XDevice getDevice(); /** returns the font metric of the current font. */ SimpleFontMetric getFontMetric(); /** sets the font used by text operations. */ void setFont( [in] XFont xNewFont ); /** creates a new font and sets the font. */ void selectFont( [in] FontDescriptor aDescription ); /** sets the text color used by text operations. */ void setTextColor( [in] com::sun::star::util::Color nColor ); /** sets the fill color used by text operations. */ void setTextFillColor( [in] com::sun::star::util::Color nColor ); /** sets the line color. */ void setLineColor( [in] com::sun::star::util::Color nColor ); /** sets the fill color. */ void setFillColor( [in] com::sun::star::util::Color nColor ); /** sets the raster operation.

If the device does not support raster operations then this call is ignored.

*/ void setRasterOp( [in] RasterOperation ROP ); /** sets the clip region to specified clipping. */ void setClipRegion( [in] XRegion Clipping ); /** builds the intersection with the current region. */ void intersectClipRegion( [in] XRegion xClipping ); /** saves all current settings (Font, TextColor, TextFillColor, LineColor, FillColor, RasterOp, ClipRegion). */ void push(); /** restores all previous saved settings. */ void pop(); /** copies a rectangle of pixels from another device into this one. */ void copy( [in] XDevice xSource, [in] long nSourceX, [in] long nSourceY, [in] long nSourceWidth, [in] long nSourceHeight, [in] long nDestX, [in] long nDestY, [in] long nDestWidth, [in] long nDestHeight ); /** draws a part of the specified bitmap to the output device. */ void draw( [in] XDisplayBitmap xBitmapHandle, [in] long SourceX, [in] long SourceY, [in] long SourceWidth, [in] long SourceHeight, [in] long DestX, [in] long DestY, [in] long DestWidth, [in] long DestHeight ); /** sets a single pixel in the output device. */ void drawPixel( [in] long X, [in] long Y ); /** draws a line in the output device. */ void drawLine( [in] long X1, [in] long Y1, [in] long X2, [in] long Y2 ); /** draws a rectangle in the output device. */ void drawRect( [in] long X, [in] long Y, [in] long Width, [in] long Height ); /** draws a rectangle with rounded corners in the output device. */ void drawRoundedRect( [in] long X, [in] long Y, [in] long Width, [in] long Height, [in] long nHorzRound, [in] long nVertRound ); /** draws multiple lines in the output device at once. */ void drawPolyLine( [in] sequence DataX, [in] sequence DataY ); /** draws a polygon line in the output device. */ void drawPolygon( [in] sequence DataX, [in] sequence DataY ); /** draws multiple polygons in the output device at once. */ void drawPolyPolygon( [in] sequence< sequence > DataX, [in] sequence< sequence > DataY ); /** draws an ellipse in the output device. */ void drawEllipse( [in] long X, [in] long Y, [in] long Width, [in] long Height ); /** draws an arc (part of a circle) in the output device. */ void drawArc( [in] long X, [in] long Y, [in] long Width, [in] long Height, [in] long X1, [in] long Y1, [in] long X2, [in] long Y2 ); /** draws a circular area in the output device. */ void drawPie( [in] long X, [in] long Y, [in] long Width, [in] long Height, [in] long X1, [in] long Y1, [in] long X2, [in] long Y2 ); /** draws a chord of a circular area in the output device.

A chord is a segment of a circle. You get two chords from a circle if you intersect the circle with a straight line joining two points on the circle.

*/ void drawChord( [in] long nX, [in] long nY, [in] long nWidth, [in] long nHeight, [in] long nX1, [in] long nY1, [in] long nX2, [in] long nY2 ); /** draws a color dispersion in the output device. */ void drawGradient( [in] long nX, [in] long nY, [in] long nWidth, [in] long Height, [in] Gradient aGradient ); /** draws text in the output device. */ void drawText( [in] long X, [in] long Y, [in] string Text ); /** draws texts in the output device using an explicit kerning table. */ void drawTextArray( [in] long X, [in] long Y, [in] string Text, [in] sequence Longs ); }; }; }; }; }; #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */