Initialize Tizen 2.3
[framework/uifw/xorg/lib/libx11.git] / man / XDrawLine.man
1 .\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium
2 .\"
3 .\" Permission is hereby granted, free of charge, to any person obtaining
4 .\" a copy of this software and associated documentation files (the
5 .\" "Software"), to deal in the Software without restriction, including
6 .\" without limitation the rights to use, copy, modify, merge, publish,
7 .\" distribute, sublicense, and/or sell copies of the Software, and to
8 .\" permit persons to whom the Software is furnished to do so, subject to
9 .\" the following conditions:
10 .\"
11 .\" The above copyright notice and this permission notice shall be included
12 .\" in all copies or substantial portions of the Software.
13 .\"
14 .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15 .\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 .\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17 .\" IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
18 .\" OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19 .\" ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20 .\" OTHER DEALINGS IN THE SOFTWARE.
21 .\"
22 .\" Except as contained in this notice, the name of the X Consortium shall
23 .\" not be used in advertising or otherwise to promote the sale, use or
24 .\" other dealings in this Software without prior written authorization
25 .\" from the X Consortium.
26 .\"
27 .\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991 by
28 .\" Digital Equipment Corporation
29 .\"
30 .\" Portions Copyright \(co 1990, 1991 by
31 .\" Tektronix, Inc.
32 .\"
33 .\" Permission to use, copy, modify and distribute this documentation for
34 .\" any purpose and without fee is hereby granted, provided that the above
35 .\" copyright notice appears in all copies and that both that copyright notice
36 .\" and this permission notice appear in all copies, and that the names of
37 .\" Digital and Tektronix not be used in in advertising or publicity pertaining
38 .\" to this documentation without specific, written prior permission.
39 .\" Digital and Tektronix makes no representations about the suitability
40 .\" of this documentation for any purpose.
41 .\" It is provided ``as is'' without express or implied warranty.
42 .\" 
43 .\"
44 .ds xT X Toolkit Intrinsics \- C Language Interface
45 .ds xW Athena X Widgets \- C Language X Toolkit Interface
46 .ds xL Xlib \- C Language X Interface
47 .ds xC Inter-Client Communication Conventions Manual
48 .na
49 .de Ds
50 .nf
51 .\\$1D \\$2 \\$1
52 .ft 1
53 .\".ps \\n(PS
54 .\".if \\n(VS>=40 .vs \\n(VSu
55 .\".if \\n(VS<=39 .vs \\n(VSp
56 ..
57 .de De
58 .ce 0
59 .if \\n(BD .DF
60 .nr BD 0
61 .in \\n(OIu
62 .if \\n(TM .ls 2
63 .sp \\n(DDu
64 .fi
65 ..
66 .de FD
67 .LP
68 .KS
69 .TA .5i 3i
70 .ta .5i 3i
71 .nf
72 ..
73 .de FN
74 .fi
75 .KE
76 .LP
77 ..
78 .de IN          \" send an index entry to the stderr
79 ..
80 .de C{
81 .KS
82 .nf
83 .D
84 .\"
85 .\"     choose appropriate monospace font
86 .\"     the imagen conditional, 480,
87 .\"     may be changed to L if LB is too
88 .\"     heavy for your eyes...
89 .\"
90 .ie "\\*(.T"480" .ft L
91 .el .ie "\\*(.T"300" .ft L
92 .el .ie "\\*(.T"202" .ft PO
93 .el .ie "\\*(.T"aps" .ft CW
94 .el .ft R
95 .ps \\n(PS
96 .ie \\n(VS>40 .vs \\n(VSu
97 .el .vs \\n(VSp
98 ..
99 .de C}
100 .DE
101 .R
102 ..
103 .de Pn
104 .ie t \\$1\fB\^\\$2\^\fR\\$3
105 .el \\$1\fI\^\\$2\^\fP\\$3
106 ..
107 .de ZN
108 .ie t \fB\^\\$1\^\fR\\$2
109 .el \fI\^\\$1\^\fP\\$2
110 ..
111 .de hN
112 .ie t <\fB\\$1\fR>\\$2
113 .el <\fI\\$1\fP>\\$2
114 ..
115 .de NT
116 .ne 7
117 .ds NO Note
118 .if \\n(.$>$1 .if !'\\$2'C' .ds NO \\$2
119 .if \\n(.$ .if !'\\$1'C' .ds NO \\$1
120 .ie n .sp
121 .el .sp 10p
122 .TB
123 .ce
124 \\*(NO
125 .ie n .sp
126 .el .sp 5p
127 .if '\\$1'C' .ce 99
128 .if '\\$2'C' .ce 99
129 .in +5n
130 .ll -5n
131 .R
132 ..
133 .               \" Note End -- doug kraft 3/85
134 .de NE
135 .ce 0
136 .in -5n
137 .ll +5n
138 .ie n .sp
139 .el .sp 10p
140 ..
141 .ny0
142 .TH XDrawLine __libmansuffix__ __xorgversion__ "XLIB FUNCTIONS"
143 .SH NAME
144 XDrawLine, XDrawLines, XDrawSegments, XSegment \- draw lines, polygons, and line structure
145 .SH SYNTAX
146 .HP
147 int XDrawLine\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, GC \fIgc\fP\^,
148 int \fIx1\fP\^, int \fIy1\fP\^, int \fIx2\fP\^, int \fIy2\fP\^); 
149 .HP 
150 int XDrawLines\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, GC
151 \fIgc\fP\^, XPoint *\fIpoints\fP\^, int \fInpoints\fP\^, int \fImode\fP\^); 
152 .HP 
153 int XDrawSegments\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, GC
154 \fIgc\fP\^, XSegment *\fIsegments\fP\^, int \fInsegments\fP\^); 
155 .SH ARGUMENTS
156 .IP \fId\fP 1i
157 Specifies the drawable. 
158 .IP \fIdisplay\fP 1i
159 Specifies the connection to the X server.
160 .IP \fIgc\fP 1i
161 Specifies the GC.
162 .IP \fImode\fP 1i
163 Specifies the coordinate mode. 
164 You can pass
165 .ZN CoordModeOrigin
166 or
167 .ZN CoordModePrevious .
168 .IP \fInpoints\fP 1i
169 Specifies the number of points in the array.
170 .IP \fInsegments\fP 1i
171 Specifies the number of segments in the array.
172 .IP \fIpoints\fP 1i
173 Specifies an array of points.
174 .IP \fIsegments\fP 1i
175 Specifies an array of segments.
176 .IP \fIx1\fP 1i
177 .br
178 .ns
179 .IP \fIy1\fP 1i
180 .br
181 .ns
182 .IP \fIx2\fP 1i
183 .br
184 .ns
185 .IP \fIy2\fP 1i
186 Specify the points (x1, y1) and (x2, y2) to be connected.
187 .SH DESCRIPTION
188 The
189 .ZN XDrawLine
190 function uses the components of the specified GC to
191 draw a line between the specified set of points (x1, y1) and (x2, y2).
192 It does not perform joining at coincident endpoints.
193 For any given line, 
194 .ZN XDrawLine 
195 does not draw a pixel more than once.
196 If lines intersect, the intersecting pixels are drawn multiple times.  
197 .LP
198 The
199 .ZN XDrawLines
200 function uses the components of the specified GC to draw 
201 npoints\-1 lines between each pair of points (point[i], point[i+1]) 
202 in the array of
203 .ZN XPoint
204 structures.
205 It draws the lines in the order listed in the array.
206 The lines join correctly at all intermediate points, and if the first and last
207 points coincide, the first and last lines also join correctly.
208 For any given line, 
209 .ZN XDrawLines
210 does not draw a pixel more than once.
211 If thin (zero line-width) lines intersect, 
212 the intersecting pixels are drawn multiple times.
213 If wide lines intersect, the intersecting pixels are drawn only once, as though
214 the entire 
215 .ZN PolyLine 
216 protocol request were a single, filled shape.
217 .ZN CoordModeOrigin
218 treats all coordinates as relative to the origin,
219 and
220 .ZN CoordModePrevious
221 treats all coordinates after the first as relative to the previous point.
222 .LP
223 The
224 .ZN XDrawSegments 
225 function draws multiple, unconnected lines. 
226 For each segment, 
227 .ZN XDrawSegments 
228 draws a
229 line between (x1, y1) and (x2, y2).
230 It draws the lines in the order listed in the array of
231 .ZN XSegment
232 structures and does not perform joining at coincident endpoints.
233 For any given line, 
234 .ZN XDrawSegments
235 does not draw a pixel more than once.  
236 If lines intersect, the intersecting pixels are drawn multiple times.  
237 .LP
238 All three functions use these GC components:
239 function, plane-mask, line-width,
240 line-style, cap-style, fill-style, subwindow-mode,
241 clip-x-origin, clip-y-origin, and clip-mask.
242 The
243 .ZN XDrawLines
244 function also uses the join-style GC component.
245 All three functions also use these GC mode-dependent components:
246 foreground, background, tile, stipple, tile-stipple-x-origin, 
247 tile-stipple-y-origin, dash-offset, and dash-list.
248 .LP
249 .ZN XDrawLine ,
250 .ZN XDrawLines ,
251 and
252 .ZN XDrawSegments
253 can generate
254 .ZN BadDrawable ,
255 .ZN BadGC ,
256 and
257 .ZN BadMatch 
258 errors.
259 .ZN XDrawLines
260 can also generate a
261 .ZN BadValue 
262 error.
263 .SH STRUCTURES
264 The
265 .ZN XSegment
266 structure contains:
267 .LP
268 .Ds 0
269 .TA .5i
270 .ta .5i
271 typedef struct {
272         short x1, y1, x2, y2;
273 } XSegment;
274 .De
275 .LP
276 All x and y members are signed integers.
277 The width and height members are 16-bit unsigned integers.
278 You should be careful not to generate coordinates and sizes
279 out of the 16-bit ranges, because the protocol only has 16-bit fields
280 for these values.
281 .SH DIAGNOSTICS
282 .TP 1i
283 .ZN BadDrawable
284 A value for a Drawable argument does not name a defined Window or Pixmap.
285 .TP 1i
286 .ZN BadGC
287 A value for a GContext argument does not name a defined GContext.
288 .TP 1i
289 .ZN BadMatch
290 An
291 .ZN InputOnly
292 window is used as a Drawable.
293 .TP 1i
294 .ZN BadMatch
295 Some argument or pair of arguments has the correct type and range but fails
296 to match in some other way required by the request.
297 .TP 1i
298 .ZN BadValue
299 Some numeric value falls outside the range of values accepted by the request.
300 Unless a specific range is specified for an argument, the full range defined
301 by the argument's type is accepted.  Any argument defined as a set of
302 alternatives can generate this error.
303 .SH "SEE ALSO"
304 XDrawArc(__libmansuffix__),
305 XDrawPoint(__libmansuffix__),
306 XDrawRectangle(__libmansuffix__)
307 .br
308 \fI\*(xL\fP