ruby-****@sourc*****
ruby-****@sourc*****
2003年 9月 1日 (月) 13:48:37 JST
------------------------- REMOTE_ADDR = 163.135.10.36 REMOTE_HOST = URL = http://ruby-gnome2.sourceforge.jp/ja/?gtk2-tut-buttonbox ------------------------- = ボタンボックス ボタンボックスは,いくつかのボタンを手っ取り早くレイアウトするのに便利である. レイアウトする方向は,水平,垂直どちらにも対応している. 以下のようにして水平,垂直方向のボタンボックスを作成できる: Gtk::HButtonBox.new Gtk::VButtonBox.new ボタンをボタンボックスに追加するには Gtk::Container#add(child) を使用する. ボタンボックスに指定できる属性は,ボタンのレイアウトに関するものだけである. ボタンの間のスペースを取得,設定するには: Gtk::ButtonBox.spacing Gtk::ButtonBox.spacing=(spacing) Gtk::ButtonBox.set_spacing(spacing) ボタンの配置方法を取得,設定するには: Gtk::ButtonBox#layout_style Gtk::ButtonBox#layout_style=(layout) Gtk::ButtonBox#set_layout_style(layout) 引数layoutは以下のいずれかの値を取る: Gtk::ButtonBox::DEFAULT_STYLE Gtk::ButtonBox::SPREAD Gtk::ButtonBox::EDGE Gtk::ButtonBox::START Gtk::ButtonBox::END {{image_right "buttonbox.png"}}{{br}} #! /usr/bin/env ruby require 'gtk2' def create_bbox(horizontal, title, spacing, layout) frame = Gtk::Frame.new(title) bbox = (horizontal ? Gtk::HButtonBox : Gtk::VButtonBox).new bbox.border_width = 5 frame.add(bbox) bbox.layout_style = layout bbox.spacing = spacing bbox.add(Gtk::Button.new(Gtk::Stock::OK)) bbox.add(Gtk::Button.new(Gtk::Stock::CANCEL)) bbox.add(Gtk::Button.new(Gtk::Stock::HELP)) frame end Gtk.init window = Gtk::Window.new window.title = "Button Boxes" window.signal_connect("destroy") {Gtk.main_quit} window.border_width = 10 main_vbox = Gtk::VBox.new(false, 0) window.add(main_vbox) frame_horz = Gtk::Frame.new("Horizontal Button Boxes") main_vbox.pack_start(frame_horz, true, true, 10) vbox = Gtk::VBox.new(false, 0) vbox.border_width = 10 frame_horz.add(vbox) frame_vert = Gtk::Frame.new("Vertical Button Boxes") main_vbox.pack_start(frame_vert, true, true, 10) hbox = Gtk::HBox.new(false, 0) hbox.border_width = 10 frame_vert.add(hbox) vbox.pack_start( create_bbox(true, "Spread (spacing 40)", 40, Gtk::ButtonBox::SPREAD), true, true, 0) vbox.pack_start( create_bbox(true, "Edge (spacing 30)", 30, Gtk::ButtonBox::EDGE), true, true, 0) vbox.pack_start( create_bbox(true, "Start (spacing 20)", 20, Gtk::ButtonBox::START), true, true, 0) vbox.pack_start( create_bbox(true, "End (spacing 10)", 10, Gtk::ButtonBox::END), true, true, 0) hbox.pack_start( create_bbox(false, "Spread (spacing 5)", 5, Gtk::ButtonBox::SPREAD), true, true, 0) hbox.pack_start( create_bbox(false, "Edge (spacing 30)", 30, Gtk::ButtonBox::EDGE), true, true, 0) hbox.pack_start( create_bbox(false, "Start (spacing 20)", 20, Gtk::ButtonBox::START), true, true, 0) hbox.pack_start( create_bbox(false, "End (spacing 20)", 20, Gtk::ButtonBox::END), true, true, 0) window.show_all Gtk.main