Received: Thu, 8 Apr 2004 03:13:24 +0900 And lo, Hal wrote: > Correct assessment. But there are times when you'd want to capture > references to the widgets. That's the reason I yielded with the widget itself. The code I wrote is just a hack, and would probably be better like this def vbox myvbox = VBox.new ... (same) myvbox /* return the widget */ end That way, one could even make something that does: @myvbox = vbox { ... } It would also be nicer to have a class-independent method for this, so you could: myvbox = EzGtk.vbox { ... } So it wouldn't use class variables. Perhaps a thread-global variable? Thread.current["storefunc"] = ... There are a large number of cleaner ways to rewrite the code I gave above. You could also have other EzGtk constructs like ... main { title "Hello" width 20 height 20 } def width (x) @currentstackwidget.height = x end Other simple things like that. That button () construct doesn't quite strike me as correct - and could probably be done better button "buttonname" { on_click { ... } } Make it more generic across container-type objects. OTOH, Buttons are rarely used as such a container. *ponder ponder ponder* ... Maybe button_onclick "buttonname" { ... } I'd be interested in giving a hand if you like this idea and want to go with it. Just email me. - Greg Millam