2008-03-08 08:52:38 -05:00
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Name: dcsvg.h
|
2008-03-10 11:24:38 -04:00
|
|
|
// Purpose: interface of wxSVGFileDC
|
2008-03-08 08:52:38 -05:00
|
|
|
// Author: wxWidgets team
|
|
|
|
// RCS-ID: $Id$
|
|
|
|
// Licence: wxWindows license
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
/**
|
|
|
|
@class wxSVGFileDC
|
|
|
|
@wxheader{dcsvg.h}
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
A wxSVGFileDC is a @e device context onto which graphics and text can be drawn,
|
|
|
|
and the output
|
2008-03-08 09:43:31 -05:00
|
|
|
produced as a vector file, in the SVG format
|
2008-03-08 08:52:38 -05:00
|
|
|
(see W3C specifications).
|
|
|
|
This format can be read by a range of programs, including a Netscape plugin
|
2008-03-08 09:43:31 -05:00
|
|
|
(Adobe), full details
|
2008-03-08 08:52:38 -05:00
|
|
|
in the SVG Implementation and Resource Directory.
|
|
|
|
Vector formats may often be smaller than raster formats.
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
The intention behind wxSVGFileDC is that it can be used to produce a file
|
2008-03-08 09:43:31 -05:00
|
|
|
corresponding
|
2008-03-08 08:52:38 -05:00
|
|
|
to the screen display context, wxSVGFileDC, by passing the wxSVGFileDC as a
|
|
|
|
parameter instead of a wxSVGFileDC. Thus the wxSVGFileDC is a write-only class.
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
As the wxSVGFileDC is a vector format, raster operations like GetPixel are
|
|
|
|
unlikely to be supported.
|
|
|
|
However, the SVG specification allows for PNG format raster files to be
|
2008-03-08 09:43:31 -05:00
|
|
|
embedded in the SVG, and so
|
2008-03-08 08:52:38 -05:00
|
|
|
bitmaps, icons and blit operations into the wxSVGFileDC are supported.
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
A more substantial SVG library (for reading and writing) is available at the
|
|
|
|
wxArt2D website.
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
@library{wxcore}
|
|
|
|
@category{FIXME}
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-10 11:24:38 -04:00
|
|
|
@see @b Members
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
|
|
|
class wxSVGFileDC : public wxDC
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
//@{
|
|
|
|
/**
|
2008-03-08 09:43:31 -05:00
|
|
|
Constructors:
|
2008-03-09 08:33:59 -04:00
|
|
|
a filename @a f with default size 340x240 at 72.0 dots per inch (a frequent
|
2008-03-08 08:52:38 -05:00
|
|
|
screen resolution).
|
2008-03-09 08:33:59 -04:00
|
|
|
a filename @a f with size @a Width by @a Height at 72.0 dots per inch
|
|
|
|
a filename @a f with size @a Width by @a Height at @a dpi resolution.
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
|
|
|
wxSVGFileDC(wxString f);
|
2008-03-08 09:43:31 -05:00
|
|
|
wxSVGFileDC(wxString f, int Width, int Height);
|
|
|
|
wxSVGFileDC(wxString f, int Width, int Height, float dpi);
|
2008-03-08 08:52:38 -05:00
|
|
|
//@}
|
|
|
|
|
|
|
|
/**
|
|
|
|
Destructor.
|
|
|
|
*/
|
|
|
|
~wxSVGFileDC();
|
|
|
|
|
|
|
|
/**
|
|
|
|
Does nothing
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
As wxDC: Copy from a source DC to this DC, specifying the destination
|
|
|
|
coordinates, size of area to copy, source DC, source coordinates,
|
|
|
|
logical function, whether to use a bitmap mask, and mask source position.
|
|
|
|
*/
|
|
|
|
bool Blit(wxCoord xdest, wxCoord ydest, wxCoord width,
|
|
|
|
wxCoord height, wxSVGFileDC* source,
|
|
|
|
wxCoord xsrc, wxCoord ysrc,
|
|
|
|
int logicalFunc = wxCOPY,
|
|
|
|
bool useMask = FALSE,
|
|
|
|
wxCoord xsrcMask = -1,
|
|
|
|
wxCoord ysrcMask = -1);
|
|
|
|
|
|
|
|
/**
|
2008-03-08 09:43:31 -05:00
|
|
|
Adds the specified point to the bounding box which can be retrieved with
|
|
|
|
wxDC::MinX, wxDC::MaxX and
|
2008-03-08 08:52:38 -05:00
|
|
|
wxDC::MinY, wxDC::MaxY functions.
|
|
|
|
*/
|
|
|
|
void CalcBoundingBox(wxCoord x, wxCoord y);
|
|
|
|
|
|
|
|
/**
|
|
|
|
This makes no sense in wxSVGFileDC and does nothing
|
|
|
|
*/
|
|
|
|
void Clear();
|
|
|
|
|
|
|
|
/**
|
|
|
|
Not Implemented
|
|
|
|
*/
|
|
|
|
void CrossHair(wxCoord x, wxCoord y);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Not Implemented
|
|
|
|
*/
|
|
|
|
void DestroyClippingRegion();
|
|
|
|
|
|
|
|
/**
|
|
|
|
Convert device X coordinate to logical coordinate, using the current
|
|
|
|
mapping mode.
|
|
|
|
*/
|
|
|
|
wxCoord DeviceToLogicalX(wxCoord x);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Convert device X coordinate to relative logical coordinate, using the current
|
|
|
|
mapping mode but ignoring the x axis orientation.
|
|
|
|
Use this function for converting a width, for example.
|
|
|
|
*/
|
|
|
|
wxCoord DeviceToLogicalXRel(wxCoord x);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Converts device Y coordinate to logical coordinate, using the current
|
|
|
|
mapping mode.
|
|
|
|
*/
|
|
|
|
wxCoord DeviceToLogicalY(wxCoord y);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Convert device Y coordinate to relative logical coordinate, using the current
|
|
|
|
mapping mode but ignoring the y axis orientation.
|
|
|
|
Use this function for converting a height, for example.
|
|
|
|
*/
|
|
|
|
wxCoord DeviceToLogicalYRel(wxCoord y);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Draws an arc of a circle, centred on (@e xc, yc), with starting point (@e x1,
|
|
|
|
y1)
|
|
|
|
and ending at (@e x2, y2). The current pen is used for the outline
|
|
|
|
and the current brush for filling the shape.
|
|
|
|
The arc is drawn in an anticlockwise direction from the start point to the end
|
|
|
|
point.
|
|
|
|
*/
|
|
|
|
void DrawArc(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2,
|
|
|
|
wxCoord xc, wxCoord yc);
|
|
|
|
|
|
|
|
/**
|
2008-03-09 08:33:59 -04:00
|
|
|
Draw a bitmap on the device context at the specified point. If @a transparent
|
2008-03-08 08:52:38 -05:00
|
|
|
is @true and the bitmap has
|
|
|
|
a transparency mask, the bitmap will be drawn transparently.
|
|
|
|
When drawing a mono-bitmap, the current text foreground colour will be used to
|
|
|
|
draw the foreground
|
|
|
|
of the bitmap (all bits set to 1), and the current text background colour to
|
|
|
|
draw the background
|
2008-03-08 09:43:31 -05:00
|
|
|
(all bits set to 0). See also wxDC::SetTextForeground,
|
2008-03-08 08:52:38 -05:00
|
|
|
wxDC::SetTextBackground and wxMemoryDC.
|
|
|
|
*/
|
|
|
|
void DrawBitmap(const wxBitmap& bitmap, wxCoord x, wxCoord y,
|
|
|
|
bool transparent);
|
|
|
|
|
|
|
|
//@{
|
|
|
|
/**
|
|
|
|
Draws a check mark inside the given rectangle.
|
|
|
|
*/
|
|
|
|
void DrawCheckMark(wxCoord x, wxCoord y, wxCoord width,
|
|
|
|
wxCoord height);
|
2008-03-09 08:33:59 -04:00
|
|
|
void DrawCheckMark(const wxRect& rect);
|
2008-03-08 08:52:38 -05:00
|
|
|
//@}
|
|
|
|
|
|
|
|
//@{
|
|
|
|
/**
|
|
|
|
Draws a circle with the given centre and radius.
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-03-09 08:33:59 -04:00
|
|
|
@see wxDC::DrawEllipse
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
|
|
|
void DrawCircle(wxCoord x, wxCoord y, wxCoord radius);
|
2008-03-08 09:43:31 -05:00
|
|
|
void DrawCircle(const wxPoint& pt, wxCoord radius);
|
2008-03-08 08:52:38 -05:00
|
|
|
//@}
|
|
|
|
|
|
|
|
//@{
|
|
|
|
/**
|
|
|
|
Draws an ellipse contained in the rectangle specified either with the given top
|
|
|
|
left corner and the given size or directly. The current pen is used for the
|
|
|
|
outline and the current brush for filling the shape.
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-03-09 08:33:59 -04:00
|
|
|
@see wxDC::DrawCircle
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
|
|
|
void DrawEllipse(wxCoord x, wxCoord y, wxCoord width,
|
|
|
|
wxCoord height);
|
2008-03-08 09:43:31 -05:00
|
|
|
void DrawEllipse(const wxPoint& pt, const wxSize& size);
|
|
|
|
void DrawEllipse(const wxRect& rect);
|
2008-03-08 08:52:38 -05:00
|
|
|
//@}
|
|
|
|
|
|
|
|
/**
|
|
|
|
Draws an arc of an ellipse. The current pen is used for drawing the arc and
|
|
|
|
the current brush is used for drawing the pie.
|
2008-03-09 08:33:59 -04:00
|
|
|
@a x and @a y specify the x and y coordinates of the upper-left corner of the
|
2008-03-08 08:52:38 -05:00
|
|
|
rectangle that contains
|
|
|
|
the ellipse.
|
2008-03-09 08:33:59 -04:00
|
|
|
@a width and @a height specify the width and height of the rectangle that
|
2008-03-08 08:52:38 -05:00
|
|
|
contains
|
|
|
|
the ellipse.
|
2008-03-09 08:33:59 -04:00
|
|
|
@a start and @a end specify the start and end of the arc relative to the
|
2008-03-08 08:52:38 -05:00
|
|
|
three-o'clock
|
|
|
|
position from the center of the rectangle. Angles are specified
|
|
|
|
in degrees (360 is a complete circle). Positive values mean
|
2008-03-09 08:33:59 -04:00
|
|
|
counter-clockwise motion. If @a start is equal to @e end, a
|
2008-03-08 08:52:38 -05:00
|
|
|
complete ellipse will be drawn.
|
|
|
|
*/
|
|
|
|
void DrawEllipticArc(wxCoord x, wxCoord y, wxCoord width,
|
|
|
|
wxCoord height,
|
|
|
|
double start,
|
|
|
|
double end);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Draw an icon on the display (does nothing if the device context is PostScript).
|
|
|
|
This can be the simplest way of drawing bitmaps on a window.
|
|
|
|
*/
|
|
|
|
void DrawIcon(const wxIcon& icon, wxCoord x, wxCoord y);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Draws a line from the first point to the second. The current pen is used
|
|
|
|
for drawing the line.
|
|
|
|
*/
|
|
|
|
void DrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2);
|
|
|
|
|
|
|
|
//@{
|
|
|
|
/**
|
2008-03-09 08:33:59 -04:00
|
|
|
Draws lines using an array of @a points of size @e n, or list of
|
2008-03-08 08:52:38 -05:00
|
|
|
pointers to points, adding the optional offset coordinate. The current
|
|
|
|
pen is used for drawing the lines. The programmer is responsible for
|
|
|
|
deleting the list of points.
|
|
|
|
*/
|
|
|
|
void DrawLines(int n, wxPoint points[], wxCoord xoffset = 0,
|
|
|
|
wxCoord yoffset = 0);
|
2008-03-09 08:33:59 -04:00
|
|
|
void DrawLines(wxList* points, wxCoord xoffset = 0,
|
2008-03-08 09:43:31 -05:00
|
|
|
wxCoord yoffset = 0);
|
2008-03-08 08:52:38 -05:00
|
|
|
//@}
|
|
|
|
|
|
|
|
/**
|
|
|
|
Draws a point using the current pen.
|
|
|
|
*/
|
|
|
|
void DrawPoint(wxCoord x, wxCoord y);
|
|
|
|
|
|
|
|
//@{
|
|
|
|
/**
|
2008-03-09 08:33:59 -04:00
|
|
|
Draws a filled polygon using an array of @a points of size @e n,
|
2008-03-08 08:52:38 -05:00
|
|
|
or list of pointers to points, adding the optional offset coordinate.
|
|
|
|
The last argument specifies the fill rule: @b wxODDEVEN_RULE (the
|
|
|
|
default) or @b wxWINDING_RULE.
|
|
|
|
The current pen is used for drawing the outline, and the current brush
|
|
|
|
for filling the shape. Using a transparent brush suppresses filling.
|
|
|
|
The programmer is responsible for deleting the list of points.
|
|
|
|
Note that wxWindows automatically closes the first and last points.
|
|
|
|
*/
|
|
|
|
void DrawPolygon(int n, wxPoint points[], wxCoord xoffset = 0,
|
|
|
|
wxCoord yoffset = 0,
|
|
|
|
int fill_style = wxODDEVEN_RULE);
|
2008-03-09 08:33:59 -04:00
|
|
|
void DrawPolygon(wxList* points, wxCoord xoffset = 0,
|
2008-03-08 09:43:31 -05:00
|
|
|
wxCoord yoffset = 0,
|
|
|
|
int fill_style = wxODDEVEN_RULE);
|
2008-03-08 08:52:38 -05:00
|
|
|
//@}
|
|
|
|
|
|
|
|
/**
|
|
|
|
Draws a rectangle with the given top left corner, and with the given
|
|
|
|
size. The current pen is used for the outline and the current brush
|
|
|
|
for filling the shape.
|
|
|
|
*/
|
|
|
|
void DrawRectangle(wxCoord x, wxCoord y, wxCoord width,
|
|
|
|
wxCoord height);
|
|
|
|
|
|
|
|
/**
|
2008-03-09 08:33:59 -04:00
|
|
|
Draws the text rotated by @a angle degrees.
|
2008-03-08 08:52:38 -05:00
|
|
|
The wxMSW wxDC and wxSVGFileDC rotate the text around slightly different
|
|
|
|
points, depending on the size of the font
|
|
|
|
*/
|
|
|
|
void DrawRotatedText(const wxString& text, wxCoord x, wxCoord y,
|
|
|
|
double angle);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Draws a rectangle with the given top left corner, and with the given
|
|
|
|
size. The corners are quarter-circles using the given radius. The
|
|
|
|
current pen is used for the outline and the current brush for filling
|
|
|
|
the shape.
|
2008-03-09 08:33:59 -04:00
|
|
|
If @a radius is positive, the value is assumed to be the
|
|
|
|
radius of the rounded corner. If @a radius is negative,
|
2008-03-08 08:52:38 -05:00
|
|
|
the absolute value is assumed to be the @e proportion of the smallest
|
|
|
|
dimension of the rectangle. This means that the corner can be
|
|
|
|
a sensible size relative to the size of the rectangle, and also avoids
|
|
|
|
the strange effects X produces when the corners are too big for
|
|
|
|
the rectangle.
|
|
|
|
*/
|
|
|
|
void DrawRoundedRectangle(wxCoord x, wxCoord y, wxCoord width,
|
|
|
|
wxCoord height,
|
|
|
|
double radius = 20);
|
|
|
|
|
|
|
|
//@{
|
|
|
|
/**
|
|
|
|
Draws a three-point spline using the current pen.
|
|
|
|
*/
|
2008-03-09 08:33:59 -04:00
|
|
|
void DrawSpline(wxList* points);
|
2008-03-08 09:43:31 -05:00
|
|
|
void DrawSpline(wxCoord x1, wxCoord y1, wxCoord x2,
|
|
|
|
wxCoord y2,
|
|
|
|
wxCoord x3,
|
|
|
|
wxCoord y3);
|
2008-03-08 08:52:38 -05:00
|
|
|
//@}
|
|
|
|
|
|
|
|
/**
|
|
|
|
Draws a text string at the specified point, using the current text font,
|
|
|
|
and the current text foreground and background colours.
|
|
|
|
The coordinates refer to the top-left corner of the rectangle bounding
|
|
|
|
the string. See GetTextExtent() for how
|
|
|
|
to get the dimensions of a text string, which can be used to position the
|
|
|
|
text more precisely.
|
|
|
|
*/
|
|
|
|
void DrawText(const wxString& text, wxCoord x, wxCoord y);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Does nothing
|
|
|
|
*/
|
|
|
|
void EndDoc();
|
|
|
|
|
|
|
|
/**
|
|
|
|
Does nothing
|
|
|
|
*/
|
|
|
|
void EndDrawing();
|
|
|
|
|
|
|
|
/**
|
|
|
|
Does nothing
|
|
|
|
*/
|
|
|
|
void EndPage();
|
|
|
|
|
|
|
|
/**
|
|
|
|
Not implemented
|
|
|
|
*/
|
|
|
|
void FloodFill(wxCoord x, wxCoord y, const wxColour& colour,
|
2008-03-09 08:33:59 -04:00
|
|
|
int style = wxFLOOD_SURFACE);
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
//@{
|
|
|
|
/**
|
|
|
|
Gets the brush used for painting the background (see
|
|
|
|
wxSVGFileDC::SetBackground).
|
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
wxBrush GetBackground() const;
|
|
|
|
const wxBrush GetBackground() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
//@}
|
|
|
|
|
|
|
|
/**
|
|
|
|
Returns the current background mode: @c wxSOLID or @c wxTRANSPARENT.
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-03-09 08:33:59 -04:00
|
|
|
@see wxDC::SetBackgroundMode
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
int GetBackgroundMode() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
//@{
|
|
|
|
/**
|
|
|
|
Gets the current brush (see wxSVGFileDC::SetBrush).
|
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
wxBrush GetBrush() const;
|
|
|
|
const wxBrush GetBrush() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
//@}
|
|
|
|
|
|
|
|
/**
|
|
|
|
Gets the character height of the currently set font.
|
|
|
|
*/
|
|
|
|
wxCoord GetCharHeight();
|
|
|
|
|
|
|
|
/**
|
|
|
|
Gets the average character width of the currently set font.
|
|
|
|
*/
|
|
|
|
wxCoord GetCharWidth();
|
|
|
|
|
|
|
|
/**
|
|
|
|
Not implemented
|
|
|
|
*/
|
|
|
|
void GetClippingBox(wxCoord x, wxCoord y, wxCoord width,
|
|
|
|
wxCoord height);
|
|
|
|
|
|
|
|
//@{
|
|
|
|
/**
|
|
|
|
Gets the current font (see wxSVGFileDC::SetFont).
|
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
wxFont GetFont() const;
|
|
|
|
const wxFont GetFont() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
//@}
|
|
|
|
|
|
|
|
/**
|
|
|
|
Gets the current logical function (see wxSVGFileDC::SetLogicalFunction).
|
|
|
|
*/
|
|
|
|
int GetLogicalFunction();
|
|
|
|
|
|
|
|
/**
|
|
|
|
Gets the @e mapping mode for the device context (see wxSVGFileDC::SetMapMode).
|
|
|
|
*/
|
|
|
|
int GetMapMode();
|
|
|
|
|
|
|
|
//@{
|
|
|
|
/**
|
|
|
|
Gets the current pen (see wxSVGFileDC::SetPen).
|
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
wxPen GetPen() const;
|
|
|
|
const wxPen GetPen() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
//@}
|
|
|
|
|
|
|
|
/**
|
|
|
|
Not implemented
|
|
|
|
*/
|
2008-03-09 08:33:59 -04:00
|
|
|
bool GetPixel(wxCoord x, wxCoord y, wxColour* colour);
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
For a Windows printer device context, this gets the horizontal and vertical
|
|
|
|
resolution.
|
|
|
|
*/
|
2008-03-09 08:33:59 -04:00
|
|
|
void GetSize(wxCoord* width, wxCoord* height);
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
//@{
|
|
|
|
/**
|
|
|
|
Gets the current text background colour (see wxSVGFileDC::SetTextBackground).
|
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
wxColour GetTextBackground() const;
|
|
|
|
const wxColour GetTextBackground() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
//@}
|
|
|
|
|
|
|
|
/**
|
|
|
|
Gets the dimensions of the string using the currently selected font.
|
2008-03-09 08:33:59 -04:00
|
|
|
@a string is the text string to measure, @a w and @a h are
|
|
|
|
the total width and height respectively, @a descent is the
|
2008-03-08 08:52:38 -05:00
|
|
|
dimension from the baseline of the font to the bottom of the
|
2008-03-09 08:33:59 -04:00
|
|
|
descender, and @a externalLeading is any extra vertical space added
|
2008-03-08 08:52:38 -05:00
|
|
|
to the font by the font designer (usually is zero).
|
2008-03-09 08:33:59 -04:00
|
|
|
The optional parameter @a font specifies an alternative
|
2008-03-08 08:52:38 -05:00
|
|
|
to the currently selected font: but note that this does not
|
|
|
|
yet work under Windows, so you need to set a font for
|
|
|
|
the device context first.
|
|
|
|
See also wxFont, SetFont().
|
|
|
|
*/
|
2008-03-09 08:33:59 -04:00
|
|
|
void GetTextExtent(const wxString& string, wxCoord* w,
|
|
|
|
wxCoord* h,
|
|
|
|
wxCoord* descent = NULL,
|
|
|
|
wxCoord* externalLeading = NULL,
|
|
|
|
wxFont* font = NULL);
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
//@{
|
|
|
|
/**
|
|
|
|
Gets the current text foreground colour (see wxSVGFileDC::SetTextForeground).
|
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
wxColour GetTextForeground() const;
|
|
|
|
const wxColour GetTextForeground() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
//@}
|
|
|
|
|
|
|
|
/**
|
|
|
|
Gets the current user scale factor (set by wxDC::SetUserScale).
|
|
|
|
*/
|
|
|
|
void GetUserScale(double x, double y);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Converts logical X coordinate to device coordinate, using the current
|
|
|
|
mapping mode.
|
|
|
|
*/
|
|
|
|
wxCoord LogicalToDeviceX(wxCoord x);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Converts logical X coordinate to relative device coordinate, using the current
|
|
|
|
mapping mode but ignoring the x axis orientation.
|
|
|
|
Use this for converting a width, for example.
|
|
|
|
*/
|
|
|
|
wxCoord LogicalToDeviceXRel(wxCoord x);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Converts logical Y coordinate to device coordinate, using the current
|
|
|
|
mapping mode.
|
|
|
|
*/
|
|
|
|
wxCoord LogicalToDeviceY(wxCoord y);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Converts logical Y coordinate to relative device coordinate, using the current
|
|
|
|
mapping mode but ignoring the y axis orientation.
|
|
|
|
Use this for converting a height, for example.
|
|
|
|
*/
|
|
|
|
wxCoord LogicalToDeviceYRel(wxCoord y);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Gets the maximum horizontal extent used in drawing commands so far.
|
|
|
|
*/
|
2008-03-09 08:33:59 -04:00
|
|
|
wxCoord MaxX();
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Gets the maximum vertical extent used in drawing commands so far.
|
|
|
|
*/
|
2008-03-09 08:33:59 -04:00
|
|
|
wxCoord MaxY();
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Gets the minimum horizontal extent used in drawing commands so far.
|
|
|
|
*/
|
2008-03-09 08:33:59 -04:00
|
|
|
wxCoord MinX();
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Gets the minimum vertical extent used in drawing commands so far.
|
|
|
|
*/
|
2008-03-09 08:33:59 -04:00
|
|
|
wxCoord MinY();
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
2008-03-08 09:43:31 -05:00
|
|
|
Returns @true if the DC is ok to use; False values arise from being unable to
|
2008-03-08 08:52:38 -05:00
|
|
|
write the file
|
|
|
|
*/
|
2008-03-09 08:33:59 -04:00
|
|
|
bool Ok();
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Resets the bounding box: after a call to this function, the bounding box
|
|
|
|
doesn't contain anything.
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-03-09 08:33:59 -04:00
|
|
|
@see wxDC::CalcBoundingBox
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
|
|
|
void ResetBoundingBox();
|
|
|
|
|
|
|
|
/**
|
|
|
|
Sets the x and y axis orientation (i.e., the direction from lowest to
|
|
|
|
highest values on the axis). The default orientation is the natural
|
|
|
|
orientation, e.g. x axis from left to right and y axis from bottom up.
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-03-08 09:43:31 -05:00
|
|
|
@param xLeftRight
|
2008-03-09 08:33:59 -04:00
|
|
|
True to set the x axis orientation to the natural
|
|
|
|
left to right orientation, @false to invert it.
|
2008-03-08 09:43:31 -05:00
|
|
|
@param yBottomUp
|
2008-03-09 08:33:59 -04:00
|
|
|
True to set the y axis orientation to the natural
|
|
|
|
bottom up orientation, @false to invert it.
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
|
|
|
void SetAxisOrientation(bool xLeftRight, bool yBottomUp);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Sets the current background brush for the DC.
|
|
|
|
*/
|
|
|
|
void SetBackground(const wxBrush& brush);
|
|
|
|
|
|
|
|
/**
|
2008-03-09 08:33:59 -04:00
|
|
|
@a mode may be one of wxSOLID and wxTRANSPARENT. This setting determines
|
2008-03-08 08:52:38 -05:00
|
|
|
whether text will be drawn with a background colour or not.
|
|
|
|
*/
|
|
|
|
void SetBackgroundMode(int mode);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Sets the current brush for the DC.
|
|
|
|
If the argument is wxNullBrush, the current brush is selected out of the device
|
|
|
|
context, and the original brush restored, allowing the current brush to
|
|
|
|
be destroyed safely.
|
|
|
|
See also wxBrush.
|
|
|
|
See also wxMemoryDC for the interpretation of colours
|
|
|
|
when drawing into a monochrome bitmap.
|
|
|
|
*/
|
|
|
|
void SetBrush(const wxBrush& brush);
|
|
|
|
|
|
|
|
//@{
|
|
|
|
/**
|
|
|
|
Not implemented
|
|
|
|
*/
|
|
|
|
void SetClippingRegion(wxCoord x, wxCoord y, wxCoord width,
|
|
|
|
wxCoord height);
|
2008-03-08 09:43:31 -05:00
|
|
|
void SetClippingRegion(const wxPoint& pt, const wxSize& sz);
|
|
|
|
void SetClippingRegion(const wxRect& rect);
|
|
|
|
void SetClippingRegion(const wxRegion& region);
|
2008-03-08 08:52:38 -05:00
|
|
|
//@}
|
|
|
|
|
|
|
|
/**
|
|
|
|
Sets the device origin (i.e., the origin in pixels after scaling has been
|
|
|
|
applied).
|
|
|
|
This function may be useful in Windows printing
|
|
|
|
operations for placing a graphic on a page.
|
|
|
|
*/
|
|
|
|
void SetDeviceOrigin(wxCoord x, wxCoord y);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Sets the current font for the DC. It must be a valid font, in particular you
|
|
|
|
should not pass @c wxNullFont to this method.
|
|
|
|
See also wxFont.
|
|
|
|
*/
|
|
|
|
void SetFont(const wxFont& font);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Only wxCOPY is avalaible; trying to set one of the othe values will fail
|
|
|
|
*/
|
|
|
|
void SetLogicalFunction(int function);
|
|
|
|
|
|
|
|
/**
|
|
|
|
The @e mapping mode of the device context defines the unit of
|
|
|
|
measurement used to convert logical units to device units. Note that
|
|
|
|
in X, text drawing isn't handled consistently with the mapping mode; a
|
|
|
|
font is always specified in point size. However, setting the @e user scale (see
|
|
|
|
wxSVGFileDC::SetUserScale) scales the text appropriately. In
|
|
|
|
Windows, scaleable TrueType fonts are always used; in X, results depend
|
|
|
|
on availability of fonts, but usually a reasonable match is found.
|
|
|
|
Note that the coordinate origin should ideally be selectable, but for
|
|
|
|
now is always at the top left of the screen/printer.
|
|
|
|
Drawing to a Windows printer device context under UNIX
|
|
|
|
uses the current mapping mode, but mapping mode is currently ignored for
|
|
|
|
PostScript output.
|
|
|
|
The mapping mode can be one of the following:
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
wxMM_TWIPS
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
Each logical unit is 1/20 of a point, or 1/1440 of
|
|
|
|
an inch.
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
wxMM_POINTS
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
Each logical unit is a point, or 1/72 of an inch.
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
wxMM_METRIC
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
Each logical unit is 1 mm.
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
wxMM_LOMETRIC
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
Each logical unit is 1/10 of a mm.
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
wxMM_TEXT
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
Each logical unit is 1 pixel.
|
|
|
|
*/
|
|
|
|
void SetMapMode(int int);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Not implemented
|
|
|
|
*/
|
|
|
|
void SetPalette(const wxPalette& palette);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Sets the current pen for the DC.
|
|
|
|
If the argument is wxNullPen, the current pen is selected out of the device
|
|
|
|
context, and the original pen restored.
|
|
|
|
See also wxMemoryDC for the interpretation of colours
|
|
|
|
when drawing into a monochrome bitmap.
|
|
|
|
*/
|
|
|
|
void SetPen(const wxPen& pen);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Sets the current text background colour for the DC.
|
|
|
|
*/
|
|
|
|
void SetTextBackground(const wxColour& colour);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Sets the current text foreground colour for the DC.
|
|
|
|
See also wxMemoryDC for the interpretation of colours
|
|
|
|
when drawing into a monochrome bitmap.
|
|
|
|
*/
|
|
|
|
void SetTextForeground(const wxColour& colour);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Sets the user scaling factor, useful for applications which require
|
|
|
|
'zooming'.
|
|
|
|
*/
|
|
|
|
void SetUserScale(double xScale, double yScale);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Does nothing
|
|
|
|
*/
|
|
|
|
bool StartDoc(const wxString& message);
|
|
|
|
};
|
2008-03-10 11:24:38 -04:00
|
|
|
|