rwx 0.0.1.dev

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 (376) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +49 -0
  3. data/COPYING +0 -0
  4. data/README.rdoc +0 -0
  5. data/Rakefile +100 -0
  6. data/VERSION +1 -0
  7. data/ext/extconf.rb +112 -0
  8. data/ext/main.cpp +432 -0
  9. data/ext/main.hpp +454 -0
  10. data/ext/rwx.cpp +472 -0
  11. data/ext/wxAboutDlg.cpp +213 -0
  12. data/ext/wxAboutDlg.hpp +19 -0
  13. data/ext/wxAnyButton.cpp +141 -0
  14. data/ext/wxAnyButton.hpp +17 -0
  15. data/ext/wxAnyChoiceDialog.cpp +93 -0
  16. data/ext/wxAnyChoiceDialog.hpp +19 -0
  17. data/ext/wxApp.cpp +205 -0
  18. data/ext/wxApp.hpp +48 -0
  19. data/ext/wxAui.hpp +19 -0
  20. data/ext/wxAuiBook.cpp +453 -0
  21. data/ext/wxAuiBook.hpp +21 -0
  22. data/ext/wxAuiManager.cpp +79 -0
  23. data/ext/wxAuiManager.hpp +18 -0
  24. data/ext/wxAuiPane.cpp +343 -0
  25. data/ext/wxAuiPane.hpp +29 -0
  26. data/ext/wxAuiToolBar.cpp +47 -0
  27. data/ext/wxAuiToolBar.hpp +17 -0
  28. data/ext/wxBitmap.cpp +368 -0
  29. data/ext/wxBitmap.hpp +60 -0
  30. data/ext/wxBitmapButton.cpp +82 -0
  31. data/ext/wxBitmapButton.hpp +17 -0
  32. data/ext/wxBitmapComboBox.cpp +284 -0
  33. data/ext/wxBitmapComboBox.hpp +22 -0
  34. data/ext/wxBitmapToggleButton.cpp +82 -0
  35. data/ext/wxBitmapToggleButton.hpp +17 -0
  36. data/ext/wxBookCtrl.cpp +633 -0
  37. data/ext/wxBookCtrl.hpp +22 -0
  38. data/ext/wxBoxSizer.cpp +60 -0
  39. data/ext/wxBoxSizer.hpp +17 -0
  40. data/ext/wxBrush.cpp +281 -0
  41. data/ext/wxBrush.hpp +28 -0
  42. data/ext/wxButton.cpp +85 -0
  43. data/ext/wxButton.hpp +17 -0
  44. data/ext/wxButtonToolBar.cpp +54 -0
  45. data/ext/wxButtonToolBar.hpp +21 -0
  46. data/ext/wxCalendarCtrl.cpp +91 -0
  47. data/ext/wxCalendarCtrl.hpp +17 -0
  48. data/ext/wxCalendarCtrlBase.cpp +55 -0
  49. data/ext/wxCalendarCtrlBase.hpp +26 -0
  50. data/ext/wxCalendarCtrlGeneric.cpp +102 -0
  51. data/ext/wxCalendarCtrlGeneric.hpp +21 -0
  52. data/ext/wxCheckBox.cpp +157 -0
  53. data/ext/wxCheckBox.hpp +17 -0
  54. data/ext/wxCheckListBox.cpp +191 -0
  55. data/ext/wxCheckListBox.hpp +20 -0
  56. data/ext/wxChoice.cpp +133 -0
  57. data/ext/wxChoice.hpp +30 -0
  58. data/ext/wxChoiceBook.cpp +90 -0
  59. data/ext/wxChoiceBook.hpp +23 -0
  60. data/ext/wxCollapsiblePane.cpp +110 -0
  61. data/ext/wxCollapsiblePane.hpp +21 -0
  62. data/ext/wxColor.cpp +435 -0
  63. data/ext/wxColor.hpp +38 -0
  64. data/ext/wxColorDialog.cpp +97 -0
  65. data/ext/wxColorDialog.hpp +19 -0
  66. data/ext/wxColorPicker.cpp +131 -0
  67. data/ext/wxColorPicker.hpp +20 -0
  68. data/ext/wxColorPickerWidget.cpp +105 -0
  69. data/ext/wxColorPickerWidget.hpp +20 -0
  70. data/ext/wxComboBox.cpp +214 -0
  71. data/ext/wxComboBox.hpp +22 -0
  72. data/ext/wxCommandEvent.cpp +45 -0
  73. data/ext/wxCommandEvent.hpp +16 -0
  74. data/ext/wxConfig.cpp +19 -0
  75. data/ext/wxConfig.hpp +17 -0
  76. data/ext/wxContextHelpButton.cpp +93 -0
  77. data/ext/wxContextHelpButton.hpp +21 -0
  78. data/ext/wxControl.cpp +90 -0
  79. data/ext/wxControl.hpp +15 -0
  80. data/ext/wxCursor.cpp +108 -0
  81. data/ext/wxCursor.hpp +25 -0
  82. data/ext/wxDC.cpp +252 -0
  83. data/ext/wxDC.hpp +18 -0
  84. data/ext/wxDataView.cpp +224 -0
  85. data/ext/wxDataView.hpp +45 -0
  86. data/ext/wxDataViewList.cpp +190 -0
  87. data/ext/wxDataViewList.hpp +17 -0
  88. data/ext/wxDatePicker.cpp +103 -0
  89. data/ext/wxDatePicker.hpp +22 -0
  90. data/ext/wxDialog.cpp +120 -0
  91. data/ext/wxDialog.hpp +17 -0
  92. data/ext/wxDirDialog.cpp +152 -0
  93. data/ext/wxDirDialog.hpp +20 -0
  94. data/ext/wxDirPicker.cpp +134 -0
  95. data/ext/wxDirPicker.hpp +28 -0
  96. data/ext/wxDirPickerWidget.cpp +127 -0
  97. data/ext/wxDirPickerWidget.hpp +20 -0
  98. data/ext/wxError.cpp +67 -0
  99. data/ext/wxError.hpp +17 -0
  100. data/ext/wxEvent.cpp +60 -0
  101. data/ext/wxEvent.hpp +17 -0
  102. data/ext/wxEvtHandler.cpp +291 -0
  103. data/ext/wxEvtHandler.hpp +85 -0
  104. data/ext/wxFileCtrl.cpp +98 -0
  105. data/ext/wxFileCtrl.hpp +17 -0
  106. data/ext/wxFileCtrlBase.cpp +219 -0
  107. data/ext/wxFileCtrlBase.hpp +33 -0
  108. data/ext/wxFileCtrlGeneric.cpp +106 -0
  109. data/ext/wxFileCtrlGeneric.hpp +19 -0
  110. data/ext/wxFileDialog.cpp +268 -0
  111. data/ext/wxFileDialog.hpp +19 -0
  112. data/ext/wxFileDirPicker.cpp +89 -0
  113. data/ext/wxFileDirPicker.hpp +29 -0
  114. data/ext/wxFileHistory.cpp +134 -0
  115. data/ext/wxFileHistory.hpp +20 -0
  116. data/ext/wxFilePicker.cpp +160 -0
  117. data/ext/wxFilePicker.hpp +28 -0
  118. data/ext/wxFilePickerWidget.cpp +139 -0
  119. data/ext/wxFilePickerWidget.hpp +20 -0
  120. data/ext/wxFont.cpp +542 -0
  121. data/ext/wxFont.hpp +37 -0
  122. data/ext/wxFontDialog.cpp +143 -0
  123. data/ext/wxFontDialog.hpp +21 -0
  124. data/ext/wxFontPicker.cpp +160 -0
  125. data/ext/wxFontPicker.hpp +21 -0
  126. data/ext/wxFontPickerWidget.cpp +128 -0
  127. data/ext/wxFontPickerWidget.hpp +20 -0
  128. data/ext/wxFrame.cpp +274 -0
  129. data/ext/wxFrame.hpp +17 -0
  130. data/ext/wxGauge.cpp +167 -0
  131. data/ext/wxGauge.hpp +17 -0
  132. data/ext/wxGrid.cpp +250 -0
  133. data/ext/wxGrid.hpp +43 -0
  134. data/ext/wxGridCellAttr.cpp +68 -0
  135. data/ext/wxGridCellAttr.hpp +26 -0
  136. data/ext/wxGridCellRenderer.cpp +120 -0
  137. data/ext/wxGridCellRenderer.hpp +30 -0
  138. data/ext/wxGridTable.cpp +111 -0
  139. data/ext/wxGridTable.hpp +47 -0
  140. data/ext/wxHyperLink.cpp +148 -0
  141. data/ext/wxHyperLink.hpp +20 -0
  142. data/ext/wxImage.cpp +884 -0
  143. data/ext/wxImage.hpp +24 -0
  144. data/ext/wxInfoBar.cpp +85 -0
  145. data/ext/wxInfoBar.hpp +21 -0
  146. data/ext/wxInfoBarBase.cpp +145 -0
  147. data/ext/wxInfoBarBase.hpp +21 -0
  148. data/ext/wxInfoBarGeneric.cpp +90 -0
  149. data/ext/wxInfoBarGeneric.hpp +21 -0
  150. data/ext/wxItemContainer.cpp +313 -0
  151. data/ext/wxItemContainer.hpp +17 -0
  152. data/ext/wxKeyEvent.cpp +35 -0
  153. data/ext/wxKeyEvent.hpp +16 -0
  154. data/ext/wxListBook.cpp +90 -0
  155. data/ext/wxListBook.hpp +21 -0
  156. data/ext/wxListBox.cpp +290 -0
  157. data/ext/wxListBox.hpp +29 -0
  158. data/ext/wxMenu.cpp +600 -0
  159. data/ext/wxMenu.hpp +17 -0
  160. data/ext/wxMenuBar.cpp +180 -0
  161. data/ext/wxMenuBar.hpp +17 -0
  162. data/ext/wxMenuItem.cpp +174 -0
  163. data/ext/wxMenuItem.hpp +17 -0
  164. data/ext/wxMessageDialog.cpp +91 -0
  165. data/ext/wxMessageDialog.hpp +19 -0
  166. data/ext/wxMessageDialogBase.cpp +152 -0
  167. data/ext/wxMessageDialogBase.hpp +18 -0
  168. data/ext/wxMessageDialogGeneric.cpp +91 -0
  169. data/ext/wxMessageDialogGeneric.hpp +19 -0
  170. data/ext/wxMouseEvent.cpp +60 -0
  171. data/ext/wxMouseEvent.hpp +16 -0
  172. data/ext/wxMultiChoiceDialog.cpp +143 -0
  173. data/ext/wxMultiChoiceDialog.hpp +19 -0
  174. data/ext/wxNoteBook.cpp +89 -0
  175. data/ext/wxNoteBook.hpp +21 -0
  176. data/ext/wxNotifyEvent.cpp +45 -0
  177. data/ext/wxNotifyEvent.hpp +16 -0
  178. data/ext/wxNumberEntryDialog.cpp +131 -0
  179. data/ext/wxNumberEntryDialog.hpp +20 -0
  180. data/ext/wxPalette.cpp +214 -0
  181. data/ext/wxPalette.hpp +24 -0
  182. data/ext/wxPanel.cpp +77 -0
  183. data/ext/wxPanel.hpp +19 -0
  184. data/ext/wxPasswordEntryDialog.cpp +141 -0
  185. data/ext/wxPasswordEntryDialog.hpp +20 -0
  186. data/ext/wxPen.cpp +323 -0
  187. data/ext/wxPen.hpp +37 -0
  188. data/ext/wxPickerBase.cpp +121 -0
  189. data/ext/wxPickerBase.hpp +28 -0
  190. data/ext/wxPoint.cpp +224 -0
  191. data/ext/wxPoint.hpp +40 -0
  192. data/ext/wxPreferences.cpp +149 -0
  193. data/ext/wxPreferences.hpp +18 -0
  194. data/ext/wxProgressDialog.cpp +171 -0
  195. data/ext/wxProgressDialog.hpp +20 -0
  196. data/ext/wxProperty.cpp +723 -0
  197. data/ext/wxProperty.hpp +16 -0
  198. data/ext/wxPropertyCell.cpp +99 -0
  199. data/ext/wxPropertyCell.hpp +16 -0
  200. data/ext/wxPropertyGrid.cpp +234 -0
  201. data/ext/wxPropertyGrid.hpp +20 -0
  202. data/ext/wxPropertyGridInterface.cpp +146 -0
  203. data/ext/wxPropertyGridInterface.hpp +33 -0
  204. data/ext/wxPropertyGridManager.cpp +257 -0
  205. data/ext/wxPropertyGridManager.hpp +20 -0
  206. data/ext/wxPropertyGridPage.cpp +65 -0
  207. data/ext/wxPropertyGridPage.hpp +20 -0
  208. data/ext/wxRadioBox.cpp +405 -0
  209. data/ext/wxRadioBox.hpp +20 -0
  210. data/ext/wxRadioButton.cpp +107 -0
  211. data/ext/wxRadioButton.hpp +16 -0
  212. data/ext/wxRearrangeCtrl.cpp +89 -0
  213. data/ext/wxRearrangeCtrl.hpp +20 -0
  214. data/ext/wxRearrangeDialog.cpp +122 -0
  215. data/ext/wxRearrangeDialog.hpp +20 -0
  216. data/ext/wxRearrangeList.cpp +94 -0
  217. data/ext/wxRearrangeList.hpp +20 -0
  218. data/ext/wxRect.cpp +281 -0
  219. data/ext/wxRect.hpp +29 -0
  220. data/ext/wxRichMessageDialog.cpp +91 -0
  221. data/ext/wxRichMessageDialog.hpp +21 -0
  222. data/ext/wxRichTextAttr.cpp +69 -0
  223. data/ext/wxRichTextAttr.hpp +28 -0
  224. data/ext/wxRichTextCtrl.cpp +484 -0
  225. data/ext/wxRichTextCtrl.hpp +21 -0
  226. data/ext/wxRichTextStyle.cpp +86 -0
  227. data/ext/wxRichTextStyle.hpp +25 -0
  228. data/ext/wxRichTextStyleSheet.cpp +497 -0
  229. data/ext/wxRichTextStyleSheet.hpp +21 -0
  230. data/ext/wxSTC.cpp +331 -0
  231. data/ext/wxSTC.hpp +21 -0
  232. data/ext/wxScrollEvent.cpp +43 -0
  233. data/ext/wxScrollEvent.hpp +16 -0
  234. data/ext/wxSearchCtrl.cpp +189 -0
  235. data/ext/wxSearchCtrl.hpp +21 -0
  236. data/ext/wxSimpleBook.cpp +89 -0
  237. data/ext/wxSimpleBook.hpp +21 -0
  238. data/ext/wxSingleChoiceDialog.cpp +147 -0
  239. data/ext/wxSingleChoiceDialog.hpp +19 -0
  240. data/ext/wxSize.cpp +206 -0
  241. data/ext/wxSize.hpp +32 -0
  242. data/ext/wxSizer.cpp +368 -0
  243. data/ext/wxSizer.hpp +23 -0
  244. data/ext/wxSizerItem.cpp +37 -0
  245. data/ext/wxSizerItem.hpp +18 -0
  246. data/ext/wxSlider.cpp +204 -0
  247. data/ext/wxSlider.hpp +21 -0
  248. data/ext/wxSpinButton.cpp +158 -0
  249. data/ext/wxSpinButton.hpp +20 -0
  250. data/ext/wxSpinCtrl.cpp +132 -0
  251. data/ext/wxSpinCtrl.hpp +21 -0
  252. data/ext/wxStartUpTip.cpp +44 -0
  253. data/ext/wxStartUpTip.hpp +16 -0
  254. data/ext/wxStaticBitmap.cpp +79 -0
  255. data/ext/wxStaticBitmap.hpp +17 -0
  256. data/ext/wxStaticBitmapBase.cpp +46 -0
  257. data/ext/wxStaticBitmapBase.hpp +22 -0
  258. data/ext/wxStaticBitmapGeneric.cpp +82 -0
  259. data/ext/wxStaticBitmapGeneric.hpp +17 -0
  260. data/ext/wxStaticBox.cpp +92 -0
  261. data/ext/wxStaticBox.hpp +22 -0
  262. data/ext/wxStaticLine.cpp +100 -0
  263. data/ext/wxStaticLine.hpp +22 -0
  264. data/ext/wxStaticText.cpp +82 -0
  265. data/ext/wxStaticText.hpp +21 -0
  266. data/ext/wxStatusBar.cpp +417 -0
  267. data/ext/wxStatusBar.hpp +17 -0
  268. data/ext/wxStream.cpp +41 -0
  269. data/ext/wxStream.hpp +46 -0
  270. data/ext/wxTaskBar.cpp +104 -0
  271. data/ext/wxTaskBar.hpp +41 -0
  272. data/ext/wxTextArea.cpp +141 -0
  273. data/ext/wxTextArea.hpp +21 -0
  274. data/ext/wxTextAttr.cpp +320 -0
  275. data/ext/wxTextAttr.hpp +28 -0
  276. data/ext/wxTextCtrl.cpp +177 -0
  277. data/ext/wxTextCtrl.hpp +30 -0
  278. data/ext/wxTextEntry.cpp +248 -0
  279. data/ext/wxTextEntry.hpp +19 -0
  280. data/ext/wxTextEntryDialog.cpp +133 -0
  281. data/ext/wxTextEntryDialog.hpp +20 -0
  282. data/ext/wxTimePicker.cpp +105 -0
  283. data/ext/wxTimePicker.hpp +22 -0
  284. data/ext/wxTimer.cpp +106 -0
  285. data/ext/wxTimer.hpp +16 -0
  286. data/ext/wxToggleButton.cpp +96 -0
  287. data/ext/wxToggleButton.hpp +21 -0
  288. data/ext/wxToolBar.cpp +85 -0
  289. data/ext/wxToolBar.hpp +17 -0
  290. data/ext/wxToolBarBase.cpp +615 -0
  291. data/ext/wxToolBarBase.hpp +17 -0
  292. data/ext/wxToolBarTool.cpp +179 -0
  293. data/ext/wxToolBarTool.hpp +16 -0
  294. data/ext/wxToolBook.cpp +96 -0
  295. data/ext/wxToolBook.hpp +23 -0
  296. data/ext/wxToplevel.cpp +125 -0
  297. data/ext/wxToplevel.hpp +25 -0
  298. data/ext/wxTreeBook.cpp +240 -0
  299. data/ext/wxTreeBook.hpp +21 -0
  300. data/ext/wxTreeCtrl.cpp +443 -0
  301. data/ext/wxTreeCtrl.hpp +66 -0
  302. data/ext/wxVariant.cpp +65 -0
  303. data/ext/wxVariant.hpp +17 -0
  304. data/ext/wxWindow.cpp +980 -0
  305. data/ext/wxWindow.hpp +35 -0
  306. data/ext/wxWizard.cpp +321 -0
  307. data/ext/wxWizard.hpp +19 -0
  308. data/ext/wxWizardPage.cpp +137 -0
  309. data/ext/wxWizardPage.hpp +38 -0
  310. data/ext/wxXRC.cpp +48 -0
  311. data/ext/wxXRC.hpp +21 -0
  312. data/old_tests/button.rb +56 -0
  313. data/old_tests/file.png +0 -0
  314. data/old_tests/green.xpm +25 -0
  315. data/old_tests/new16x16.png +0 -0
  316. data/old_tests/project.xml +10 -0
  317. data/old_tests/propertygrid.rb +51 -0
  318. data/old_tests/red.xpm +25 -0
  319. data/old_tests/ruby32x32.png +0 -0
  320. data/old_tests/status.rb +45 -0
  321. data/old_tests/test.rb +580 -0
  322. data/old_tests/wizard.xrc +40 -0
  323. data/old_tests/xrc.rb +38 -0
  324. data/rwx.gemspec +43 -0
  325. data/samples/controls/controls.rb +143 -0
  326. data/samples/controls/icons/choice.bmp +0 -0
  327. data/samples/controls/icons/choice.xpm +27 -0
  328. data/samples/controls/icons/combo.bmp +0 -0
  329. data/samples/controls/icons/combo.xpm +27 -0
  330. data/samples/controls/icons/gauge.bmp +0 -0
  331. data/samples/controls/icons/gauge.xpm +27 -0
  332. data/samples/controls/icons/list.bmp +0 -0
  333. data/samples/controls/icons/list.xpm +27 -0
  334. data/samples/controls/icons/radio.bmp +0 -0
  335. data/samples/controls/icons/radio.xpm +27 -0
  336. data/samples/controls/icons/stattext.xpm +24 -0
  337. data/samples/controls/icons/text.bmp +0 -0
  338. data/samples/controls/icons/text.xpm +27 -0
  339. data/samples/dialog/dialog_sample.rb +227 -0
  340. data/samples/sample.xpm +44 -0
  341. data/samples/widgets/icons/bmpbtn.xpm +37 -0
  342. data/samples/widgets/icons/bmpcombobox.xpm +54 -0
  343. data/samples/widgets/icons/button.xpm +54 -0
  344. data/samples/widgets/icons/checkbox.xpm +54 -0
  345. data/samples/widgets/icons/choice.xpm +27 -0
  346. data/samples/widgets/icons/choicebk.xpm +54 -0
  347. data/samples/widgets/icons/clrpicker.xpm +193 -0
  348. data/samples/widgets/icons/combobox.xpm +54 -0
  349. data/samples/widgets/icons/datepick.xpm +200 -0
  350. data/samples/widgets/icons/dirctrl.xpm +54 -0
  351. data/samples/widgets/icons/dirpicker.xpm +213 -0
  352. data/samples/widgets/icons/filepicker.xpm +214 -0
  353. data/samples/widgets/icons/fontpicker.xpm +185 -0
  354. data/samples/widgets/icons/gauge.xpm +54 -0
  355. data/samples/widgets/icons/hyperlnk.xpm +54 -0
  356. data/samples/widgets/icons/listbook.xpm +54 -0
  357. data/samples/widgets/icons/listbox.xpm +54 -0
  358. data/samples/widgets/icons/notebook.xpm +54 -0
  359. data/samples/widgets/icons/odcombobox.xpm +54 -0
  360. data/samples/widgets/icons/radiobox.xpm +54 -0
  361. data/samples/widgets/icons/scrolbar.xpm +54 -0
  362. data/samples/widgets/icons/slider.xpm +54 -0
  363. data/samples/widgets/icons/spinbtn.xpm +40 -0
  364. data/samples/widgets/icons/statbmp.xpm +40 -0
  365. data/samples/widgets/icons/statbox.xpm +54 -0
  366. data/samples/widgets/icons/stattext.xpm +54 -0
  367. data/samples/widgets/icons/text.xpm +54 -0
  368. data/samples/widgets/icons/timepick.xpm +207 -0
  369. data/samples/widgets/icons/toggle.xpm +54 -0
  370. data/samples/widgets/pages/colorpicker.rb +66 -0
  371. data/samples/widgets/pages/common.rb +17 -0
  372. data/samples/widgets/widgets.rb +29 -0
  373. data/samples/xrc/samples.xrc +46 -0
  374. data/samples/xrc/xrc_sample.rb +59 -0
  375. data/test/test_color.rb +64 -0
  376. metadata +470 -0
@@ -0,0 +1,35 @@
1
+ /*
2
+ * wxWindow.hpp
3
+ *
4
+ * Created on: 04.02.2012
5
+ * Author: hanmac
6
+ */
7
+
8
+ #ifndef WXWINDOW_HPP_
9
+ #define WXWINDOW_HPP_
10
+
11
+
12
+ #include "wxEvtHandler.hpp"
13
+
14
+ #include "wxMenuBar.hpp"
15
+ #include "wxPanel.hpp"
16
+ #include "wxControl.hpp"
17
+ #include "wxToplevel.hpp"
18
+
19
+ extern VALUE rb_cWXWindow;
20
+ DLL_LOCAL void Init_WXWindow(VALUE rb_mWX);
21
+
22
+ VALUE wrapID(wxWindowID val);
23
+ wxWindowID unwrapID(const VALUE &val);
24
+ void registerID(const char *name,wxWindowID id);
25
+
26
+ #if wxUSE_TOOLTIPS
27
+ #include <wx/tooltip.h>
28
+
29
+ template <>
30
+ VALUE wrap< wxToolTip >(wxToolTip* window);
31
+ template <>
32
+ wxToolTip* unwrap< wxToolTip* >(const VALUE &vwindow);
33
+
34
+ #endif
35
+ #endif /* WXWINDOW_HPP_ */
@@ -0,0 +1,321 @@
1
+ /*
2
+ * wxWizard.cpp
3
+ *
4
+ * Created on: 06.04.2012
5
+ * Author: hanmac
6
+ */
7
+
8
+ #include "wxWizard.hpp"
9
+ #include "wxToplevel.hpp"
10
+ #include "wxNotifyEvent.hpp"
11
+
12
+ VALUE rb_cWXWizard;
13
+ VALUE rb_cWXWizardEvent;
14
+
15
+
16
+ #if wxUSE_WIZARDDLG
17
+
18
+ #define _self unwrap<wxWizard*>(self)
19
+
20
+ namespace RubyWX {
21
+ namespace Wizard {
22
+
23
+ macro_attr_con(PageSize,wxSize,!_self->IsRunning())
24
+
25
+ macro_attr(Bitmap,wxBitmap)
26
+
27
+ singlereturn(IsRunning)
28
+ singlereturn(GetCurrentPage)
29
+
30
+ APP_PROTECT(wxWizard)
31
+
32
+ /*
33
+ * call-seq:
34
+ * Wizard.new(parent, name, [options])
35
+ * Wizard.new(parent, [options])
36
+ *
37
+ * creates a new Wizard widget.
38
+ * ===Arguments
39
+ * * parent of this window or nil
40
+ *
41
+ * *options: Hash with possible options to set:
42
+ * * bitmap WX::Bitmap
43
+ *
44
+ */
45
+ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
46
+ {
47
+ VALUE parent,name,hash;
48
+ rb_scan_args(argc, argv, "11:",&parent,&name,&hash);
49
+ if(!_created && !rb_obj_is_kind_of(hash,rb_cString)){
50
+
51
+ wxWindowID id(wxID_ANY);
52
+ wxString title(wxEmptyString);
53
+ int style(wxDEFAULT_DIALOG_STYLE);
54
+ wxBitmap bitmap(wxNullBitmap);
55
+
56
+ if(rb_obj_is_kind_of(hash,rb_cHash))
57
+ {
58
+ set_hash_option(hash,"id",id,unwrapID);
59
+ set_hash_option(hash,"title",title);
60
+ set_hash_option(hash,"style",style);
61
+ set_hash_option(hash,"bitmap",bitmap);
62
+
63
+ TopLevel::set_style_flags(hash,style);
64
+ }
65
+
66
+ _self->Create(unwrap<wxWindow*>(parent),
67
+ id,title,bitmap,wxDefaultPosition,style
68
+ );
69
+
70
+ }
71
+ rb_call_super(argc,argv);
72
+
73
+ return self;
74
+ }
75
+
76
+
77
+
78
+ /*
79
+ * call-seq:
80
+ * show_page(page, forward = true) -> true/false
81
+ *
82
+ * shows the given page
83
+ * return false if the page change was canceled
84
+ * ===Arguments
85
+ * * page is WX::WizardPage
86
+ *
87
+ * ===Return value
88
+ * true/false
89
+ */
90
+ DLL_LOCAL VALUE _showPage(int argc,VALUE *argv,VALUE self)
91
+ {
92
+ VALUE page,goingForward;
93
+ rb_scan_args(argc, argv, "11",&page,&goingForward);
94
+ rb_check_frozen(self);
95
+
96
+ if(!nil_check(page,rb_cWXWizardPage,true))
97
+ return Qnil;
98
+
99
+ wxWizardPage* cpage = unwrap<wxWizardPage*>(page);
100
+
101
+ //prevent WX from raising stupid assert
102
+ if(cpage == _self->GetCurrentPage())
103
+ return Qnil;
104
+
105
+ bool forward(NIL_P(goingForward) ? true : RTEST(goingForward));
106
+ return wrap(_self->ShowPage(cpage,forward));
107
+ }
108
+
109
+ /*
110
+ * call-seq:
111
+ * run_wizard([page]) -> true/false
112
+ *
113
+ * starts the wizard with the given page or first page if nil
114
+ * return true if the wizard is finished, and false if the wizard is canceled
115
+ * ===Arguments
116
+ * * page is WX::WizardPage or nil
117
+ *
118
+ * ===Return value
119
+ * true/false
120
+ */
121
+ DLL_LOCAL VALUE _runWizard(int argc,VALUE *argv,VALUE self)
122
+ {
123
+ VALUE page;
124
+ wxWizardPage *wpage = NULL;
125
+
126
+ rb_scan_args(argc, argv, "01",&page);
127
+ rb_check_frozen(self);
128
+ if(NIL_P(page))
129
+ {
130
+ wxWindowList list = _self->GetChildren();
131
+ for(wxWindowList::const_iterator it = list.begin();it != list.end();++it)
132
+ if((wpage = wxDynamicCast(*it,wxWizardPage)) != NULL)
133
+ break;
134
+ if(!wpage)
135
+ {
136
+ rb_raise(rb_eIndexError,"can't find WizardPages inside Wizard.");
137
+ return Qnil;
138
+ }
139
+ }else
140
+ wpage = unwrap<wxWizardPage*>(page);
141
+
142
+ return wrap(_self->RunWizard(wpage));
143
+ }
144
+
145
+
146
+ /*
147
+ * call-seq:
148
+ * add_page([klass=WX::WizardPage],[**options]) [ {|page|} ] -> WX::WizardPage
149
+ *
150
+ * adds a new page into the wizard. this is a helper for klass.new(self,**options)
151
+ * ===Arguments
152
+ * * klass is a class inherited from WX::WizardPage or WX::WizardPage as default
153
+ * * page is WX::WizardPage or nil
154
+ *
155
+ * ===Return value
156
+ * WX::WizardPage
157
+ */
158
+ DLL_LOCAL VALUE _addPage(int argc,VALUE *argv,VALUE self)
159
+ {
160
+ VALUE obj,hash;
161
+ rb_scan_args(argc, argv, "01:",&obj,&hash);
162
+ rb_check_frozen(self);
163
+ if(NIL_P(obj))
164
+ obj = rb_cWXWizardPage;
165
+ if(rb_obj_is_kind_of(obj,rb_cHash))
166
+ {
167
+ hash = obj;
168
+ obj = rb_cWXWizardPage;
169
+ }
170
+ VALUE argv2[] = {self, hash };
171
+ VALUE result = rb_class_new_instance(2,argv2,obj);
172
+ return result;
173
+ }
174
+
175
+
176
+ /*
177
+ * call-seq:
178
+ * wizard.chain_pages([pages*]) -> self
179
+ * Wizard.chain_pages([pages*]) -> self
180
+ *
181
+ * does chain multiple wizard pages together with prev/next
182
+ * ===Arguments
183
+ * * pages [WX::WizardPage]
184
+ *
185
+ * ===Return value
186
+ * self
187
+ */
188
+ DLL_LOCAL VALUE _chainPages(int argc,VALUE *argv,VALUE self)
189
+ {
190
+ VALUE page1,page2,args;
191
+ rb_scan_args(argc, argv, "2*",&page1,&page2,&args);
192
+
193
+ if(!nil_check(page1,rb_cWXWizardPage,true))
194
+ return self;
195
+
196
+ for(int i = 0; i < argc - 1; ++i)
197
+ {
198
+ if(!nil_check(argv[i+1],rb_cWXWizardPage,true))
199
+ return self;
200
+
201
+ wxWizardPageSimple::Chain(
202
+ unwrap<RubyWizardPage*>(argv[i]),
203
+ unwrap<RubyWizardPage*>(argv[i+1])
204
+ );
205
+ }
206
+
207
+ return self;
208
+ }
209
+
210
+ namespace Event
211
+ {
212
+ #undef _self
213
+ #define _self unwrapTypedPtr<wxWizardEvent>(self,rb_cWXWizardEvent)
214
+
215
+ singlereturn(GetDirection)
216
+ singlereturn(GetPage)
217
+
218
+ }
219
+
220
+ }
221
+ }
222
+
223
+ #endif
224
+
225
+
226
+ /* Document-attr: bitmap
227
+ * the current shown bitmap. can be changed by pages. WX;;Bitmap
228
+ */
229
+
230
+ /* Document-attr: page_size
231
+ * the size of the current page, nil if wizard is not running. WX::Size
232
+ */
233
+
234
+
235
+ /* Document-method: current_page
236
+ * call-seq:
237
+ * current_page -> WX::WizardPage
238
+ *
239
+ * returns the current wizard page or nil.
240
+ * ===Return value
241
+ * WX::WizardPage
242
+ */
243
+
244
+ /* Document-method: running?
245
+ * call-seq:
246
+ * running? -> true/false
247
+ *
248
+ * returns true if the wizard is currently running.
249
+ * ===Return value
250
+ * true/false
251
+ */
252
+
253
+
254
+ /* Document-attr: direction
255
+ * returns the direction of the wizard event. true means forward
256
+ */
257
+ /* Document-attr: page
258
+ * returns the wizard page of the wizard event. WX::WizardPage
259
+ */
260
+
261
+ DLL_LOCAL void Init_WXWizard(VALUE rb_mWX)
262
+ {
263
+ #if 0
264
+ rb_mWX = rb_define_module("WX");
265
+ rb_cWXWindow = rb_define_class_under(rb_mWX,"Window",rb_cObject);
266
+
267
+ rb_cWXTopLevel = rb_define_class_under(rb_mWX,"TopLevel",rb_cWXWindow);
268
+ rb_cWXDialog = rb_define_class_under(rb_mWX,"Dialog",rb_cWXTopLevel);
269
+
270
+ rb_cWXEvent = rb_define_class_under(rb_mWX,"Event",rb_cObject);
271
+ rb_cWXCommandEvent = rb_define_class_under(rb_cWXEvent,"Command",rb_cWXEvent);
272
+ rb_cWXNotifyEvent = rb_define_class_under(rb_cWXEvent,"Notify",rb_cWXCommandEvent);
273
+
274
+ rb_define_attr(rb_cWXWizard, "bitmap",1,1);
275
+ rb_define_attr(rb_cWXWizard, "page_size",1,1);
276
+
277
+ rb_define_attr(rb_cWXWizardEvent, "direction",1,0);
278
+ rb_define_attr(rb_cWXWizardEvent, "page",1,0);
279
+
280
+ #endif
281
+
282
+ #if wxUSE_WIZARDDLG
283
+ using namespace RubyWX::Wizard;
284
+ rb_cWXWizard = rb_define_class_under(rb_mWX,"Wizard",rb_cWXDialog);
285
+ rb_define_alloc_func(rb_cWXWizard,_alloc);
286
+
287
+ rb_define_attr_method(rb_cWXWizard, "bitmap",_getBitmap,_setBitmap);
288
+ rb_define_attr_method(rb_cWXWizard, "page_size",_getPageSize,_setPageSize);
289
+
290
+ rb_define_method(rb_cWXWizard,"initialize",RUBY_METHOD_FUNC(_initialize),-1);
291
+
292
+ rb_define_method(rb_cWXWizard,"show_page",RUBY_METHOD_FUNC(_showPage),-1);
293
+
294
+ rb_define_method(rb_cWXWizard,"run_wizard",RUBY_METHOD_FUNC(_runWizard),-1);
295
+
296
+ rb_define_method(rb_cWXWizard,"running?",RUBY_METHOD_FUNC(_IsRunning),0);
297
+ rb_define_method(rb_cWXWizard,"current_page",RUBY_METHOD_FUNC(_GetCurrentPage),0);
298
+
299
+ rb_define_method(rb_cWXWizard,"add_page",RUBY_METHOD_FUNC(_addPage),-1);
300
+
301
+ rb_define_singleton_method(rb_cWXWizard,"chain_pages",RUBY_METHOD_FUNC(_chainPages),-1);
302
+
303
+ rb_define_method(rb_cWXWizard,"chain_pages",RUBY_METHOD_FUNC(_chainPages),-1);
304
+
305
+ registerInfo<wxWizard>(rb_cWXWizard);
306
+
307
+ rb_cWXWizardEvent = rb_define_class_under(rb_cWXEvent,"Wizard",rb_cWXNotifyEvent);
308
+
309
+ rb_define_method(rb_cWXWizardEvent,"direction",RUBY_METHOD_FUNC(Event::_GetDirection),0);
310
+ rb_define_method(rb_cWXWizardEvent,"page",RUBY_METHOD_FUNC(Event::_GetPage),0);
311
+
312
+ registerEventType("wizard_page_changed",wxEVT_WIZARD_PAGE_CHANGED,rb_cWXWizardEvent);
313
+ registerEventType("wizard_page_changing",wxEVT_WIZARD_PAGE_CHANGING,rb_cWXWizardEvent);
314
+ registerEventType("wizard_cancel",wxEVT_WIZARD_CANCEL,rb_cWXWizardEvent);
315
+ registerEventType("wizard_help",wxEVT_WIZARD_HELP,rb_cWXWizardEvent);
316
+ registerEventType("wizard_finished",wxEVT_WIZARD_FINISHED,rb_cWXWizardEvent);
317
+ registerEventType("wizard_page_shown",wxEVT_WIZARD_PAGE_SHOWN,rb_cWXWizardEvent);
318
+ registerEventType("wizard_before_page_changed",wxEVT_WIZARD_BEFORE_PAGE_CHANGED,rb_cWXWizardEvent);
319
+
320
+ #endif
321
+ }
@@ -0,0 +1,19 @@
1
+ /*
2
+ * wxWizard.hpp
3
+ *
4
+ * Created on: 06.04.2012
5
+ * Author: hanmac
6
+ */
7
+
8
+ #ifndef WXWIZARD_HPP_
9
+ #define WXWIZARD_HPP_
10
+
11
+ #include "wxDialog.hpp"
12
+
13
+ extern VALUE rb_cWXWizard;
14
+ DLL_LOCAL void Init_WXWizard(VALUE rb_mWX);
15
+
16
+ #if wxUSE_WIZARDDLG
17
+ #include <wx/wizard.h>
18
+ #endif
19
+ #endif /* WXWIZARD_HPP_ */
@@ -0,0 +1,137 @@
1
+ /*
2
+ * wxWizardPage.cpp
3
+ *
4
+ * Created on: 06.04.2012
5
+ * Author: hanmac
6
+ */
7
+
8
+
9
+ #include "wxWizardPage.hpp"
10
+
11
+ VALUE rb_cWXWizardPage;
12
+
13
+ #if wxUSE_WIZARDDLG
14
+
15
+ #define _self unwrap<RubyWizardPage*>(self)
16
+
17
+
18
+ RubyWizardPage::RubyWizardPage() : wxWizardPageSimple(),rubycall(false)
19
+ {
20
+ }
21
+
22
+ wxWizardPage* RubyWizardPage::GetPrev() const
23
+ {
24
+ VALUE self = static_cast<RubyClientData*>(GetClientObject())->mRuby;
25
+ if(!rubycall)
26
+ {
27
+ rubycall = true;
28
+ wxWizardPage* result = unwrap<wxWizardPage*>(rb_funcall(self,rb_intern("prev"),0));
29
+ rubycall = false;
30
+ return result;
31
+ }
32
+ return wxWizardPageSimple::GetPrev();
33
+ }
34
+
35
+ wxWizardPage* RubyWizardPage::GetNext() const
36
+ {
37
+ VALUE self = static_cast<RubyClientData*>(GetClientObject())->mRuby;
38
+ if(!rubycall)
39
+ {
40
+ rubycall = true;
41
+ wxWizardPage* result = unwrap<wxWizardPage*>(rb_funcall(self,rb_intern("next"),0));
42
+ rubycall = false;
43
+ return result;
44
+ }
45
+ return wxWizardPageSimple::GetNext();
46
+ }
47
+
48
+ template <>
49
+ wxWizardPage* unwrap<wxWizardPage*>(const VALUE &arg)
50
+ {
51
+ return unwrapTypedPtr<wxWizardPage>(arg,rb_cWXWizardPage);
52
+ }
53
+
54
+
55
+ namespace RubyWX {
56
+ namespace WizardPage {
57
+
58
+ macro_attr(Prev,wxWizardPage*)
59
+ macro_attr(Next,wxWizardPage*)
60
+ macro_attr(Bitmap,wxBitmap)
61
+
62
+ APP_PROTECT(RubyWizardPage)
63
+
64
+ /*
65
+ * call-seq:
66
+ * WizardPage.new(parent, name, [options])
67
+ * WizardPage.new(parent, [options])
68
+ *
69
+ * creates a new WizardPage widget.
70
+ * ===Arguments
71
+ * * parent of this window or nil
72
+ * * name is a String describing a resource in a loaded xrc
73
+ *
74
+ * *options: Hash with possible options to set
75
+ *
76
+ */
77
+ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
78
+ {
79
+ VALUE parent,name,hash;
80
+ rb_scan_args(argc, argv, "11:",&parent,&name,&hash);
81
+
82
+ if(!_created && !rb_obj_is_kind_of(name,rb_cString))
83
+ {
84
+ _self->Create(unwrap<wxWizard*>(parent));
85
+ }
86
+
87
+ rb_call_super(argc,argv);
88
+ return self;
89
+ }
90
+
91
+ }
92
+ }
93
+
94
+
95
+ #endif
96
+
97
+
98
+ /* Document-attr: next
99
+ * Get the page which should be shown when the user chooses the "Next" button. WX::WizardPage
100
+ */
101
+ /* Document-attr: prev
102
+ * Get the page which should be shown when the user chooses the "Back" button. WX::WizardPage
103
+ */
104
+ /* Document-attr: bitmap
105
+ * the font of the TextAttr, WX::Bitmap
106
+ */
107
+ DLL_LOCAL void Init_WXWizardPage(VALUE rb_mWX)
108
+ {
109
+ #if 0
110
+ rb_mWX = rb_define_module("WX");
111
+ rb_cWXWindow = rb_define_class_under(rb_mWX,"Window",rb_cObject);
112
+ rb_cWXPanel = rb_define_class_under(rb_mWX,"Panel",rb_cWXWindow);
113
+
114
+ rb_define_attr(rb_cWXWizardPage,"prev",1,1);
115
+ rb_define_attr(rb_cWXWizardPage,"next",1,1);
116
+
117
+ rb_define_attr(rb_cWXWizardPage,"bitmap",1,1);
118
+
119
+ #endif
120
+
121
+ #if wxUSE_WIZARDDLG
122
+ using namespace RubyWX::WizardPage;
123
+ rb_cWXWizardPage = rb_define_class_under(rb_mWX,"WizardPage",rb_cWXPanel);
124
+ rb_define_alloc_func(rb_cWXWizardPage,_alloc);
125
+
126
+ rb_define_method(rb_cWXWizardPage,"initialize",RUBY_METHOD_FUNC(_initialize),-1);
127
+
128
+ rb_define_attr_method(rb_cWXWizardPage,"prev",_getPrev,_setPrev);
129
+ rb_define_attr_method(rb_cWXWizardPage,"next",_getNext,_setNext);
130
+
131
+ rb_define_attr_method(rb_cWXWizardPage,"bitmap",_getBitmap,_setBitmap);
132
+
133
+ registerInfo<wxWizardPage>(rb_cWXWizardPage);
134
+ registerInfo<wxWizardPageSimple>(rb_cWXWizardPage);
135
+ registerInfo<RubyWizardPage>(rb_cWXWizardPage);
136
+ #endif
137
+ }