新規作成  編集  Ruby-GNOME2 Project Website  ページ一覧  検索  更新履歴  編集履歴  RSS  Back  ログイン

gtk2-tut-buttonbox 差分 - Ruby-GNOME2 Project Website

  • 最後の更新で追加された部分はこのように表示します。
  • 最後の更新で削除された部分はこのように表示します。

= ボタンボックス
ボタンボックスは,いくつかのボタンを手っ取り早くレイアウトするのに便利である.
レイアウトする方向は,水平,垂直どちらにも対応している.
以下のようにして水平,垂直方向のボタンボックスを作成できる:

  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
  
  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