wxruby 1.9.5-universal-darwin-9

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.
Files changed (228) hide show
  1. data/LICENSE +53 -0
  2. data/README +297 -0
  3. data/lib/wx/accessors.rb +52 -0
  4. data/lib/wx/classes/app.rb +45 -0
  5. data/lib/wx/classes/artprovider.rb +31 -0
  6. data/lib/wx/classes/bitmap.rb +23 -0
  7. data/lib/wx/classes/checklistbox.rb +45 -0
  8. data/lib/wx/classes/choice.rb +4 -0
  9. data/lib/wx/classes/clientdc.rb +13 -0
  10. data/lib/wx/classes/clipboard.rb +16 -0
  11. data/lib/wx/classes/colour.rb +47 -0
  12. data/lib/wx/classes/combobox.rb +4 -0
  13. data/lib/wx/classes/commandevent.rb +7 -0
  14. data/lib/wx/classes/controlwithitems.rb +10 -0
  15. data/lib/wx/classes/dc.rb +57 -0
  16. data/lib/wx/classes/event.rb +5 -0
  17. data/lib/wx/classes/evthandler.rb +906 -0
  18. data/lib/wx/classes/font.rb +118 -0
  19. data/lib/wx/classes/gauge.rb +12 -0
  20. data/lib/wx/classes/grid.rb +129 -0
  21. data/lib/wx/classes/helpcontroller.rb +5 -0
  22. data/lib/wx/classes/htmlhelpcontroller.rb +5 -0
  23. data/lib/wx/classes/htmlwindow.rb +6 -0
  24. data/lib/wx/classes/icon.rb +14 -0
  25. data/lib/wx/classes/image.rb +14 -0
  26. data/lib/wx/classes/listbox.rb +4 -0
  27. data/lib/wx/classes/listctrl.rb +21 -0
  28. data/lib/wx/classes/locale.rb +28 -0
  29. data/lib/wx/classes/mediactrl.rb +22 -0
  30. data/lib/wx/classes/menu.rb +62 -0
  31. data/lib/wx/classes/menuitem.rb +7 -0
  32. data/lib/wx/classes/object.rb +7 -0
  33. data/lib/wx/classes/paintdc.rb +12 -0
  34. data/lib/wx/classes/point.rb +48 -0
  35. data/lib/wx/classes/previewframe.rb +13 -0
  36. data/lib/wx/classes/rect.rb +10 -0
  37. data/lib/wx/classes/size.rb +49 -0
  38. data/lib/wx/classes/sound.rb +23 -0
  39. data/lib/wx/classes/styledtextctrl.rb +92 -0
  40. data/lib/wx/classes/textctrl.rb +14 -0
  41. data/lib/wx/classes/texturlevent.rb +6 -0
  42. data/lib/wx/classes/timer.rb +94 -0
  43. data/lib/wx/classes/treectrl.rb +44 -0
  44. data/lib/wx/classes/window.rb +82 -0
  45. data/lib/wx/classes/xmlresource.rb +16 -0
  46. data/lib/wx/keyword_ctors.rb +219 -0
  47. data/lib/wx/keyword_defs.rb +485 -0
  48. data/lib/wx/version.rb +3 -0
  49. data/lib/wx.rb +42 -0
  50. data/lib/wxruby2.bundle +0 -0
  51. data/samples/SAMPLES-LICENSE.TXT +18 -0
  52. data/samples/aui/aui.rb +1360 -0
  53. data/samples/bigdemo/About.rbw +39 -0
  54. data/samples/bigdemo/ColorPanel.rbw +25 -0
  55. data/samples/bigdemo/GridSimple.rbw +80 -0
  56. data/samples/bigdemo/MDIDemo.rbw +59 -0
  57. data/samples/bigdemo/PopupMenu.rbw +151 -0
  58. data/samples/bigdemo/ShapedWindow.rbw +135 -0
  59. data/samples/bigdemo/Sizers.rbw +545 -0
  60. data/samples/bigdemo/bigdemo.rb +824 -0
  61. data/samples/bigdemo/demoTemplate.rbw +37 -0
  62. data/samples/bigdemo/helpfile.htb +0 -0
  63. data/samples/bigdemo/icons/Test 015.jpg +0 -0
  64. data/samples/bigdemo/icons/Test 015.png +0 -0
  65. data/samples/bigdemo/icons/choice.bmp +0 -0
  66. data/samples/bigdemo/icons/choice.xpm +27 -0
  67. data/samples/bigdemo/icons/combo.bmp +0 -0
  68. data/samples/bigdemo/icons/combo.xpm +27 -0
  69. data/samples/bigdemo/icons/copy.xpm +25 -0
  70. data/samples/bigdemo/icons/cut.xpm +24 -0
  71. data/samples/bigdemo/icons/gauge.bmp +0 -0
  72. data/samples/bigdemo/icons/gauge.xpm +27 -0
  73. data/samples/bigdemo/icons/help.xpm +25 -0
  74. data/samples/bigdemo/icons/list.bmp +0 -0
  75. data/samples/bigdemo/icons/list.xpm +27 -0
  76. data/samples/bigdemo/icons/mondrian.ico +0 -0
  77. data/samples/bigdemo/icons/mondrian.xpm +44 -0
  78. data/samples/bigdemo/icons/new.xpm +24 -0
  79. data/samples/bigdemo/icons/ogl.ico +0 -0
  80. data/samples/bigdemo/icons/ogl.xpm +45 -0
  81. data/samples/bigdemo/icons/open.xpm +26 -0
  82. data/samples/bigdemo/icons/paste.bmp +0 -0
  83. data/samples/bigdemo/icons/paste.xpm +38 -0
  84. data/samples/bigdemo/icons/pointy.png +0 -0
  85. data/samples/bigdemo/icons/preview.xpm +26 -0
  86. data/samples/bigdemo/icons/print.xpm +26 -0
  87. data/samples/bigdemo/icons/radio.bmp +0 -0
  88. data/samples/bigdemo/icons/radio.xpm +27 -0
  89. data/samples/bigdemo/icons/robert.xpm +415 -0
  90. data/samples/bigdemo/icons/ruby.png +0 -0
  91. data/samples/bigdemo/icons/sashtest.ico +0 -0
  92. data/samples/bigdemo/icons/save.xpm +25 -0
  93. data/samples/bigdemo/icons/smiles.bmp +0 -0
  94. data/samples/bigdemo/icons/smiles.xpm +39 -0
  95. data/samples/bigdemo/icons/smiley.ico +0 -0
  96. data/samples/bigdemo/icons/smiley.xpm +42 -0
  97. data/samples/bigdemo/icons/stattext.xpm +24 -0
  98. data/samples/bigdemo/icons/test2.bmp +0 -0
  99. data/samples/bigdemo/icons/test2.png +0 -0
  100. data/samples/bigdemo/icons/test2.xpm +79 -0
  101. data/samples/bigdemo/icons/text.bmp +0 -0
  102. data/samples/bigdemo/icons/text.xpm +27 -0
  103. data/samples/bigdemo/icons/tog1.bmp +0 -0
  104. data/samples/bigdemo/icons/tog1.xpm +38 -0
  105. data/samples/bigdemo/icons/tog2.bmp +0 -0
  106. data/samples/bigdemo/icons/tog2.xpm +38 -0
  107. data/samples/bigdemo/icons/wxwin.ico +0 -0
  108. data/samples/bigdemo/icons/wxwin16x16.png +0 -0
  109. data/samples/bigdemo/icons/wxwin16x16.xpm +25 -0
  110. data/samples/bigdemo/icons/wxwin32x32.png +0 -0
  111. data/samples/bigdemo/icons/wxwin48x48.png +0 -0
  112. data/samples/bigdemo/run.rb +94 -0
  113. data/samples/bigdemo/tips.txt +7 -0
  114. data/samples/bigdemo/utils.rb +12 -0
  115. data/samples/bigdemo/wxArtProvider.rbw +285 -0
  116. data/samples/bigdemo/wxBitmapButton.rbw +64 -0
  117. data/samples/bigdemo/wxButton.rbw +66 -0
  118. data/samples/bigdemo/wxCalendarCtrl.rbw +72 -0
  119. data/samples/bigdemo/wxCheckBox.rbw +52 -0
  120. data/samples/bigdemo/wxCheckListBox.rbw +77 -0
  121. data/samples/bigdemo/wxChoice.rbw +49 -0
  122. data/samples/bigdemo/wxChoicebook.rbw +80 -0
  123. data/samples/bigdemo/wxColourDialog.rbw +34 -0
  124. data/samples/bigdemo/wxComboBox.rbw +79 -0
  125. data/samples/bigdemo/wxCursor.rbw +140 -0
  126. data/samples/bigdemo/wxDialog.rbw +76 -0
  127. data/samples/bigdemo/wxDirDialog.rbw +32 -0
  128. data/samples/bigdemo/wxDragImage.rbw +74 -0
  129. data/samples/bigdemo/wxFileDialog.rbw +39 -0
  130. data/samples/bigdemo/wxFileDialog_Save.rbw +38 -0
  131. data/samples/bigdemo/wxFindReplaceDialog.rbw +85 -0
  132. data/samples/bigdemo/wxFontDialog.rbw +176 -0
  133. data/samples/bigdemo/wxFrame.rbw +55 -0
  134. data/samples/bigdemo/wxGauge.rbw +73 -0
  135. data/samples/bigdemo/wxGenericDirCtrl.rbw +78 -0
  136. data/samples/bigdemo/wxGrid.rbw +68 -0
  137. data/samples/bigdemo/wxHtmlHelpController.rbw +57 -0
  138. data/samples/bigdemo/wxListBox.rbw +142 -0
  139. data/samples/bigdemo/wxListCtrl_virtual.rbw +109 -0
  140. data/samples/bigdemo/wxMDIWindows.rbw +52 -0
  141. data/samples/bigdemo/wxMenu.rbw +238 -0
  142. data/samples/bigdemo/wxMessageDialog.rbw +30 -0
  143. data/samples/bigdemo/wxMiniFrame.rbw +74 -0
  144. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +34 -0
  145. data/samples/bigdemo/wxNotebook.rbw +138 -0
  146. data/samples/bigdemo/wxProgressDialog.rbw +45 -0
  147. data/samples/bigdemo/wxRadioBox.rbw +74 -0
  148. data/samples/bigdemo/wxRadioButton.rbw +127 -0
  149. data/samples/bigdemo/wxSashWindow.rbw +145 -0
  150. data/samples/bigdemo/wxScrolledMessageDialog.rbw +59 -0
  151. data/samples/bigdemo/wxScrolledWindow.rbw +201 -0
  152. data/samples/bigdemo/wxSingleChoiceDialog.rbw +35 -0
  153. data/samples/bigdemo/wxSlider.rbw +44 -0
  154. data/samples/bigdemo/wxSpinButton.rbw +52 -0
  155. data/samples/bigdemo/wxSpinCtrl.rbw +53 -0
  156. data/samples/bigdemo/wxSplitterWindow.rbw +65 -0
  157. data/samples/bigdemo/wxStaticBitmap.rbw +53 -0
  158. data/samples/bigdemo/wxStaticText.rbw +57 -0
  159. data/samples/bigdemo/wxStatusBar.rbw +128 -0
  160. data/samples/bigdemo/wxTextCtrl.rbw +151 -0
  161. data/samples/bigdemo/wxTextEntryDialog.rbw +34 -0
  162. data/samples/bigdemo/wxToggleButton.rbw +51 -0
  163. data/samples/bigdemo/wxToolBar.rbw +133 -0
  164. data/samples/bigdemo/wxTreeCtrl.rbw +192 -0
  165. data/samples/calendar/calendar.rb +275 -0
  166. data/samples/caret/caret.rb +286 -0
  167. data/samples/caret/mondrian.xpm +44 -0
  168. data/samples/controls/controls.rb +1140 -0
  169. data/samples/controls/get_item_sample.rb +87 -0
  170. data/samples/controls/icons/choice.xpm +27 -0
  171. data/samples/controls/icons/combo.xpm +27 -0
  172. data/samples/controls/icons/gauge.xpm +27 -0
  173. data/samples/controls/icons/list.xpm +27 -0
  174. data/samples/controls/icons/radio.xpm +27 -0
  175. data/samples/controls/icons/stattext.xpm +24 -0
  176. data/samples/controls/icons/text.xpm +27 -0
  177. data/samples/controls/mondrian.ico +0 -0
  178. data/samples/controls/mondrian.xpm +44 -0
  179. data/samples/controls/test2.bmp +0 -0
  180. data/samples/dialogs/dialogs.rb +724 -0
  181. data/samples/dialogs/tips.txt +18 -0
  182. data/samples/drawing/graphics_drawing.rb +236 -0
  183. data/samples/drawing/images.rb +42 -0
  184. data/samples/drawing/paperclip.png +0 -0
  185. data/samples/etc/activation.rb +108 -0
  186. data/samples/etc/choice.rb +72 -0
  187. data/samples/etc/miniframe.rb +84 -0
  188. data/samples/etc/sash.rb +135 -0
  189. data/samples/etc/scrollwin.rb +116 -0
  190. data/samples/etc/system_settings.rb +258 -0
  191. data/samples/etc/threaded.rb +78 -0
  192. data/samples/etc/wizard.rb +79 -0
  193. data/samples/event/event.rb +184 -0
  194. data/samples/grid/grid.rb +202 -0
  195. data/samples/html/html.rb +268 -0
  196. data/samples/listbook/listbook.rb +181 -0
  197. data/samples/listbook/listbook.xrc +370 -0
  198. data/samples/mdi/mdi.rb +87 -0
  199. data/samples/media/mediactrl.rb +173 -0
  200. data/samples/minimal/minimal.rb +85 -0
  201. data/samples/minimal/mondrian.ico +0 -0
  202. data/samples/minimal/mondrian.png +0 -0
  203. data/samples/minimal/nothing.rb +21 -0
  204. data/samples/opengl/cube.rb +123 -0
  205. data/samples/printing/mondrian.ico +0 -0
  206. data/samples/printing/mondrian.xpm +44 -0
  207. data/samples/printing/printing.rb +484 -0
  208. data/samples/sockets/SocketPackets.rb +27 -0
  209. data/samples/sockets/res/message-new.png +0 -0
  210. data/samples/sockets/res/user.png +0 -0
  211. data/samples/sockets/wxClient.rb +395 -0
  212. data/samples/sockets/wxServer.rb +422 -0
  213. data/samples/sockets/wxSocketGUI.rb +97 -0
  214. data/samples/text/mondrian.ico +0 -0
  215. data/samples/text/mondrian.xpm +44 -0
  216. data/samples/text/scintilla.rb +174 -0
  217. data/samples/text/textctrl.rb +124 -0
  218. data/samples/text/unicode.rb +238 -0
  219. data/samples/text/utf8.txt +15 -0
  220. data/samples/treectrl/icon1.xpm +79 -0
  221. data/samples/treectrl/icon2.xpm +53 -0
  222. data/samples/treectrl/icon3.xpm +79 -0
  223. data/samples/treectrl/icon4.xpm +43 -0
  224. data/samples/treectrl/icon5.xpm +79 -0
  225. data/samples/treectrl/treectrl.rb +1180 -0
  226. data/samples/xrc/samples.xrc +46 -0
  227. data/samples/xrc/xrc_sample.rb +107 -0
  228. metadata +305 -0
@@ -0,0 +1,181 @@
1
+ #!/usr/bin/env ruby
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
3
+ # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
+
5
+ begin
6
+ require 'wx'
7
+ rescue LoadError => no_wx_err
8
+ begin
9
+ require 'rubygems'
10
+ require 'wx'
11
+ rescue LoadError
12
+ raise no_wx_err
13
+ end
14
+ end
15
+
16
+ #
17
+ # Basic Frame Class. This creates the dialog window
18
+ #
19
+ class SimpleFrame < Wx::Frame
20
+
21
+ FILE_DIALOG, FILE_ABOUT, FILE_QUIT = [0,Wx::ID_ABOUT,Wx::ID_EXIT]
22
+
23
+ def initialize(parent)
24
+ # To load a layout defined in XRC into a Ruby subclass of Frame,
25
+ # first call the empty constructor. All the details of size,
26
+ # title, position and so on are loaded from the XRC by the call to
27
+ # load_frame_subclass. Using a non-empty constructor will cause
28
+ # errors on GTK.
29
+ super()
30
+ $xml.load_frame_subclass(self,nil,'ID_FRAME')
31
+
32
+ # Create a new menu
33
+ bar = Wx::MenuBar.new
34
+ menu = Wx::Menu.new
35
+ menu.append(FILE_ABOUT,"About...")
36
+ menu.append_separator
37
+ menu.append(FILE_QUIT,"Quit")
38
+ bar.append(menu,"File")
39
+
40
+ set_menu_bar(bar)
41
+
42
+ # Assign the menu events
43
+ evt_menu(FILE_ABOUT) do
44
+ Wx::message_box("wxRuby Listbook sample\nby Sean Long", "About Listbook", Wx::OK | Wx::ICON_INFORMATION, self)
45
+ end
46
+ evt_menu(FILE_QUIT) do
47
+ Wx::get_app.exit_main_loop()
48
+ end
49
+ evt_close() do
50
+ Wx::get_app.exit_main_loop()
51
+ end
52
+
53
+ # Variables not in tabs
54
+ @listbook = xrcid_to_window('ID_LISTBOOK')
55
+ @text_output = xrcid_to_window('ID_ORDER_TEXTCTRL')
56
+
57
+ # Variables for widgets in Pizza tab
58
+ @pizza_size = xrcid_to_window('ID_PIZZA_SIZE_CHOICE')
59
+ @pizza_crust = xrcid_to_window('ID_PIZZA_CRUST_CHOICE')
60
+ @pizza_sauce = xrcid_to_window('ID_PIZZA_SAUCE_CHOICE')
61
+ @pizza_cheese = xrcid_to_window('ID_PIZZA_CHEESE_CHOICE')
62
+ @pizza_toppings = []
63
+ 3.times do |i|
64
+ @pizza_toppings << xrcid_to_window("ID_PIZZA_TOPPING_#{i+1}_CHOICE")
65
+ end
66
+
67
+ # fill in toppings
68
+ toppings = ['pepperoni','sausage','italian sausage','olives',
69
+ 'mushrooms','artichoke','extra cheese','']
70
+ toppings.each do |top_name|
71
+ @pizza_toppings.each do |top_obj|
72
+ top_obj.append(top_name)
73
+ end
74
+ end
75
+
76
+ index = 0
77
+ @pizza_toppings.each do |obj|
78
+ obj.set_selection(index)
79
+ index += 1
80
+ end
81
+
82
+ # Events for pizza tab
83
+ evt_button( Wx::xrcid('ID_PIZZA_BUTTON') ) do |event|
84
+ #get selections and add to order
85
+ order_string = @text_output.get_value
86
+ if order_string != "" then order_string << "\n" end
87
+ order_string << "One #{@pizza_size.get_string_selection} pizza with:\n"
88
+ order_string << @pizza_crust.get_string_selection + " crust" + "\n"
89
+ order_string << @pizza_sauce.get_string_selection + " sauce" +"\n"
90
+ order_string << @pizza_cheese.get_string_selection + " and" + "\n"
91
+ @pizza_toppings.each { |obj| order_string << obj.get_string_selection + "\n" }
92
+
93
+ @text_output.set_value(order_string)
94
+ end
95
+
96
+
97
+ # Variables for widgets in Drink tab
98
+ @drink_size = xrcid_to_window('ID_DRINK_SIZE_CHOICE')
99
+ @drink_type = xrcid_to_window('ID_DRINK_TYPE_CHOICE')
100
+
101
+ # Events for drink tab
102
+ evt_button(Wx::xrcid('ID_DRINK_BUTTON')) do |event|
103
+ #get selections and add to order
104
+ order_string = @text_output.get_value
105
+ if order_string != "" then order_string << "\n" end
106
+
107
+ order_string << "One #{@drink_size.get_string_selection} #{@drink_type.get_string_selection }.\n"
108
+
109
+ @text_output.set_value(order_string)
110
+ end
111
+
112
+ # Variables for widgets in Ice Cream tab
113
+ @ice_cream_size = xrcid_to_window('ID_ICE_CREAM_SIZE_CHOICE')
114
+ @ice_cream_type = xrcid_to_window('ID_ICE_CREAM_TYPE_CHOICE')
115
+ @ice_cream_toppings = []
116
+ 4.times do |i|
117
+ @ice_cream_toppings <<
118
+ xrcid_to_window("ID_ICE_CREAM_TOPPING_#{i+1}_CHOICE")
119
+ end
120
+
121
+ toppings = ['','m&m\'s','chocolate chips','fudge','nuts','cherry','whip cream']
122
+ toppings.each do |top_name|
123
+ @ice_cream_toppings.each do |top_obj|
124
+ top_obj.append(top_name)
125
+ end
126
+ end
127
+ @ice_cream_toppings.each { |obj| obj.set_selection(0) }
128
+
129
+ # Events for ice cream tab
130
+ evt_button(Wx::xrcid('ID_ICE_CREAM_BUTTON')) do |event|
131
+ #get selections and add to order
132
+ order_string = @text_output.get_value
133
+ if order_string != "" then order_string << "\n" end
134
+
135
+ order_string << "One #{@ice_cream_size.get_string_selection} #{@ice_cream_type.get_string_selection} ice cream:\n"
136
+ @ice_cream_toppings.each { |obj| order_string << obj.get_string_selection + "\n" }
137
+
138
+ @text_output.set_value(order_string)
139
+ end
140
+
141
+ evt_listbook_page_changed(Wx::xrcid('ID_LISTBOOK')) do |event|
142
+ tab_number = event.get_selection
143
+ order_string = @text_output.get_value
144
+ order_string << "moved to tab = #{@listbook.get_page_text(tab_number)} \n"
145
+ @text_output.set_value(order_string)
146
+ end
147
+ end
148
+
149
+ # Converts a XRCID id - as used in wxWidget's XML format - into the
150
+ # correct ruby window
151
+ def xrcid_to_window(xrc_id)
152
+ Wx::Window.find_window_by_id(Wx::xrcid(xrc_id), self)
153
+ end
154
+
155
+ end
156
+
157
+ #
158
+ # Application class.
159
+ #
160
+ class XrcApp < Wx::App
161
+
162
+ def on_init
163
+ # Create a resource handler
164
+ $xml = Wx::XmlResource.get();
165
+ $xml.init_all_handlers();
166
+
167
+ # Load a resource file from the script's directory
168
+ xrc_file = File.join( File.dirname( __FILE__ ), 'listbook.xrc' )
169
+
170
+ $xml.load(xrc_file)
171
+
172
+
173
+ # Show the main frame.
174
+ $main = SimpleFrame.new(self)
175
+ $main.show(true)
176
+
177
+ end
178
+ end
179
+
180
+
181
+ 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>
@@ -0,0 +1,87 @@
1
+ #!/usr/bin/env ruby
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
3
+ # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
+
5
+ begin
6
+ require 'wx'
7
+ rescue LoadError => no_wx_err
8
+ begin
9
+ require 'rubygems'
10
+ require 'wx'
11
+ rescue LoadError
12
+ raise no_wx_err
13
+ end
14
+ end
15
+
16
+ # MDI sample for wxRuby
17
+ # slapped together quickly by Kevin Smith
18
+
19
+ ID_NEXT = 1
20
+ ID_PREVIOUS = 2
21
+ ID_CASCADE = 3
22
+ ID_TILE = 4
23
+ ID_CREATE = 5
24
+ ID_CLOSE = 6
25
+ ID_EXIT = 99
26
+
27
+ class MyFrame < Wx::MDIParentFrame
28
+ def initialize(title)
29
+ super(nil, -1, title,Wx::DEFAULT_POSITION,Wx::Size.new(500,400))
30
+
31
+ @child_number = 0
32
+
33
+ menuFile = Wx::Menu.new
34
+ menuFile.append(ID_EXIT, "E&xit\tAlt-X")
35
+ menuMDI = Wx::Menu.new
36
+ menuMDI.append(ID_NEXT, "&Next Child\tCtrl-F6")
37
+ menuMDI.append(ID_PREVIOUS, "&Previous Child")
38
+ menuMDI.append_separator()
39
+ menuMDI.append(ID_CASCADE, "&Cascade")
40
+ menuMDI.append(ID_TILE, "&Tile")
41
+ menuMDI.append_separator()
42
+ menuMDI.append(ID_CREATE, "&Add Child")
43
+ menuMDI.append(ID_CLOSE, "&Remove Child\tCtrl-F4")
44
+ menuBar = Wx::MenuBar.new
45
+ menuBar.append(menuFile, "&File")
46
+ menuBar.append(menuMDI, "&Window")
47
+ set_menu_bar(menuBar)
48
+
49
+ evt_menu(ID_EXIT) { close }
50
+ evt_menu(ID_NEXT) { activate_next }
51
+ evt_menu(ID_PREVIOUS) { activate_previous }
52
+ evt_menu(ID_CASCADE) { cascade }
53
+ evt_menu(ID_TILE) { tile }
54
+ evt_menu(ID_CREATE) { create_child }
55
+ evt_menu(ID_CLOSE) { on_close_child }
56
+
57
+ create_status_bar(2).set_status_widths([100, -1])
58
+ set_status_text("Some features only work on MS Windows", 1)
59
+
60
+ create_child
61
+ create_child
62
+ create_child
63
+ end
64
+
65
+ def on_close_child
66
+ active = get_active_child
67
+ if(active)
68
+ active.close
69
+ end
70
+ end
71
+
72
+ def create_child
73
+ @child_number += 1
74
+ name = "Child #{@child_number.to_s}"
75
+ Wx::MDIChildFrame.new(self, -1, name)
76
+ end
77
+ end
78
+
79
+ class NothingApp < Wx::App
80
+ def on_init
81
+ frame = MyFrame.new("MDI App")
82
+ frame.show
83
+ end
84
+ end
85
+
86
+ a = NothingApp.new
87
+ a.main_loop()