<html> <head> <link rel="stylesheet" href="page.css" type="text/css"> <title>fox-toolkit.org - Documentation</title> </head> <body bgcolor=#ffffff link=#990033 vlink=#990033 alink=#990033 text=#000000> <font face='verdana,sans-serif' size=2 > <!---- TOPIC TITLE WITH LOGO---> <table border=0 cellpadding= cellspacing=2 width=100% ><tr><td><a href='http://www.fox-toolkit.org/doc.html'><img src='../art/foxlogo_small.jpg' border=0></a></td><td width=100% valign=bottom><font face='verdana,sans-serif' size=2 ><b> <a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="classes.html">Alphabetical List</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> <br><img src='../art/line.gif' width=100% height=1></b></font></td></tr></table> <p> <!--- TOPIC TITLE WITH LOGO ---> <!-- Generated by Doxygen 1.3.3 --> <h1>FXDC.h</h1><div class="fragment"><pre>00001 <span class="comment">/********************************************************************************</span> 00002 <span class="comment">* *</span> 00003 <span class="comment">* D e v i c e C o n t e x t B a s e C l a s s *</span> 00004 <span class="comment">* *</span> 00005 <span class="comment">*********************************************************************************</span> 00006 <span class="comment">* Copyright (C) 1999,2004 by Jeroen van der Zijp. All Rights Reserved. *</span> 00007 <span class="comment">*********************************************************************************</span> 00008 <span class="comment">* This library is free software; you can redistribute it and/or *</span> 00009 <span class="comment">* modify it under the terms of the GNU Lesser General Public *</span> 00010 <span class="comment">* License as published by the Free Software Foundation; either *</span> 00011 <span class="comment">* version 2.1 of the License, or (at your option) any later version. *</span> 00012 <span class="comment">* *</span> 00013 <span class="comment">* This library is distributed in the hope that it will be useful, *</span> 00014 <span class="comment">* but WITHOUT ANY WARRANTY; without even the implied warranty of *</span> 00015 <span class="comment">* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *</span> 00016 <span class="comment">* Lesser General Public License for more details. *</span> 00017 <span class="comment">* *</span> 00018 <span class="comment">* You should have received a copy of the GNU Lesser General Public *</span> 00019 <span class="comment">* License along with this library; if not, write to the Free Software *</span> 00020 <span class="comment">* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *</span> 00021 <span class="comment">*********************************************************************************</span> 00022 <span class="comment">* $Id: FXDC.h,v 1.29 2004/02/08 17:17:33 fox Exp $ *</span> 00023 <span class="comment">********************************************************************************/</span> 00024 <span class="preprocessor">#ifndef FXDC_H</span> 00025 <span class="preprocessor"></span><span class="preprocessor">#define FXDC_H</span> 00026 <span class="preprocessor"></span> 00027 <span class="keyword">namespace </span>FX { 00028 <span class="comment"></span> 00029 <span class="comment">/// Drawing (BITBLT) functions</span> 00030 <span class="comment"></span><span class="keyword">enum</span> <a class="code" href="group__FXDC__0.html#a0">FXFunction</a> { 00031 <a class="code" href="group__FXDC__0.html#a0a88">BLT_CLR</a>, <span class="comment">/// D := 0</span> 00032 <span class="comment"></span> <a class="code" href="group__FXDC__0.html#a0a89">BLT_SRC_AND_DST</a>, <span class="comment">/// D := S & D</span> <a name="l00033"></a><a class="code" href="group__FXDC__0.html#a0">00033</a> <span class="comment"></span> <a class="code" href="group__FXDC__0.html#a0a90">BLT_SRC_AND_NOT_DST</a>, <span class="comment">/// D := S & ~D</span> 00034 <span class="comment"></span> <a class="code" href="group__FXDC__0.html#a0a91">BLT_SRC</a>, <span class="comment">/// D := S</span> 00035 <span class="comment"></span> <a class="code" href="group__FXDC__0.html#a0a92">BLT_NOT_SRC_AND_DST</a>, <span class="comment">/// D := ~S & D</span> 00036 <span class="comment"></span> <a class="code" href="group__FXDC__0.html#a0a93">BLT_DST</a>, <span class="comment">/// D := D</span> 00037 <span class="comment"></span> <a class="code" href="group__FXDC__0.html#a0a94">BLT_SRC_XOR_DST</a>, <span class="comment">/// D := S ^ D</span> 00038 <span class="comment"></span> <a class="code" href="group__FXDC__0.html#a0a95">BLT_SRC_OR_DST</a>, <span class="comment">/// D := S | D</span> 00039 <span class="comment"></span> <a class="code" href="group__FXDC__0.html#a0a96">BLT_NOT_SRC_AND_NOT_DST</a>, <span class="comment">/// D := ~S & ~D == D := ~(S | D)</span> 00040 <span class="comment"></span> <a class="code" href="group__FXDC__0.html#a0a97">BLT_NOT_SRC_XOR_DST</a>, <span class="comment">/// D := ~S ^ D</span> 00041 <span class="comment"></span> <a class="code" href="group__FXDC__0.html#a0a98">BLT_NOT_DST</a>, <span class="comment">/// D := ~D</span> 00042 <span class="comment"></span> <a class="code" href="group__FXDC__0.html#a0a99">BLT_SRC_OR_NOT_DST</a>, <span class="comment">/// D := S | ~D</span> 00043 <span class="comment"></span> <a class="code" href="group__FXDC__0.html#a0a100">BLT_NOT_SRC</a>, <span class="comment">/// D := ~S</span> 00044 <span class="comment"></span> <a class="code" href="group__FXDC__0.html#a0a101">BLT_NOT_SRC_OR_DST</a>, <span class="comment">/// D := ~S | D</span> 00045 <span class="comment"></span> <a class="code" href="group__FXDC__0.html#a0a102">BLT_NOT_SRC_OR_NOT_DST</a>, <span class="comment">/// D := ~S | ~D == ~(S & D)</span> 00046 <span class="comment"></span> <a class="code" href="group__FXDC__0.html#a0a103">BLT_SET</a> <span class="comment">/// D := 1</span> 00047 <span class="comment"></span> }; 00048 00049 <span class="comment"></span> 00050 <span class="comment">/// Line Styles</span> 00051 <span class="comment"></span><span class="keyword">enum</span> <a class="code" href="group__FXDC__1.html#a0">FXLineStyle</a> { 00052 <a class="code" href="group__FXDC__1.html#a0a104">LINE_SOLID</a>, <span class="comment">/// Solid lines</span> 00053 <span class="comment"></span> <a class="code" href="group__FXDC__1.html#a0a105">LINE_ONOFF_DASH</a>, <span class="comment">/// On-off dashed lines</span> 00054 <span class="comment"></span> <a class="code" href="group__FXDC__1.html#a0a106">LINE_DOUBLE_DASH</a> <span class="comment">/// Double dashed lines</span> 00055 <span class="comment"></span> }; 00056 00057 <span class="comment"></span> <a name="l00058"></a><a class="code" href="group__FXDC__1.html#a0">00058</a> <span class="comment">/// Line Cap Styles</span> 00059 <span class="comment"></span><span class="keyword">enum</span> <a class="code" href="group__FXDC__2.html#a0">FXCapStyle</a> { 00060 <a class="code" href="group__FXDC__2.html#a0a107">CAP_NOT_LAST</a>, <span class="comment">/// Don't include last end cap</span> 00061 <span class="comment"></span> <a class="code" href="group__FXDC__2.html#a0a108">CAP_BUTT</a>, <span class="comment">/// Butting line end caps</span> 00062 <span class="comment"></span> <a class="code" href="group__FXDC__2.html#a0a109">CAP_ROUND</a>, <span class="comment">/// Round line end caps</span> 00063 <span class="comment"></span> <a class="code" href="group__FXDC__2.html#a0a110">CAP_PROJECTING</a> <span class="comment">/// Projecting line end caps</span> 00064 <span class="comment"></span> }; 00065 00066 <span class="comment"></span> 00067 <span class="comment">/// Line Join Styles</span> 00068 <span class="comment"></span><span class="keyword">enum</span> <a class="code" href="group__FXDC__3.html#a0">FXJoinStyle</a> { 00069 <a class="code" href="group__FXDC__3.html#a0a111">JOIN_MITER</a>, <span class="comment">/// Mitered or pointy joints</span> <a name="l00070"></a><a class="code" href="group__FXDC__2.html#a0">00070</a> <span class="comment"></span> <a class="code" href="group__FXDC__3.html#a0a112">JOIN_ROUND</a>, <span class="comment">/// Round line joints</span> 00071 <span class="comment"></span> <a class="code" href="group__FXDC__3.html#a0a113">JOIN_BEVEL</a> <span class="comment">/// Beveled or flat joints</span> 00072 <span class="comment"></span> }; 00073 00074 <span class="comment"></span> 00075 <span class="comment">/// Fill Styles</span> 00076 <span class="comment"></span><span class="keyword">enum</span> <a class="code" href="group__FXDC__4.html#a0">FXFillStyle</a> { 00077 <a class="code" href="group__FXDC__4.html#a0a114">FILL_SOLID</a>, <span class="comment">/// Fill with solid color</span> 00078 <span class="comment"></span> <a class="code" href="group__FXDC__4.html#a0a115">FILL_TILED</a>, <span class="comment">/// Fill with tiled bitmap</span> 00079 <span class="comment"></span> <a class="code" href="group__FXDC__4.html#a0a116">FILL_STIPPLED</a>, <span class="comment">/// Fill where stipple mask is 1</span> 00080 <span class="comment"></span> <a class="code" href="group__FXDC__4.html#a0a117">FILL_OPAQUESTIPPLED</a> <span class="comment">/// Fill with foreground where mask is 1, background otherwise</span> 00081 <span class="comment"></span> }; 00082 <a name="l00083"></a><a class="code" href="group__FXDC__3.html#a0">00083</a> <span class="comment"></span> 00084 <span class="comment">/// Fill Rules</span> 00085 <span class="comment"></span><span class="keyword">enum</span> <a class="code" href="group__FXDC__5.html#a0">FXFillRule</a> { 00086 <a class="code" href="group__FXDC__5.html#a0a118">RULE_EVEN_ODD</a>, <span class="comment">/// Even odd polygon filling</span> 00087 <span class="comment"></span> <a class="code" href="group__FXDC__5.html#a0a119">RULE_WINDING</a> <span class="comment">/// Winding rule polygon filling</span> 00088 <span class="comment"></span> }; 00089 00090 <span class="comment"></span> 00091 <span class="comment">/// Stipple/dither patterns</span> 00092 <span class="comment"></span><span class="keyword">enum</span> <a class="code" href="group__FXDC__6.html#a0">FXStipplePattern</a> { 00093 STIPPLE_0 = 0, 00094 STIPPLE_NONE = 0, <a name="l00095"></a><a class="code" href="group__FXDC__4.html#a0">00095</a> <a class="code" href="group__FXDC__6.html#a0a122">STIPPLE_BLACK</a> = 0, <span class="comment">/// All ones</span> 00096 <span class="comment"></span> STIPPLE_1 = 1, 00097 STIPPLE_2 = 2, 00098 STIPPLE_3 = 3, 00099 STIPPLE_4 = 4, 00100 STIPPLE_5 = 5, 00101 STIPPLE_6 = 6, 00102 STIPPLE_7 = 7, 00103 STIPPLE_8 = 8, 00104 <a class="code" href="group__FXDC__6.html#a0a131">STIPPLE_GRAY</a> = 8, <span class="comment">/// 50% gray</span> 00105 <span class="comment"></span> STIPPLE_9 = 9, 00106 STIPPLE_10 = 10, 00107 STIPPLE_11 = 11, <a name="l00108"></a><a class="code" href="group__FXDC__5.html#a0">00108</a> STIPPLE_12 = 12, 00109 STIPPLE_13 = 13, 00110 STIPPLE_14 = 14, 00111 STIPPLE_15 = 15, 00112 STIPPLE_16 = 16, 00113 <a class="code" href="group__FXDC__6.html#a0a140">STIPPLE_WHITE</a> = 16, <span class="comment">/// All zeroes</span> 00114 <span class="comment"></span> <a class="code" href="group__FXDC__6.html#a0a141">STIPPLE_HORZ</a> = 17, <span class="comment">/// Horizontal hatch pattern</span> 00115 <span class="comment"></span> <a class="code" href="group__FXDC__6.html#a0a142">STIPPLE_VERT</a> = 18, <span class="comment">/// Vertical hatch pattern</span> 00116 <span class="comment"></span> <a class="code" href="group__FXDC__6.html#a0a143">STIPPLE_CROSS</a> = 19, <span class="comment">/// Cross-hatch pattern</span> 00117 <span class="comment"></span> <a class="code" href="group__FXDC__6.html#a0a144">STIPPLE_DIAG</a> = 20, <span class="comment">/// Diagonal // hatch pattern</span> 00118 <span class="comment"></span> <a class="code" href="group__FXDC__6.html#a0a145">STIPPLE_REVDIAG</a> = 21, <span class="comment">/// Reverse diagonal \\ hatch pattern</span> <a name="l00119"></a><a class="code" href="group__FXDC__6.html#a0">00119</a> <span class="comment"></span> <a class="code" href="group__FXDC__6.html#a0a146">STIPPLE_CROSSDIAG</a> = 22 <span class="comment">/// Cross-diagonal hatch pattern</span> 00120 <span class="comment"></span> }; 00121 00122 <span class="comment"></span> 00123 <span class="comment">/// Line segment</span> 00124 <span class="comment"></span><span class="keyword">struct </span>FXSegment { 00125 FXshort x1,y1,x2,y2; 00126 }; 00127 00128 <span class="comment"></span> 00129 <span class="comment">/// Arc</span> 00130 <span class="comment"></span><span class="keyword">struct </span>FXArc { 00131 FXshort x,y,w,h,a,b; 00132 }; 00133 00134 00135 <span class="keyword">class </span>FXApp; 00136 <span class="keyword">class </span>FXImage; 00137 <span class="keyword">class </span>FXBitmap; 00138 <span class="keyword">class </span>FXIcon; 00139 <span class="keyword">class </span>FXFont; 00140 <span class="keyword">class </span>FXDrawable; 00141 <span class="keyword">class </span>FXRegion; 00142 00143 <span class="comment"></span> 00144 <span class="comment">/**</span> 00145 <span class="comment">* Abstract Device Context</span> 00146 <span class="comment">*</span> 00147 <span class="comment">* A Device Context is used to maintain the state of the graphics drawing system.</span> 00148 <span class="comment">* Defining your drawing code in terms of the Abstract Device Context allows the</span> 00149 <span class="comment">* drawing commands to be rendered on different types of surfaces, such as windows</span> 00150 <span class="comment">* and images (FXDCWindow), or on paper (FXDCPrint).</span> 00151 <span class="comment">* WYSYWYG may be obtained by using the same identical drawing code in your</span> <a name="l00152"></a><a class="code" href="structFX_1_1FXSegment.html">00152</a> <span class="comment">* application regardless of the actual device surface being utilized.</span> 00153 <span class="comment">*/</span> 00154 <span class="keyword">class </span>FXAPI FXDC { 00155 <span class="keyword">private</span>: 00156 <a class="code" href="classFX_1_1FXApp.html">FXApp</a> *app; <span class="comment">// Application</span> 00157 <span class="keyword">protected</span>: <a name="l00158"></a><a class="code" href="structFX_1_1FXArc.html">00158</a> <span class="keywordtype">void</span> *ctx; <span class="comment">// Context handle</span> 00159 <a class="code" href="classFX_1_1FXFont.html">FXFont</a> *font; <span class="comment">// Drawing font</span> 00160 <a class="code" href="group__FXDC__6.html#a0">FXStipplePattern</a> pattern; <span class="comment">// Stipple pattern</span> 00161 <a class="code" href="classFX_1_1FXBitmap.html">FXBitmap</a> *stipple; <span class="comment">// Stipple bitmap</span> 00162 <a class="code" href="classFX_1_1FXImage.html">FXImage</a> *tile; <span class="comment">// Tile image</span> 00163 <a class="code" href="classFX_1_1FXBitmap.html">FXBitmap</a> *mask; <span class="comment">// Mask bitmap</span> 00164 <a class="code" href="classFX_1_1FXRectangle.html">FXRectangle</a> clip; <span class="comment">// Clip rectangle</span> 00165 FXColor fg; <span class="comment">// Foreground color</span> 00166 FXColor bg; <span class="comment">// Background color</span> 00167 FXuint width; <span class="comment">// Line width</span> 00168 <a class="code" href="group__FXDC__2.html#a0">FXCapStyle</a> cap; <span class="comment">// Line cap style</span> 00169 <a class="code" href="group__FXDC__3.html#a0">FXJoinStyle</a> join; <span class="comment">// Line join style</span> 00170 <a class="code" href="group__FXDC__1.html#a0">FXLineStyle</a> style; <span class="comment">// Line style</span> 00171 <a class="code" href="group__FXDC__4.html#a0">FXFillStyle</a> fill; <span class="comment">// Fill style</span> 00172 <a class="code" href="group__FXDC__5.html#a0">FXFillRule</a> rule; <span class="comment">// Fill rule</span> 00173 <a class="code" href="group__FXDC__0.html#a0">FXFunction</a> rop; <span class="comment">// RasterOp</span> 00174 FXchar dashpat[32]; <span class="comment">// Line dash pattern data</span> 00175 FXuint dashlen; <span class="comment">// Line dash pattern length</span> 00176 FXuint dashoff; <span class="comment">// Line dash pattern offset</span> 00177 FXint tx; <span class="comment">// Tile dx</span> 00178 FXint ty; <span class="comment">// Tile dy</span> 00179 FXint cx; <span class="comment">// Clip x</span> 00180 FXint cy; <span class="comment">// Clip y</span> 00181 <span class="keyword">private</span>: 00182 FXDC(); 00183 FXDC(<span class="keyword">const</span> FXDC&); 00184 FXDC &operator=(<span class="keyword">const</span> FXDC&); 00185 <span class="keyword">public</span>: 00186 <span class="comment"></span> 00187 <span class="comment"> /// Construct dummy DC</span> 00188 <span class="comment"></span> FXDC(<a class="code" href="classFX_1_1FXApp.html">FXApp</a>* a); 00189 <span class="comment"></span> 00190 <span class="comment"> /// Get application</span> <a name="l00191"></a><a class="code" href="classFX_1_1FXDC.html">00191</a> <span class="comment"></span> <a class="code" href="classFX_1_1FXApp.html">FXApp</a>* getApp()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> app; } 00192 <span class="comment"></span> 00193 <span class="comment"> /// Get context handle</span> 00194 <span class="comment"></span> <span class="keywordtype">void</span>* context()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ctx; } 00195 <span class="comment"></span> 00196 <span class="comment"> /// Read back pixel</span> 00197 <span class="comment"></span> <span class="keyword">virtual</span> FXColor readPixel(FXint x,FXint y); <a name="l00198"></a><a class="code" href="classFX_1_1FXDC.html#a1">00198</a> <span class="comment"></span> 00199 <span class="comment"> /// Draw points</span> 00200 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawPoint(FXint x,FXint y); <a name="l00201"></a><a class="code" href="classFX_1_1FXDC.html#a2">00201</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawPoints(<span class="keyword">const</span> <a class="code" href="classFX_1_1FXPoint.html">FXPoint</a>* points,FXuint npoints); 00202 <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawPointsRel(<span class="keyword">const</span> <a class="code" href="classFX_1_1FXPoint.html">FXPoint</a>* points,FXuint npoints); 00203 <span class="comment"></span> 00204 <span class="comment"> /// Draw lines</span> 00205 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawLine(FXint x1,FXint y1,FXint x2,FXint y2); 00206 <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawLines(<span class="keyword">const</span> <a class="code" href="classFX_1_1FXPoint.html">FXPoint</a>* points,FXuint npoints); 00207 <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawLinesRel(<span class="keyword">const</span> <a class="code" href="classFX_1_1FXPoint.html">FXPoint</a>* points,FXuint npoints); 00208 <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawLineSegments(<span class="keyword">const</span> <a class="code" href="structFX_1_1FXSegment.html">FXSegment</a>* segments,FXuint nsegments); 00209 <span class="comment"></span> 00210 <span class="comment"> /// Draw rectangles</span> 00211 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawRectangle(FXint x,FXint y,FXint w,FXint h); 00212 <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawRectangles(<span class="keyword">const</span> <a class="code" href="classFX_1_1FXRectangle.html">FXRectangle</a>* rectangles,FXuint nrectangles); 00213 <span class="comment"></span> 00214 <span class="comment"> /**</span> 00215 <span class="comment"> * Draw arcs.</span> 00216 <span class="comment"> * The argument ang1 specifies the start of the arc relative to the</span> 00217 <span class="comment"> * three-o'clock position from the center, in units of degrees*64.</span> 00218 <span class="comment"> * The argument ang2 specifies the path and extent of the arc relative</span> 00219 <span class="comment"> * to the start of the arc, in units of degrees*64.</span> 00220 <span class="comment"> * The arguments x,y,w,h specify the bounding rectangle.</span> 00221 <span class="comment"> */</span> 00222 <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawArc(FXint x,FXint y,FXint w,FXint h,FXint ang1,FXint ang2); 00223 <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawArcs(<span class="keyword">const</span> <a class="code" href="structFX_1_1FXArc.html">FXArc</a>* arcs,FXuint narcs); 00224 <span class="comment"></span> 00225 <span class="comment"> /// Filled rectangles</span> 00226 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> fillRectangle(FXint x,FXint y,FXint w,FXint h); 00227 <span class="keyword">virtual</span> <span class="keywordtype">void</span> fillRectangles(<span class="keyword">const</span> <a class="code" href="classFX_1_1FXRectangle.html">FXRectangle</a>* rectangles,FXuint nrectangles); 00228 <span class="comment"></span> 00229 <span class="comment"> /// Fill chord</span> 00230 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> fillChord(FXint x,FXint y,FXint w,FXint h,FXint ang1,FXint ang2); 00231 <span class="keyword">virtual</span> <span class="keywordtype">void</span> fillChords(<span class="keyword">const</span> <a class="code" href="structFX_1_1FXArc.html">FXArc</a>* chords,FXuint nchords); 00232 <span class="comment"></span> 00233 <span class="comment"> /// Draw arcs</span> 00234 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> fillArc(FXint x,FXint y,FXint w,FXint h,FXint ang1,FXint ang2); 00235 <span class="keyword">virtual</span> <span class="keywordtype">void</span> fillArcs(<span class="keyword">const</span> <a class="code" href="structFX_1_1FXArc.html">FXArc</a>* arcs,FXuint narcs); 00236 <span class="comment"></span> 00237 <span class="comment"> /// Filled polygon</span> 00238 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> fillPolygon(<span class="keyword">const</span> <a class="code" href="classFX_1_1FXPoint.html">FXPoint</a>* points,FXuint npoints); 00239 <span class="keyword">virtual</span> <span class="keywordtype">void</span> fillConcavePolygon(<span class="keyword">const</span> <a class="code" href="classFX_1_1FXPoint.html">FXPoint</a>* points,FXuint npoints); 00240 <span class="keyword">virtual</span> <span class="keywordtype">void</span> fillComplexPolygon(<span class="keyword">const</span> <a class="code" href="classFX_1_1FXPoint.html">FXPoint</a>* points,FXuint npoints); 00241 <span class="comment"></span> 00242 <span class="comment"> /// Filled polygon with relative points</span> 00243 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> fillPolygonRel(<span class="keyword">const</span> <a class="code" href="classFX_1_1FXPoint.html">FXPoint</a>* points,FXuint npoints); 00244 <span class="keyword">virtual</span> <span class="keywordtype">void</span> fillConcavePolygonRel(<span class="keyword">const</span> <a class="code" href="classFX_1_1FXPoint.html">FXPoint</a>* points,FXuint npoints); 00245 <span class="keyword">virtual</span> <span class="keywordtype">void</span> fillComplexPolygonRel(<span class="keyword">const</span> <a class="code" href="classFX_1_1FXPoint.html">FXPoint</a>* points,FXuint npoints); 00246 <span class="comment"></span> 00247 <span class="comment"> /// Draw hashed box</span> 00248 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawHashBox(FXint x,FXint y,FXint w,FXint h,FXint b=1); 00249 <span class="comment"></span> 00250 <span class="comment"> /// Draw focus rectangle</span> 00251 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawFocusRectangle(FXint x,FXint y,FXint w,FXint h); 00252 <span class="comment"></span> 00253 <span class="comment"> /// Draw area from source</span> 00254 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawArea(<span class="keyword">const</span> <a class="code" href="classFX_1_1FXDrawable.html">FXDrawable</a>* source,FXint sx,FXint sy,FXint sw,FXint sh,FXint dx,FXint dy); 00255 <span class="comment"></span> 00256 <span class="comment"> /// Draw image</span> 00257 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawImage(<span class="keyword">const</span> <a class="code" href="classFX_1_1FXImage.html">FXImage</a>* image,FXint dx,FXint dy); 00258 <span class="comment"></span> 00259 <span class="comment"> /// Draw bitmap</span> 00260 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawBitmap(<span class="keyword">const</span> <a class="code" href="classFX_1_1FXBitmap.html">FXBitmap</a>* bitmap,FXint dx,FXint dy); 00261 <span class="comment"></span> 00262 <span class="comment"> /// Draw icon</span> 00263 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawIcon(<span class="keyword">const</span> <a class="code" href="classFX_1_1FXIcon.html">FXIcon</a>* icon,FXint dx,FXint dy); 00264 <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawIconShaded(<span class="keyword">const</span> <a class="code" href="classFX_1_1FXIcon.html">FXIcon</a>* icon,FXint dx,FXint dy); 00265 <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawIconSunken(<span class="keyword">const</span> <a class="code" href="classFX_1_1FXIcon.html">FXIcon</a>* icon,FXint dx,FXint dy); 00266 <span class="comment"></span> 00267 <span class="comment"> /// Draw string</span> 00268 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawText(FXint x,FXint y,<span class="keyword">const</span> FXchar* string,FXuint length); 00269 <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawImageText(FXint x,FXint y,<span class="keyword">const</span> FXchar* string,FXuint length); 00270 <span class="comment"></span> 00271 <span class="comment"> /// Set foreground drawing color</span> 00272 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setForeground(FXColor clr); 00273 <span class="comment"></span> 00274 <span class="comment"> /// Get foreground drawing color</span> 00275 <span class="comment"></span> FXColor getForeground()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fg; } 00276 <span class="comment"></span> 00277 <span class="comment"> /// Set background drawing color</span> 00278 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setBackground(FXColor clr); 00279 <span class="comment"></span> 00280 <span class="comment"> /// Get background drawing color</span> 00281 <span class="comment"></span> FXColor getBackground()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> bg; } <a name="l00282"></a><a class="code" href="classFX_1_1FXDC.html#a38">00282</a> <span class="comment"></span> 00283 <span class="comment"> /**</span> 00284 <span class="comment"> * Set dash pattern and dash offset.</span> 00285 <span class="comment"> * A dash pattern of [1 2 3 4] is a repeating pattern of 1 foreground pixel,</span> 00286 <span class="comment"> * 2 background pixels, 3 foreground pixels, and 4 background pixels.</span> 00287 <span class="comment"> * The offset is where in the pattern the system will start counting.</span> <a name="l00288"></a><a class="code" href="classFX_1_1FXDC.html#a40">00288</a> <span class="comment"> * The maximum length of the dash pattern is 32.</span> 00289 <span class="comment"> */</span> 00290 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setDashes(FXuint dashoffset,<span class="keyword">const</span> FXchar *dashpattern,FXuint dashlength); 00291 <span class="comment"></span> 00292 <span class="comment"> /// Get dash pattern</span> 00293 <span class="comment"></span> <span class="keyword">const</span> FXchar* getDashPattern()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> dashpat; } 00294 <span class="comment"></span> 00295 <span class="comment"> /// Get dash offset</span> 00296 <span class="comment"></span> FXuint getDashOffset()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> dashoff; } 00297 <span class="comment"></span> 00298 <span class="comment"> /// Get dash length</span> 00299 <span class="comment"></span> FXuint getDashLength()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> dashlen; } <a name="l00300"></a><a class="code" href="classFX_1_1FXDC.html#a42">00300</a> <span class="comment"></span> 00301 <span class="comment"> /// Set line width:- 0 means thinnest/fastest possible</span> 00302 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setLineWidth(FXuint linewidth=0); <a name="l00303"></a><a class="code" href="classFX_1_1FXDC.html#a43">00303</a> <span class="comment"></span> 00304 <span class="comment"> /// Get line width</span> 00305 <span class="comment"></span> FXuint getLineWidth()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> width; } <a name="l00306"></a><a class="code" href="classFX_1_1FXDC.html#a44">00306</a> <span class="comment"></span> 00307 <span class="comment"> /// Set line cap style</span> 00308 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setLineCap(FXCapStyle capstyle=CAP_BUTT); 00309 <span class="comment"></span> 00310 <span class="comment"> /// Get line cap style</span> 00311 <span class="comment"></span> <a class="code" href="group__FXDC__2.html#a0">FXCapStyle</a> getLineCap()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> cap; } <a name="l00312"></a><a class="code" href="classFX_1_1FXDC.html#a46">00312</a> <span class="comment"></span> 00313 <span class="comment"> /// Set line join style</span> 00314 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setLineJoin(FXJoinStyle joinstyle=JOIN_MITER); 00315 <span class="comment"></span> 00316 <span class="comment"> /// Get line join style</span> 00317 <span class="comment"></span> <a class="code" href="group__FXDC__3.html#a0">FXJoinStyle</a> getLineJoin()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> join; } <a name="l00318"></a><a class="code" href="classFX_1_1FXDC.html#a48">00318</a> <span class="comment"></span> 00319 <span class="comment"> /// Set line style</span> 00320 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setLineStyle(FXLineStyle linestyle=LINE_SOLID); 00321 <span class="comment"></span> 00322 <span class="comment"> /// Get line style</span> 00323 <span class="comment"></span> <a class="code" href="group__FXDC__1.html#a0">FXLineStyle</a> getLineStyle()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> style; } <a name="l00324"></a><a class="code" href="classFX_1_1FXDC.html#a50">00324</a> <span class="comment"></span> 00325 <span class="comment"> /// Set fill style</span> 00326 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setFillStyle(FXFillStyle fillstyle=FILL_SOLID); 00327 <span class="comment"></span> 00328 <span class="comment"> /// Get fill style</span> 00329 <span class="comment"></span> <a class="code" href="group__FXDC__4.html#a0">FXFillStyle</a> getFillStyle()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fill; } <a name="l00330"></a><a class="code" href="classFX_1_1FXDC.html#a52">00330</a> <span class="comment"></span> 00331 <span class="comment"> /// Set fill rule</span> 00332 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setFillRule(FXFillRule fillrule=RULE_EVEN_ODD); 00333 <span class="comment"></span> 00334 <span class="comment"> /// Get fill rule</span> 00335 <span class="comment"></span> <a class="code" href="group__FXDC__5.html#a0">FXFillRule</a> getFillRule()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> rule; } <a name="l00336"></a><a class="code" href="classFX_1_1FXDC.html#a54">00336</a> <span class="comment"></span> 00337 <span class="comment"> /// Set rasterop function</span> 00338 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setFunction(FXFunction func=BLT_SRC); 00339 <span class="comment"></span> 00340 <span class="comment"> /// Get rasterop function</span> 00341 <span class="comment"></span> <a class="code" href="group__FXDC__0.html#a0">FXFunction</a> getFunction()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> rop; } <a name="l00342"></a><a class="code" href="classFX_1_1FXDC.html#a56">00342</a> <span class="comment"></span> 00343 <span class="comment"> /// Set the tile image</span> 00344 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setTile(<a class="code" href="classFX_1_1FXImage.html">FXImage</a>* image,FXint dx=0,FXint dy=0); 00345 <span class="comment"></span> 00346 <span class="comment"> /// Get the tile image</span> 00347 <span class="comment"></span> <a class="code" href="classFX_1_1FXImage.html">FXImage</a> *getTile()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> tile; } <a name="l00348"></a><a class="code" href="classFX_1_1FXDC.html#a58">00348</a> <span class="comment"></span> 00349 <span class="comment"> /// Set the stipple pattern</span> 00350 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setStipple(<a class="code" href="classFX_1_1FXBitmap.html">FXBitmap</a> *bitmap,FXint dx=0,FXint dy=0); 00351 <span class="comment"></span> 00352 <span class="comment"> /// Get stipple bitmap</span> 00353 <span class="comment"></span> <a class="code" href="classFX_1_1FXBitmap.html">FXBitmap</a> *getStippleBitmap()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> stipple; } <a name="l00354"></a><a class="code" href="classFX_1_1FXDC.html#a60">00354</a> <span class="comment"></span> 00355 <span class="comment"> /// Set the stipple pattern</span> 00356 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setStipple(FXStipplePattern pat,FXint dx=0,FXint dy=0); 00357 <span class="comment"></span> 00358 <span class="comment"> /// Get pattern</span> 00359 <span class="comment"></span> <a class="code" href="group__FXDC__6.html#a0">FXStipplePattern</a> getStipplePattern()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> pattern; } <a name="l00360"></a><a class="code" href="classFX_1_1FXDC.html#a62">00360</a> <span class="comment"></span> 00361 <span class="comment"> /// Set clip region</span> 00362 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setClipRegion(<span class="keyword">const</span> <a class="code" href="classFX_1_1FXRegion.html">FXRegion</a>& region); 00363 <span class="comment"></span> 00364 <span class="comment"> /// Set clip rectangle</span> 00365 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setClipRectangle(FXint x,FXint y,FXint w,FXint h); <a name="l00366"></a><a class="code" href="classFX_1_1FXDC.html#a64">00366</a> <span class="comment"></span> 00367 <span class="comment"> /// Change clip rectangle</span> 00368 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setClipRectangle(<span class="keyword">const</span> <a class="code" href="classFX_1_1FXRectangle.html">FXRectangle</a>& rectangle); 00369 <span class="comment"></span> 00370 <span class="comment"> /// Return clip rectangle</span> 00371 <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="classFX_1_1FXRectangle.html">FXRectangle</a>& getClipRectangle()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> clip; } 00372 <span class="comment"></span> 00373 <span class="comment"> /// Return clip x</span> 00374 <span class="comment"></span> FXint getClipX()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> clip.x; } 00375 <span class="comment"></span> 00376 <span class="comment"> /// Return clip y</span> 00377 <span class="comment"></span> FXint getClipY()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> clip.y; } <a name="l00378"></a><a class="code" href="classFX_1_1FXDC.html#a68">00378</a> <span class="comment"></span> 00379 <span class="comment"> /// Return clip width</span> 00380 <span class="comment"></span> FXint getClipWidth()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> clip.w; } <a name="l00381"></a><a class="code" href="classFX_1_1FXDC.html#a69">00381</a> <span class="comment"></span> 00382 <span class="comment"> /// Return clip height</span> 00383 <span class="comment"></span> FXint getClipHeight()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> clip.h; } <a name="l00384"></a><a class="code" href="classFX_1_1FXDC.html#a70">00384</a> <span class="comment"></span> 00385 <span class="comment"> /// Clear clipping</span> 00386 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearClipRectangle(); <a name="l00387"></a><a class="code" href="classFX_1_1FXDC.html#a71">00387</a> <span class="comment"></span> 00388 <span class="comment"> /// Set clip mask</span> 00389 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setClipMask(<a class="code" href="classFX_1_1FXBitmap.html">FXBitmap</a>* bitmap,FXint dx=0,FXint dy=0); <a name="l00390"></a><a class="code" href="classFX_1_1FXDC.html#a72">00390</a> <span class="comment"></span> 00391 <span class="comment"> /// Clear clip mask</span> 00392 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearClipMask(); 00393 <span class="comment"></span> 00394 <span class="comment"> /// Set font to draw text with</span> 00395 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setFont(<a class="code" href="classFX_1_1FXFont.html">FXFont</a> *fnt); 00396 <span class="comment"></span> 00397 <span class="comment"> /// Get text font</span> 00398 <span class="comment"></span> <a class="code" href="classFX_1_1FXFont.html">FXFont</a>* getFont()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> font; } 00399 <span class="comment"></span> 00400 <span class="comment"> /// Clip against child windows</span> 00401 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> clipChildren(FXbool yes); 00402 <span class="comment"></span> 00403 <span class="comment"> /// Destructor</span> 00404 <span class="comment"></span> <span class="keyword">virtual</span> ~FXDC(); <a name="l00405"></a><a class="code" href="classFX_1_1FXDC.html#a77">00405</a> }; 00406 00407 } 00408 00409 <span class="preprocessor">#endif</span> </pre></div></font> <!--- COPYRIGHT --> <p> <table width=100% cellpadding=0 cellspacing=0><tr><td width=100% valign=top id=HEADLINE align=right> <img src='../art/line.gif' width=100% height=1><font size=-1> Copyright © 1997-2004 Jeroen van der Zijp</font> </td></tr></table> </p> <!--- COPYRIGHT --> </body> </html>