1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
#!/usr/bin/env ruby
# Utilisation de la lib WxRuby
require "wx"
module Exemple
# Spécialisation d'une Wx::Frame pour mes propres besoins
class Frame < Wx::Frame
# Le tableau que tu vois ici, sert à créer des constantes qui seront nécessaires pour la création
# de mon menu, et de même pour l'association d'évènement à chaque menu
%w[ ID_NewItem
ID_ModifyItem
ID_DropItem
].each_with_index do |c, i|
const_set( c, 1000 + i )
end
def initialize( title )
# Appel du constructeur de la classeur mère ( Wx::Frame )
super( nil, Wx::ID_ANY, title, Wx::DEFAULT_POSITION, Wx::Size.new( 400, 300 ) )
menu_bar = Wx::MenuBar.new
item_menu = Wx::Menu.new
menu = Wx::Menu.new
# Création d'un menu nommé "Element"
# * Nouveau -> on_new_item
# * Modifier -> on_modify_item
# * Supprimer -> on_drop_item
# ***********
# * Quitter -> on_exit
menu.append(ID_NewItem, "&Nouveau")
evt_menu ID_NewItem, :on_new_item
menu.append(ID_ModifyItem, "&Modifier")
evt_menu ID_ModifyItem, :on_modify_item
menu.append(ID_DropItem, "&Supprimer")
evt_menu ID_DropItem, :on_drop_item
menu.append_separator
menu.append(Wx::ID_EXIT, "&Quitter\tAlt-X")
evt_menu Wx::ID_EXIT, :on_exit
# J'ajoute mon menu Element dans ma bare de menu
menu_bar.append( menu, "&Element" )
set_menu_bar( menu_bar )
end
def on_new_item
Wx::message_box( "Je crée un élément" )
end
def on_modify_item
Wx::message_box( "Je modifie cet élément" )
end
def on_drop_item
Wx::message_box( "Je supprime cet élément" )
end
def on_exit
close( true )
end
end
class App < Wx::App
def on_init
@frame = Frame.new( "Exemple de Menu" )
@frame.show
end
end
class << self
def run()
App.new.main_loop()
end
end
end
Exemple.run() |
Partager