70 lines
2.5 KiB
Plaintext
70 lines
2.5 KiB
Plaintext
'\"
|
|
'\" Copyright (c) 1993-1998 Lucent Technologies, Inc.
|
|
'\"
|
|
'\" See the file "license.terms" for information on usage and redistribution
|
|
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
|
'\"
|
|
.TH scope n "" itcl "[incr\ Tcl]"
|
|
.so man.macros
|
|
.BS
|
|
'\" Note: do not modify the .SH NAME line immediately below!
|
|
.SH NAME
|
|
itcl::scope \- capture the namespace context for a variable
|
|
.SH SYNOPSIS
|
|
\fBitcl::scope \fIname\fR
|
|
.BE
|
|
|
|
.SH DESCRIPTION
|
|
.PP
|
|
Creates a scoped value for the specified \fIname\fR, which must
|
|
be a variable name. If the \fIname\fR is an instance variable,
|
|
then the scope command returns a name which will resolve in any
|
|
context as an instance variable belonging to \fIobject\fR.
|
|
The precise format of this name is an internal detail to Itcl.
|
|
Use of such a scoped value makes it possible to use
|
|
instance variables in conjunction with widgets. For example, if you
|
|
have an object with a private variable \fCx\fR, and you can use
|
|
\fCx\fR in conjunction with the \fC-textvariable\fR option of an
|
|
entry widget. Before itcl3.0, only common variables could be used
|
|
in this manner.
|
|
.PP
|
|
If the \fIname\fR is not an instance variable, then it must be
|
|
a common variable or a global variable. In that case, the scope
|
|
command returns the fully qualified name of the variable, e.g.,
|
|
\fC::foo::bar::x\fR.
|
|
.PP
|
|
If the \fIname\fR is not recognized as a variable, the scope
|
|
command returns an error.
|
|
.PP
|
|
Ordinary variable names refer to variables in the global namespace.
|
|
A scoped value captures a variable name together with its namespace
|
|
context in a way that allows it to be referenced properly later.
|
|
It is needed, for example, to wrap up variable names when a Tk
|
|
widget is used within a namespace:
|
|
.CS
|
|
namespace foo {
|
|
private variable mode 1
|
|
|
|
radiobutton .rb1 -text "Mode #1" \
|
|
-variable [scope mode] -value 1
|
|
pack .rb1
|
|
|
|
radiobutton .rb2 -text "Mode #2" \
|
|
-variable [scope mode] -value 2
|
|
pack .rb2
|
|
}
|
|
.CE
|
|
Radiobuttons \fC.rb1\fR and \fC.rb2\fR interact via the variable
|
|
"mode" contained in the namespace "foo". The \fBscope\fR command
|
|
guarantees this by returning the fully qualified variable name
|
|
\fC::foo::mode\fR.
|
|
.PP
|
|
You should never attempt to craft your own scoped variable names,
|
|
even if you believe you've flawlessly reverse-engineered the encoding.
|
|
Instead, you should always use the scope command to generate the
|
|
variable name dynamically. Then, you can pass that name to a widget
|
|
or to any other bit of code in your program.
|
|
|
|
.SH KEYWORDS
|
|
code, namespace, variable
|