/************************************************************** * * 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_rendering_XSimpleCanvas_idl__ #define __com_sun_star_rendering_XSimpleCanvas_idl__ #ifndef __com_sun_star_util_Color_idl__ #include <com/sun/star/util/Color.idl> #endif #ifndef __com_sun_star_geometry_RealPoint2D_idl__ #include <com/sun/star/geometry/RealPoint2D.idl> #endif #ifndef __com_sun_star_geometry_RealRectangle2D_idl__ #include <com/sun/star/geometry/RealRectangle2D.idl> #endif #ifndef __com_sun_star_geometry_AffineMatrix2D_idl__ #include <com/sun/star/geometry/AffineMatrix2D.idl> #endif #ifndef __com_sun_star_rendering_StringContext_idl__ #include <com/sun/star/rendering/StringContext.idl> #endif #ifndef __com_sun_star_rendering_ViewState_idl__ #include <com/sun/star/rendering/ViewState.idl> #endif #ifndef __com_sun_star_rendering_RenderState_idl__ #include <com/sun/star/rendering/RenderState.idl> #endif #ifndef __com_sun_star_rendering_FontMetrics_idl__ #include <com/sun/star/rendering/FontMetrics.idl> #endif //============================================================================= module com { module sun { module star { module rendering { interface XCanvas; interface XCanvasFont; interface XBitmap; interface XGraphicDevice; interface XPolyPolygon2D; /** Provides the basic graphical output operations for a canvas.<p> This interface is a simplified version of the <type>XCanvas</type> interface. It holds explicit state, i.e. the pen and fill color, the current transformation, clip and font are persistently remembered.<p> In contrast to the <type>XCanvas</type> interface, XSimpleCanvas does not distinguish between stroke and fill operations; instead, switching between stroke and fill (or taking both) works by setting appropriate pen and fill colors.<p> */ interface XSimpleCanvas: com::sun::star::uno::XInterface { /** Select a font.<p> This method selects the specified font (or a close substitute) as the current font for text output.<p> @param sFontName The name of the font (like e.g. Arial) @param size The size of the font (note that this is not the usual points unit, but in the same coordinate system as the other rendering operations - usually, device pixel). @param bold When true, selected font is bold. @param italic When true, selected font is italic */ void selectFont( [in] string sFontName, [in]double size, [in] boolean bold, [in] boolean italic ); //------------------------------------------------------------------------- /** Sets the color used by line and text operations.<p> To disable stroking, simply set this color to something with zero alpha (i.e. fully transparent).<p> @param nsRgbaColor RGBA color tuple, interpreted in the sRGB color space. */ void setPenColor( [in] com::sun::star::util::Color nsRgbaColor ); //------------------------------------------------------------------------- /** Sets the fill color.<p> To disable filling, simply set this color to something with zero alpha (i.e. fully transparent).<p> @param nsRgbaColor RGBA color tuple, interpreted in the sRGB color space. */ void setFillColor( [in] com::sun::star::util::Color nsRgbaColor ); //------------------------------------------------------------------------- /** Sets the clip to the specified rectangle.<p> */ void setRectClip( [in] ::com::sun::star::geometry::RealRectangle2D aRect ); //------------------------------------------------------------------------- /** Set the current transform matrix.<p> */ void setTransformation( [in] ::com::sun::star::geometry::AffineMatrix2D aTransform ); //------------------------------------------------------------------------- /** Sets a single pixel on the canvas.<p> */ void drawPixel( [in] ::com::sun::star::geometry::RealPoint2D aPoint ); //------------------------------------------------------------------------- /** Draws a line on the canvas.<p> */ void drawLine( [in] ::com::sun::star::geometry::RealPoint2D aStartPoint, [in] ::com::sun::star::geometry::RealPoint2D aEndPoint ); //------------------------------------------------------------------------- /** Draws a rectangle on the canvas.<p> */ void drawRect( [in] ::com::sun::star::geometry::RealRectangle2D aRect ); //------------------------------------------------------------------------- /** Draws a poly-polygon on the canvas.<p> */ void drawPolyPolygon( [in] XPolyPolygon2D xPolyPolygon ); //------------------------------------------------------------------------- /** Draws text on the canvas.<p> @param aText Text to render. The text color is the current pen color. @param aOutPos Output position of the text. This is the left or right edge, depending on nTextDirection. Output position is always relative to the font baseline. @param nTextDirection A value from the <type>TextDirection</type> collection, denoting the main writing direction for this string. The main writing direction determines the origin of the text output, i.e. the left edge for left-to-right and the right edge for right-to-left text. */ void drawText( [in] StringContext aText, [in] ::com::sun::star::geometry::RealPoint2D aOutPos, [in] byte nTextDirection ); //------------------------------------------------------------------------- /** Draws the bitmap on the canvas.<p> @param xBitmap Bitmap to render @param aLeftTop Left, top position of the bitmap on the destination canvas. */ void drawBitmap( [in] XBitmap xBitmap, [in] ::com::sun::star::geometry::RealPoint2D aLeftTop ); //------------------------------------------------------------------------- /** Request the associated graphic device for this canvas.<p> A graphic device provides methods specific to the underlying output device capabilities, which are common for all canvases rendering to such a device. This includes device resolution, color space, or bitmap formats.<p> @return the associated <type>XGraphicDevice</type>. */ XGraphicDevice getDevice(); //------------------------------------------------------------------------- /** Query the underlying <type>XCanvas</type>.<p> @return the canvas interface this object is internally based on. */ XCanvas getCanvas(); //------------------------------------------------------------------------- /** Request the font metrics of the current font.<p> @return the font metrics of the currently selected font. */ FontMetrics getFontMetrics(); //------------------------------------------------------------------------- /** Retrieve currently selected font.<p> @return the font instance that's currently used for rendering text. */ XCanvasFont getCurrentFont(); //------------------------------------------------------------------------- /** Retrieve color currently used for lines. */ com::sun::star::util::Color getCurrentPenColor(); //------------------------------------------------------------------------- /** Retrieve color currently used for fills */ com::sun::star::util::Color getCurrentFillColor(); //------------------------------------------------------------------------- /** Retrieve current clip rect */ com::sun::star::geometry::RealRectangle2D getCurrentClipRect(); //------------------------------------------------------------------------- /** Retrieve current transformation matrix */ com::sun::star::geometry::AffineMatrix2D getCurrentTransformation(); //------------------------------------------------------------------------- /** Retrieve view state.<p> @return the view state, that would generate matching output, when rendering to an XCanvas instead. */ ViewState getCurrentViewState(); //------------------------------------------------------------------------- /** Retrieve render state.<p> @param bUseFillColor When true, the Color member of the RenderState is initialized with the current fill color; when false, the current pen color is used. @return the render state, that would generate matching output, when rendering to an XCanvas instead. */ RenderState getCurrentRenderState( [in] boolean bUseFillColor ); //------------------------------------------------------------------------- }; //============================================================================= }; }; }; }; #endif