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
@@ -11,147 +11,156 @@
11
11
 
12
12
  require 'wx'
13
13
 
14
- include Wx
15
-
16
- Minimal_Quit = 1
17
- Minimal_About = ID_ABOUT
18
- Toggle_Whitespace = 5000
19
- Toggle_EOL = 5001
20
-
21
- class MyFrame < Frame
22
- def initialize(title,pos,size,style=DEFAULT_FRAME_STYLE)
23
- super(nil,-1,title,pos,size,style)
24
-
25
- menuFile = Menu.new
26
- menuFile.append(Minimal_Quit, "E&xit\tAlt-X", "Quit this program")
27
-
28
- menuView = Menu.new
29
- menuView.append(Toggle_Whitespace, "Show &Whitespace\tF6", "Show Whitespace", ITEM_CHECK)
30
- menuView.append(Toggle_EOL, "Show &End of Line\tF7", "Show End of Line characters", ITEM_CHECK)
31
-
32
- menuHelp = Menu.new
33
- menuHelp.append(Minimal_About, "&About...\tF1", "Show about dialog")
34
-
35
- menuBar = MenuBar.new
36
- menuBar.append(menuFile, "&File")
37
- menuBar.append(menuView, "&View")
38
- menuBar.append(menuHelp, "&Help")
39
- set_menu_bar(menuBar)
40
-
41
- tb = create_tool_bar(Wx::TB_HORIZONTAL | Wx::NO_BORDER | Wx::TB_FLAT | Wx::TB_TEXT)
42
-
43
- create_status_bar(2)
44
- set_status_text("Welcome to wxRuby!")
45
-
46
- @sci = Wx::StyledTextCtrl.new(self)
47
-
48
- font = Font.new(10, FONTFAMILY_TELETYPE, FONTSTYLE_NORMAL, FONTWEIGHT_NORMAL)
49
- @sci.style_set_font(STC_STYLE_DEFAULT, font);
50
-
51
- @ws_visible = false
52
- @eol_visible = false
53
- @sci.set_edge_mode(STC_EDGE_LINE)
54
-
55
- line_num_margin = @sci.text_width(STC_STYLE_LINENUMBER, "_99999")
56
- @sci.set_margin_width(0, line_num_margin)
57
-
58
- @sci.style_set_foreground(STC_STYLE_DEFAULT, BLACK);
59
- @sci.style_set_background(STC_STYLE_DEFAULT, WHITE);
60
- @sci.style_set_foreground(STC_STYLE_LINENUMBER, LIGHT_GREY);
61
- @sci.style_set_background(STC_STYLE_LINENUMBER, WHITE);
62
- @sci.style_set_foreground(STC_STYLE_INDENTGUIDE, LIGHT_GREY);
63
-
64
- @sci.set_tab_width(4)
65
- @sci.set_use_tabs(false)
66
- @sci.set_tab_indents(true)
67
- @sci.set_back_space_un_indents(true)
68
- @sci.set_indent(4)
69
- @sci.set_edge_column(80)
70
-
71
- @sci.set_lexer(STC_LEX_RUBY)
72
- @sci.style_clear_all
73
- @sci.style_set_foreground(2, RED)
74
- @sci.style_set_foreground(3, GREEN)
75
- @sci.style_set_foreground(5, BLUE)
76
- @sci.style_set_foreground(6, BLUE)
77
- @sci.style_set_foreground(7, BLUE)
78
- @sci.set_key_words(0, "begin break elsif module retry unless end case next return until class ensure nil self when def false not super while alias defined? for or then yield and do if redo true else in rescue undef")
79
-
80
- @sci.set_property("fold","1")
81
- @sci.set_property("fold.compact", "0")
82
- @sci.set_property("fold.comment", "1")
83
- @sci.set_property("fold.preprocessor", "1")
84
-
85
- @sci.set_margin_width(1, 0)
86
- @sci.set_margin_type(1, STC_MARGIN_SYMBOL)
87
- @sci.set_margin_mask(1, STC_MASK_FOLDERS)
88
- @sci.set_margin_width(1, 20)
89
-
90
- @sci.marker_define(STC_MARKNUM_FOLDER, STC_MARK_PLUS)
91
- @sci.marker_define(STC_MARKNUM_FOLDEROPEN, STC_MARK_MINUS)
92
- @sci.marker_define(STC_MARKNUM_FOLDEREND, STC_MARK_EMPTY)
93
- @sci.marker_define(STC_MARKNUM_FOLDERMIDTAIL, STC_MARK_EMPTY)
94
- @sci.marker_define(STC_MARKNUM_FOLDEROPENMID, STC_MARK_EMPTY)
95
- @sci.marker_define(STC_MARKNUM_FOLDERSUB, STC_MARK_EMPTY)
96
- @sci.marker_define(STC_MARKNUM_FOLDERTAIL, STC_MARK_EMPTY)
97
- @sci.set_fold_flags(16)
98
-
99
- @sci.set_margin_sensitive(1,1)
100
-
101
- evt_menu(Minimal_Quit) {onQuit}
102
- evt_menu(Minimal_About) {onAbout}
103
- evt_menu(Toggle_Whitespace) {onWhitespace}
104
- evt_menu(Toggle_EOL) {onEOL}
105
- evt_stc_charadded(@sci.get_id) {|evt| onCharadded(evt)}
106
- evt_stc_marginclick(@sci.get_id) {|evt| onMarginClick(evt)}
14
+ module Scintilla
107
15
 
108
- end
16
+ include Wx
109
17
 
110
- def onQuit
111
- close(true)
112
- end
18
+ Minimal_Quit = 1
19
+ Minimal_About = ID_ABOUT
20
+ Toggle_Whitespace = 5000
21
+ Toggle_EOL = 5001
113
22
 
114
- def onAbout
115
- GC.start
116
- msg = sprintf("This is the About dialog of the scintilla sample.\n" \
117
- "Welcome to %s", WXWIDGETS_VERSION)
23
+ class MyFrame < Frame
118
24
 
119
- message_box(msg, "About Scintilla", OK | ICON_INFORMATION, self)
25
+ include Wx
120
26
 
121
- end
27
+ def initialize(title,pos,size,style=DEFAULT_FRAME_STYLE)
28
+ super(nil,-1,title,pos,size,style)
122
29
 
123
- def onWhitespace
124
- @ws_visible = !@ws_visible
125
- @sci.set_view_white_space(@ws_visible ? STC_WS_VISIBLEALWAYS : STC_WS_INVISIBLE)
126
- end
30
+ self.icon = Wx.Icon(:sample, Wx::BITMAP_TYPE_XPM, art_path: File.join(__dir__, '..'))
127
31
 
128
- def onEOL
129
- @eol_visible = !@eol_visible
130
- @sci.set_view_eol(@eol_visible)
131
- end
32
+ menuFile = Menu.new
33
+ menuFile.append(Minimal_Quit, "E&xit\tAlt-X", "Quit this program")
34
+
35
+ menuView = Menu.new
36
+ menuView.append(Toggle_Whitespace, "Show &Whitespace\tF6", "Show Whitespace", ITEM_CHECK)
37
+ menuView.append(Toggle_EOL, "Show &End of Line\tF7", "Show End of Line characters", ITEM_CHECK)
38
+
39
+ menuHelp = Menu.new
40
+ menuHelp.append(Minimal_About, "&About...\tF1", "Show about dialog")
41
+
42
+ menuBar = MenuBar.new
43
+ menuBar.append(menuFile, "&File")
44
+ menuBar.append(menuView, "&View")
45
+ menuBar.append(menuHelp, "&Help")
46
+ set_menu_bar(menuBar)
47
+
48
+ tb = create_tool_bar(Wx::TB_HORIZONTAL | Wx::NO_BORDER | Wx::TB_FLAT | Wx::TB_TEXT)
49
+
50
+ create_status_bar(2)
51
+ set_status_text("Welcome to wxRuby!")
52
+
53
+ @sci = Wx::StyledTextCtrl.new(self)
54
+
55
+ font = Font.new(10, FONTFAMILY_TELETYPE, FONTSTYLE_NORMAL, FONTWEIGHT_NORMAL)
56
+ @sci.style_set_font(STC_STYLE_DEFAULT, font);
57
+
58
+ @ws_visible = false
59
+ @eol_visible = false
60
+ @sci.set_edge_mode(STC_EDGE_LINE)
61
+
62
+ line_num_margin = @sci.text_width(STC_STYLE_LINENUMBER, "_99999")
63
+ @sci.set_margin_width(0, line_num_margin)
64
+
65
+ @sci.style_set_foreground(STC_STYLE_DEFAULT, BLACK);
66
+ @sci.style_set_background(STC_STYLE_DEFAULT, WHITE);
67
+ @sci.style_set_foreground(STC_STYLE_LINENUMBER, LIGHT_GREY);
68
+ @sci.style_set_background(STC_STYLE_LINENUMBER, WHITE);
69
+ @sci.style_set_foreground(STC_STYLE_INDENTGUIDE, LIGHT_GREY);
70
+
71
+ @sci.set_tab_width(4)
72
+ @sci.set_use_tabs(false)
73
+ @sci.set_tab_indents(true)
74
+ @sci.set_back_space_un_indents(true)
75
+ @sci.set_indent(4)
76
+ @sci.set_edge_column(80)
77
+
78
+ @sci.set_lexer(STC_LEX_RUBY)
79
+ @sci.style_clear_all
80
+ @sci.style_set_foreground(2, RED)
81
+ @sci.style_set_foreground(3, GREEN)
82
+ @sci.style_set_foreground(5, BLUE)
83
+ @sci.style_set_foreground(6, BLUE)
84
+ @sci.style_set_foreground(7, BLUE)
85
+ @sci.set_key_words(0, "begin break elsif module retry unless end case next return until class ensure nil self when def false not super while alias defined? for or then yield and do if redo true else in rescue undef")
132
86
 
133
- def onCharadded(evt)
134
- chr = evt.get_key
135
- curr_line = @sci.get_current_line
87
+ @sci.set_property("fold","1")
88
+ @sci.set_property("fold.compact", "0")
89
+ @sci.set_property("fold.comment", "1")
90
+ @sci.set_property("fold.preprocessor", "1")
136
91
 
137
- if(chr == 13)
138
- if curr_line > 0
139
- line_ind = @sci.get_line_indentation(curr_line - 1)
140
- if line_ind > 0
141
- @sci.set_line_indentation(curr_line, line_ind)
142
- @sci.goto_pos(@sci.position_from_line(curr_line)+line_ind)
92
+ @sci.set_margin_width(1, 0)
93
+ @sci.set_margin_type(1, STC_MARGIN_SYMBOL)
94
+ @sci.set_margin_mask(1, STC_MASK_FOLDERS)
95
+ @sci.set_margin_width(1, 20)
96
+
97
+ @sci.marker_define(STC_MARKNUM_FOLDER, STC_MARK_PLUS)
98
+ @sci.marker_define(STC_MARKNUM_FOLDEROPEN, STC_MARK_MINUS)
99
+ @sci.marker_define(STC_MARKNUM_FOLDEREND, STC_MARK_EMPTY)
100
+ @sci.marker_define(STC_MARKNUM_FOLDERMIDTAIL, STC_MARK_EMPTY)
101
+ @sci.marker_define(STC_MARKNUM_FOLDEROPENMID, STC_MARK_EMPTY)
102
+ @sci.marker_define(STC_MARKNUM_FOLDERSUB, STC_MARK_EMPTY)
103
+ @sci.marker_define(STC_MARKNUM_FOLDERTAIL, STC_MARK_EMPTY)
104
+ @sci.set_fold_flags(16)
105
+
106
+ @sci.set_margin_sensitive(1,1)
107
+
108
+ evt_menu(Minimal_Quit) {onQuit}
109
+ evt_menu(Minimal_About) {onAbout}
110
+ evt_menu(Toggle_Whitespace) {onWhitespace}
111
+ evt_menu(Toggle_EOL) {onEOL}
112
+ evt_stc_charadded(@sci.get_id) {|evt| onCharadded(evt)}
113
+ evt_stc_marginclick(@sci.get_id) {|evt| onMarginClick(evt)}
114
+
115
+ end
116
+
117
+ def onQuit
118
+ close(true)
119
+ end
120
+
121
+ def onAbout
122
+ GC.start
123
+ msg = sprintf("This is the About dialog of the scintilla sample.\n" \
124
+ "Welcome to %s", WXWIDGETS_VERSION)
125
+
126
+ message_box(msg, "About Scintilla", OK | ICON_INFORMATION, self)
127
+
128
+ end
129
+
130
+ def onWhitespace
131
+ @ws_visible = !@ws_visible
132
+ @sci.set_view_white_space(@ws_visible ? STC_WS_VISIBLEALWAYS : STC_WS_INVISIBLE)
133
+ end
134
+
135
+ def onEOL
136
+ @eol_visible = !@eol_visible
137
+ @sci.set_view_eol(@eol_visible)
138
+ end
139
+
140
+ def onCharadded(evt)
141
+ chr = evt.get_key
142
+ curr_line = @sci.get_current_line
143
+
144
+ if(chr == 13)
145
+ if curr_line > 0
146
+ line_ind = @sci.get_line_indentation(curr_line - 1)
147
+ if line_ind > 0
148
+ @sci.set_line_indentation(curr_line, line_ind)
149
+ @sci.goto_pos(@sci.position_from_line(curr_line)+line_ind)
150
+ end
143
151
  end
144
- end
152
+ end
145
153
  end
146
- end
147
154
 
148
- def onMarginClick(evt)
149
- line_num = @sci.line_from_position(evt.get_position)
150
- margin = evt.get_margin
155
+ def onMarginClick(evt)
156
+ line_num = @sci.line_from_position(evt.get_position)
157
+ margin = evt.get_margin
151
158
 
152
- if(margin == 1)
153
- @sci.toggle_fold(line_num)
159
+ if(margin == 1)
160
+ @sci.toggle_fold(line_num)
161
+ end
154
162
  end
163
+
155
164
  end
156
165
 
157
166
  end
@@ -167,7 +176,7 @@ module STCSample
167
176
  end
168
177
 
169
178
  def self.activate
170
- frame = MyFrame.new("wxRuby Scintilla App",Point.new(50, 50), Size.new(450, 340))
179
+ frame = Scintilla::MyFrame.new("wxRuby Scintilla App",Point.new(50, 50), Size.new(450, 340))
171
180
  frame.show(true)
172
181
  frame
173
182
  end
@@ -11,109 +11,115 @@
11
11
 
12
12
  require 'wx'
13
13
 
14
- class InformativeTextCtrl < Wx::TextCtrl
15
- # These text controls are multiline, and may have rich (coloured,
16
- # styled) text in them
17
- STYLE = Wx::TE_MULTILINE|Wx::TE_RICH|Wx::TE_RICH2
18
- def initialize(parent, text = '')
19
- super(parent, :value => text, :style => STYLE)
20
- end
14
+ module TextCtrl
15
+
16
+ class InformativeTextCtrl < Wx::TextCtrl
17
+ # These text controls are multiline, and may have rich (coloured,
18
+ # styled) text in them
19
+ STYLE = Wx::TE_MULTILINE|Wx::TE_RICH|Wx::TE_RICH2
20
+ def initialize(parent, text = '')
21
+ super(parent, :value => text, :style => STYLE)
22
+ end
21
23
 
22
- # run through a few useful methods of textctrl and report the results
23
- # as a string
24
- def report
25
- report = ''
26
- report << 'Insertion Point: ' << get_insertion_point.to_s << "\n"
27
- report << 'First Line Text: ' << get_line_text(0) << "\n"
28
- report << 'Final Position: ' << get_last_position.to_s << "\n"
29
- report << 'Selection: ' << get_selection.inspect << "\n"
30
- report << 'String Selection: ' << get_string_selection.inspect << "\n"
31
- report << 'Position to X, Y: ' <<
32
- position_to_xy( get_insertion_point ).inspect
33
- return report
24
+ # run through a few useful methods of textctrl and report the results
25
+ # as a string
26
+ def report
27
+ report = ''
28
+ report << 'Insertion Point: ' << get_insertion_point.to_s << "\n"
29
+ report << 'First Line Text: ' << get_line_text(0) << "\n"
30
+ report << 'Final Position: ' << get_last_position.to_s << "\n"
31
+ report << 'Selection: ' << get_selection.inspect << "\n"
32
+ report << 'String Selection: ' << get_string_selection.inspect << "\n"
33
+ report << 'Position to X, Y: ' <<
34
+ position_to_xy( get_insertion_point ).inspect
35
+ return report
36
+ end
34
37
  end
35
- end
36
38
 
37
- # A read-only text ctrl useful for displaying output
38
- class LogTextCtrl < Wx::TextCtrl
39
- STYLE = Wx::TE_READONLY|Wx::TE_MULTILINE
40
- def initialize(parent)
41
- super(parent, :style => STYLE)
39
+ # A read-only text ctrl useful for displaying output
40
+ class LogTextCtrl < Wx::TextCtrl
41
+ STYLE = Wx::TE_READONLY|Wx::TE_MULTILINE
42
+ def initialize(parent)
43
+ super(parent, :style => STYLE)
44
+ end
42
45
  end
43
- end
44
46
 
45
- class TextCtrlFrame < Wx::Frame
46
- def initialize(*args)
47
- super(nil, *args)
47
+ class TextCtrlFrame < Wx::Frame
48
+ def initialize(*args)
49
+ super(nil, *args)
48
50
 
49
- panel = Wx::Panel.new(self)
50
- sizer = Wx::BoxSizer.new(Wx::VERTICAL)
51
+ self.icon = Wx.Icon(:sample, Wx::BITMAP_TYPE_XPM, art_path: File.join(__dir__, '..'))
51
52
 
52
- @textctrl = InformativeTextCtrl.new(panel)
53
- if Wx.has_feature?(:USE_SPELLCHECK)
54
- @textctrl.enable_proof_check(Wx::TextProofOptions.default)
55
- end
56
- populate_textctrl
57
- sizer.add(@textctrl, 2, Wx::GROW|Wx::ALL, 2)
53
+ panel = Wx::Panel.new(self)
54
+ sizer = Wx::BoxSizer.new(Wx::VERTICAL)
58
55
 
59
- button = Wx::Button.new(panel, :label => 'Get Info')
60
- sizer.add(button, 0, Wx::ALL, 2 )
61
- evt_button button, :on_click
56
+ @textctrl = InformativeTextCtrl.new(panel)
57
+ if Wx.has_feature?(:USE_SPELLCHECK)
58
+ @textctrl.enable_proof_check(Wx::TextProofOptions.default)
59
+ end
60
+ populate_textctrl
61
+ sizer.add(@textctrl, 2, Wx::GROW|Wx::ALL, 2)
62
62
 
63
- @log = LogTextCtrl.new(panel)
64
- sizer.add(@log, 1, Wx::GROW|Wx::ALL, 2)
65
- panel.sizer = sizer
63
+ button = Wx::Button.new(panel, :label => 'Get Info')
64
+ sizer.add(button, 0, Wx::ALL, 2 )
65
+ evt_button button, :on_click
66
66
 
67
- construct_menus
68
- end
67
+ @log = LogTextCtrl.new(panel)
68
+ sizer.add(@log, 1, Wx::GROW|Wx::ALL, 2)
69
+ panel.sizer = sizer
69
70
 
70
- def populate_textctrl
71
- @textctrl <<
72
- "This is some plain text\n" <<
73
- "Text with green letters and yellow background\n" <<
74
- "This is some more plain text"
75
- # create a new rich text style
76
- attr = Wx::TextAttr.new(Wx::GREEN, Wx::Colour.new(255, 255, 0) )
77
- # apply the style from character 26 to character 76
78
- @textctrl.set_style(24, 69, attr)
79
- end
71
+ construct_menus
72
+ end
80
73
 
81
- def construct_menus
82
- menu_bar = Wx::MenuBar.new
74
+ def populate_textctrl
75
+ @textctrl <<
76
+ "This is some plain text\n" <<
77
+ "Text with green letters and yellow background\n" <<
78
+ "This is some more plain text"
79
+ # create a new rich text style
80
+ attr = Wx::TextAttr.new(Wx::GREEN, Wx::Colour.new(255, 255, 0) )
81
+ # apply the style from character 26 to character 76
82
+ @textctrl.set_style(24, 69, attr)
83
+ end
83
84
 
84
- menu_file = Wx::Menu.new
85
- menu_file.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
86
- menu_bar.append(menu_file, "&File")
87
- evt_menu Wx::ID_EXIT, :on_quit
85
+ def construct_menus
86
+ menu_bar = Wx::MenuBar.new
88
87
 
89
- menu_help = Wx::Menu.new
90
- menu_help.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
91
- evt_menu Wx::ID_ABOUT, :on_about
92
- menu_bar.append(menu_help, "&Help")
88
+ menu_file = Wx::Menu.new
89
+ menu_file.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
90
+ menu_bar.append(menu_file, "&File")
91
+ evt_menu Wx::ID_EXIT, :on_quit
93
92
 
94
- self.menu_bar = menu_bar
95
- end
93
+ menu_help = Wx::Menu.new
94
+ menu_help.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
95
+ evt_menu Wx::ID_ABOUT, :on_about
96
+ menu_bar.append(menu_help, "&Help")
96
97
 
97
- def on_click
98
- @log.value = @textctrl.report
99
- if Wx.has_feature?(:USE_SPELLCHECK)
100
- if @textctrl.get_proof_check_options.is_spell_check_enabled
101
- @textctrl.enable_proof_check(Wx::TextProofOptions.disable)
102
- else
103
- @textctrl.enable_proof_check(Wx::TextProofOptions.default)
98
+ self.menu_bar = menu_bar
99
+ end
100
+
101
+ def on_click
102
+ @log.value = @textctrl.report
103
+ if Wx.has_feature?(:USE_SPELLCHECK)
104
+ if @textctrl.get_proof_check_options.is_spell_check_enabled
105
+ @textctrl.enable_proof_check(Wx::TextProofOptions.disable)
106
+ else
107
+ @textctrl.enable_proof_check(Wx::TextProofOptions.default)
108
+ end
104
109
  end
105
110
  end
106
- end
107
111
 
108
- def on_quit
109
- close
110
- end
112
+ def on_quit
113
+ close
114
+ end
111
115
 
112
- def on_about
113
- msg = sprintf("This is the About dialog of the textctrl sample.\n" \
114
- "Welcome to %s", Wx::WXWIDGETS_VERSION)
115
- Wx.message_box(msg, "About Minimal", Wx::OK|Wx::ICON_INFORMATION, self)
116
+ def on_about
117
+ msg = sprintf("This is the About dialog of the textctrl sample.\n" \
118
+ "Welcome to %s", Wx::WXWIDGETS_VERSION)
119
+ Wx.message_box(msg, "About Minimal", Wx::OK|Wx::ICON_INFORMATION, self)
120
+ end
116
121
  end
122
+
117
123
  end
118
124
 
119
125
  module TextCtrlSample
@@ -127,7 +133,7 @@ module TextCtrlSample
127
133
  end
128
134
 
129
135
  def self.activate
130
- frame = TextCtrlFrame.new( :title => "TextCtrl demonstration",
136
+ frame = TextCtrl::TextCtrlFrame.new( :title => "TextCtrl demonstration",
131
137
  :pos => [ 50, 50 ],
132
138
  :size => [ 450, 340 ] )
133
139
  frame.show