[ruby-gnome2-doc-cvs] [Hiki] create - gtk2-tut-buttonbox

Back to archive index

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






ruby-gnome2-cvs メーリングリストの案内
Back to archive index