Jon Nelson wrote:

>On Tue, 19 Mar 2002 09:40:54 +0800
>"James Henstridge" <[EMAIL PROTECTED]> wrote:
>
>>You can use the plus and minus keys to expand and collapse the selected 
>>node in the ctree.
>>
>
>Cool!  In the meantime, I grabbed the key_press_event signal for the ctree,
>and checked for GDK.{Left,Right}.  If it was one of those, I did an
>"emit_stop_by_name" on key_press_event, and then performed a little
>magic to expand/collapse the current focus row.
>
>Would it be better to avoid the magic and try to emit a +/- keypress?
>
I think you can set this up in a gtkrc file for your application.  As 
GtkCTree uses the GTK Bindings API, you should be able to load a file 
holding something like:
  binding "my-ctree-bindings" {
    bind "right" {
      "change_focus_row_expansion" (expand)
    }
    bind "left" {
      "change_focus_row_expansion" (collapse)
    }
  }
  widget "widgetname" binding "my-ctree-bindings"

Load the gtkrc file with gtk.rc_parse(), then call set_name() on your 
CTree so that the above binding affects it.  If you want the left/right 
bindings above for all CTrees in all apps, put the above in your 
~/.gtkrc file, with the following line:
  class "GtkCTree" binding "my-ctree-bindings"

(I may have gotten the syntax slightly off, as I didn't test this 
specific case.  Have a play around with it until it works).

In gtk 2.0, many more widgets can have their key bindings customised 
like this.

James.

-- 
Email: [EMAIL PROTECTED]
WWW:   http://www.daa.com.au/~james/



_______________________________________________
pygtk mailing list   [EMAIL PROTECTED]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/

Reply via email to