english
version "1.0"
identify "wxyz"

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

#: This module supports GIF images in a SWIT canvas.


#: {item_gif} procedures:

procedure clone@item_gif
    takes
	master_gif item_gif
	parent item_group
	uid unsigned
    returns item_gif

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


procedure create@item_gif
    takes
	parent item_group
	uid unsigned
	x integer
	y integer
    returns item_gif

    #: This procedure will create and return a {clone_gif} object
    #, in {parent} with a position of ({x}, {y}) and a unique identifier
    #, of {uid}.
    #,
    #, This procedure is for internal use only.  Use
    #, {gif_create}@{item_group} to create a  gif item.


procedure data_get@item_gif
    takes
	gif item_gif
    returns string

    #: This procedure will return the GIF data for {gif}.


procedure data_set@item_gif
    takes
	gif item_gif
	data string
    returns_nothing

    #: This procedure will set the GIF data for {gif} to {data}.


procedure destroy@item_gif
    takes
	gif item_gif
    returns_nothing

    #: This procedure will destroy {gif}.


procedure height_get@item_gif
    takes
	gif item_gif
    returns unsigned

    #: This procedure will return the height of {gif}.


procedure increment@item_gif
    takes
	gif item_gif
    returns_nothing

    #: Increment the modification count for {gif}.


procedure level_get@item_gif
    takes
	gif item_gif
    returns unsigned

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


procedure level_set@item_gif
    takes
	gif item_gif
	new_level unsigned
    returns_nothing

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


procedure tag_append@item_gif
    takes
	gif item_gif
	tag string
    returns_nothing

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


procedure tags_get@item_gif
    takes
	gif item_gif
    returns vector[string]

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


procedure update@item_gif
    takes
	master_gif item_gif
	clone_gif item_gif
    returns_nothing


procedure width_get@item_gif
    takes
	gif item_gif
    returns unsigned

    #: This procedure will return the width of {gif}.


procedure x_get@item_gif
    takes
	gif item_gif
    returns integer

    #: This procedure will return the x coordinate of {gif}
    #, to the group origin.


procedure x_set@item_gif
    takes
	gif item_gif
	x integer
    returns_nothing

    #: This procedure will set the x coordinate of {gif} (relative
    #, to the group origin) to {x}.


procedure y_get@item_gif
    takes
	gif item_gif
    returns integer

    #: This procedure will return the y coordinate of {gif} relative
    #, to the group origin.


procedure y_set@item_gif
    takes
	gif item_gif
	y integer
    returns_nothing

    #: This procedure will set the y coordinate of {gif} (relative
    #, to the group origin) to {y}.