Hi,
On Fri, 18 Nov 2005 02:42:18 +0900
I've something similar to that already.. but.. let me try to rephrase.
here is what I have so far:
tree.signal_connect("key-press-event") do |widget, event|
if Gdk::Window::ModifierType::CONTROL_MASK == event.state &
Gdk::Window::CONTROL_MASK
case event.keyval
when 117 then # ctrl-u
# scroll my widget up
when 100 then # ctrl-d
# scroll my widget down
end
end
end
How about the sample below?
-----
require 'gtk2'
Gtk.init
model = Gtk::ListStore.new(String)
tv = Gtk::TreeView.new(model)
tv.append_column(Gtk::TreeViewColumn.new("TITLE",
Gtk::CellRendererText.new,
:text => 0))
tv.enable_search = false
model.append[0] = "LINE 1"
model.append[0] = "LINE 2"
model.append[0] = "LINE 3"
tv.signal_connect("key-press-event") do |widget, event|
if Gdk::Window::ModifierType::CONTROL_MASK == event.state &
Gdk::Window::CONTROL_MASK
case event.keyval
when Gdk::Keyval::GDK_u # ctrl-u
tv.move_cursor(Gtk::MOVEMENT_DISPLAY_LINES, -1)
tv.selection.select_path(tv.cursor[0])
when Gdk::Keyval::GDK_d # ctrl-d
tv.move_cursor(Gtk::MOVEMENT_DISPLAY_LINES, 1)
tv.selection.select_path(tv.cursor[0])
end
end
end
Gtk::Window.new.add(tv).show_all
Gtk.main