From: Lionel MAIAUX <lionel.maiaux / st.com>
Subject: Ruby/TK Iwidget combobox sub-classing
Date: Tue, 11 Jul 2006 00:24:23 +0900
Message-ID: <44B270F8.4040000 / st.com>
> I would like to sub-class the Ruby/Tk iwidget combobox class.
> I want to be able to post several commands when the "return" key is 
> pressed on the entry of my objects but I also want to preserve the 
> default combobox insertion functionality (new entries are automatically 
> inserted in the scrolled list)

I think that I'll use `bind' method or bindtag in such case.

  widget.bind('Return', proc{
                 < ... operation for Return-key ... >
                 Tk.callback_break  # break the callback operation.
                                    # if without this line, dafault 
                                    # callbacks will be called later.
              })

  ----------------------------------------------

  btag = TkBindTag.new
  btag.bind('Return', proc{ ... ; Tk.callback_break })
  widget.bindtags = widget.bindtags_unshift(btag)
          # or
  widget.bindtags_unshift(btag)

> So, my questions:
> - is there a simple (and portable) way to launch Tcl commands from ruby ?

Tk.tk_call( ...token list of a Tcl command line... )

Tk.ip_eval( "a string of Tcl script" )

and variations of those in whether convert encoding of arguments.

> - is there a more elegant way to add a list of ruby commands while 
> preserving default Tcl/Tk megawidget functionalities ?

Bind your callback operation to TkBindTag, 
and add to / remove from the bindtag list of the widget.

> - is there any documentation/help on Ruby/Tk and ruby Tk extensions ? 
> (without having to understand the full code)

Please read Tcl/Tk's documents. 

# And, `grep SUB_COMMAND <Ruby/Tk libraries>' and so on ;-)

Ruby/Tk has many convenient methods, but almost all of them are
undocumented.
I'm very sorry but I'm poor at English for translating large amount 
of Japanese douments. Could anyone help me?
-- 
Hidetoshi NAGAI (nagai / ai.kyutech.ac.jp)