Index: doc/Object.man =================================================================== diff -u -rc4cb0af2d70fbb925613e396747d365823be5465 -rff595808af58a8baf4d8cd40d71334c5ca22e8cc --- doc/Object.man (.../Object.man) (revision c4cb0af2d70fbb925613e396747d365823be5465) +++ doc/Object.man (.../Object.man) (revision ff595808af58a8baf4d8cd40d71334c5ca22e8cc) @@ -407,29 +407,79 @@ [call [arg obj] [method {info info}]] Lists the available [term "submethod"]s of the [method info] [term "method ensemble"]. -[call [arg obj] [method {info lookup configure parameters}] ...] -[para] Description of [method {info lookup configure parameters}] ... +[call [arg obj] [method "info lookup"] [arg submethod] [opt "[arg arg] ..."]] +A collection of submethods to retrieve all structural features (e.g., +configuration options, [term "slot object"]s) and all behavioral +features (e.g., methods, [term "filter"]s) available for [arg obj], whether provided by [arg obj] itself or by the classes in its current linearisation list. +[list_begin definitions] +[def "[arg obj] [method {info lookup configure parameters}] [opt [arg namePattern]]"] -[call [arg obj] [method {info lookup configure syntax}] ...] -[para] Description of [method {info lookup configure syntax}] ... +Returns all configuration options available for [arg obj] as a list of +method-parameter definitions. They can be used, for example, to +define a custom method refinement for [method configure]. The returned +configuration options can be limited to those whose names match [arg pattern] +(see [cmd "string match"]). +[def "[arg obj] [method {info lookup configure syntax}]"] -[call [arg obj] [method {info lookup filter}] ...] -[para] Description of [method {info lookup filter}] ... +[comment {Why is the no pattern arg for the syntax submethod?}] -[call [arg obj] [method {info lookup method}] ...] -[para] Description of [method {info lookup method}] ... +Returns all configuration options available for [arg obj] as a +concrete-syntax description to be used in human-understandable +messages (e.g., errors or warnings, documentation strings). -[call [arg obj] [method {info lookup methods}] ...] -[para] Description of [method {info lookup methods}] ... +[def "[arg obj] [method "info lookup filter"] [arg name]"] -[call [arg obj] [method {info lookup slots}] ...] -[para] Description of [method {info lookup slots}] ... +[comment { + why is there no lookup filters plus optional pattern, like + methods. singular form should return method handle behind filter ... +}] -[call [arg obj] [method {info lookup variables}] ...] -[para] Description of [method {info lookup variables}] ... +[def "[arg obj] [method "info lookup method"] [arg name]"] +Returns the [term "method handle"] for a method [arg name] if a +so-named method can be invoked on [arg obj]. If there is no method +[arg name], an empty string is returned. + +[def "[arg obj] [method "info lookup methods"] [opt [arg namePattern]]"] + +Returns the names of all methods (including aliases and forwarders) +which can be invoked on [arg obj]. The returned methods can be limited +to those whose names match [arg namePattern] (see [cmd "string match"]). + +[def "[arg obj] [method "info lookup slots"] [opt "[option "-type"] [arg className]"] [opt "[option "-source"] all | application | system"] [opt [arg namePattern]]"] + +Returns the command names of all [term "slot object"]s responsible for +managing properties, variables, and relations of [arg obj]. The +returned [term "slot object"]s can be limited according to any or a +combination of the following criteria: First, [term "slot object"]s +can be filtered based on their command names matching [arg namePattern] (see [cmd "string +match"]). Second, [option "-type"] allows to select +[term "slot object"]s which are instantiated from a subclass [arg className] of [cmd nx::Slot] (default: [cmd nx::Slot]) . Third, [option -source] restricts [term "slot object"]s returned according to their provenance in either the NX [emph system] classes or the [emph application] classes present in the linearisation list of [arg obj] (default: [emph all]). + +[para] + +To extract details of each [term "slot object"], use the [method info] +submethods available for each [term "slot object"]. + +[def "[arg obj] [method "info lookup variables"]"] + +Returns the command names of all [term "slot object"]s responsible for +managing properties and variables of [arg obj], if provided by [arg obj] or the classes in the linearisation list of [arg obj]. + +[para] + +This is equivalent to calling: [arg obj] [method "info lookup slots"] -type ::nx::VariableSlot -source all [opt [arg namePattern]]. + +[para] + +To extract details of each [term "slot object"], use the [method info] +submethods available for each [term "slot object"]. + + +[list_end] + [call [arg obj] [method {info name}]] Returns the unqualified name of an object, i.e., the object name @@ -465,12 +515,6 @@ [call [arg obj] [method {info object method parameters}] ...] [para] Description of [method {info object method parameters}] ... -[call [arg obj] [method {info object method postcondition}] ...] -[para] Description of [method {info object method postcondition}] ... - -[call [arg obj] [method {info object method precondition}] ...] -[para] Description of [method {info object method precondition}] ... - [call [arg obj] [method {info object method registrationhandle}] ...] [para] Description of [method {info object method registrationhandle}] ... @@ -526,7 +570,7 @@ order of the [term linearisation] scheme in [term NX]. By setting the [term switch] [option -intrinsic], only classes which participate in superclass/subclass relationships (i.e., intrinsic classes) are -returned. If a [arg pattern] is provided, only nested classes whose +returned. If a [arg pattern] is provided, only classes whose names match [arg pattern] are returned. The [arg pattern] string can contain special matching characters (see [cmd "string match"]). Index: doc/filter.man.inc =================================================================== diff -u -r2eb328e4d7f6cb4f21144efdb08c87742d0a44f5 -rff595808af58a8baf4d8cd40d71334c5ca22e8cc --- doc/filter.man.inc (.../filter.man.inc) (revision 2eb328e4d7f6cb4f21144efdb08c87742d0a44f5) +++ doc/filter.man.inc (.../filter.man.inc) (revision ff595808af58a8baf4d8cd40d71334c5ca22e8cc) @@ -12,9 +12,9 @@ [def "[arg obj] [const [vset SCOPE]] [method {filter set}] [arg filterSpecList]"] [arg filterSpecList] takes a list of [term "filter"] specs, with each spec being itself a -one- or three-elements list: [arg methodName] ?-guard [arg guardExpr]?. [arg methodName] identifies +one-element or two-elements list: [arg methodName] ?[arg guardExpr]?. [arg methodName] identifies an existing method of [arg obj] which becomes -registered as a filter. If having three elements, the third +registered as a filter. If having two elements, the second element [arg guardExpr] will be stored as a guard expression of the [term "filter"]. This guard expression must be a valid Tcl expression (see [cmd expr]). [arg expr] is evaluated when [arg obj] receives a message to determine whether the @@ -36,7 +36,7 @@ throw an error if there is no matching [term "filter"], unless [option -nocomplain] is set. -[def "[arg obj] [const [vset SCOPE]] [method {filter unset}]"] +[def "[arg obj] [const [vset SCOPE]] [method {filter clear}]"] Removes all [term "filter"]s from [arg obj]. This is equivalent to passing an empty list for [arg filterSpecList] to [const [vset SCOPE]] [method {filter set}]. Index: doc/mixin.man.inc =================================================================== diff -u -r2eb328e4d7f6cb4f21144efdb08c87742d0a44f5 -rff595808af58a8baf4d8cd40d71334c5ca22e8cc --- doc/mixin.man.inc (.../mixin.man.inc) (revision 2eb328e4d7f6cb4f21144efdb08c87742d0a44f5) +++ doc/mixin.man.inc (.../mixin.man.inc) (revision ff595808af58a8baf4d8cd40d71334c5ca22e8cc) @@ -12,9 +12,9 @@ [def "[arg obj] [const [vset SCOPE]] [method {mixin set}] [arg mixinSpecList]"] [arg mixinSpecList] takes a list of [term "mixin class"] specs, with each spec being itself a -one- or three-elements list: [arg className] ?-guard [arg guardExpr]?. If +one-element or two-elements list: [arg className] ?[arg guardExpr]?. If having one element, the element will be considered the [arg className] -of the [term "mixin class"]. If having three elements, the third +of the [term "mixin class"]. If having two elements, the second element [arg guardExpr] will be stored as a guard expression of the [term "mixin class"]. This guard expression will be evaluated using [cmd expr] when [arg obj] receives a message to determine if the mixin @@ -31,7 +31,7 @@ [def "[arg obj] [const [vset SCOPE]] [method {mixin delete}] [option -nocomplain] [arg specPattern]"] Removes a [term "mixin class"] from a current list of [term "mixin class"]es of [arg obj] whose spec matches [arg specPattern]. [arg specPattern] can contain special matching chars (see [cmd "string match"]). [const [vset SCOPE]] [method "mixin delete"] will throw an error if there is no matching [term "mixin class"], unless [option -nocomplain] is set. -[def "[arg obj] [const [vset SCOPE]] [method {mixin unset}]"] +[def "[arg obj] [const [vset SCOPE]] [method {mixin clear}]"] Removes all [term "mixin class"]es from [arg obj]. This is equivalent to passing an empty list for [arg mixinSpecList] to [const [vset SCOPE]] [method {mixin set}].