wxruby3 0.9.2 → 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (347) hide show
  1. checksums.yaml +4 -4
  2. data/INSTALL.md +35 -29
  3. data/README.md +24 -15
  4. data/ext/wxruby3/include/wxruby-ClientData.h +48 -0
  5. data/ext/wxruby3/include/wxruby-Validator.h +39 -0
  6. data/ext/wxruby3/include/wxruby-ValidatorBinding.h +64 -0
  7. data/ext/wxruby3/swig/custom/director.swg +8 -0
  8. data/ext/wxruby3/swig/mark_free_impl.i +0 -33
  9. data/lib/wx/core/bitmap_combobox.rb +17 -21
  10. data/lib/wx/core/combobox.rb +13 -3
  11. data/lib/wx/core/controlwithitems.rb +40 -130
  12. data/lib/wx/core/enum.rb +17 -1
  13. data/lib/wx/core/event.rb +6 -1
  14. data/lib/wx/core/evthandler.rb +8 -2
  15. data/lib/wx/core/generic_validator.rb +312 -0
  16. data/lib/wx/core/listbox.rb +2 -2
  17. data/lib/wx/core/log.rb +1 -1
  18. data/lib/wx/core/owner_drawn_combobox.rb +45 -0
  19. data/lib/wx/core/size.rb +4 -0
  20. data/lib/wx/core/sizer.rb +1 -2
  21. data/lib/wx/core/standard_paths.rb +22 -0
  22. data/lib/wx/core/text_entry.rb +4 -1
  23. data/lib/wx/core/validator.rb +70 -5
  24. data/lib/wx/core/window.rb +3 -7
  25. data/lib/wx/doc/art_locator.rb +1 -0
  26. data/lib/wx/doc/comboctrl.rb +18 -0
  27. data/lib/wx/doc/controlwithitems.rb +16 -0
  28. data/lib/wx/doc/date_picker_ctrl.rb +23 -0
  29. data/lib/wx/doc/editable_listbox.rb +44 -0
  30. data/lib/wx/doc/enum.rb +15 -0
  31. data/lib/wx/doc/event.rb +12 -0
  32. data/lib/wx/doc/extra/12_client_data.md +89 -0
  33. data/lib/wx/doc/extra/13_validators.md +139 -0
  34. data/lib/wx/doc/gdi_common.rb +4 -0
  35. data/lib/wx/doc/generic_validator.rb +95 -0
  36. data/lib/wx/doc/html/simple_html_listbox.rb +22 -0
  37. data/lib/wx/doc/num_validator.rb +387 -0
  38. data/lib/wx/doc/owner_drawn_combobox.rb +96 -0
  39. data/lib/wx/doc/pg/numeric_property_validator.rb +33 -0
  40. data/lib/wx/doc/static_bitmap.rb +25 -0
  41. data/lib/wx/doc/text_validator.rb +10 -0
  42. data/lib/wx/doc/validator.rb +113 -0
  43. data/lib/wx/doc/window.rb +30 -0
  44. data/lib/wx/html/simple_html_listbox.rb +24 -91
  45. data/lib/wx/keyword_defs.rb +34 -2
  46. data/lib/wx/rbn/ribbon_gallery.rb +0 -21
  47. data/lib/wx/version.rb +1 -1
  48. data/rakelib/lib/config/mingw.rb +12 -0
  49. data/rakelib/lib/core/include/client_data.inc +65 -0
  50. data/rakelib/lib/core/include/funcall.inc +1 -1
  51. data/rakelib/lib/core/package.rb +17 -2
  52. data/rakelib/lib/core/parameter.rb +1 -1
  53. data/rakelib/lib/core/spec_helper.rb +7 -1
  54. data/rakelib/lib/director/app.rb +18 -0
  55. data/rakelib/lib/director/app_traits.rb +3 -1
  56. data/rakelib/lib/director/bitmap_combobox.rb +2 -2
  57. data/rakelib/lib/director/combobox.rb +22 -0
  58. data/rakelib/lib/director/comboctrl.rb +1 -55
  59. data/rakelib/lib/director/ctrl_with_items.rb +88 -21
  60. data/rakelib/lib/director/date_picker_ctrl.rb +8 -6
  61. data/rakelib/lib/director/editable_listbox.rb +30 -0
  62. data/rakelib/lib/director/event.rb +102 -12
  63. data/rakelib/lib/director/event_handler.rb +3 -2
  64. data/rakelib/lib/director/functions.rb +4 -2
  65. data/rakelib/lib/director/generic_dirctrl.rb +17 -0
  66. data/rakelib/lib/director/grid_cell_attr.rb +0 -2
  67. data/rakelib/lib/director/grid_cell_editor.rb +0 -2
  68. data/rakelib/lib/director/grid_cell_renderer.rb +0 -2
  69. data/rakelib/lib/director/header_ctrl.rb +6 -1
  70. data/rakelib/lib/director/html_listbox.rb +96 -22
  71. data/rakelib/lib/director/num_validator.rb +495 -0
  72. data/rakelib/lib/director/numeric_property_validator.rb +131 -6
  73. data/rakelib/lib/director/owner_drawn_combobox.rb +192 -0
  74. data/rakelib/lib/director/pgproperty.rb +3 -29
  75. data/rakelib/lib/director/ribbon_button_bar.rb +3 -3
  76. data/rakelib/lib/director/ribbon_gallery.rb +3 -5
  77. data/rakelib/lib/director/sizer.rb +15 -4
  78. data/rakelib/lib/director/sizer_item.rb +13 -0
  79. data/rakelib/lib/director/static_bitmap.rb +28 -0
  80. data/rakelib/lib/director/text_entry.rb +4 -0
  81. data/rakelib/lib/director/text_validator.rb +124 -13
  82. data/rakelib/lib/director/toggle_button.rb +1 -0
  83. data/rakelib/lib/director/top_level_window.rb +0 -2
  84. data/rakelib/lib/director/tree_ctrl.rb +35 -0
  85. data/rakelib/lib/director/utils.rb +16 -2
  86. data/rakelib/lib/director/validator.rb +196 -21
  87. data/rakelib/lib/director/window.rb +16 -2
  88. data/rakelib/lib/extractor/function.rb +2 -1
  89. data/rakelib/lib/generate/analyzer.rb +1 -1
  90. data/rakelib/lib/generate/doc.rb +10 -4
  91. data/rakelib/lib/specs/interfaces.rb +2 -0
  92. data/rakelib/lib/swig_runner.rb +55 -9
  93. data/rakelib/lib/typemap/client_data.rb +67 -0
  94. data/rakelib/lib/typemap/common.rb +3 -3
  95. data/rakelib/lib/typemap/datetime.rb +1 -1
  96. data/rakelib/lib/typemap/tree_itemid.rb +2 -2
  97. data/samples/aui/aui.rb +1237 -1233
  98. data/samples/calendar/calendar.rb +293 -289
  99. data/samples/controls/get_item_sample.rb +83 -79
  100. data/samples/controls/htlbox.rb +331 -327
  101. data/samples/dialogs/dialogs.rb +682 -694
  102. data/samples/dialogs/wizard.rb +52 -55
  103. data/samples/dragdrop/dragdrop.rb +146 -142
  104. data/samples/drawing/bitmap.rb +29 -26
  105. data/samples/drawing/bitmap_image.rb +84 -80
  106. data/samples/drawing/graphics_drawing.rb +209 -205
  107. data/samples/drawing/image_prt.rb +344 -340
  108. data/samples/drawing/maths_images.rb +18 -1
  109. data/samples/drawing/rmagic_bitmap_image.rb +88 -84
  110. data/samples/etc/caret.rb +306 -0
  111. data/samples/etc/miniframe.rb +65 -60
  112. data/samples/etc/sash.rb +109 -105
  113. data/samples/etc/scrollwin.rb +86 -80
  114. data/samples/etc/system_settings.rb +216 -209
  115. data/samples/event/activation.rb +72 -67
  116. data/samples/event/event.rb +160 -153
  117. data/samples/event/threaded.rb +8 -1
  118. data/samples/event/update_ui_event.rb +67 -60
  119. data/samples/grid/grid.rb +188 -181
  120. data/samples/grid/gridtablebase.rb +136 -129
  121. data/samples/html/html.rb +208 -204
  122. data/samples/mdi/mdi.rb +59 -54
  123. data/samples/minimal/minimal.rb +54 -51
  124. data/samples/minimal/nothing.rb +1 -0
  125. data/samples/printing/printing.rb +367 -377
  126. data/samples/printing/printing2.rb +203 -198
  127. data/samples/propgrid/propgrid.rb +2312 -2308
  128. data/samples/propgrid/propgrid_minimal.rb +57 -50
  129. data/samples/ribbon/ribbon.rb +780 -774
  130. data/samples/sampler/ext.rb +0 -33
  131. data/samples/sampler/sample.rb +4 -9
  132. data/samples/sampler.rb +1 -1
  133. data/samples/splash/splash.rb +118 -116
  134. data/samples/text/rich_textctrl.rb +207 -201
  135. data/samples/text/richtext.rb +1409 -1405
  136. data/samples/text/scintilla.rb +137 -128
  137. data/samples/text/textctrl.rb +89 -83
  138. data/samples/text/unicode.rb +175 -168
  139. data/samples/treectrl/treectrl.rb +1430 -1426
  140. data/samples/widgets/activityindicator.rb +95 -0
  141. data/samples/widgets/art/widgets/activityindicator.xpm +278 -0
  142. data/samples/widgets/art/widgets/bmpbtn.xpm +37 -0
  143. data/samples/widgets/art/widgets/bmpcombobox.xpm +54 -0
  144. data/samples/widgets/art/widgets/button.xpm +54 -0
  145. data/samples/widgets/art/widgets/checkbox.xpm +54 -0
  146. data/samples/{bigdemo/icons → widgets/art/widgets}/choice.xpm +1 -1
  147. data/samples/widgets/art/widgets/choicebk.xpm +54 -0
  148. data/samples/widgets/art/widgets/clrpicker.xpm +193 -0
  149. data/samples/widgets/art/widgets/combobox.xpm +54 -0
  150. data/samples/widgets/art/widgets/datepick.xpm +200 -0
  151. data/samples/widgets/art/widgets/dirctrl.xpm +54 -0
  152. data/samples/widgets/art/widgets/dirpicker.xpm +213 -0
  153. data/samples/widgets/art/widgets/filepicker.xpm +214 -0
  154. data/samples/widgets/art/widgets/fontpicker.xpm +185 -0
  155. data/samples/widgets/art/widgets/gauge.xpm +54 -0
  156. data/samples/widgets/art/widgets/header.xpm +54 -0
  157. data/samples/widgets/art/widgets/hyperlnk.xpm +54 -0
  158. data/samples/widgets/art/widgets/listbook.xpm +54 -0
  159. data/samples/widgets/art/widgets/listbox.xpm +54 -0
  160. data/samples/widgets/art/widgets/native.xpm +81 -0
  161. data/samples/widgets/art/widgets/notebook.xpm +54 -0
  162. data/samples/widgets/art/widgets/odcombobox.xpm +54 -0
  163. data/samples/widgets/art/widgets/radiobox.xpm +54 -0
  164. data/samples/widgets/art/widgets/scrolbar.xpm +54 -0
  165. data/samples/widgets/art/widgets/slider.xpm +54 -0
  166. data/samples/widgets/art/widgets/spinbtn.xpm +40 -0
  167. data/samples/widgets/art/widgets/statbmp.xpm +40 -0
  168. data/samples/widgets/art/widgets/statbox.xpm +54 -0
  169. data/samples/widgets/art/widgets/stattext.xpm +54 -0
  170. data/samples/widgets/art/widgets/text.xpm +54 -0
  171. data/samples/widgets/art/widgets/timepick.xpm +207 -0
  172. data/samples/widgets/art/widgets/toggle.xpm +54 -0
  173. data/samples/widgets/art/widgets/toucan.png +0 -0
  174. data/samples/widgets/bmpcombobox.rb +651 -0
  175. data/samples/widgets/button.rb +462 -0
  176. data/samples/widgets/checkbox.rb +211 -0
  177. data/samples/widgets/choice.rb +287 -0
  178. data/samples/widgets/clrpicker.rb +156 -0
  179. data/samples/widgets/combobox.rb +516 -0
  180. data/samples/widgets/datepick.rb +215 -0
  181. data/samples/widgets/dirctrl.rb +265 -0
  182. data/samples/widgets/dirpicker.rb +158 -0
  183. data/samples/widgets/editlbox.rb +122 -0
  184. data/samples/widgets/filectrl.rb +216 -0
  185. data/samples/widgets/filepicker.rb +214 -0
  186. data/samples/widgets/fontpicker.rb +135 -0
  187. data/samples/widgets/gauge.rb +311 -0
  188. data/samples/widgets/headerctrl.rb +236 -0
  189. data/samples/widgets/hyperlink.rb +203 -0
  190. data/samples/widgets/itemcontainer.rb +185 -0
  191. data/samples/widgets/listbox.rb +473 -0
  192. data/samples/widgets/notebook.rb +488 -0
  193. data/samples/widgets/odcombobox.rb +608 -0
  194. data/samples/widgets/radiobox.rb +328 -0
  195. data/samples/widgets/searchctrl.rb +159 -0
  196. data/samples/widgets/slider.rb +594 -0
  197. data/samples/widgets/spinbtn.rb +443 -0
  198. data/samples/widgets/statbmp.rb +130 -0
  199. data/samples/widgets/static.rb +436 -0
  200. data/samples/widgets/textctrl.rb +700 -0
  201. data/samples/widgets/timepick.rb +148 -0
  202. data/samples/widgets/tn_widgets.png +0 -0
  203. data/samples/widgets/toggle.rb +385 -0
  204. data/samples/widgets/widgets.rb +1233 -0
  205. data/samples/xrc/custom_xrc_sample.rb +47 -41
  206. data/samples/xrc/xrc_sample.rb +53 -47
  207. data/tests/test_event_handling.rb +52 -34
  208. data/tests/test_events.rb +7 -0
  209. data/tests/test_item_data.rb +24 -0
  210. data/tests/test_sizer.rb +44 -1
  211. data/tests/test_validators.rb +805 -0
  212. metadata +92 -138
  213. data/lib/wx/core/choice.rb +0 -14
  214. data/lib/wx/core/combo_ctrl.rb +0 -110
  215. data/rakelib/lib/typemap/grid_client_data.rb +0 -58
  216. data/samples/bigdemo/About.rbw +0 -39
  217. data/samples/bigdemo/ColorPanel.rbw +0 -23
  218. data/samples/bigdemo/GridSimple.rbw +0 -78
  219. data/samples/bigdemo/MDIDemo.rbw +0 -57
  220. data/samples/bigdemo/PopupMenu.rbw +0 -146
  221. data/samples/bigdemo/ShapedWindow.rbw +0 -128
  222. data/samples/bigdemo/Sizers.rbw +0 -541
  223. data/samples/bigdemo/bigdemo.rb +0 -817
  224. data/samples/bigdemo/demoTemplate.rbw +0 -33
  225. data/samples/bigdemo/helpfile.htb +0 -0
  226. data/samples/bigdemo/icons/Test 015.jpg +0 -0
  227. data/samples/bigdemo/icons/Test 015.png +0 -0
  228. data/samples/bigdemo/icons/choice.bmp +0 -0
  229. data/samples/bigdemo/icons/combo.bmp +0 -0
  230. data/samples/bigdemo/icons/combo.xpm +0 -27
  231. data/samples/bigdemo/icons/copy.xpm +0 -25
  232. data/samples/bigdemo/icons/cut.xpm +0 -24
  233. data/samples/bigdemo/icons/gauge.bmp +0 -0
  234. data/samples/bigdemo/icons/gauge.xpm +0 -27
  235. data/samples/bigdemo/icons/help.xpm +0 -25
  236. data/samples/bigdemo/icons/list.bmp +0 -0
  237. data/samples/bigdemo/icons/list.xpm +0 -27
  238. data/samples/bigdemo/icons/mondrian.ico +0 -0
  239. data/samples/bigdemo/icons/mondrian.xpm +0 -44
  240. data/samples/bigdemo/icons/new.xpm +0 -24
  241. data/samples/bigdemo/icons/ogl.ico +0 -0
  242. data/samples/bigdemo/icons/ogl.xpm +0 -45
  243. data/samples/bigdemo/icons/open.xpm +0 -26
  244. data/samples/bigdemo/icons/paste.bmp +0 -0
  245. data/samples/bigdemo/icons/paste.xpm +0 -38
  246. data/samples/bigdemo/icons/pointy.png +0 -0
  247. data/samples/bigdemo/icons/preview.xpm +0 -26
  248. data/samples/bigdemo/icons/print.xpm +0 -26
  249. data/samples/bigdemo/icons/radio.bmp +0 -0
  250. data/samples/bigdemo/icons/radio.xpm +0 -27
  251. data/samples/bigdemo/icons/robert.xpm +0 -415
  252. data/samples/bigdemo/icons/sashtest.ico +0 -0
  253. data/samples/bigdemo/icons/save.xpm +0 -25
  254. data/samples/bigdemo/icons/smiles.bmp +0 -0
  255. data/samples/bigdemo/icons/smiles.xpm +0 -39
  256. data/samples/bigdemo/icons/smiley.ico +0 -0
  257. data/samples/bigdemo/icons/smiley.xpm +0 -42
  258. data/samples/bigdemo/icons/stattext.xpm +0 -24
  259. data/samples/bigdemo/icons/test2.bmp +0 -0
  260. data/samples/bigdemo/icons/test2.png +0 -0
  261. data/samples/bigdemo/icons/test2.xpm +0 -79
  262. data/samples/bigdemo/icons/text.bmp +0 -0
  263. data/samples/bigdemo/icons/text.xpm +0 -27
  264. data/samples/bigdemo/icons/tog1.bmp +0 -0
  265. data/samples/bigdemo/icons/tog1.xpm +0 -38
  266. data/samples/bigdemo/icons/tog2.bmp +0 -0
  267. data/samples/bigdemo/icons/tog2.xpm +0 -38
  268. data/samples/bigdemo/icons/wxruby-128x128.png +0 -0
  269. data/samples/bigdemo/icons/wxwin.ico +0 -0
  270. data/samples/bigdemo/icons/wxwin16x16.png +0 -0
  271. data/samples/bigdemo/icons/wxwin16x16.xpm +0 -25
  272. data/samples/bigdemo/icons/wxwin32x32.png +0 -0
  273. data/samples/bigdemo/icons/wxwin48x48.png +0 -0
  274. data/samples/bigdemo/run.rb +0 -98
  275. data/samples/bigdemo/tips.txt +0 -7
  276. data/samples/bigdemo/utils.rb +0 -20
  277. data/samples/bigdemo/wxArtProvider.rbw +0 -282
  278. data/samples/bigdemo/wxBitmapButton.rbw +0 -65
  279. data/samples/bigdemo/wxButton.rbw +0 -64
  280. data/samples/bigdemo/wxCalendarCtrl.rbw +0 -59
  281. data/samples/bigdemo/wxCheckBox.rbw +0 -50
  282. data/samples/bigdemo/wxCheckListBox.rbw +0 -65
  283. data/samples/bigdemo/wxChoice.rbw +0 -47
  284. data/samples/bigdemo/wxChoicebook.rbw +0 -78
  285. data/samples/bigdemo/wxColourDialog.rbw +0 -33
  286. data/samples/bigdemo/wxComboBox.rbw +0 -77
  287. data/samples/bigdemo/wxCursor.rbw +0 -136
  288. data/samples/bigdemo/wxDialog.rbw +0 -74
  289. data/samples/bigdemo/wxDirDialog.rbw +0 -29
  290. data/samples/bigdemo/wxDragImage.rbw +0 -70
  291. data/samples/bigdemo/wxFileDialog.rbw +0 -37
  292. data/samples/bigdemo/wxFileDialog_Save.rbw +0 -35
  293. data/samples/bigdemo/wxFindReplaceDialog.rbw +0 -82
  294. data/samples/bigdemo/wxFontDialog.rbw +0 -200
  295. data/samples/bigdemo/wxFrame.rbw +0 -53
  296. data/samples/bigdemo/wxGauge.rbw +0 -65
  297. data/samples/bigdemo/wxGenericDirCtrl.rbw +0 -74
  298. data/samples/bigdemo/wxGrid.rbw +0 -66
  299. data/samples/bigdemo/wxHtmlHelpController.rbw +0 -52
  300. data/samples/bigdemo/wxListBox.rbw +0 -140
  301. data/samples/bigdemo/wxListCtrl_virtual.rbw +0 -112
  302. data/samples/bigdemo/wxMDIWindows.rbw +0 -50
  303. data/samples/bigdemo/wxMenu.rbw +0 -247
  304. data/samples/bigdemo/wxMessageDialog.rbw +0 -27
  305. data/samples/bigdemo/wxMiniFrame.rbw +0 -70
  306. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +0 -29
  307. data/samples/bigdemo/wxNotebook.rbw +0 -136
  308. data/samples/bigdemo/wxProgressDialog.rbw +0 -43
  309. data/samples/bigdemo/wxRadioBox.rbw +0 -72
  310. data/samples/bigdemo/wxRadioButton.rbw +0 -125
  311. data/samples/bigdemo/wxSashWindow.rbw +0 -141
  312. data/samples/bigdemo/wxScrolledMessageDialog.rbw +0 -57
  313. data/samples/bigdemo/wxScrolledWindow.rbw +0 -199
  314. data/samples/bigdemo/wxSingleChoiceDialog.rbw +0 -33
  315. data/samples/bigdemo/wxSlider.rbw +0 -42
  316. data/samples/bigdemo/wxSpinButton.rbw +0 -50
  317. data/samples/bigdemo/wxSpinCtrl.rbw +0 -51
  318. data/samples/bigdemo/wxSplitterWindow.rbw +0 -63
  319. data/samples/bigdemo/wxStaticBitmap.rbw +0 -47
  320. data/samples/bigdemo/wxStaticText.rbw +0 -55
  321. data/samples/bigdemo/wxStatusBar.rbw +0 -126
  322. data/samples/bigdemo/wxTextCtrl.rbw +0 -149
  323. data/samples/bigdemo/wxTextEntryDialog.rbw +0 -31
  324. data/samples/bigdemo/wxToggleButton.rbw +0 -49
  325. data/samples/bigdemo/wxToolBar.rbw +0 -131
  326. data/samples/bigdemo/wxTreeCtrl.rbw +0 -191
  327. data/samples/caret/caret.rb +0 -298
  328. data/samples/caret/mondrian.xpm +0 -44
  329. data/samples/controls/books.rb +0 -189
  330. data/samples/controls/choice.xpm +0 -27
  331. data/samples/controls/combo.xpm +0 -27
  332. data/samples/controls/controls.rb +0 -1099
  333. data/samples/controls/gauge.xpm +0 -27
  334. data/samples/controls/list.xpm +0 -27
  335. data/samples/controls/mondrian.ico +0 -0
  336. data/samples/controls/mondrian.xpm +0 -44
  337. data/samples/controls/radio.xpm +0 -27
  338. data/samples/controls/stattext.xpm +0 -24
  339. data/samples/controls/test2.bmp +0 -0
  340. data/samples/controls/text.xpm +0 -27
  341. data/samples/controls/tn_books.png +0 -0
  342. data/samples/controls/tn_controls.png +0 -0
  343. data/samples/etc/choice.rb +0 -87
  344. data/samples/etc/tn_choice.png +0 -0
  345. data/samples/text/mondrian.ico +0 -0
  346. data/samples/text/mondrian.xpm +0 -44
  347. /data/samples/{caret → etc}/tn_caret.png +0 -0
@@ -1,112 +0,0 @@
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
- # A virtual ListCtrl loads its items as needed from a virtual store. So
12
- # it's useful for linking to existing data sources, or for displaying
13
- # very large lists. It's subclassed in ruby, and the item_count is set;
14
- # the get_item_text methods should return how to display a given line.
15
- class TestVirtualList < Wx::ListCtrl
16
- def initialize(parent, log)
17
- super parent, :style => Wx::LC_REPORT|Wx::LC_VIRTUAL|
18
- Wx::LC_HRULES| Wx::LC_VRULES
19
- @log = log
20
-
21
- @il = Wx::ImageList.new(16,16)
22
- bmp_file = File.join(File.dirname(__FILE__), "icons/wxwin16x16.xpm")
23
-
24
- @idx1 = @il.add(Wx::Bitmap.new(bmp_file))
25
- set_image_list(@il, Wx::IMAGE_LIST_SMALL)
26
-
27
- insert_column(0,"First")
28
- insert_column(1,"Second")
29
- insert_column(2,"Third")
30
- set_column_width(0,175)
31
- set_column_width(1,175)
32
- set_column_width(2,175)
33
-
34
- # Important - call this
35
- self.item_count = 10_000
36
-
37
- @attr1 = Wx::ItemAttr.new
38
- @attr1.set_background_colour(Wx::Colour.new("YELLOW"))
39
-
40
- @attr2 = Wx::ItemAttr.new
41
- @attr2.set_background_colour(Wx::Colour.new("LIGHT BLUE"))
42
-
43
- evt_list_item_selected(get_id) {|event| on_item_selected(event)}
44
- evt_list_item_activated(get_id) {|event| on_item_activated(event)}
45
- evt_list_item_deselected(get_id) {|event| on_item_deselected(event)}
46
- end
47
-
48
- def on_item_selected(event)
49
- @currentItem = event.get_index
50
- @item = event.get_item
51
- get_column(1,@item)
52
-
53
- @log.write_text('on_item_selected: "%s", "%s", "%s", "%s"' % [@currentItem, get_item_text(@currentItem),
54
- @item.get_text, get_column(2,@item) ? @item.get_text : nil])
55
- end
56
-
57
- def on_item_activated(event)
58
- @currentItem = event.get_index
59
- @log.write_text("on_item_activated: %s\nTopItem: %s" % [get_item_text(@currentItem), get_top_item])
60
- end
61
-
62
- def on_item_deselected(event)
63
- @log.write_text("on_item_deselected: %s" % event.get_index)
64
- end
65
-
66
- # These three following methods are callbacks for implementing the
67
- # "virtualness" of the list; they *must* be defined by any ListCtrl
68
- # object with the style LC_VIRTUAL.
69
-
70
- # Normally you would determine the text, attributes and/or image
71
- # based on values from some external data source, but for this demo
72
- # we'll just calculate them based on order.
73
- def on_get_item_text(item, col)
74
- return "Item %d, column %d" % [item,col]
75
- end
76
-
77
- def on_get_item_column_image(item, col)
78
- if item % 4 == 0
79
- return @idx1
80
- else
81
- return -1
82
- end
83
- end
84
-
85
- def on_get_item_attr(item)
86
- if item % 3 == 1
87
- return @attr1
88
- elsif item % 3 == 2
89
- return @attr2
90
- else
91
- return nil
92
- end
93
- end
94
- end
95
-
96
- module Demo
97
- def Demo.run(frame, nb, log)
98
- win = TestVirtualList.new(nb,log)
99
- return win
100
- end
101
-
102
- def Demo.overview
103
- return "A special case of report view quite different from the other modes of the list control is a virtual control in which the items data (including text, images and attributes) is managed by the main program and is requested by the control itself only when needed which allows to have controls with millions of items without consuming much memory. To use virtual list control you must use SetItemCount first and overload at least OnGetItemText (and optionally OnGetItemImage and OnGetItemAttr) to return the information about the items when the control requests it."
104
- end
105
- end
106
-
107
-
108
- if __FILE__ == $0
109
- run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
110
- load run_solo_lib
111
- run File.basename($0)
112
- end
@@ -1,50 +0,0 @@
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
-
12
- class TestPanel < Wx::Panel
13
- def initialize(parent, log)
14
- @log = log
15
- super(parent, -1)
16
-
17
- b1 = Wx::Button.new(self, -1, "MDI demo")
18
- evt_button(b1.get_id) {|event| show_mdi_demo(event)}
19
-
20
- box = Wx::BoxSizer.new(Wx::VERTICAL)
21
- box.add(20,30)
22
- box.add(b1, 0, Wx::ALIGN_CENTER | Wx::ALL, 15)
23
- set_sizer(box)
24
- end
25
-
26
- def show_mdi_demo(event)
27
- mdi_demo_file = File.join( File.dirname(__FILE__), "MDIDemo.rbw")
28
- load mdi_demo_file
29
- frame = Demo::MyParentFrame.new
30
- frame.show
31
- end
32
- end
33
-
34
- module Demo
35
- def Demo.run(frame,nb,log)
36
- win = TestPanel.new(nb, log)
37
- return win
38
- end
39
-
40
- def Demo.overview
41
- "An MDI (Multiple Document Interface) parent frame is a window which can contain MDI child frames in its own 'desktop'. It is a convenient way to avoid window clutter, and is used in many popular Windows applications, such as Microsoft Word(TM)."
42
- end
43
- end
44
-
45
-
46
- if __FILE__ == $0
47
- run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
48
- load run_solo_lib
49
- run File.basename($0)
50
- end
@@ -1,247 +0,0 @@
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
- class MyFrame < Wx::Frame
11
- def initialize(parent, id, log)
12
- super(parent, id, "Playing with menus", Wx::DEFAULT_POSITION, Wx::Size.new(400, 200))
13
- @log = log
14
- center_on_screen(Wx::BOTH)
15
-
16
- create_status_bar
17
- set_status_text("This is the statusbar")
18
-
19
- text = "A bunch of bogus menus have been created for this frame. You can play around with them to see how they behave and then check the source for this sample to see how to implement them."
20
- tc = Wx::TextCtrl.new(self, -1, text, Wx::DEFAULT_POSITION,
21
- Wx::DEFAULT_SIZE, Wx::TE_READONLY | Wx::TE_MULTILINE)
22
-
23
- # Prepare the menu bar
24
- menuBar = Wx::MenuBar.new
25
-
26
- # 1st menu from the left
27
- menu1 = Wx::Menu.new
28
- menu1.append(101, "&Mercury", "This the text in the Statusbar")
29
- menu1.append(102, "&Venus", "")
30
- menu1.append(103, "&Earth", "You may select Earth too")
31
- menu1.append_separator
32
- menu1.append(104, "&Close", "Close this frame")
33
- # Add menu to the menu bar
34
- menuBar.append(menu1, "&Planets")
35
-
36
- # 2nd menu from left
37
- menu2 = Wx::Menu.new
38
- menu2.append(201, "Hydrogen")
39
- menu2.append(202, "Helium")
40
- # a submenu in the 2nd menu
41
- submenu = Wx::Menu.new
42
- submenu.append(2031, "Lanthanium")
43
- submenu.append(2032, "Cerium")
44
- submenu.append(2033, "Praseodymium")
45
- item = Wx::MenuItem.new(menu2, 203, "Lanthanides", "", Wx::ITEM_NORMAL, submenu)
46
- menu2.append_item(item)
47
- # append 2nd menu
48
- menuBar.append(menu2, "&Elements")
49
-
50
- menu3 = Wx::Menu.new
51
- menu3.append_item(Wx::MenuItem.new(menu3, 301, "IRB", "a Ruby interactive shell", Wx::ITEM_RADIO))
52
- menu3.append_item(Wx::MenuItem.new(menu3, 302, "PyCrust", "a Python shell using wxPython as GUI", Wx::ITEM_RADIO))
53
- menu3.append_item(Wx::MenuItem.new(menu3, 303, "psi", "a simple Python shell using wxPython as GUI", Wx::ITEM_RADIO))
54
- menu3.append_separator
55
- menu3.append_item(Wx::MenuItem.new(menu3, 304, "project1", "", Wx::ITEM_NORMAL))
56
- menu3.append_item(Wx::MenuItem.new(menu3, 305, "project2", "", Wx::ITEM_NORMAL))
57
- menuBar.append(menu3, "&Shells")
58
-
59
- menu4 = Wx::Menu.new
60
- menu4.append_item(Wx::MenuItem.new(menu4, 401, "letters", "abcde...", Wx::ITEM_CHECK))
61
- menu4.append_item(Wx::MenuItem.new(menu4, 402, "digits", "123...", Wx::ITEM_CHECK))
62
- menu4.append_item(Wx::MenuItem.new(menu4, 403, "letters and digits", "abcd... + 123...", Wx::ITEM_CHECK))
63
- menuBar.append(menu4, "Chec&k")
64
-
65
- menu5 = Wx::Menu.new
66
- # Show how to put an icon in the menu
67
- item = Wx::MenuItem.new(menu5, 500, "&Smile!\tCtrl+S",
68
- "This one has an icon")
69
-
70
- # set_bitmap is only available on Windows and GTK
71
- if item.respond_to?(:set_bitmap)
72
- bmp_file = File.join(File.dirname(__FILE__),
73
- 'icons', 'wxwin16x16.xpm')
74
- item.set_bitmap(Wx::Bitmap.new(bmp_file))
75
- end
76
- menu5.append_item(item)
77
-
78
- menu5.append(501, "Interesting thing\tCtrl+A", "Note the shortcut!")
79
- menu5.append_separator
80
- menu5.append(502, "Hello\tShift+H")
81
- menu5.append_separator
82
- menu5.append(503, "Remove the submenu")
83
- menu6 = Wx::Menu.new
84
- menu6.append(601, "Submenu Item")
85
- item = Wx::MenuItem.new(menu5, 504, "submenu", "", Wx::ITEM_NORMAL, menu6)
86
- menu5.append_item(item)
87
- menu5.append(505, "Remove this menuitem")
88
- menu5.append(506, "this is updated")
89
- menu5.append(507, "insert after this...")
90
- menu5.append(508, "...and before this")
91
- menuBar.append(menu5, "&Fun")
92
-
93
- set_menu_bar(menuBar)
94
-
95
- # Menu events
96
- evt_menu_highlight_all { |event| on_menu_highlight(event) }
97
-
98
- evt_menu(101) { |event| menu_101(event) }
99
- evt_menu(102) { |event| menu_102(event) }
100
- evt_menu(103) { |event| menu_103(event) }
101
- evt_menu(104) { |event| close_window(event) }
102
-
103
- evt_menu(201) { |event| menu_201(event) }
104
- evt_menu(202) { |event| menu_202(event) }
105
- evt_menu(2031) { |event| menu_2031(event) }
106
- evt_menu(2032) { |event| menu_2032(event) }
107
- evt_menu(2033) { |event| menu_2033(event) }
108
-
109
- evt_menu(301) { |event| menu_301_to_303(event) }
110
- evt_menu(302) { |event| menu_301_to_303(event) }
111
- evt_menu(303) { |event| menu_301_to_303(event) }
112
- evt_menu(304) { |event| menu_304(event) }
113
- evt_menu(305) { |event| menu_305(event) }
114
-
115
- evt_menu_range(401, 403) { |event| menu_401_to_403(event) }
116
-
117
- evt_menu(500) { |event| menu_500(event) }
118
- evt_menu(501) { |event| menu_501(event) }
119
- evt_menu(502) { |event| menu_502(event) }
120
- evt_menu(503) { |event| test_remove(event) }
121
- evt_menu(505) { |event| test_remove2(event) }
122
- evt_menu(507) { |event| test_insert(event) }
123
- evt_menu(508) { |event| test_insert(event) }
124
-
125
- evt_update_ui(506) { |event| test_update_ui(event) }
126
- end
127
-
128
- # Methods
129
-
130
- def on_menu_highlight(event)
131
- event.skip
132
- end
133
-
134
- def menu_101(event)
135
- @log.write_text("Welcome to Mercury")
136
- end
137
-
138
- def menu_102(event)
139
- @log.write_text("Welcome to Venus")
140
- end
141
-
142
- def menu_103(event)
143
- @log.write_text("Welcome to Earth")
144
- end
145
-
146
- def close_window(event)
147
- event.skip
148
- end
149
-
150
- def menu_201(event)
151
- @log.write_text("Chemical element number 1")
152
- end
153
-
154
- def menu_202(event)
155
- @log.write_text("Chemical element number 2")
156
- end
157
-
158
- def menu_2031(event)
159
- @log.write_text("Element number 57")
160
- end
161
-
162
- def menu_2032(event)
163
- @log.write_text("Element number 58")
164
- end
165
-
166
- def menu_2033(event)
167
- @log.write_text("Element number 59")
168
- end
169
-
170
- def menu_301_to_303(event)
171
- id = event.get_id
172
- @log.write_text("Event id: %d" % id)
173
- end
174
-
175
- def menu_304(event)
176
- @log.write_text("Not yet available")
177
- end
178
-
179
- def menu_305(event)
180
- @log.write_text("Still vapor")
181
- end
182
-
183
- def menu_401_to_403(event)
184
- @log.write_text("From an evt_menu_range event")
185
- end
186
-
187
- def menu_500(event)
188
- @log.write_text("Have a happy day!")
189
- end
190
-
191
- def menu_501(event)
192
- @log.write_text("Look in the code to see how the shortcut has been realized")
193
- end
194
-
195
- def menu_502(event)
196
- @log.write_text("Hello from Robert Carlin!")
197
- end
198
-
199
- # These methods haven't been implemented yet....Waiting for Wx::MenuBar.get_menu_bar to be implemented
200
- def test_remove(event)
201
- menubar = self.menu_bar
202
- menu = menubar.get_menu(menubar.find_menu("Fun"))
203
-
204
- unless menu
205
- @log.write_text("Cannot find menu 'Fun'!");
206
- else
207
- item_ix = menu.find_item('submenu')
208
- menu.destroy(item_ix) unless item_ix == Wx::NOT_FOUND
209
- end
210
- end
211
-
212
- def test_remove2(event)
213
- menubar = self.menu_bar
214
- menu = menubar.get_menu(menubar.find_menu("Fun"))
215
-
216
- unless menu
217
- @log.write_text("Cannot find menu 'Fun'!");
218
- else
219
- item = menu.find_item(505)
220
- menu.destroy(item) if item
221
- end
222
- end
223
-
224
- def test_insert(event) end
225
-
226
- def test_update_ui(event)
227
- event.skip
228
- end
229
- end
230
-
231
- module Demo
232
- def Demo.run(frame, nb, log)
233
- win = MyFrame.new(frame, -1, log)
234
- frame.otherWin = win
235
- win.show
236
- end
237
-
238
- def Demo.overview
239
- return "A demo of using Wx::MenuBar and Wx::Menu in various ways."
240
- end
241
- end
242
-
243
- if __FILE__ == $0
244
- run_solo_lib = File.join(File.dirname(__FILE__), 'run.rb')
245
- load run_solo_lib
246
- run File.basename($0)
247
- end
@@ -1,27 +0,0 @@
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
-
12
- module Demo
13
- def Demo.run(frame, nb, log)
14
- dlg = Wx::MessageDialog.new(frame, "Hello from Ruby and wxRuby!", "A Message Box", Wx::OK | Wx::ICON_INFORMATION)
15
- dlg.show_modal
16
- end
17
-
18
- def Demo.overview
19
- return "Show a message to the user in a dialog"
20
- end
21
- end
22
-
23
- if __FILE__ == $0
24
- run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
25
- load run_solo_lib
26
- run File.basename($0)
27
- end
@@ -1,70 +0,0 @@
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
- include Wx
12
-
13
- class MyMiniFrame < MiniFrame
14
- def initialize(parent, log)
15
- @log = log
16
- super(parent, -1, "Wx::MiniFrame demonstration",
17
- DEFAULT_POSITION, Size.new(350,200), DEFAULT_FRAME_STYLE)
18
- panel = Panel.new(self, -1)
19
-
20
- button = Button.new(panel, -1, "Close me", Point.new(15,15))
21
- evt_button( button.get_id ) { on_close_me }
22
- # evt_close { | e | on_close_window(e) }
23
- end
24
-
25
- def on_close_me
26
- close(true)
27
- end
28
-
29
- def on_close_window(event)
30
- @log.write_text("MiniFrame closed.")
31
- event.skip
32
- end
33
-
34
- end
35
-
36
- class TestPanel < Wx::Panel
37
- def initialize(parent, log)
38
- super(parent, -1, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, Wx::NO_FULL_REPAINT_ON_RESIZE)
39
- @log = log
40
-
41
- b = Button.new(self, -1, 'Create and Show a MiniFrame', Wx::Point.new(50,50))
42
- evt_button(b.get_id) { on_button }
43
- end
44
-
45
- def on_button
46
- win = MyMiniFrame.new(self, @log)
47
- win.set_size(Wx::Size.new(200, 200))
48
- win.center_on_parent(Wx::BOTH)
49
- win.show(true)
50
- end
51
- end
52
-
53
- module Demo
54
- def Demo.run(frame, nb, log)
55
- TestPanel.new(nb, log)
56
- end
57
-
58
- def Demo.overview
59
- return "A MiniFrame is a Frame with a small title bar. It is suitable for floating\n" +
60
- "toolbars that must not take up too much screen area. In other respects, it's the\n" +
61
- "same as a Wx::Frame."
62
- end
63
- end
64
-
65
-
66
- if __FILE__ == $0
67
- run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
68
- load run_solo_lib
69
- run File.basename($0)
70
- end
@@ -1,29 +0,0 @@
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
- module Demo
11
- def Demo.run(frame, nb, log)
12
- lst = %w(apple pear banana coconut orange etc etc.. etc...)
13
- choices = Wx::get_selected_choices("Pick some from\n this list\nblah blah...", "m.s.d.", lst)
14
- if choices
15
- log.write_text("You selected " + choices.length.to_s + " items:")
16
- choices.each_index { |i| log.write_text("\t" + choices[i].to_s + " => " + lst[choices[i]]) }
17
- end
18
- end
19
-
20
- def Demo.overview
21
- return ""
22
- end
23
- end
24
-
25
- if __FILE__ == $0
26
- run_solo_lib = File.join(File.dirname(__FILE__), 'run.rb')
27
- load run_solo_lib
28
- run File.basename($0)
29
- end
@@ -1,136 +0,0 @@
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
-
12
- # added this class so that the panel in each NB tab can respond to size events and properly size each nb page - otherwise
13
- # NB pages that contain the colored windows won't properly size themseleves
14
-
15
- class NBPanel < Wx::Panel
16
- attr_accessor :win
17
- def initialize(parent)
18
- super(parent, -1)
19
- evt_size {|event| on_size(event)}
20
- @win
21
- end
22
-
23
- def on_size(event)
24
- win.set_size(event.get_size)
25
- end
26
- end
27
-
28
- class TestNB < Wx::Notebook
29
- def demo_file(base_name)
30
- File.join( File.dirname(__FILE__), base_name )
31
- end
32
-
33
- def initialize(parent, id, log)
34
- super(parent, id, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, Wx::NB_BOTTOM)
35
- @log = log
36
- File
37
- load demo_file("ColorPanel.rbw")
38
- load demo_file("wxScrolledWindow.rbw")
39
- load demo_file("GridSimple.rbw")
40
- #load "wxListCtrl.rbw"
41
-
42
- # Show how to put an image on one of the notebook tabs,
43
- # first make the image list:
44
- il = Wx::ImageList.new(16,16)
45
- ic_file = File.join(File.dirname(__FILE__),'icons','wxwin16x16.xpm')
46
- il.add( Wx::Icon.new(ic_file) )
47
-
48
- set_image_list(il)
49
-
50
- win = make_color_panel(Wx::BLUE)
51
- add_page(win, "Blue", true, 0)
52
- st = Wx::StaticText.new(win, -1, "You can put nearly any type of window here,\n" +
53
- "and if the platform supports it then the\n" +
54
- "tabs can be on any side of the notebook.", Wx::Point.new(10,10))
55
- st.set_foreground_colour(Wx::WHITE)
56
- st.set_background_colour(Wx::BLUE)
57
-
58
- win = make_color_panel(Wx::RED)
59
- add_page(win, "Red")
60
-
61
- win = MyCanvas.new(self)
62
- add_page(win, "ScrolledWindow")
63
-
64
- win = make_color_panel(Wx::GREEN)
65
- add_page(win, "Green")
66
-
67
- win = SimpleGrid.new(self, log)
68
- add_page(win, "Grid")
69
-
70
- #win = TestListCtrlPanel(self, log)
71
- #add_page(win, "List")
72
-
73
- win = make_color_panel(Wx::CYAN)
74
- add_page(win, "Cyan")
75
-
76
- win = make_color_panel(Wx::LIGHT_GREY)
77
- add_page(win, "Light Grey")
78
-
79
- win = make_color_panel(Wx::BLACK)
80
- add_page(win, "Black")
81
-
82
- win = make_color_panel(Wx::Colour.new("MEDIUM ORCHID"))
83
- add_page(win, "MEDIUM ORCHID")
84
-
85
- win = make_color_panel(Wx::Colour.new("MIDNIGHT BLUE"))
86
- add_page(win, "MIDNIGHT BLUE")
87
-
88
- win = make_color_panel(Wx::Colour.new("INDIAN RED"))
89
- add_page(win, "INDIAN RED")
90
-
91
-
92
- evt_notebook_page_changed(self.get_id) {|event| on_page_changed(event)}
93
- evt_notebook_page_changing(self.get_id) {|event| on_page_changing(event)}
94
- end
95
-
96
- def make_color_panel(color)
97
- p = NBPanel.new(self)
98
- win = ColoredPanel.new(p, color)
99
- p.win = win
100
- return p
101
- end
102
-
103
- def on_page_changed(event)
104
- old = event.get_old_selection
105
- new = event.get_selection
106
- sel = get_selection
107
- @log.write_text("on_page_changed, old:" + old.to_s + ", new:" + new.to_s + ", sel:" + sel.to_s)
108
- event.skip
109
- end
110
-
111
- def on_page_changing(event)
112
- old = event.get_old_selection
113
- new = event.get_selection
114
- sel = get_selection
115
- @log.write_text("on_page_changing, old:" + old.to_s + ", new:" + new.to_s + ", sel:" + sel.to_s)
116
- event.skip
117
- end
118
- end
119
-
120
- module Demo
121
- def Demo.run(frame, nb, log)
122
- win = TestNB.new(nb, -1, log)
123
- return win
124
- end
125
-
126
- def Demo.overview
127
- return "This class represents a notebook control, which manages multiple windows with associated tabs. To use the class, create a wxNotebook object and call AddPage or InsertPage, passing a window to be used as the page. Do not explicitly delete the window for a page that is currently managed by wxNotebook."
128
- end
129
- end
130
-
131
-
132
- if __FILE__ == $0
133
- run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
134
- load run_solo_lib
135
- run File.basename($0)
136
- end