classBrowser History: 28 August 2000 Initial release. Background: With incr-Tcl 3.1, it does not appear to be possible to query the public interface of classes until an object of that class is created, and there is no method of querying the "procs" and "commons" of a class. This extension provides that capability, and demonstrates the use of it to create an elementary class browser widget. An executable is included which browses the classes defined by the incr-Widgets package. Contents: classIntrospection.tcl A Tcl source file exporting a package named "classIntrospection". The purpose of this package is to extend the functionality of the procedure "class" of the package "itcl". An info option is added which allows the public interface to the class to be investigated programatically. The extended syntax is as follows: class This is the original form. In addition to declaring the specified class, information about the class is collected and stored in a database. class info heritage|variable|proc|method|common The first option returns a list of the classes which are inherited directly by the specified class, while the remainder return a list of the names of the public items in the class definition of the specified type. classBrowser.tcl A Tcl source file exporting a package named "classBrowser". The purpose of this package is to create a widget which appears as a table listing the public components of all of the visible classes. It is intended primarily as an example use of the "classIntrospection" package, but may aid development in other applications, typically being packed into its own "toplevel" window. The procedure ::classBrowser::classBrowser takes a single argument, the name of the window to be created, which is also returned as the result of the procedure. No additional configuration arguments are supported, and there may be only one instance of this widget. classBrowser Demonstration application that uses the classBrowser widget to describe the classes of incr-widgets. pkgIndex.tcl Standard file created with: pkg_mkIndex . "*.tcl" Requirements: Development of the above has been carried out under Linux with the versions of the base software listed below. Usage with other release levels has not been investigated. "package require" statements do not specify versions. Tcl/Tk 8.3.0 iTcl/iTk/iWidgets 3.1 Tktable 2.6 Installation Example: gzip -cd classBrowser1.0.tar.gz | tar xvf - ./classBrowser1.0/classBrowser NOTE: the "classBrowser" binary appends the path of its own directory to "auto_path" to allow it to pick up the "classIntrospection" and "classBrowser" packages. Copyright: Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that this copyright notice appears in all copies. No representations are made about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. Comments: paul.welton@sympatico.ca