english
version "1.0"
identify "wxyz"

# Copyright (c) 1998-1999 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 swit_line

#: This module implements a line in a SWIT canvas.


#: {swit_line} procedures:

procedure arrow_back_get@item_line
    takes
	line item_line
    returns unsigned

    #: This procedure will set the arrow back for {line} to {back}.


procedure arrow_back_set@item_line
    takes
	line item_line
	back unsigned
    returns_nothing

    #: This procedure will set the arrow back for {line} to {back}.


procedure arrow_front_get@item_line
    takes
	line item_line
    returns unsigned

    #: This procedure will set the arrow front for {line} to {front}.


procedure arrow_front_set@item_line
    takes
	line item_line
	front unsigned
    returns_nothing

    #: This procedure will set the arrow front for {line} to {front}.


procedure arrow_half_width_get@item_line
    takes
	line item_line
    returns unsigned

    #: This procedure will set the arrow half_width for {line} to {half_width}.


procedure arrow_half_width_set@item_line
    takes
	line item_line
	half_width unsigned
    returns_nothing

    #: This procedure will set the arrow half_width for {line} to {half_width}.


procedure arrow_mode_get@item_line
    takes
	line item_line
    returns item_line_arrow

    #: This procedure will set the arrow mode for {line} to {mode}.


procedure arrow_mode_set@item_line
    takes
	line item_line
	mode item_line_arrow
    returns_nothing

    #: This procedure will set the arrow mode for {line} to {mode}.


procedure clone@item_line
    takes
	master_line item_line
	parent item_group
	uid unsigned
    returns item_line

    #: This procedure will create and return a clone of {master_line}
    #, as a parent of {parent} and with a unique identifier of {uid}.



procedure coordinates_append@item_line
    takes
	line item_line
	tcl_command tcl_command
    returns_nothing

    #: This procedure will append the coordinates for {line} to {tcl_command}.


procedure create@item_line
    takes
	parent item_group
	uid unsigned
	x integer
	y integer
	x2 integer
	y2 integer
    returns item_line

    #: This procedure will create and return a {clone_line} object
    #, in {parent}.


procedure destroy@item_line
    takes
	line item_line
    returns_nothing

    #: This procedure will destroy {line}.


procedure increment@item_line
    takes
	line item_line
    returns_nothing

    #: This procedure will increment the modification count for
    #, {line} and its parents.


procedure level_get@item_line
    takes
	line item_line
    returns unsigned

    #: Returns the relative level of {line} in its {item_group}.


procedure level_set@item_line
    takes
	line item_line
	new_level unsigned
    returns_nothing

    #: This procedure will set the level of {line} to {new_level}.


procedure tag_append@item_line
    takes
	line item_line
	tag string
    returns_nothing

    #: This procedure will append {tag} to the tag list in {line}


procedure tags_get@item_line
    takes
	line item_line
    returns vector[string]

    #: This procedure will return the tags associated with {line}.


procedure outline_color_get@item_line
    takes
	line item_line
    returns color

    #: This procedure will return the outline color for {line}.


procedure outline_color_set@item_line
    takes
	line item_line
	outline_color color
    returns_nothing

    #: This procedure will set the outline color for {line} to {outline_color}.


procedure parent_get@item_line
    takes
	line item_line
    returns item_group

    #: This procedure will return the parent group for {line}.


procedure update@item_line
    takes
	master_line item_line
	clone_line item_line
    returns_nothing

    #: This procedure will update {clone_line} to be the same as
    #, {master_line}.


procedure x_get@item_line
    takes
	line item_line
    returns integer

    #: This procedure will return the X coordinate of the first
    #, end point of {line}.


procedure x_set@item_line
    takes
	line item_line
	x integer
    returns_nothing

    #: This procedure will set the X coordinate of the first
    #, endo point of {line} to {x}.


procedure x1_get@item_line
    takes
	line item_line
    returns integer

    #: This procedure will return the X1 coordinate of the first
    #, end point of {line}.


procedure x1_set@item_line
    takes
	line item_line
	x1 integer
    returns_nothing

    #: This procedure will set the X1 coordinate of {line} to {x1}.


procedure x2_get@item_line
    takes
	line item_line
    returns integer

    #: This procedure will return the X2 coordinate of the first
    #, end point of {line}.


procedure x2_set@item_line
    takes
	line item_line
	x2 integer
    returns_nothing

    #: This procedure will set the X2 coordinate of {line} to {x2}.


procedure y_get@item_line
    takes
	line item_line
    returns integer

    #: This procedure will return the Y coordinate of the first
    #, end point of {line}.


procedure y_set@item_line
    takes
	line item_line
	y integer
    returns_nothing

    #: This procedure will set the Y coordinate of the first
    #, endo point of {line} to {y}.


procedure y1_get@item_line
    takes
	line item_line
    returns integer

    #: This procedure will return the Y1 coordinate of the first
    #, end point of {line}.


procedure y1_set@item_line
    takes
	line item_line
	y1 integer
    returns_nothing

    #: This procedure will set the Y1 coordinate of {line} to {y1}.


procedure y2_get@item_line
    takes
	line item_line
    returns integer

    #: This procedure will return the Y2 coordinate of the first
    #, end point of {line}.


procedure y2_set@item_line
    takes
	line item_line
	y2 integer
    returns_nothing

    #: This procedure will set the Y2 coordinate of {line} to {y2}.