diff options
Diffstat (limited to 'ext/gtk/test2.rb')
-rw-r--r-- | ext/gtk/test2.rb | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/ext/gtk/test2.rb b/ext/gtk/test2.rb new file mode 100644 index 0000000000..170de96185 --- /dev/null +++ b/ext/gtk/test2.rb @@ -0,0 +1,89 @@ +require 'gtk' + +window = Gtk::Window::new(Gtk::WINDOW_TOPLEVEL) +window.set_title("list") +window.border_width(0) + +box1 = Gtk::VBox::new(FALSE, 0) +window.add(box1) +box1.show + +box2 = Gtk::VBox::new(FALSE, 10) +box2.border_width(10) +box1.pack_start(box2, TRUE, TRUE, 0) +box2.show + +scrolled_win = Gtk::ScrolledWindow::new() +scrolled_win.set_policy(Gtk::POLICY_AUTOMATIC,Gtk::POLICY_AUTOMATIC) +box2.pack_start(scrolled_win, TRUE, TRUE, 0) +scrolled_win.show + +list = Gtk::List::new() +list.set_selection_mode(Gtk::SELECTION_MULTIPLE) +list.set_selection_mode(Gtk::SELECTION_BROWSE) +scrolled_win.add(list) +list.show + +for i in [ + "hello", + "world", + "blah", + "foo", + "bar", + "argh", + "spencer", + "is a", + "wussy", + "programmer", + ] + list_item = Gtk::ListItem::new(i) + list.add(list_item) + list_item.show +end + +button = Gtk::Button::new("add") +button.set_flags(Gtk::CAN_FOCUS); +i = 1 +button.signal_connect("clicked") do + list_item = Gtk::ListItem::new(format("added item %d", i)) + list.add(list_item) + list_item.show + i += 1 +end +box2.pack_start(button, FALSE, TRUE, 0) +button.show + +button = Gtk::Button::new("remove") +button.set_flags(Gtk::CAN_FOCUS); +button.signal_connect("clicked") do + tmp_list = list.selection + list.remove_items(tmp_list) + for i in tmp_list + i.destroy + end +end +box2.pack_start(button, FALSE, TRUE, 0) +button.show + +separator = Gtk::HSeparator::new() +box1.pack_start(separator, FALSE, TRUE, 0) +separator.show + +box2 = Gtk::VBox::new(FALSE, 10) +box2.border_width(10) +box1.pack_start(box2, FALSE, TRUE, 0) +box2.show + +button = Gtk::Button::new("close") +button.signal_connect("clicked") do + window.destroy + exit +end +box2.pack_start(button, TRUE, TRUE, 0) +button.set_flags(Gtk::CAN_DEFAULT); +button.grab_default +button.show + +window.show + +Gtk::main() |