Parent

Class/Module Index [+]

Quicksearch

Demo::Menus

Public Class Methods

new() click to toggle source
# File gtk2/sample/gtk-demo/menus.rb, line 38
def initialize
  super('menus')
  self.border_width = 0

  accel_group = Gtk::AccelGroup.new
  add_accel_group(accel_group)


  box1 = Gtk::VBox.new(false, 0)
  add(box1)

  menubar = Gtk::MenuBar.new
  box1.pack_start(menubar, false, true, 0)

  menu = create_menu(2, true)

  menuitem = Gtk::MenuItem.new("test\nline2")
  menuitem.submenu = menu
  menubar.append(menuitem)
  menuitem.show

  menuitem = Gtk::MenuItem.new('foo')
  menuitem.submenu = create_menu(3, true)
  menubar.append(menuitem)
  menuitem.show

  menuitem = Gtk::MenuItem.new('bar')
  menuitem.submenu = create_menu(4, true)
  menuitem.right_justified = true
  menubar.append(menuitem)
  menuitem.show

  box2 = Gtk::VBox.new(false, 10)
  box2.border_width = 10
  box1.pack_start(box2, true, true, 0)
  box2.show

  menu = create_menu(1, false)
  # menu.accel_group = accel_group

  menuitem = Gtk::SeparatorMenuItem.new
  menu.append(menuitem)
  menuitem.show

  menuitem = Gtk::CheckMenuItem.new('Accelerate Me')
  menu.append(menuitem)
  menuitem.show
  menuitem.add_accelerator('activate',
                           accel_group,
                           Gdk::Keyval::GDK_F1,
                           0,
                           Gtk::ACCEL_VISIBLE)
  menuitem = Gtk::CheckMenuItem.new('Accelerator Locked')
  menu.append(menuitem)
  menuitem.show
  menuitem.add_accelerator('activate',
                           accel_group,
                           Gdk::Keyval::GDK_F2,
                           0,
                           Gtk::ACCEL_VISIBLE | Gtk::ACCEL_LOCKED)
  menuitem = Gtk::CheckMenuItem.new('Accelerators Frozen')
  menu.append(menuitem)
  menuitem.show
  menuitem.add_accelerator('activate',
                           accel_group,
                           Gdk::Keyval::GDK_F2,
                           0,
                           Gtk::ACCEL_VISIBLE)
  menuitem.add_accelerator('activate',
                           accel_group,
                           Gdk::Keyval::GDK_F3,
                           0,
                           Gtk::ACCEL_VISIBLE)

  optionmenu = Gtk::OptionMenu.new
  optionmenu.menu = menu
  optionmenu.history = 3
  box2.pack_start(optionmenu, true, true, 0)
  optionmenu.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
    quit
  end
  box2.pack_start(button, true, true, 0)
  button.flags = Gtk::Widget::CAN_DEFAULT
  button.grab_default
  button.show
end

Public Instance Methods

create_menu(depth, tearoff) click to toggle source
# File gtk2/sample/gtk-demo/menus.rb, line 138
def create_menu (depth, tearoff)
  if depth < 1
    return nil
  end

  menu = Gtk::Menu.new
  group = nil

  if tearoff
    menuitem = Gtk::TearoffMenuItem.new
    menu.append(menuitem)
    menuitem.show
  end

  5.times do |i|
    buf = sprintf('item %2d - %d', depth, i + 1)
    menuitem = Gtk::RadioMenuItem.new(buf)
    group = menuitem.group

    menu.append(menuitem)
    menuitem.show
    if i == 3
      menuitem.sensitive = false
    end

    if submenu = create_menu(depth - 1, true)
      menuitem.submenu = submenu
    end
  end

  menu.show
  return menu
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.