40.1.2.2. Menu

Odkazy:

Pro tvorbu menu se používá objekt Wx::MenuBar. Tento objekt obsahuje všechna menu a související objekty Wx::Menu pro roletky.

Tabulka 40.1. Zvláštní předdefinovaná ID

symbolpopis
Wx::ID_ABOUTŽádost o otevření informační obrazovky
Wx::ID_ANYLibovolná událost.
Wx::ID_EXITUkončení programu.
Wx::ID_OPENOtevření existujícího souboru
Wx::ID_SAVEUložení souboru.
Wx::ID_LOWESTNejnižší ID které WxRuby používá interně.
Wx::ID_HIGHESTNejvyšší ID které WxRuby používá interně.

Příklad 40.3. Menu program ve wxRuby

#!/usr/bin/env ruby
require 'rubygems'
require 'wx'

class MyApp < Wx::App
  def on_init
    @frame = Wx::Frame.new(nil, -1,
                          :title => 'Hello, World!')
    @frame.show

    menu = Wx::MenuBar.new
    file = Wx::Menu.new
    file.append(Wx::ID_ANY, "&Open\tAlt-O", "Open File")
    file.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit")
    menu.append(file, "&File")
    @frame.menu_bar = menu

    evt_menu(Wx::ID_EXIT, :on_quit)
  end

  def on_quit
    @frame.close
  end
end

app = MyApp.new
app.main_loop

Příklad 40.4. Menu program jinak

#!/usr/bin/env ruby
require 'rubygems'
require 'wx'

class AppFrame < Wx::Frame
  def initialize
    super(nil, :title => 'Hello, World!')

    # Create Menu
    menu = Wx::MenuBar.new
    file = Wx::Menu.new
    file.append(Wx::ID_ANY, "&Open\tAlt-O", "Open File")
    file.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit")
    menu.append(file, "&File")
    self.menu_bar = menu
    
    evt_menu(Wx::ID_EXIT, :on_quit)
  end

  def on_quit
    close
  end
end

class MyApp < Wx::App
  def on_init
    @frame = AppFrame.new
    @frame.show
  end
end

app = MyApp.new
app.main_loop

Pokud potřebujeme menu znepřístupnit, použijeme metodu enable objektu MenuItem. Tato metoda má jen jeden parametr typu 〈Boolean 〉.

enable(Boolean enable = true)

    @save_menu_item = file_menu.append Wx::ID_SAVE
    @save_menu_item.enable false

Pro aktivaci a deaktivaci můžeme ještě použít volání metody enable objektu MenuBar nebo Menu. Tato metoda má dva parametry. Prvním je číslo volby menu (ID) a druhým je logická hodnota 〈Boolean 〉.

enable(Integer id,  Boolean enable)

    self.menu_bar.enable(Wx::ID_SAVE, true)
Licence Creative Commons
Tento dokument Ruby, jehož autorem je Radek Hnilica, podléhá licenci Creative Commons Uveďte autora-Nevyužívejte dílo komerčně-Zachovejte licenci 3.0 Česká republika .