Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.

Except as contained in this notice, the name of the X Consortium shall
not be used in advertising or otherwise to promote the sale, use or
other dealings in this Software without prior written authorization
from the X Consortium.

Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991 by
Digital Equipment Corporation

Portions Copyright \(co 1990, 1991 by
Tektronix, Inc.

Permission to use, copy, modify and distribute this documentation for
any purpose and without fee is hereby granted, provided that the above
copyright notice appears in all copies and that both that copyright notice
and this permission notice appear in all copies, and that the names of
Digital and Tektronix not be used in in advertising or publicity pertaining
to this documentation without specific, written prior permission.
Digital and Tektronix makes no representations about the suitability
of this documentation for any purpose.
It is provided "as is" without express or implied warranty.


XSetLineAttributes __libmansuffix__ __xorgversion__ "XLIB FUNCTIONS"
NAME
XSetLineAttributes, XSetDashes - GC convenience routines
SYNTAX

int XSetLineAttributes\^(\^Display *display\^, GC gc\^, unsigned int line_width\^, int line_style\^, int cap_style\^, int join_style\^);

int XSetDashes\^(\^Display *display\^, GC gc\^, int dash_offset\^, _Xconst char dash_list[]\^, int n\^);

ARGUMENTS
cap_style 1i
Specifies the line-style and cap-style you want to set for the specified GC. You can pass CapNotLast , CapButt , CapRound , or CapProjecting .
dash_list 1i
Specifies the dash-list for the dashed line-style you want to set for the specified GC.
dash_offset 1i
Specifies the phase of the pattern for the dashed line-style you want to set for the specified GC.
display 1i
Specifies the connection to the X server.
gc 1i
Specifies the GC.
join_style 1i
Specifies the line join-style you want to set for the specified GC. You can pass JoinMiter , JoinRound , or JoinBevel .
line_style 1i
Specifies the line-style you want to set for the specified GC. You can pass LineSolid , LineOnOffDash , or LineDoubleDash .
line_width 1i
Specifies the line-width you want to set for the specified GC.
n 1i
Specifies the number of elements in dash_list.
DESCRIPTION
The XSetLineAttributes function sets the line drawing components in the specified GC.

XSetLineAttributes can generate BadAlloc , BadGC , and BadValue errors.

The XSetDashes function sets the dash-offset and dash-list attributes for dashed line styles in the specified GC. There must be at least one element in the specified dash_list, or a BadValue error results. The initial and alternating elements (second, fourth, and so on) of the dash_list are the even dashes, and the others are the odd dashes. Each element specifies a dash length in pixels. All of the elements must be nonzero, or a BadValue error results. Specifying an odd-length list is equivalent to specifying the same list concatenated with itself to produce an even-length list.

The dash-offset defines the phase of the pattern, specifying how many pixels into the dash-list the pattern should actually begin in any single graphics request. Dashing is continuous through path elements combined with a join-style but is reset to the dash-offset between each sequence of joined lines.

The unit of measure for dashes is the same for the ordinary coordinate system. Ideally, a dash length is measured along the slope of the line, but implementations are only required to match this ideal for horizontal and vertical lines. Failing the ideal semantics, it is suggested that the length be measured along the major axis of the line. The major axis is defined as the x axis for lines drawn at an angle of between -45 and +45 degrees or between 135 and 225 degrees from the x axis. For all other lines, the major axis is the y axis.

XSetDashes can generate BadAlloc , BadGC , and BadValue errors.

DIAGNOSTICS

1i BadAlloc The server failed to allocate the requested resource or server memory.

1i BadGC A value for a GContext argument does not name a defined GContext.

1i BadValue Some numeric value falls outside the range of values accepted by the request. Unless a specific range is specified for an argument, the full range defined by the argument's type is accepted. Any argument defined as a set of alternatives can generate this error.

"SEE ALSO"
XCreateGC(__libmansuffix__), XQueryBestSize(__libmansuffix__), XSetArcMode(__libmansuffix__), XSetClipOrigin(__libmansuffix__), XSetFillStyle(__libmansuffix__), XSetFont(__libmansuffix__), XSetState(__libmansuffix__), XSetTile(__libmansuffix__)

\*(xL