#  Copyright (c) 1990 The Regents of the University of California.
#  Copyright (c) 1994-1996 Sun Microsystems, Inc.
#  See the file "license.terms" for information on usage and redistribution
#  of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
#

=head1 NAME

Tk_SetClass, Tk_Class - set or retrieve a window's class

=for category C Programming

=head1 SYNOPSIS

B<#include E<lt>tk.hE<gt>>

B<Tk_SetClass>(I<tkwin, class>)

Tk_Uid
B<Tk_Class>(I<tkwin>)

=head1 ARGUMENTS

=over 4

=item Tk_Window tkwin (in)

Token for window.

=item char *class (in)

New class name for window.

=back

=head1 DESCRIPTION

B<Tk_SetClass> is called to associate a class with a particular
window.  The I<class> string identifies the type of the
window;  all windows with the same general class of behavior
(button, menu, etc.) should have the same class.  By
convention all class names start with a capital letter, and
there exists a Tcl command with the same name as
each class (except all in lower-case) which can be used to
create and manipulate windows of that class.
A window's class string is initialized to NULL
when the window is created.

For main windows, Tk automatically propagates the name and class
to the WM_CLASS property used by window managers.  This happens
either when a main window is actually created (e.g. in
B<Tk_MakeWindowExist>), or when B<Tk_SetClass>
is called, whichever occurs later.  If a main window has not been
assigned a class then Tk will not set the WM_CLASS property for
the window.

B<Tk_Class> is a macro that returns the
current value of I<tkwin>'s class.  The value is returned
as a Tk_Uid, which may be used just like a string pointer but also has
the properties of a unique identifier (see the the documentation for
B<Tk_GetUid> for details).
If I<tkwin> has not yet been given a class, then
B<Tk_Class> will return NULL.

=head1 KEYWORDS

class, unique identifier, window, window manager
