WJG (26/03/08) It's good to see that the Tcl/Tk participation in the Google Summer of Code includes a proposal to implement Gtk rendering of Tk widgets. But GTk is accessible already via the Gnocl package, though it hasn't caught on. What a pity.... But, here's today's offering: A gnocl::widget can use substitution parameters by default to obtain various details; these include its own name.
#--------------- # gnoclWhoAmI.tcl #--------------- # Created by William J. Giddings # March, 2008 #--------------- # Description: # In Tcl "..everything is a string". https://wiki.tcl-lang.org/3018 #--------------- # Note: # The first two widgets created, ie. # ::gnocl::_WID1 and ::gnocl::_WID2 # are the toplevel window and the box container. #--------------- #!/bin/sh/ #\ exec tclsh "$0" "$@" package require Gnocl # create a container set box [gnocl::box -buttonType 1 -orientation vertical] # add it to a new toplevel gnocl::window -title "Buttons" -child $box # create a few buttons and return their names foreach i {apple bananna cherry damson} { # create and pack some buttons set tmp [gnocl::button -text "I'm $i\nClick ME!"] # gnocl widgets always know who they are! $tmp configure -onClicked {puts "I am %w"} $box add $tmp }