A Snit object viewer, see [Snit's not Incr Tcl]. The code below is still very raw, and should be refactored and checked before serious use. It doesn't seem to work in separate toplevels, probably because of the BWidget connection. [http://home.swipnet.se/pelewin/images/snitscope.gif] ---- package require Tk package require snit package require BWidget option add *Label*relief raised option add *Label*anchor w option add *Label*justify left option add *Label*activeForeground blue snit::widget snitscope { option -object onconfigure -object value { set options(-object) $value set object $value $self redraw } variable object variable frame method list {w label option} { grid [label $w.$option-label -state active -text $label] - -sticky ew foreach o [$object info $option] { if {[array exists $o]} { if {$option eq "vars" && [regexp {::options$} $o]} { grid [label $w.$option-$o -text $o] \ [label $w.$option-$o-value -text {(see Options)}] -sticky ew } else { pack [frame $w.f] -fill both -expand yes grid [label $w.$option-$o -text $o] \ [$self listArray $w.f $o] -sticky ew } } else { if {$option eq "options"} { set value [$object cget $o] } else { set value [set $o] } grid [label $w.$option-$o -text $o] \ [label $w.$option-$o-value -text $value] -sticky ew } } } method listArray {w a} { foreach {k v} [array get $a] { grid [label $w.k$k -text $k] [label $w.v$k -text $v] -sticky ew } return $w } method redraw {} { set w $frame eval destroy [winfo children $w] foreach label {name type} value [list $object [$object info type]] { grid [label $w.$label-label -state active -text [string totitle $label]] \ [label $w.$label-value -text $value] -sticky ew } $self list $w Options options $self list $w {Instance variables} vars $self list $w {Type variables} typevars } constructor args { set sw [ScrolledWindow .sw] set sf [ScrollableFrame $sw.sf] $sw setwidget $sf set frame [$sf getframe] pack $sw -fill both -expand yes $self configurelist $args } } proc demo {} { snitscope .sc pack .sc -fill both -expand yes .sc configure -object .sc } ---- [Category GUI] | [Category Object Orientation] | [Category Application]