summaryrefslogtreecommitdiff
path: root/ext/gtk/testd.rb
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-01-19 05:08:25 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-01-19 05:08:25 +0000
commit5c47ddf9e7fa05bc993818c166e8162c20a970f9 (patch)
tree2f6b7ca53886b3e41a06d1268fb65e0a7bfbe741 /ext/gtk/testd.rb
parentd556e58fc0f5d94961e4ecb765cb1052cd754871 (diff)
Mon Jan 19 14:06:13 JST 1998
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@23 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/gtk/testd.rb')
-rw-r--r--ext/gtk/testd.rb96
1 files changed, 96 insertions, 0 deletions
diff --git a/ext/gtk/testd.rb b/ext/gtk/testd.rb
new file mode 100644
index 0000000000..52ce5db7e0
--- /dev/null
+++ b/ext/gtk/testd.rb
@@ -0,0 +1,96 @@
+require 'gtk'
+
+def create_menu(depth)
+ return nil if depth < 1
+
+ menu = Gtk::Menu::new()
+ group = nil
+ submenu = nil
+
+ for i in 0..4
+ buf = sprintf("item %2d - %d", depth, i+1)
+# menuitem = Gtk::MenuItem::new(buf)
+ menuitem = Gtk::RadioMenuItem.new(group, buf)
+ group = menuitem.group
+ if depth % 2
+ menuitem.set_show_toggle TRUE
+ end
+ menu.append menuitem
+ menuitem.show
+ if depth > 0
+ unless submenu
+ submenu = create_menu(depth - 1)
+ end
+ menuitem.set_submenu submenu
+ end
+ end
+ return menu
+end
+
+window = Gtk::Window::new(Gtk::WINDOW_TOPLEVEL)
+window.signal_connect("destroy") do
+ exit
+end
+window.signal_connect("delete_event") do
+ exit
+end
+window.set_title("menus")
+window.border_width(0)
+
+box1 = Gtk::VBox::new(FALSE, 0)
+window.add box1
+box1.show
+
+menubar = Gtk::MenuBar::new()
+box1.pack_start menubar, FALSE, TRUE, 0
+menubar.show
+
+menu = create_menu(2)
+menuitem = Gtk::MenuItem::new("test\nline2")
+menuitem.set_submenu menu
+menubar.append menuitem
+menuitem.show
+
+menuitem = Gtk::MenuItem::new("foo")
+menuitem.set_submenu menu
+menubar.append menuitem
+menuitem.show
+
+menuitem = Gtk::MenuItem::new("bar")
+menuitem.set_submenu menu
+menubar.append menuitem
+menuitem.show
+
+box2 = Gtk::VBox::new(FALSE, 10)
+box2.border_width 10
+box1.pack_start box2, TRUE, TRUE, 0
+box2.show
+
+optionmenu = Gtk::OptionMenu::new()
+optionmenu.set_menu create_menu(1)
+optionmenu.set_history 4
+box2.pack_start optionmenu, TRUE, TRUE, 0
+optionmenu.show
+
+separator = Gtk::HSeparator::new()
+box1.pack_start(separator, FALSE, TRUE, 0)
+separator.show
+
+box2 = Gtk::HBox::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()