wxruby 1.9.6-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE +53 -0
- data/README +297 -0
- data/lib/wx/accessors.rb +52 -0
- data/lib/wx/classes/acceleratortable.rb +28 -0
- data/lib/wx/classes/animation.rb +18 -0
- data/lib/wx/classes/app.rb +45 -0
- data/lib/wx/classes/artprovider.rb +31 -0
- data/lib/wx/classes/bitmap.rb +28 -0
- data/lib/wx/classes/busycursor.rb +12 -0
- data/lib/wx/classes/checklistbox.rb +45 -0
- data/lib/wx/classes/choice.rb +4 -0
- data/lib/wx/classes/clientdc.rb +13 -0
- data/lib/wx/classes/clipboard.rb +16 -0
- data/lib/wx/classes/colour.rb +47 -0
- data/lib/wx/classes/combobox.rb +4 -0
- data/lib/wx/classes/commandevent.rb +7 -0
- data/lib/wx/classes/controlwithitems.rb +10 -0
- data/lib/wx/classes/dc.rb +57 -0
- data/lib/wx/classes/event.rb +5 -0
- data/lib/wx/classes/evthandler.rb +921 -0
- data/lib/wx/classes/font.rb +118 -0
- data/lib/wx/classes/functions.rb +44 -0
- data/lib/wx/classes/gauge.rb +12 -0
- data/lib/wx/classes/grid.rb +138 -0
- data/lib/wx/classes/helpcontroller.rb +5 -0
- data/lib/wx/classes/htmlhelpcontroller.rb +5 -0
- data/lib/wx/classes/htmlwindow.rb +14 -0
- data/lib/wx/classes/icon.rb +21 -0
- data/lib/wx/classes/iconbundle.rb +3 -0
- data/lib/wx/classes/image.rb +31 -0
- data/lib/wx/classes/imagelist.rb +3 -0
- data/lib/wx/classes/listbox.rb +4 -0
- data/lib/wx/classes/listctrl.rb +21 -0
- data/lib/wx/classes/locale.rb +28 -0
- data/lib/wx/classes/mediactrl.rb +22 -0
- data/lib/wx/classes/menu.rb +62 -0
- data/lib/wx/classes/menuitem.rb +7 -0
- data/lib/wx/classes/object.rb +7 -0
- data/lib/wx/classes/paintdc.rb +12 -0
- data/lib/wx/classes/point.rb +48 -0
- data/lib/wx/classes/previewframe.rb +13 -0
- data/lib/wx/classes/rect.rb +10 -0
- data/lib/wx/classes/size.rb +49 -0
- data/lib/wx/classes/sound.rb +23 -0
- data/lib/wx/classes/styledtextctrl.rb +92 -0
- data/lib/wx/classes/textctrl.rb +14 -0
- data/lib/wx/classes/texturlevent.rb +6 -0
- data/lib/wx/classes/timer.rb +94 -0
- data/lib/wx/classes/toolbartool.rb +4 -0
- data/lib/wx/classes/treectrl.rb +44 -0
- data/lib/wx/classes/window.rb +82 -0
- data/lib/wx/classes/xmlresource.rb +37 -0
- data/lib/wx/keyword_ctors.rb +222 -0
- data/lib/wx/keyword_defs.rb +492 -0
- data/lib/wx/version.rb +3 -0
- data/lib/wx.rb +42 -0
- data/lib/wxruby2.so +0 -0
- data/samples/SAMPLES-LICENSE.TXT +18 -0
- data/samples/aui/aui.rb +1356 -0
- data/samples/bigdemo/About.rbw +39 -0
- data/samples/bigdemo/ColorPanel.rbw +23 -0
- data/samples/bigdemo/GridSimple.rbw +78 -0
- data/samples/bigdemo/MDIDemo.rbw +57 -0
- data/samples/bigdemo/PopupMenu.rbw +149 -0
- data/samples/bigdemo/ShapedWindow.rbw +131 -0
- data/samples/bigdemo/Sizers.rbw +543 -0
- data/samples/bigdemo/bigdemo.rb +823 -0
- data/samples/bigdemo/demoTemplate.rbw +33 -0
- data/samples/bigdemo/helpfile.htb +0 -0
- data/samples/bigdemo/icons/Test 015.jpg +0 -0
- data/samples/bigdemo/icons/Test 015.png +0 -0
- data/samples/bigdemo/icons/choice.bmp +0 -0
- data/samples/bigdemo/icons/choice.xpm +27 -0
- data/samples/bigdemo/icons/combo.bmp +0 -0
- data/samples/bigdemo/icons/combo.xpm +27 -0
- data/samples/bigdemo/icons/copy.xpm +25 -0
- data/samples/bigdemo/icons/cut.xpm +24 -0
- data/samples/bigdemo/icons/gauge.bmp +0 -0
- data/samples/bigdemo/icons/gauge.xpm +27 -0
- data/samples/bigdemo/icons/help.xpm +25 -0
- data/samples/bigdemo/icons/list.bmp +0 -0
- data/samples/bigdemo/icons/list.xpm +27 -0
- data/samples/bigdemo/icons/mondrian.ico +0 -0
- data/samples/bigdemo/icons/mondrian.xpm +44 -0
- data/samples/bigdemo/icons/new.xpm +24 -0
- data/samples/bigdemo/icons/ogl.ico +0 -0
- data/samples/bigdemo/icons/ogl.xpm +45 -0
- data/samples/bigdemo/icons/open.xpm +26 -0
- data/samples/bigdemo/icons/paste.bmp +0 -0
- data/samples/bigdemo/icons/paste.xpm +38 -0
- data/samples/bigdemo/icons/pointy.png +0 -0
- data/samples/bigdemo/icons/preview.xpm +26 -0
- data/samples/bigdemo/icons/print.xpm +26 -0
- data/samples/bigdemo/icons/radio.bmp +0 -0
- data/samples/bigdemo/icons/radio.xpm +27 -0
- data/samples/bigdemo/icons/robert.xpm +415 -0
- data/samples/bigdemo/icons/ruby.png +0 -0
- data/samples/bigdemo/icons/sashtest.ico +0 -0
- data/samples/bigdemo/icons/save.xpm +25 -0
- data/samples/bigdemo/icons/smiles.bmp +0 -0
- data/samples/bigdemo/icons/smiles.xpm +39 -0
- data/samples/bigdemo/icons/smiley.ico +0 -0
- data/samples/bigdemo/icons/smiley.xpm +42 -0
- data/samples/bigdemo/icons/stattext.xpm +24 -0
- data/samples/bigdemo/icons/test2.bmp +0 -0
- data/samples/bigdemo/icons/test2.png +0 -0
- data/samples/bigdemo/icons/test2.xpm +79 -0
- data/samples/bigdemo/icons/text.bmp +0 -0
- data/samples/bigdemo/icons/text.xpm +27 -0
- data/samples/bigdemo/icons/tog1.bmp +0 -0
- data/samples/bigdemo/icons/tog1.xpm +38 -0
- data/samples/bigdemo/icons/tog2.bmp +0 -0
- data/samples/bigdemo/icons/tog2.xpm +38 -0
- data/samples/bigdemo/icons/wxwin.ico +0 -0
- data/samples/bigdemo/icons/wxwin16x16.png +0 -0
- data/samples/bigdemo/icons/wxwin16x16.xpm +25 -0
- data/samples/bigdemo/icons/wxwin32x32.png +0 -0
- data/samples/bigdemo/icons/wxwin48x48.png +0 -0
- data/samples/bigdemo/run.rb +90 -0
- data/samples/bigdemo/tips.txt +7 -0
- data/samples/bigdemo/utils.rb +12 -0
- data/samples/bigdemo/wxArtProvider.rbw +281 -0
- data/samples/bigdemo/wxBitmapButton.rbw +65 -0
- data/samples/bigdemo/wxButton.rbw +64 -0
- data/samples/bigdemo/wxCalendarCtrl.rbw +60 -0
- data/samples/bigdemo/wxCheckBox.rbw +50 -0
- data/samples/bigdemo/wxCheckListBox.rbw +75 -0
- data/samples/bigdemo/wxChoice.rbw +47 -0
- data/samples/bigdemo/wxChoicebook.rbw +78 -0
- data/samples/bigdemo/wxColourDialog.rbw +31 -0
- data/samples/bigdemo/wxComboBox.rbw +77 -0
- data/samples/bigdemo/wxCursor.rbw +136 -0
- data/samples/bigdemo/wxDialog.rbw +74 -0
- data/samples/bigdemo/wxDirDialog.rbw +29 -0
- data/samples/bigdemo/wxDragImage.rbw +70 -0
- data/samples/bigdemo/wxFileDialog.rbw +37 -0
- data/samples/bigdemo/wxFileDialog_Save.rbw +35 -0
- data/samples/bigdemo/wxFindReplaceDialog.rbw +82 -0
- data/samples/bigdemo/wxFontDialog.rbw +173 -0
- data/samples/bigdemo/wxFrame.rbw +53 -0
- data/samples/bigdemo/wxGauge.rbw +71 -0
- data/samples/bigdemo/wxGenericDirCtrl.rbw +74 -0
- data/samples/bigdemo/wxGrid.rbw +66 -0
- data/samples/bigdemo/wxHtmlHelpController.rbw +52 -0
- data/samples/bigdemo/wxListBox.rbw +140 -0
- data/samples/bigdemo/wxListCtrl_virtual.rbw +107 -0
- data/samples/bigdemo/wxMDIWindows.rbw +50 -0
- data/samples/bigdemo/wxMenu.rbw +236 -0
- data/samples/bigdemo/wxMessageDialog.rbw +27 -0
- data/samples/bigdemo/wxMiniFrame.rbw +70 -0
- data/samples/bigdemo/wxMultipleChoiceDialog.rbw +32 -0
- data/samples/bigdemo/wxNotebook.rbw +136 -0
- data/samples/bigdemo/wxProgressDialog.rbw +43 -0
- data/samples/bigdemo/wxRadioBox.rbw +72 -0
- data/samples/bigdemo/wxRadioButton.rbw +125 -0
- data/samples/bigdemo/wxSashWindow.rbw +141 -0
- data/samples/bigdemo/wxScrolledMessageDialog.rbw +57 -0
- data/samples/bigdemo/wxScrolledWindow.rbw +199 -0
- data/samples/bigdemo/wxSingleChoiceDialog.rbw +33 -0
- data/samples/bigdemo/wxSlider.rbw +42 -0
- data/samples/bigdemo/wxSpinButton.rbw +50 -0
- data/samples/bigdemo/wxSpinCtrl.rbw +51 -0
- data/samples/bigdemo/wxSplitterWindow.rbw +63 -0
- data/samples/bigdemo/wxStaticBitmap.rbw +51 -0
- data/samples/bigdemo/wxStaticText.rbw +55 -0
- data/samples/bigdemo/wxStatusBar.rbw +126 -0
- data/samples/bigdemo/wxTextCtrl.rbw +149 -0
- data/samples/bigdemo/wxTextEntryDialog.rbw +31 -0
- data/samples/bigdemo/wxToggleButton.rbw +49 -0
- data/samples/bigdemo/wxToolBar.rbw +131 -0
- data/samples/bigdemo/wxTreeCtrl.rbw +190 -0
- data/samples/calendar/calendar.rb +271 -0
- data/samples/caret/caret.rb +282 -0
- data/samples/caret/mondrian.xpm +44 -0
- data/samples/controls/controls.rb +1136 -0
- data/samples/controls/get_item_sample.rb +87 -0
- data/samples/controls/icons/choice.xpm +27 -0
- data/samples/controls/icons/combo.xpm +27 -0
- data/samples/controls/icons/gauge.xpm +27 -0
- data/samples/controls/icons/list.xpm +27 -0
- data/samples/controls/icons/radio.xpm +27 -0
- data/samples/controls/icons/stattext.xpm +24 -0
- data/samples/controls/icons/text.xpm +27 -0
- data/samples/controls/mondrian.ico +0 -0
- data/samples/controls/mondrian.xpm +44 -0
- data/samples/controls/test2.bmp +0 -0
- data/samples/dialogs/dialogs.rb +723 -0
- data/samples/dialogs/tips.txt +18 -0
- data/samples/drawing/graphics_drawing.rb +235 -0
- data/samples/drawing/images.rb +37 -0
- data/samples/drawing/paperclip.png +0 -0
- data/samples/etc/activation.rb +102 -0
- data/samples/etc/choice.rb +67 -0
- data/samples/etc/miniframe.rb +79 -0
- data/samples/etc/sash.rb +130 -0
- data/samples/etc/scrollwin.rb +110 -0
- data/samples/etc/system_settings.rb +252 -0
- data/samples/etc/threaded.rb +72 -0
- data/samples/etc/wizard.rb +74 -0
- data/samples/event/event.rb +182 -0
- data/samples/grid/grid.rb +198 -0
- data/samples/grid/gridtablebase.rb +134 -0
- data/samples/html/html.rb +262 -0
- data/samples/listbook/listbook.rb +174 -0
- data/samples/listbook/listbook.xrc +370 -0
- data/samples/mdi/mdi.rb +82 -0
- data/samples/media/mediactrl.rb +167 -0
- data/samples/minimal/minimal.rb +77 -0
- data/samples/minimal/mondrian.ico +0 -0
- data/samples/minimal/mondrian.png +0 -0
- data/samples/minimal/nothing.rb +16 -0
- data/samples/opengl/cube.rb +117 -0
- data/samples/printing/mondrian.ico +0 -0
- data/samples/printing/mondrian.xpm +44 -0
- data/samples/printing/printing.rb +310 -0
- data/samples/sockets/SocketPackets.rb +27 -0
- data/samples/sockets/res/message-new.png +0 -0
- data/samples/sockets/res/user.png +0 -0
- data/samples/sockets/wxClient.rb +395 -0
- data/samples/sockets/wxServer.rb +422 -0
- data/samples/sockets/wxSocketGUI.rb +97 -0
- data/samples/text/mondrian.ico +0 -0
- data/samples/text/mondrian.xpm +44 -0
- data/samples/text/scintilla.rb +169 -0
- data/samples/text/textctrl.rb +113 -0
- data/samples/text/unicode.rb +242 -0
- data/samples/text/utf8.txt +15 -0
- data/samples/treectrl/icon1.xpm +79 -0
- data/samples/treectrl/icon2.xpm +53 -0
- data/samples/treectrl/icon3.xpm +79 -0
- data/samples/treectrl/icon4.xpm +43 -0
- data/samples/treectrl/icon5.xpm +79 -0
- data/samples/treectrl/treectrl.rb +1174 -0
- data/samples/xrc/samples.xrc +46 -0
- data/samples/xrc/xrc_sample.rb +96 -0
- metadata +313 -0
@@ -0,0 +1,174 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
|
3
|
+
# Freely reusable code: see SAMPLES-LICENSE.TXT for details
|
4
|
+
begin
|
5
|
+
require 'rubygems'
|
6
|
+
rescue LoadError
|
7
|
+
end
|
8
|
+
require 'wx'
|
9
|
+
|
10
|
+
# Basic Frame Class. This creates the dialog window
|
11
|
+
#
|
12
|
+
class SimpleFrame < Wx::Frame
|
13
|
+
|
14
|
+
FILE_DIALOG, FILE_ABOUT, FILE_QUIT = [0,Wx::ID_ABOUT,Wx::ID_EXIT]
|
15
|
+
|
16
|
+
def initialize(parent)
|
17
|
+
# To load a layout defined in XRC into a Ruby subclass of Frame,
|
18
|
+
# first call the empty constructor. All the details of size,
|
19
|
+
# title, position and so on are loaded from the XRC by the call to
|
20
|
+
# load_frame_subclass. Using a non-empty constructor will cause
|
21
|
+
# errors on GTK.
|
22
|
+
super()
|
23
|
+
$xml.load_frame_subclass(self,nil,'ID_FRAME')
|
24
|
+
|
25
|
+
# Create a new menu
|
26
|
+
bar = Wx::MenuBar.new
|
27
|
+
menu = Wx::Menu.new
|
28
|
+
menu.append(FILE_ABOUT,"About...")
|
29
|
+
menu.append_separator
|
30
|
+
menu.append(FILE_QUIT,"Quit")
|
31
|
+
bar.append(menu,"File")
|
32
|
+
|
33
|
+
set_menu_bar(bar)
|
34
|
+
|
35
|
+
# Assign the menu events
|
36
|
+
evt_menu(FILE_ABOUT) do
|
37
|
+
Wx::message_box("wxRuby Listbook sample\nby Sean Long", "About Listbook", Wx::OK | Wx::ICON_INFORMATION, self)
|
38
|
+
end
|
39
|
+
evt_menu(FILE_QUIT) do
|
40
|
+
Wx::get_app.exit_main_loop()
|
41
|
+
end
|
42
|
+
evt_close() do
|
43
|
+
Wx::get_app.exit_main_loop()
|
44
|
+
end
|
45
|
+
|
46
|
+
# Variables not in tabs
|
47
|
+
@listbook = xrcid_to_window('ID_LISTBOOK')
|
48
|
+
@text_output = xrcid_to_window('ID_ORDER_TEXTCTRL')
|
49
|
+
|
50
|
+
# Variables for widgets in Pizza tab
|
51
|
+
@pizza_size = xrcid_to_window('ID_PIZZA_SIZE_CHOICE')
|
52
|
+
@pizza_crust = xrcid_to_window('ID_PIZZA_CRUST_CHOICE')
|
53
|
+
@pizza_sauce = xrcid_to_window('ID_PIZZA_SAUCE_CHOICE')
|
54
|
+
@pizza_cheese = xrcid_to_window('ID_PIZZA_CHEESE_CHOICE')
|
55
|
+
@pizza_toppings = []
|
56
|
+
3.times do |i|
|
57
|
+
@pizza_toppings << xrcid_to_window("ID_PIZZA_TOPPING_#{i+1}_CHOICE")
|
58
|
+
end
|
59
|
+
|
60
|
+
# fill in toppings
|
61
|
+
toppings = ['pepperoni','sausage','italian sausage','olives',
|
62
|
+
'mushrooms','artichoke','extra cheese','']
|
63
|
+
toppings.each do |top_name|
|
64
|
+
@pizza_toppings.each do |top_obj|
|
65
|
+
top_obj.append(top_name)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
index = 0
|
70
|
+
@pizza_toppings.each do |obj|
|
71
|
+
obj.set_selection(index)
|
72
|
+
index += 1
|
73
|
+
end
|
74
|
+
|
75
|
+
# Events for pizza tab
|
76
|
+
evt_button( Wx::xrcid('ID_PIZZA_BUTTON') ) do |event|
|
77
|
+
#get selections and add to order
|
78
|
+
order_string = @text_output.get_value
|
79
|
+
if order_string != "" then order_string << "\n" end
|
80
|
+
order_string << "One #{@pizza_size.get_string_selection} pizza with:\n"
|
81
|
+
order_string << @pizza_crust.get_string_selection + " crust" + "\n"
|
82
|
+
order_string << @pizza_sauce.get_string_selection + " sauce" +"\n"
|
83
|
+
order_string << @pizza_cheese.get_string_selection + " and" + "\n"
|
84
|
+
@pizza_toppings.each { |obj| order_string << obj.get_string_selection + "\n" }
|
85
|
+
|
86
|
+
@text_output.set_value(order_string)
|
87
|
+
end
|
88
|
+
|
89
|
+
|
90
|
+
# Variables for widgets in Drink tab
|
91
|
+
@drink_size = xrcid_to_window('ID_DRINK_SIZE_CHOICE')
|
92
|
+
@drink_type = xrcid_to_window('ID_DRINK_TYPE_CHOICE')
|
93
|
+
|
94
|
+
# Events for drink tab
|
95
|
+
evt_button(Wx::xrcid('ID_DRINK_BUTTON')) do |event|
|
96
|
+
#get selections and add to order
|
97
|
+
order_string = @text_output.get_value
|
98
|
+
if order_string != "" then order_string << "\n" end
|
99
|
+
|
100
|
+
order_string << "One #{@drink_size.get_string_selection} #{@drink_type.get_string_selection }.\n"
|
101
|
+
|
102
|
+
@text_output.set_value(order_string)
|
103
|
+
end
|
104
|
+
|
105
|
+
# Variables for widgets in Ice Cream tab
|
106
|
+
@ice_cream_size = xrcid_to_window('ID_ICE_CREAM_SIZE_CHOICE')
|
107
|
+
@ice_cream_type = xrcid_to_window('ID_ICE_CREAM_TYPE_CHOICE')
|
108
|
+
@ice_cream_toppings = []
|
109
|
+
4.times do |i|
|
110
|
+
@ice_cream_toppings <<
|
111
|
+
xrcid_to_window("ID_ICE_CREAM_TOPPING_#{i+1}_CHOICE")
|
112
|
+
end
|
113
|
+
|
114
|
+
toppings = ['','m&m\'s','chocolate chips','fudge','nuts','cherry','whip cream']
|
115
|
+
toppings.each do |top_name|
|
116
|
+
@ice_cream_toppings.each do |top_obj|
|
117
|
+
top_obj.append(top_name)
|
118
|
+
end
|
119
|
+
end
|
120
|
+
@ice_cream_toppings.each { |obj| obj.set_selection(0) }
|
121
|
+
|
122
|
+
# Events for ice cream tab
|
123
|
+
evt_button(Wx::xrcid('ID_ICE_CREAM_BUTTON')) do |event|
|
124
|
+
#get selections and add to order
|
125
|
+
order_string = @text_output.get_value
|
126
|
+
if order_string != "" then order_string << "\n" end
|
127
|
+
|
128
|
+
order_string << "One #{@ice_cream_size.get_string_selection} #{@ice_cream_type.get_string_selection} ice cream:\n"
|
129
|
+
@ice_cream_toppings.each { |obj| order_string << obj.get_string_selection + "\n" }
|
130
|
+
|
131
|
+
@text_output.set_value(order_string)
|
132
|
+
end
|
133
|
+
|
134
|
+
evt_listbook_page_changed(Wx::xrcid('ID_LISTBOOK')) do |event|
|
135
|
+
tab_number = event.get_selection
|
136
|
+
order_string = @text_output.get_value
|
137
|
+
order_string << "moved to tab = #{@listbook.get_page_text(tab_number)} \n"
|
138
|
+
@text_output.set_value(order_string)
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
# Converts a XRCID id - as used in wxWidget's XML format - into the
|
143
|
+
# correct ruby window
|
144
|
+
def xrcid_to_window(xrc_id)
|
145
|
+
Wx::Window.find_window_by_id(Wx::xrcid(xrc_id), self)
|
146
|
+
end
|
147
|
+
|
148
|
+
end
|
149
|
+
|
150
|
+
#
|
151
|
+
# Application class.
|
152
|
+
#
|
153
|
+
class XrcApp < Wx::App
|
154
|
+
|
155
|
+
def on_init
|
156
|
+
# Create a resource handler
|
157
|
+
$xml = Wx::XmlResource.get();
|
158
|
+
$xml.init_all_handlers();
|
159
|
+
|
160
|
+
# Load a resource file from the script's directory
|
161
|
+
xrc_file = File.join( File.dirname( __FILE__ ), 'listbook.xrc' )
|
162
|
+
|
163
|
+
$xml.load(xrc_file)
|
164
|
+
|
165
|
+
|
166
|
+
# Show the main frame.
|
167
|
+
$main = SimpleFrame.new(self)
|
168
|
+
$main.show(true)
|
169
|
+
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
|
174
|
+
XrcApp.new().main_loop()
|
@@ -0,0 +1,370 @@
|
|
1
|
+
<?xml version="1.0" encoding="ISO-8859-1"?>
|
2
|
+
<resource version="2.3.0.1" xmlns="http://www.wxwidgets.org/wxxrc">
|
3
|
+
<object class="wxFrame" name="ID_FRAME" subclass="MyFrame">
|
4
|
+
<style>wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX</style>
|
5
|
+
<size>400,300d</size>
|
6
|
+
<title>Pizza Palace</title>
|
7
|
+
<object class="wxPanel" name="ID_MAIN_PANEL">
|
8
|
+
<style>wxSUNKEN_BORDER|wxTAB_TRAVERSAL</style>
|
9
|
+
<object class="wxBoxSizer">
|
10
|
+
<orient>wxVERTICAL</orient>
|
11
|
+
<object class="sizeritem">
|
12
|
+
<flag>wxGROW|wxALL</flag>
|
13
|
+
<border>5</border>
|
14
|
+
<option>2</option>
|
15
|
+
<object class="wxListbook" name="ID_LISTBOOK">
|
16
|
+
<pos>200,200d</pos>
|
17
|
+
<style>wxLB_LEFT</style>
|
18
|
+
<object class="listbookpage">
|
19
|
+
<label>Pizza</label>
|
20
|
+
<object class="wxPanel" name="ID_PANEL_PIZZA">
|
21
|
+
<style>wxSUNKEN_BORDER|wxTAB_TRAVERSAL</style>
|
22
|
+
<object class="wxFlexGridSizer">
|
23
|
+
<cols>2</cols>
|
24
|
+
<rows>2</rows>
|
25
|
+
<vgap>0</vgap>
|
26
|
+
<hgap>0</hgap>
|
27
|
+
<growablecols>1</growablecols>
|
28
|
+
<growablerows>7</growablerows>
|
29
|
+
<object class="sizeritem">
|
30
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
31
|
+
<border>5</border>
|
32
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
33
|
+
<label>Your pizza size:</label>
|
34
|
+
</object>
|
35
|
+
</object>
|
36
|
+
<object class="sizeritem">
|
37
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
38
|
+
<border>5</border>
|
39
|
+
<object class="wxChoice" name="ID_PIZZA_SIZE_CHOICE">
|
40
|
+
<content>
|
41
|
+
<item>small</item>
|
42
|
+
<item>medium</item>
|
43
|
+
<item>large</item>
|
44
|
+
<item>x-large</item>
|
45
|
+
</content>
|
46
|
+
<selection>1</selection>
|
47
|
+
</object>
|
48
|
+
</object>
|
49
|
+
<object class="sizeritem">
|
50
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
51
|
+
<border>5</border>
|
52
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
53
|
+
<label>Your preferred crust style:</label>
|
54
|
+
</object>
|
55
|
+
</object>
|
56
|
+
<object class="sizeritem">
|
57
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
58
|
+
<border>5</border>
|
59
|
+
<object class="wxChoice" name="ID_PIZZA_CRUST_CHOICE">
|
60
|
+
<content>
|
61
|
+
<item>thin</item>
|
62
|
+
<item>thick</item>
|
63
|
+
<item>stuffed</item>
|
64
|
+
</content>
|
65
|
+
<selection>1</selection>
|
66
|
+
</object>
|
67
|
+
</object>
|
68
|
+
<object class="sizeritem">
|
69
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
70
|
+
<border>5</border>
|
71
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
72
|
+
<label>Your sauce type:</label>
|
73
|
+
</object>
|
74
|
+
</object>
|
75
|
+
<object class="sizeritem">
|
76
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
77
|
+
<border>5</border>
|
78
|
+
<object class="wxChoice" name="ID_PIZZA_SAUCE_CHOICE">
|
79
|
+
<content>
|
80
|
+
<item>red mild</item>
|
81
|
+
<item>red spicy</item>
|
82
|
+
<item>pesto</item>
|
83
|
+
<item>creamy garlic</item>
|
84
|
+
</content>
|
85
|
+
<selection>0</selection>
|
86
|
+
</object>
|
87
|
+
</object>
|
88
|
+
<object class="sizeritem">
|
89
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
90
|
+
<border>5</border>
|
91
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
92
|
+
<label>Cheese style:</label>
|
93
|
+
</object>
|
94
|
+
</object>
|
95
|
+
<object class="sizeritem">
|
96
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
97
|
+
<border>5</border>
|
98
|
+
<object class="wxChoice" name="ID_PIZZA_CHEESE_CHOICE">
|
99
|
+
<content>
|
100
|
+
<item>no cheese</item>
|
101
|
+
<item>normal cheese</item>
|
102
|
+
<item>lots of cheese</item>
|
103
|
+
<item>I am a mouse</item>
|
104
|
+
</content>
|
105
|
+
<selection>1</selection>
|
106
|
+
</object>
|
107
|
+
</object>
|
108
|
+
<object class="sizeritem">
|
109
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
110
|
+
<border>5</border>
|
111
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
112
|
+
<label>Topping 1:</label>
|
113
|
+
</object>
|
114
|
+
</object>
|
115
|
+
<object class="sizeritem">
|
116
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
117
|
+
<border>5</border>
|
118
|
+
<object class="wxChoice" name="ID_PIZZA_TOPPING_1_CHOICE">
|
119
|
+
</object>
|
120
|
+
</object>
|
121
|
+
<object class="sizeritem">
|
122
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
123
|
+
<border>5</border>
|
124
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
125
|
+
<label>Topping 2:</label>
|
126
|
+
</object>
|
127
|
+
</object>
|
128
|
+
<object class="sizeritem">
|
129
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
130
|
+
<border>5</border>
|
131
|
+
<object class="wxChoice" name="ID_PIZZA_TOPPING_2_CHOICE">
|
132
|
+
</object>
|
133
|
+
</object>
|
134
|
+
<object class="sizeritem">
|
135
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
136
|
+
<border>5</border>
|
137
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
138
|
+
<label>Topping 3:</label>
|
139
|
+
</object>
|
140
|
+
</object>
|
141
|
+
<object class="sizeritem">
|
142
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
143
|
+
<border>5</border>
|
144
|
+
<object class="wxChoice" name="ID_PIZZA_TOPPING_3_CHOICE">
|
145
|
+
</object>
|
146
|
+
</object>
|
147
|
+
<object class="spacer">
|
148
|
+
<flag>wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
149
|
+
<border>5</border>
|
150
|
+
<size>5,5d</size>
|
151
|
+
</object>
|
152
|
+
<object class="sizeritem">
|
153
|
+
<flag>wxALIGN_RIGHT|wxALIGN_BOTTOM|wxALL</flag>
|
154
|
+
<border>5</border>
|
155
|
+
<object class="wxButton" name="ID_PIZZA_BUTTON">
|
156
|
+
<label>Add to order</label>
|
157
|
+
</object>
|
158
|
+
</object>
|
159
|
+
</object>
|
160
|
+
</object>
|
161
|
+
</object>
|
162
|
+
<object class="listbookpage">
|
163
|
+
<label>Drink</label>
|
164
|
+
<object class="wxPanel" name="ID_PANEL_DRINK">
|
165
|
+
<style>wxSUNKEN_BORDER|wxTAB_TRAVERSAL</style>
|
166
|
+
<object class="wxFlexGridSizer">
|
167
|
+
<cols>2</cols>
|
168
|
+
<rows>2</rows>
|
169
|
+
<vgap>0</vgap>
|
170
|
+
<hgap>0</hgap>
|
171
|
+
<growablecols>1</growablecols>
|
172
|
+
<growablerows>2</growablerows>
|
173
|
+
<object class="sizeritem">
|
174
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
175
|
+
<border>5</border>
|
176
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
177
|
+
<label>Your drink size:</label>
|
178
|
+
</object>
|
179
|
+
</object>
|
180
|
+
<object class="sizeritem">
|
181
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
182
|
+
<border>5</border>
|
183
|
+
<object class="wxChoice" name="ID_DRINK_SIZE_CHOICE">
|
184
|
+
<content>
|
185
|
+
<item>small</item>
|
186
|
+
<item>medium</item>
|
187
|
+
<item>large</item>
|
188
|
+
<item>gut buster</item>
|
189
|
+
</content>
|
190
|
+
<selection>1</selection>
|
191
|
+
</object>
|
192
|
+
</object>
|
193
|
+
<object class="sizeritem">
|
194
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
195
|
+
<border>5</border>
|
196
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
197
|
+
<label>Your preferred drink:</label>
|
198
|
+
</object>
|
199
|
+
</object>
|
200
|
+
<object class="sizeritem">
|
201
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
202
|
+
<border>5</border>
|
203
|
+
<object class="wxChoice" name="ID_DRINK_TYPE_CHOICE">
|
204
|
+
<content>
|
205
|
+
<item>soda</item>
|
206
|
+
<item>tea</item>
|
207
|
+
<item>lemonade</item>
|
208
|
+
<item>coffee</item>
|
209
|
+
<item>water</item>
|
210
|
+
</content>
|
211
|
+
<selection>0</selection>
|
212
|
+
</object>
|
213
|
+
</object>
|
214
|
+
<object class="spacer">
|
215
|
+
<flag>wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
216
|
+
<border>5</border>
|
217
|
+
<size>5,5d</size>
|
218
|
+
</object>
|
219
|
+
<object class="sizeritem">
|
220
|
+
<flag>wxALIGN_RIGHT|wxALIGN_BOTTOM|wxALL</flag>
|
221
|
+
<border>5</border>
|
222
|
+
<object class="wxButton" name="ID_DRINK_BUTTON">
|
223
|
+
<label>Add to order</label>
|
224
|
+
</object>
|
225
|
+
</object>
|
226
|
+
</object>
|
227
|
+
</object>
|
228
|
+
</object>
|
229
|
+
<object class="listbookpage">
|
230
|
+
<label>Ice Cream</label>
|
231
|
+
<object class="wxPanel" name="ID_PANEL_ICE_CREAM">
|
232
|
+
<pos>200,200d</pos>
|
233
|
+
<style>wxSUNKEN_BORDER|wxTAB_TRAVERSAL</style>
|
234
|
+
<object class="wxFlexGridSizer">
|
235
|
+
<cols>2</cols>
|
236
|
+
<rows>2</rows>
|
237
|
+
<vgap>0</vgap>
|
238
|
+
<hgap>0</hgap>
|
239
|
+
<growablecols>1</growablecols>
|
240
|
+
<growablerows>6</growablerows>
|
241
|
+
<object class="sizeritem">
|
242
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
243
|
+
<border>5</border>
|
244
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
245
|
+
<label>Your ice cream size:</label>
|
246
|
+
</object>
|
247
|
+
</object>
|
248
|
+
<object class="sizeritem">
|
249
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
250
|
+
<border>5</border>
|
251
|
+
<object class="wxChoice" name="ID_ICE_CREAM_SIZE_CHOICE">
|
252
|
+
<content>
|
253
|
+
<item>child</item>
|
254
|
+
<item>small</item>
|
255
|
+
<item>medium</item>
|
256
|
+
<item>large</item>
|
257
|
+
</content>
|
258
|
+
<selection>2</selection>
|
259
|
+
</object>
|
260
|
+
</object>
|
261
|
+
<object class="sizeritem">
|
262
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
263
|
+
<border>5</border>
|
264
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
265
|
+
<label>Your ice cream:</label>
|
266
|
+
</object>
|
267
|
+
</object>
|
268
|
+
<object class="sizeritem">
|
269
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
270
|
+
<border>5</border>
|
271
|
+
<object class="wxChoice" name="ID_ICE_CREAM_TYPE_CHOICE">
|
272
|
+
<content>
|
273
|
+
<item>vanilla</item>
|
274
|
+
<item>chocolate</item>
|
275
|
+
<item>strawberry</item>
|
276
|
+
<item>chocolate chip</item>
|
277
|
+
<item>cookie dough</item>
|
278
|
+
<item>cherry</item>
|
279
|
+
</content>
|
280
|
+
<selection>0</selection>
|
281
|
+
</object>
|
282
|
+
</object>
|
283
|
+
<object class="sizeritem">
|
284
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
285
|
+
<border>5</border>
|
286
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
287
|
+
<label>Topping 1:</label>
|
288
|
+
</object>
|
289
|
+
</object>
|
290
|
+
<object class="sizeritem">
|
291
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
292
|
+
<border>5</border>
|
293
|
+
<object class="wxChoice" name="ID_ICE_CREAM_TOPPING_1_CHOICE">
|
294
|
+
</object>
|
295
|
+
</object>
|
296
|
+
<object class="sizeritem">
|
297
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
298
|
+
<border>5</border>
|
299
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
300
|
+
<label>Topping 2:</label>
|
301
|
+
</object>
|
302
|
+
</object>
|
303
|
+
<object class="sizeritem">
|
304
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
305
|
+
<border>5</border>
|
306
|
+
<object class="wxChoice" name="ID_ICE_CREAM_TOPPING_2_CHOICE">
|
307
|
+
</object>
|
308
|
+
</object>
|
309
|
+
<object class="sizeritem">
|
310
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
311
|
+
<border>5</border>
|
312
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
313
|
+
<label>Topping 3:</label>
|
314
|
+
</object>
|
315
|
+
</object>
|
316
|
+
<object class="sizeritem">
|
317
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
318
|
+
<border>5</border>
|
319
|
+
<object class="wxChoice" name="ID_ICE_CREAM_TOPPING_3_CHOICE">
|
320
|
+
</object>
|
321
|
+
</object>
|
322
|
+
<object class="sizeritem">
|
323
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
324
|
+
<border>5</border>
|
325
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
326
|
+
<label>Topping 4:</label>
|
327
|
+
</object>
|
328
|
+
</object>
|
329
|
+
<object class="sizeritem">
|
330
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
331
|
+
<border>5</border>
|
332
|
+
<object class="wxChoice" name="ID_ICE_CREAM_TOPPING_4_CHOICE">
|
333
|
+
</object>
|
334
|
+
</object>
|
335
|
+
<object class="spacer">
|
336
|
+
<flag>wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
337
|
+
<border>5</border>
|
338
|
+
<size>5,5d</size>
|
339
|
+
</object>
|
340
|
+
<object class="sizeritem">
|
341
|
+
<flag>wxALIGN_RIGHT|wxALIGN_BOTTOM|wxALL</flag>
|
342
|
+
<border>5</border>
|
343
|
+
<object class="wxButton" name="ID_ICE_CREAM_BUTTON">
|
344
|
+
<label>Add to order</label>
|
345
|
+
</object>
|
346
|
+
</object>
|
347
|
+
</object>
|
348
|
+
</object>
|
349
|
+
</object>
|
350
|
+
</object>
|
351
|
+
</object>
|
352
|
+
<object class="sizeritem">
|
353
|
+
<flag>wxALIGN_LEFT|wxALL|wxADJUST_MINSIZE</flag>
|
354
|
+
<border>5</border>
|
355
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
356
|
+
<label>Order:</label>
|
357
|
+
</object>
|
358
|
+
</object>
|
359
|
+
<object class="sizeritem">
|
360
|
+
<flag>wxGROW|wxALL</flag>
|
361
|
+
<border>5</border>
|
362
|
+
<option>1</option>
|
363
|
+
<object class="wxTextCtrl" name="ID_ORDER_TEXTCTRL">
|
364
|
+
<style>wxTE_MULTILINE</style>
|
365
|
+
</object>
|
366
|
+
</object>
|
367
|
+
</object>
|
368
|
+
</object>
|
369
|
+
</object>
|
370
|
+
</resource>
|
data/samples/mdi/mdi.rb
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
|
3
|
+
# Freely reusable code: see SAMPLES-LICENSE.TXT for details
|
4
|
+
begin
|
5
|
+
require 'rubygems'
|
6
|
+
rescue LoadError
|
7
|
+
end
|
8
|
+
require 'wx'
|
9
|
+
|
10
|
+
|
11
|
+
# MDI sample for wxRuby
|
12
|
+
# slapped together quickly by Kevin Smith
|
13
|
+
|
14
|
+
ID_NEXT = 1
|
15
|
+
ID_PREVIOUS = 2
|
16
|
+
ID_CASCADE = 3
|
17
|
+
ID_TILE = 4
|
18
|
+
ID_CREATE = 5
|
19
|
+
ID_CLOSE = 6
|
20
|
+
ID_EXIT = 99
|
21
|
+
|
22
|
+
class MyFrame < Wx::MDIParentFrame
|
23
|
+
def initialize(title)
|
24
|
+
super(nil, -1, title,Wx::DEFAULT_POSITION,Wx::Size.new(500,400))
|
25
|
+
|
26
|
+
@child_number = 0
|
27
|
+
|
28
|
+
menuFile = Wx::Menu.new
|
29
|
+
menuFile.append(ID_EXIT, "E&xit\tAlt-X")
|
30
|
+
menuMDI = Wx::Menu.new
|
31
|
+
menuMDI.append(ID_NEXT, "&Next Child\tCtrl-F6")
|
32
|
+
menuMDI.append(ID_PREVIOUS, "&Previous Child")
|
33
|
+
menuMDI.append_separator()
|
34
|
+
menuMDI.append(ID_CASCADE, "&Cascade")
|
35
|
+
menuMDI.append(ID_TILE, "&Tile")
|
36
|
+
menuMDI.append_separator()
|
37
|
+
menuMDI.append(ID_CREATE, "&Add Child")
|
38
|
+
menuMDI.append(ID_CLOSE, "&Remove Child\tCtrl-F4")
|
39
|
+
menuBar = Wx::MenuBar.new
|
40
|
+
menuBar.append(menuFile, "&File")
|
41
|
+
menuBar.append(menuMDI, "&Window")
|
42
|
+
set_menu_bar(menuBar)
|
43
|
+
|
44
|
+
evt_menu(ID_EXIT) { close }
|
45
|
+
evt_menu(ID_NEXT) { activate_next }
|
46
|
+
evt_menu(ID_PREVIOUS) { activate_previous }
|
47
|
+
evt_menu(ID_CASCADE) { cascade }
|
48
|
+
evt_menu(ID_TILE) { tile }
|
49
|
+
evt_menu(ID_CREATE) { create_child }
|
50
|
+
evt_menu(ID_CLOSE) { on_close_child }
|
51
|
+
|
52
|
+
create_status_bar(2).set_status_widths([100, -1])
|
53
|
+
set_status_text("Some features only work on MS Windows", 1)
|
54
|
+
|
55
|
+
create_child
|
56
|
+
create_child
|
57
|
+
create_child
|
58
|
+
end
|
59
|
+
|
60
|
+
def on_close_child
|
61
|
+
active = get_active_child
|
62
|
+
if(active)
|
63
|
+
active.close
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def create_child
|
68
|
+
@child_number += 1
|
69
|
+
name = "Child #{@child_number.to_s}"
|
70
|
+
Wx::MDIChildFrame.new(self, -1, name)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
class NothingApp < Wx::App
|
75
|
+
def on_init
|
76
|
+
frame = MyFrame.new("MDI App")
|
77
|
+
frame.show
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
a = NothingApp.new
|
82
|
+
a.main_loop()
|