english
version "1.0"
identify "%Z%%M% %I% %E%"

#: Copyright (c) 1994, 1995 by Wayne C. Gramlich.
#, All rights reserved.
#,
#, Permission to use, copy, modify, distribute, and sell this software
#, for any purpose is hereby granted without fee provided that the above
#, copyright notice and this permission are retained.  The author makes
#, no representations about the suitability of this software for any purpose.
#, It is provided "as is" without express or implied warranty.

module xlib_gc_values

#: This module implements the Xlib {XGCValues} data structure:

import
    logical
    out_stream
    string
    unsigned
    xlib_pixel
    xlib_pixmap
    xlib_screen


define xlib_gc_values
    external

define xlib_transfer_function
    enumeration
	clear
	and
	and_reverse
	copy
	and_inverted
	no_operation
	xor
	or
	nor
	equiv
	invert
	or_reverse
	copy_inverted
	or_inverted
	nand
	set
    generate print

define xlib_line_cap_style
    enumeration
	not_last
	butt
	round
	projecting
    generate print

define xlib_line_style
    enumeration
	solid
	on_off_dash
	double_dash
    generate print

define xlib_line_join_style
    enumeration
	miter
	round
	bevel
    generate print

define xlib_fill_style
    enumeration
	solid
	tiled
	stippled
	opaque_stippled
    generate print

define xlib_fill_rule
    enumeration
	even_odd
	winding
    generate print

define xlib_arc_mode
    enumeration
	chord
	pie_slice
    generate print

define xlib_subwindow_mode
    enumeration
	clip_by_children
	include_inferiors
    generate print


procedure address_get@xlib_gc_values
    takes
	gc_values xlib_gc_values
    returns unsigned
    external xlib_gc_values__address_get

    #: This procedure will return the address of the {gc_values} object.


procedure arc_mode_set@xlib_gc_values
    takes
	gc_values xlib_gc_values
	arc_mode xlib_arc_mode
    returns_nothing
    external xlib_gc_values__arc_mode_set

    #: This procedure will set the arc drawing mode in {gc_values}
    #, to {arc_mode}.


procedure background_set@xlib_gc_values
    takes
	gc_values xlib_gc_values
	background xlib_pixel
    returns_nothing
    external xlib_gc_values__background_set

    #: This procedure will set the foreground mask in {gc_values}
    #, to {background}.


procedure clip_mask_set@xlib_gc_values
    takes
	gc_values xlib_gc_values
	clip_mask xlib_pixmap
    returns_nothing
    external xlib_gc_values__clip_mask_set

    #: This procedure will set the clip mask in {gc_values} to {clip_mask}.


procedure clip_x_origin_set@xlib_gc_values
    takes
	gc_values xlib_gc_values
	clip_x_origin unsigned
    returns_nothing
    external xlib_gc_values__clip_x_origin_set

    #: This procedure will set the clip x origin in {gc_values}
    #, to {clip_x_origin}.


procedure clip_y_origin_set@xlib_gc_values
    takes
	gc_values xlib_gc_values
	clip_x_origin unsigned
    returns_nothing
    external xlib_gc_values__clip_y_origin_set

    #: This procedure will set the clip x origin in {gc_values}
    #, to {clip_x_origin}.


procedure create@xlib_gc_values
    takes
	screen xlib_screen
    returns xlib_gc_values
    external xlib_gc_values__new

    #: This procedure will return an empty {xlib_gc_values} object
    #, that is permanently associated with {screen}.


procedure erase@xlib_gc_values
    takes
	gc_values xlib_gc_values
    returns_nothing
    external xlib_gc_values__erase

    #: This procedure will reset the contents of {gc_values}.


procedure fill_style_set@xlib_gc_values
    takes
	gc_values xlib_gc_values
	fill_style xlib_fill_style
    returns_nothing
    external xlib_gc_values__fill_style_set

    #: This procedure will set the polygon fill style in {gc_values}
    #, to {fill_style}.


procedure fill_rule_set@xlib_gc_values
    takes
	gc_values xlib_gc_values
	fill_rule xlib_fill_rule
    returns_nothing
    external xlib_gc_values__fill_rule_set

    #: This procedure will set the polygon fill rule in {gc_values}
    #, to {fill_rule}.


procedure foreground_set@xlib_gc_values
    takes
	gc_values xlib_gc_values
	foreground xlib_pixel
    returns_nothing
    external xlib_gc_values__foreground_set

    #: This procedure will set the foreground mask in {gc_values}
    #, to {foreground}.


procedure graphics_exposures_mode_set@xlib_gc_values
    takes
	gc_values xlib_gc_values
	graphics_exposure_mode logical
    returns_nothing
    external xlib_gc_values__graphics_exposures_mode_set

    #: This procedure will set the graphics exposure mode in {gc_values}
    #, to {graphics_exposure_mode}.


procedure identical@xlib_gc_values
    takes
	gc_values1 xlib_gc_values
	gc_values2 xlib_gc_values
    returns logical

    #: This procedure will return {true} if {gc_values1} is identical
    #, to {gc_values2} and {false} otherwise.

    return gc_values1.address = gc_values2.address


procedure line_cap_style_set@xlib_gc_values
    takes
	gc_values xlib_gc_values
	line_cap_style xlib_line_cap_style
    returns_nothing
    external xlib_gc_values__line_cap_style_set

    #: This procedure will set the line cap style in {gc_values}
    #, to {line_cap_style}.


procedure line_join_style_set@xlib_gc_values
    takes
	gc_values xlib_gc_values
	line_join_style xlib_line_join_style
    returns_nothing
    external xlib_gc_values__join_style_set

    #: This procedure will set the line join style in {gc_values}
    #, to {line_join_style}.


procedure line_style_set@xlib_gc_values
    takes
	gc_values xlib_gc_values
	line_style xlib_line_style
    returns_nothing
    external xlib_gc_values__line_style_set

    #: This procedure will set the line style in {gc_values}
    #, to {line_style}.


procedure line_width_set@xlib_gc_values
    takes
	gc_values xlib_gc_values
	line_width unsigned
    returns_nothing
    external xlib_gc_values__line_width_set

    #: This procedure will set the line width in {gc_values} to {line_width}.


procedure plane_mask_set@xlib_gc_values
    takes
	gc_values xlib_gc_values
	plane_mask unsigned
    returns_nothing
    external xlib_gc_values__plane_maske_set

    #: This procedure will set the plane mask in {gc_values} to {plane_mask}.


procedure pixmap_x_origin_set@xlib_gc_values
    takes
	gc_values xlib_gc_values
	pixmap_x_origin unsigned
    returns_nothing
    external xlib_gc_values__pixmap_x_origin_set

    #: This procedure will set the pixmap x origin in {gc_values}
    #, to {pixmap_x_origin}.


procedure pixmap_y_origin_set@xlib_gc_values
    takes
	gc_values xlib_gc_values
	pixmap_y_origin unsigned
    returns_nothing
    external xlib_gc_values__pixmap_y_origin_set

    #: This procedure will set the pixmap x origin in {gc_values}
    #, to {pixmap_y_origin}.


procedure print@xlib_gc_values
    takes
	gc_values xlib_gc_values
	out_stream out_stream
    returns_nothing
    external xlib_gc_values__print

    #: This procedure will output {gc_values} to {out_stream}.


procedure stipple_set@xlib_gc_values
    takes
	gc_values xlib_gc_values
	stipple xlib_pixmap
    returns_nothing
    external xlib_gc_values__stipple_set

    #: This procedure will set the stipple bitmap in {gc_values}
    #, to {stipple}.


procedure subwindow_mode_set@xlib_gc_values
    takes
	gc_values xlib_gc_values
	subwindow_mode xlib_subwindow_mode
    returns_nothing
    external xlib_gc_values__subwindow_mode_set

    #: This procedure will set the subwindow mode in {gc_values}
    #, to {subwindow_mode}.


procedure tile_set@xlib_gc_values
    takes
	gc_values xlib_gc_values
	tile xlib_pixmap
    returns_nothing
    external xlib_gc_values__tile_set

    #: This procedure will set the tile pixel map in {gc_values} to {tile}.


procedure transfer_function_set@xlib_gc_values
    takes
	gc_values xlib_gc_values
	xlib_transfer_function xlib_transfer_function
    returns_nothing
    external xlib_gc_values__transfer_function_set

    #: This procedure will set the transfer function in {gc_values}
    #, to {xlib_transfer_function}.




