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,85 @@
1
+ /*
2
+ * wxEvtHandler.hpp
3
+ *
4
+ * Created on: 17.02.2012
5
+ * Author: hanmac
6
+ */
7
+
8
+ #ifndef WXEVTHANDLER_HPP_
9
+ #define WXEVTHANDLER_HPP_
10
+
11
+ #include "main.hpp"
12
+
13
+ #include "wxMenu.hpp"
14
+ #include "wxApp.hpp"
15
+ #include "wxWindow.hpp"
16
+ #include "wxEvent.hpp"
17
+ #include "wxCommandEvent.hpp"
18
+ #include "wxTaskBar.hpp"
19
+
20
+
21
+ #include "wxTimer.hpp"
22
+ #include "wxAui.hpp"
23
+
24
+ #include <wx/sharedptr.h>
25
+
26
+ DLL_LOCAL void registerEventType(const char *sym, wxEventType type,wxClassInfo *info);
27
+
28
+ template<typename T>
29
+ DLL_LOCAL void registerEventType(const char *sym, wxEventTypeTag<T> type,VALUE klass)
30
+ {
31
+ registerEventType(sym,type,wxCLASSINFO(T));
32
+ if(!NIL_P(klass))
33
+ registerInfo<T>(klass);
34
+ }
35
+ template<typename T>
36
+ DLL_LOCAL void registerEventType(const char *sym, wxEventTypeTag<T> type)
37
+ {
38
+ registerEventType(sym,type,Qnil);
39
+ }
40
+
41
+ DLL_LOCAL wxEventType unwrapEventType(VALUE type);
42
+ DLL_LOCAL VALUE wrapEventType(wxEventType type);
43
+
44
+
45
+ class RubyClientData : public wxClientData
46
+ {
47
+ public:
48
+ RubyClientData(VALUE obj);
49
+ ~RubyClientData();
50
+ VALUE mRuby;
51
+ };
52
+
53
+ class RubyFunctor
54
+ {
55
+ public:
56
+ RubyFunctor(VALUE obj);
57
+
58
+
59
+ void operator()( wxEvent & event );
60
+ #if wxUSE_GUI
61
+ void operator()( wxCommandEvent & event );
62
+ #endif
63
+ #if wxUSE_TIMER
64
+ void operator()( wxTimerEvent & event );
65
+ #endif
66
+ private:
67
+ wxSharedPtr<RubyClientData> ptr;
68
+ };
69
+
70
+
71
+ extern VALUE rb_mWXEvtHandler;
72
+ void Init_WXEvtHandler(VALUE rb_mWX);
73
+
74
+ template <>
75
+ wxEvtHandler* unwrap< wxEvtHandler* >(const VALUE &vhandler);
76
+
77
+ #define _created (_self->GetId() != wxID_ANY)
78
+
79
+
80
+ #if wxUSE_XRC
81
+ bool loadxrc(wxObject *self,VALUE name,wxWindow *parent);
82
+ #endif
83
+
84
+
85
+ #endif /* WXEVTHANDLER_HPP_ */
@@ -0,0 +1,98 @@
1
+ /*
2
+ * wxFileCtrl.cpp
3
+ *
4
+ * Created on: 16.03.2012
5
+ * Author: hanmac
6
+ */
7
+
8
+ #include "wxFileCtrl.hpp"
9
+
10
+ VALUE rb_cWXFileCtrl;
11
+
12
+ #if wxUSE_FILECTRL
13
+ #define _self unwrap<wxFileCtrl*>(self)
14
+
15
+ namespace RubyWX {
16
+ namespace FileCtrl {
17
+
18
+ APP_PROTECT(wxFileCtrl)
19
+
20
+ /*
21
+ * call-seq:
22
+ * FileCtrl.new(parent, name, [options])
23
+ * FileCtrl.new(parent, [options])
24
+ *
25
+ * creates a new FileCtrl widget.
26
+ * ===Arguments
27
+ * * parent of this window or nil
28
+ * * name is a String describing a resource in a loaded xrc
29
+ *
30
+ * *options: Hash with possible options to set:
31
+ * * default_wildcard String default WildCard
32
+ * * default_directory String default directory
33
+ * * default_filename String default filename
34
+ *
35
+ */
36
+ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
37
+ {
38
+ VALUE parent,name,hash;
39
+ rb_scan_args(argc, argv, "11:",&parent,&name,&hash);
40
+
41
+ if(!_created && !rb_obj_is_kind_of(name,rb_cString))
42
+ {
43
+ wxWindowID id(wxID_ANY);
44
+ int style(wxFC_DEFAULT_STYLE);
45
+
46
+ wxString defaultDirectory(wxEmptyString);
47
+ wxString defaultFilename(wxEmptyString);
48
+ wxString defaultWildCard(wxFileSelectorDefaultWildcardStr);
49
+
50
+ if(rb_obj_is_kind_of(hash,rb_cHash))
51
+ {
52
+ set_hash_option(hash,"id",id,unwrapID);
53
+ set_hash_option(hash,"style",style);
54
+
55
+ set_hash_option(hash,"default_directory",defaultDirectory);
56
+ set_hash_option(hash,"default_filename",defaultFilename);
57
+ set_hash_option(hash,"default_wildcard",defaultWildCard,unwrapWildCard);
58
+
59
+ FileCtrlBase::set_style_flags(hash,style);
60
+
61
+ }
62
+
63
+ _self->Create(unwrap<wxWindow*>(parent),id,defaultDirectory,defaultFilename,defaultWildCard,style);
64
+
65
+ }
66
+
67
+ rb_call_super(argc,argv);
68
+ return self;
69
+ }
70
+
71
+
72
+ }
73
+ }
74
+ #endif
75
+ DLL_LOCAL void Init_WXFileCtrl(VALUE rb_mWX)
76
+ {
77
+ #if 0
78
+ rb_mWX = rb_define_module("WX");
79
+ rb_cWXWindow = rb_define_class_under(rb_mWX,"Window",rb_cObject);
80
+
81
+ rb_cWXControl = rb_define_class_under(rb_mWX,"Control",rb_cWXWindow);
82
+ #endif
83
+
84
+ #if wxUSE_FILECTRL
85
+ using namespace RubyWX::FileCtrl;
86
+ rb_cWXFileCtrl = rb_define_class_under(rb_mWX,"FileCtrl",rb_cWXFileCtrlBase);
87
+ rb_define_alloc_func(rb_cWXFileCtrl,_alloc);
88
+
89
+ rb_define_method(rb_cWXFileCtrl,"initialize",RUBY_METHOD_FUNC(_initialize),-1);
90
+
91
+ registerInfo<wxFileCtrl>(rb_cWXFileCtrl);
92
+ #endif
93
+
94
+ }
95
+
96
+
97
+
98
+
@@ -0,0 +1,17 @@
1
+ /*
2
+ * wxFileCtrl.hpp
3
+ *
4
+ * Created on: 16.03.2012
5
+ * Author: hanmac
6
+ */
7
+
8
+ #ifndef WXFILECTRL_HPP_
9
+ #define WXFILECTRL_HPP_
10
+
11
+ #include "wxFileCtrlBase.hpp"
12
+
13
+ extern VALUE rb_cWXFileCtrl;
14
+
15
+ void Init_WXFileCtrl(VALUE rb_mWX);
16
+
17
+ #endif /* WXFILECTRL_HPP_ */
@@ -0,0 +1,219 @@
1
+ /*
2
+ * wxFileCtrlBase.cpp
3
+ *
4
+ * Created on: 07.05.2012
5
+ * Author: hanmac
6
+ */
7
+
8
+ #include "wxFileCtrlBase.hpp"
9
+ #include "wxCommandEvent.hpp"
10
+
11
+ VALUE rb_cWXFileCtrlBase,rb_cWXFileCtrlEvent;
12
+
13
+ wxString unwrapWildCard(const VALUE &val)
14
+ {
15
+ wxString wildcard(unwrap<wxString>(val));
16
+ wxArrayString wild,desc;
17
+
18
+ if(!wxParseCommonDialogsFilter(wildcard,wild,desc)){
19
+ rb_raise(rb_eArgError,"'%"PRIsVALUE"' is not a valid wildcard", val);
20
+ return wxEmptyString;
21
+ }
22
+ return wildcard;
23
+ }
24
+
25
+ bool check_filter_index(int& filter,const wxString& wildcard)
26
+ {
27
+ wxArrayString wild,desc;
28
+ return check_index(filter,wxParseCommonDialogsFilter(wildcard,wild,desc));
29
+ }
30
+
31
+ #if wxUSE_FILECTRL
32
+ template <>
33
+ wxFileCtrlBase* unwrap<wxFileCtrlBase*>(const VALUE &arg)
34
+ {
35
+ return unwrapTypedPtr<wxFileCtrlBase>(arg,rb_cWXFileCtrlBase);
36
+ }
37
+
38
+ #define _self unwrap<wxFileCtrlBase*>(self)
39
+
40
+ namespace RubyWX {
41
+ namespace FileCtrlBase {
42
+
43
+ macro_attr_with_func(Wildcard,wrap,unwrapWildCard)
44
+ macro_attr(Directory,wxString)
45
+ macro_attr(Filename,wxString)
46
+ macro_attr(Path,wxString)
47
+
48
+ singlereturn(GetFilterIndex)
49
+
50
+
51
+ void set_style_flags(VALUE hash,int& flags)
52
+ {
53
+
54
+ set_hash_flag_option(hash,"open",wxFC_OPEN,flags);
55
+ set_hash_flag_option(hash,"save",wxFC_SAVE,flags);
56
+ set_hash_flag_option(hash,"multiple",wxFC_MULTIPLE,flags);
57
+ set_hash_flag_option(hash,"no_show_hidden",wxFC_NOSHOWHIDDEN,flags);
58
+
59
+ }
60
+
61
+ VALUE _setFilterIndex(VALUE self,VALUE other)
62
+ {
63
+ rb_check_frozen(self);
64
+ int filter(NUM2INT(other));
65
+
66
+ if(check_filter_index(filter,_self->GetWildcard()))
67
+ _self->SetFilterIndex(filter);
68
+
69
+ return other;
70
+ }
71
+
72
+
73
+ /*
74
+ * call-seq:
75
+ * FileCtrlBase.new(parent, [options])
76
+ *
77
+ * creates a new FileCtrlBase widget.
78
+ * ===Arguments
79
+ * * parent of this window or nil
80
+ *
81
+ * *options: Hash with possible options to set:
82
+ * * wildcard String default WildCard
83
+ * * directory String default directory
84
+ * * filename String default filename
85
+ * * path String default path
86
+ *
87
+ */
88
+ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
89
+ {
90
+ VALUE parent,name,hash;
91
+ rb_scan_args(argc, argv, "11:",&parent,&name,&hash);
92
+
93
+ rb_call_super(argc,argv);
94
+ if(rb_obj_is_kind_of(hash,rb_cHash))
95
+ {
96
+ int filter;
97
+ VALUE temp;
98
+ set_option_func(wildcard,Wildcard,unwrapWildCard)
99
+ set_option(directory,Directory,wxString)
100
+ set_option(filename,Filename,wxString)
101
+ set_option(path,Path,wxString)
102
+
103
+ if(set_hash_option(hash,"filter_index",filter))
104
+ {
105
+ if(check_filter_index(filter,_self->GetWildcard()))
106
+ _self->SetFilterIndex(filter);
107
+ }
108
+ }
109
+ return self;
110
+ }
111
+
112
+ namespace Event
113
+ {
114
+ #undef _self
115
+ #define _self unwrap<wxFileCtrlEvent*>(self)
116
+
117
+ macro_attr(Directory,wxString)
118
+ macro_attr(Files,wxArrayString)
119
+ macro_attr(FilterIndex,int)
120
+
121
+ singlereturn(GetFile)
122
+
123
+ }
124
+
125
+ }
126
+ }
127
+ #endif
128
+
129
+ /* Document-attr: wildcard
130
+ * the wildcard of the FileCtrl. String, raise an ArgumentError if wildcard has wrong format
131
+ */
132
+ /* Document-attr: filter_index
133
+ * the filter_index of the FileCtrl.
134
+ * Can't be higher than filters in wildcard. Integer
135
+ */
136
+ /* Document-attr: directory
137
+ * the directory of the FileCtrl. String
138
+ */
139
+ /* Document-attr: filename
140
+ * the filename of the FileCtrl. String
141
+ */
142
+
143
+ /* Document-const: OPEN
144
+ * creates control in "open" mode
145
+ */
146
+ /* Document-const: SAVE
147
+ * creates control in "save" mode
148
+ */
149
+ /* Document-const: MULTIPLE
150
+ * allows to select multiple files
151
+ */
152
+ /* Document-const: NOSHOWHIDDEN
153
+ * hides files that are marked hidden.
154
+ */
155
+ /* Document-const: DEFAULT_STYLE
156
+ * default style for this control.
157
+ */
158
+
159
+ DLL_LOCAL void Init_WXFileCtrlBase(VALUE rb_mWX)
160
+ {
161
+ #if 0
162
+ rb_mWX = rb_define_module("WX");
163
+ rb_cWXWindow = rb_define_class_under(rb_mWX,"Window",rb_cObject);
164
+
165
+ rb_cWXControl = rb_define_class_under(rb_mWX,"Control",rb_cWXWindow);
166
+
167
+ rb_cWXEvent = rb_define_class_under(rb_mWX,"Event",rb_cObject);
168
+ rb_cWXCommandEvent = rb_define_class_under(rb_cWXEvent,"Command",rb_cWXEvent);
169
+
170
+ rb_define_attr(rb_cWXFileCtrlBase,"wildcard",1,1);
171
+ rb_define_attr(rb_cWXFileCtrlBase,"directory",1,1);
172
+ rb_define_attr(rb_cWXFileCtrlBase,"filename",1,1);
173
+ rb_define_attr(rb_cWXFileCtrlBase,"filter_index",1,1);
174
+
175
+ rb_define_attr(rb_cWXFileCtrlEvent,"directory",1,1);
176
+ rb_define_attr(rb_cWXFileCtrlEvent,"filter_index",1,1);
177
+
178
+ rb_define_attr(rb_cWXFileCtrlEvent,"files",1,1);
179
+
180
+ #endif
181
+
182
+ #if wxUSE_FILECTRL
183
+ using namespace RubyWX::FileCtrlBase;
184
+ rb_cWXFileCtrlBase = rb_define_class_under(rb_mWX,"FileCtrlBase",rb_cWXControl);
185
+ rb_undef_alloc_func(rb_cWXFileCtrlBase);
186
+
187
+ rb_define_method(rb_cWXFileCtrlBase,"initialize",RUBY_METHOD_FUNC(_initialize),-1);
188
+
189
+ rb_define_attr_method(rb_cWXFileCtrlBase,"wildcard",_getWildcard,_setWildcard);
190
+ rb_define_attr_method(rb_cWXFileCtrlBase,"directory",_getDirectory,_setDirectory);
191
+ rb_define_attr_method(rb_cWXFileCtrlBase,"filename",_getFilename,_setFilename);
192
+ rb_define_attr_method(rb_cWXFileCtrlBase,"filter_index",_GetFilterIndex,_setFilterIndex);
193
+
194
+ rb_define_const(rb_cWXFileCtrlBase,"OPEN",INT2NUM(wxFC_OPEN));
195
+ rb_define_const(rb_cWXFileCtrlBase,"SAVE",INT2NUM(wxFC_SAVE));
196
+ rb_define_const(rb_cWXFileCtrlBase,"MULTIPLE",INT2NUM(wxFC_MULTIPLE));
197
+ rb_define_const(rb_cWXFileCtrlBase,"NOSHOWHIDDEN",INT2NUM(wxFC_NOSHOWHIDDEN));
198
+
199
+ rb_define_const(rb_cWXFileCtrlBase,"DEFAULT_STYLE",INT2NUM(wxFC_DEFAULT_STYLE));
200
+
201
+
202
+ rb_cWXFileCtrlEvent = rb_define_class_under(rb_cWXEvent,"FileCtrl",rb_cWXCommandEvent);
203
+ registerEventType("filectrl_selectionchanged",wxEVT_FILECTRL_SELECTIONCHANGED,rb_cWXFileCtrlEvent);
204
+ registerEventType("filectrl_fileactivated",wxEVT_FILECTRL_FILEACTIVATED,rb_cWXFileCtrlEvent);
205
+ registerEventType("filectrl_folderchanged",wxEVT_FILECTRL_FOLDERCHANGED,rb_cWXFileCtrlEvent);
206
+ registerEventType("filectrl_filterchanged",wxEVT_FILECTRL_FILTERCHANGED,rb_cWXFileCtrlEvent);
207
+
208
+ rb_define_attr_method(rb_cWXFileCtrlEvent,"directory",Event::_getDirectory,Event::_setDirectory);
209
+ rb_define_attr_method(rb_cWXFileCtrlEvent,"filter_index",Event::_getFilterIndex,Event::_setFilterIndex);
210
+
211
+ rb_define_attr_method(rb_cWXFileCtrlEvent,"files",Event::_getFiles,Event::_setFiles);
212
+
213
+ registerType<wxFileCtrlBase>(rb_cWXFileCtrlBase);
214
+ #endif
215
+
216
+ }
217
+
218
+
219
+
@@ -0,0 +1,33 @@
1
+ /*
2
+ * wxFileCtrlBase.hpp
3
+ *
4
+ * Created on: 07.05.2012
5
+ * Author: hanmac
6
+ */
7
+
8
+ #ifndef WXFILECTRLBASE_HPP_
9
+ #define WXFILECTRLBASE_HPP_
10
+
11
+ #include "wxControl.hpp"
12
+
13
+ extern VALUE rb_cWXFileCtrlBase;
14
+
15
+ void Init_WXFileCtrlBase(VALUE rb_mWX);
16
+
17
+ wxString unwrapWildCard(const VALUE& val);
18
+ bool check_filter_index(int& filter,const wxString& wildcard);
19
+
20
+ #if wxUSE_FILECTRL
21
+ #include <wx/filectrl.h>
22
+ #endif
23
+
24
+
25
+ namespace RubyWX {
26
+ namespace FileCtrlBase {
27
+
28
+ void set_style_flags(VALUE hash,int& flags);
29
+
30
+ }
31
+ }
32
+
33
+ #endif /* WXFILECTRLBASE_HPP_ */