From: Hidetoshi NAGAI Date: 2006-07-11T01:55:51+09:00 Subject: Re: Ruby/TK Iwidget combobox sub-classing From: Lionel MAIAUX 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 ' 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)