blob: a89effceaea5c89ee5e9942afe9435948bf6b622 [file] [log] [blame]
<TITLE>scopedobject - Create and manipulate a scoped \[incr Tcl\] class object.</TITLE>
<H1>scopedobject - Create and manipulate a scoped \[incr Tcl\] class object.</H1>
</pre><H2>SYNOPSIS</H2>
<B>scopedobject<I> <I>objName </I>?<I>options</I>?
</pre><H2>INHERITANCE</H2>
None
</pre><H2>STANDARD OPTIONS</H2>
<P>
<pre>
Name: <B>enterscopecommand:</B>
Command-Line Switch: <B>-enterscopecommand</B>
</pre>
<UL>
Specifies a Tcl command to invoke when an object enters scope
(i.e. when it is created..). The default is {}.
</UL>
<P>
<pre>
Name: <B>enterscopecommand:</B>
Command-Line Switch: <B>-enterscopecommand</B>
</pre>
<UL>
Specifies a Tcl command to invoke when an object exits scope
(i.e. when it is deleted..). The default is {}.
</UL>
<P>
</pre><HR>
</pre><H2>DESCRIPTION</H2>
<P>
The <B>scopedobject</B> command creates a base class for defining
Itcl classes which posses scoped behavior like Tcl variables.
The objects are only accessible within the procedure in which
they are instantiated and are deleted when the procedure returns.
This class was designed to be a general purpose base class for
supporting scoped incr Tcl classes. The options include the
execute a Tcl script command when an object enters and exits its
scope.
</pre><H2>METHODS</H2>
<P>
The <B>scopedobject</B> command creates a new Tcl command whose
name is <I>pathName</I>. This
command may be used to invoke various operations on the object.
It has the following general form:
<pre>
<I>pathName option </I>?<I>arg arg ...</I>?
</pre>
<I>Option</I> and the <I>arg</I>s
determine the exact behavior of the command. The following
commands are possible for scopedobject objects:
</pre><H2>OBJECT-SPECIFIC METHODS</H2>
<DL>
<DT> <I>pathName <B>cget</B> <I>option</I>
</I></B>
<DD> Returns the current value of the configuration option given
by <I>option</I>.
<I>Option</I> may have any of the values accepted by the <B>scopedobject</B>
command.
</DL>
<DL>
<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
</I></B>
<DD> Query or modify the configuration options of the object.
If no <I>option</I> is specified, returns a list describing all of
the available options for <I>pathName</I>. If <I>option</I> is specified
with no <I>value</I>, then the command returns a list describing the
one named option (this list will be identical to the corresponding
sublist of the value returned if no <I>option</I> is specified). If
one or more <I>option-value</I> pairs are specified, then the command
modifies the given objects option(s) to have the given value(s); in
this case the command returns an empty string.
<I>Option</I> may have any of the values accepted by the <B>scopedobject</B>
command.
</DL>
</pre><H2>EXAMPLE</H2>
<UL>
The scopedobject was primarily meant to be a base class. The
following is an example of usage without inheritance:
</UL>
<P>
<pre>
proc scopedobject_demo {} {
scopedobject #auto \
-exitscopecommand {puts "enter scopedobject_demo"} \
-exitscopecommand {puts "exit scopedobject_demo"}
}
scopedobject_demo
</pre>
</pre><H2>AUTHOR</H2>
John A. Tucker
</pre><H2>KEYWORDS</H2>
scopedobject, object