blob: 8906ea7513878b945fbd2bf068f44851b15f57e1 [file] [log] [blame]
/**************************************************************
*
* 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_awt_XGraphics_idl__
#define __com_sun_star_awt_XGraphics_idl__
#include <com/sun/star/uno/XInterface.idl>
#include <com/sun/star/util/Color.idl>
#include <com/sun/star/awt/SimpleFontMetric.idl>
#include <com/sun/star/awt/FontDescriptor.idl>
#include <com/sun/star/awt/RasterOperation.idl>
#include <com/sun/star/awt/Gradient.idl>
#include <com/sun/star/awt/Rectangle.idl>
#include <com/sun/star/graphic/XGraphic.idl>
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
{
/** the device of this graphics
*/
[attribute, readonly] XDevice Device;
/** the text color used by text operations.
*/
[attribute] com::sun::star::util::Color TextColor;
/** the fill color used by text operations.
*/
[attribute] com::sun::star::util::Color TextFillColor;
/** the line color.
*/
[attribute] com::sun::star::util::Color LineColor;
/** the fill color.
*/
[attribute] com::sun::star::util::Color FillColor;
/** the raster operation.
<p>If the device does not support raster operations,
this attribute is ignored.</p>
*/
[attribute] RasterOperation RasterOp;
/** the font used by text operations.
*/
[attribute] XFont Font;
/** the font metric of the current font.
*/
[attribute, readonly] SimpleFontMetric FontMetric;
/** creates a new font and sets the font.
*/
[oneway] void selectFont( [in] FontDescriptor aDescription );
/** sets the clip region to specified clipping.
*/
[oneway] void setClipRegion( [in] XRegion Clipping );
/** builds the intersection with the current region.
*/
[oneway] void intersectClipRegion( [in] XRegion xClipping );
/** saves all current settings (Font, TextColor, TextFillColor,
LineColor, FillColor, RasterOp, ClipRegion).
*/
[oneway] void push();
/** restores all previous saved settings.
*/
[oneway] void pop();
/** clears the given rectangle on the device
@since OpenOffice 4.0
*/
[oneway] void clear( [in] Rectangle aRect );
/** copies a rectangle of pixels from another device into this one.
*/
[oneway] 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.
*/
[oneway] 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.
*/
[oneway] void drawPixel( [in] long X,
[in] long Y );
/** draws a line in the output device.
*/
[oneway] void drawLine( [in] long X1,
[in] long Y1,
[in] long X2,
[in] long Y2 );
/** draws a rectangle in the output device.
*/
[oneway] void drawRect( [in] long X,
[in] long Y,
[in] long Width,
[in] long Height );
/** draws a rectangle with rounded corners in the output device.
*/
[oneway] 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.
*/
[oneway] void drawPolyLine( [in] sequence<long> DataX,
[in] sequence<long> DataY );
/** draws a polygon line in the output device.
*/
[oneway] void drawPolygon( [in] sequence<long> DataX,
[in] sequence<long> DataY );
/** draws multiple polygons in the output device at once.
*/
[oneway] void drawPolyPolygon( [in] sequence< sequence<long> > DataX,
[in] sequence< sequence<long> > DataY );
/** draws an ellipse in the output device.
*/
[oneway] 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.
*/
[oneway] 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.
*/
[oneway] 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.
<p>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.</p>
*/
[oneway] 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.
*/
[oneway] void drawGradient( [in] long nX,
[in] long nY,
[in] long nWidth,
[in] long Height,
[in] Gradient aGradient );
/** draws text in the output device.
*/
[oneway] void drawText( [in] long X,
[in] long Y,
[in] string Text );
/** draws texts in the output device using an explicit kerning table.
*/
[oneway] void drawTextArray( [in] long X,
[in] long Y,
[in] string Text,
[in] sequence<long> Longs );
/** draws a <type scope="com::sun::star::graphic">XGraphic</type>
in the output device.
<p>Note that some devices may not support this operation.</p>
@since OpenOffice 4.0
@param nX
the X coordinate on the device where the graphic will be drawn
@param nY
the Y coordinate on the device where the graphic will be drawn
@param nWidth
the width of the region on the device
@param nHeight
the height of the region on the device
@param nStyle
the style used to draw the image.
See <type scope="com::sun::star::awt">ImageDrawMode</type>.
@param aGraphic
the <type scope="com::sun::star::graphic">XGraphic</type>
to be drawn onto the device
*/
[oneway] void drawImage( [in] long nX,
[in] long nY,
[in] long nWidth,
[in] long nHeight,
[in] short nStyle,
[in] ::com::sun::star::graphic::XGraphic aGraphic );
};
}; }; }; };
#endif