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,32 @@
1
+ /*
2
+ * wxSize.hpp
3
+ *
4
+ * Created on: 04.02.2012
5
+ * Author: hanmac
6
+ */
7
+
8
+ #ifndef WXSIZE_HPP_
9
+ #define WXSIZE_HPP_
10
+
11
+ #include "main.hpp"
12
+
13
+ extern VALUE rb_cWXSize;
14
+ void Init_WXSize(VALUE rb_mWX);
15
+
16
+ extern ID rwxID_width,rwxID_height;
17
+
18
+
19
+ template <>
20
+ VALUE wrap< wxSize >(wxSize *size );
21
+
22
+ template <>
23
+ bool is_wrapable< wxSize >(const VALUE &vsize);
24
+
25
+ template <>
26
+ wxSize unwrap< wxSize >(const VALUE &vsize);
27
+
28
+ bool check_negative_size(VALUE val, wxSize &size);
29
+ bool check_negative_size(const int &width, const int &height);
30
+ bool check_negative_size(const wxSize &size);
31
+
32
+ #endif /* WXSIZE_HPP_ */
@@ -0,0 +1,368 @@
1
+ /*
2
+ * wxSizer.cpp
3
+ *
4
+ * Created on: 20.03.2012
5
+ * Author: hanmac
6
+ */
7
+ #include "wxSizer.hpp"
8
+ #include "wxSizerItem.hpp"
9
+ #include "wxWindow.hpp"
10
+ #include "wxPoint.hpp"
11
+
12
+ #define _self unwrap<wxSizer*>(self)
13
+
14
+ VALUE rb_cWXSizer;
15
+
16
+ template <>
17
+ wxSizerFlags unwrap< wxSizerFlags >(const VALUE &hash)
18
+ {
19
+ wxSizerFlags result;
20
+ if(!rb_obj_is_kind_of(hash,rb_cHash))
21
+ return result;
22
+ VALUE val;
23
+
24
+ if(RTEST(rb_hash_aref(hash,ID2SYM(rb_intern("expand")))))
25
+ result.Expand();
26
+ if(RTEST(rb_hash_aref(hash,ID2SYM(rb_intern("border")))))
27
+ result.Border();
28
+ if(!NIL_P(val=rb_hash_aref(hash,ID2SYM(rb_intern("proportion")))))
29
+ result.Proportion(NUM2INT(val));
30
+ if(!NIL_P(val=rb_hash_aref(hash,ID2SYM(rb_intern("align")))))
31
+ {
32
+ if(SYMBOL_P(val))
33
+ {
34
+ if(SYM2ID(val) == rb_intern("left"))
35
+ result.Left();
36
+ if(SYM2ID(val) == rb_intern("right"))
37
+ result.Right();
38
+ if(SYM2ID(val) == rb_intern("bottom"))
39
+ result.Bottom();
40
+ if(SYM2ID(val) == rb_intern("top"))
41
+ result.Top();
42
+ if(SYM2ID(val) == rb_intern("center"))
43
+ result.Center();
44
+
45
+ }
46
+ }
47
+
48
+ return result;
49
+ }
50
+
51
+
52
+ template <>
53
+ wxSizer* unwrap<wxSizer*>(const VALUE &arg)
54
+ {
55
+ return unwrapTypedPtr<wxSizer>(arg,rb_cWXSizer);
56
+ }
57
+
58
+
59
+ namespace RubyWX {
60
+ namespace Sizer {
61
+
62
+ macro_attr(MinSize,wxSize)
63
+ singlereturn(GetSize)
64
+ singlereturn(GetPosition)
65
+
66
+ singlefunc(Layout)
67
+
68
+
69
+ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
70
+ {
71
+ VALUE args;
72
+ rb_scan_args(argc, argv, "*",&args);
73
+ //rb_call_super(argc,argv);
74
+ if(rb_block_given_p())
75
+ rb_yield(self);
76
+ return self;
77
+ }
78
+
79
+ /*
80
+ * call-seq:
81
+ * add(window, [options])
82
+ * add(sizer, [options])
83
+ * add(size, [options])
84
+ *
85
+ * adds a new WX::Sizer::Item
86
+ * ===Arguments
87
+ * * window is a WX::Window
88
+ * * sizer is a WX::Sizer
89
+ * * size is a WX::Size
90
+ *
91
+ * *options: Hash with possible options to set:
92
+ * * expand true/false says if the element should expand to the whole size
93
+ * * proportion Integer
94
+ * ===Return value
95
+ * WX::Sizer::Item
96
+ */
97
+ DLL_LOCAL VALUE _add(int argc,VALUE *argv,VALUE self)
98
+ {
99
+ VALUE obj,hash;
100
+ rb_scan_args(argc, argv, "11",&obj,&hash);
101
+
102
+ wxSizerFlags flags(unwrap<wxSizerFlags>(hash));
103
+ if(rb_obj_is_kind_of(obj, rb_cWXWindow))
104
+ {
105
+ return wrap(_self->Add(unwrap<wxWindow*>(obj),flags));
106
+ }else if(rb_obj_is_kind_of(obj, rb_cWXSizer))
107
+ {
108
+ return wrap(_self->Add(unwrap<wxSizer*>(obj),flags));
109
+ }else {
110
+ const wxSize &size = unwrap<wxSize>(obj);
111
+ return wrap(_self->Add(size.GetWidth(),size.GetHeight(),flags));
112
+ }
113
+ }
114
+
115
+
116
+ /*
117
+ * call-seq:
118
+ * add_spacer(size)
119
+ *
120
+ * adds a new spacer WX::Sizer::Item
121
+ * ===Arguments
122
+ * * size is a Integer
123
+ * ===Return value
124
+ * WX::Sizer::Item
125
+ */
126
+ DLL_LOCAL VALUE _add_spacer(VALUE self,VALUE size)
127
+ {
128
+ return wrap(_self->AddSpacer(NUM2INT(size)));
129
+ }
130
+
131
+ /*
132
+ * call-seq:
133
+ * add_stretch_spacer([prop])
134
+ *
135
+ * adds a new stretch spacer WX::Sizer::Item
136
+ * ===Arguments
137
+ * * prop is a Integer
138
+ * ===Return value
139
+ * WX::Sizer::Item
140
+ */
141
+ DLL_LOCAL VALUE _add_stretch_spacer(int argc,VALUE *argv,VALUE self)
142
+ {
143
+ VALUE prop;
144
+ rb_scan_args(argc, argv, "01",&prop);
145
+
146
+ return wrap(_self->AddStretchSpacer(NIL_P(prop) ? 1 : NUM2INT(prop)));
147
+ }
148
+
149
+
150
+ /*
151
+ * call-seq:
152
+ * insert(pos, window, [options])
153
+ * insert(pos, sizer, [options])
154
+ * insert(pos, size, [options])
155
+ *
156
+ * inserts a new WX::Sizer::Item into the given position.
157
+ * ===Arguments
158
+ * * pos is Integer
159
+ * * window is a WX::Window
160
+ * * sizer is a WX::Sizer
161
+ * * size is a WX::Size
162
+ *
163
+ * *options: Hash with possible options to set:
164
+ * * expand true/false says if the element should expand to the whole size
165
+ * * proportion Integer
166
+ * ===Return value
167
+ * WX::Sizer::Item
168
+ */
169
+ DLL_LOCAL VALUE _insert(int argc,VALUE *argv,VALUE self)
170
+ {
171
+ VALUE index,obj,hash;
172
+ rb_scan_args(argc, argv, "21",&index,&obj,&hash);
173
+
174
+ wxSizerFlags flags(unwrap<wxSizerFlags>(hash));
175
+
176
+ if(rb_obj_is_kind_of(obj, rb_cWXWindow))
177
+ return wrap(_self->Insert(NUM2INT(index),unwrap<wxWindow*>(obj),flags));
178
+ else if(rb_obj_is_kind_of(obj, rb_cWXSizer))
179
+ return wrap(_self->Insert(NUM2INT(index),unwrap<wxSizer*>(obj),flags));
180
+ else {
181
+ const wxSize &size = unwrap<wxSize>(obj);
182
+ return wrap(_self->Insert(NUM2INT(index),size.GetWidth(),size.GetHeight(),flags));
183
+ }
184
+ }
185
+
186
+ /*
187
+ * call-seq:
188
+ * insert_spacer(pos, size)
189
+ *
190
+ * inserts a new spacer WX::Sizer::Item into the given position.
191
+ * ===Arguments
192
+ * * pos is Integer
193
+ * * size is a Integer
194
+ * ===Return value
195
+ * WX::Sizer::Item
196
+ */
197
+ DLL_LOCAL VALUE _insert_spacer(VALUE self,VALUE idx,VALUE size)
198
+ {
199
+ return wrap(_self->InsertSpacer(NUM2UINT(idx),NUM2INT(size)));
200
+ }
201
+
202
+ /*
203
+ * call-seq:
204
+ * insert_stretch_spacer(pos,[prop])
205
+ *
206
+ * inserts a new stretch spacer WX::Sizer::Item
207
+ * ===Arguments
208
+ * * pos is Integer
209
+ * * prop is a Integer
210
+ * ===Return value
211
+ * WX::Sizer::Item
212
+ */
213
+ DLL_LOCAL VALUE _insert_stretch_spacer(int argc,VALUE *argv,VALUE self)
214
+ {
215
+ VALUE idx,prop;
216
+ rb_scan_args(argc, argv, "11",&idx,&prop);
217
+
218
+ return wrap(_self->InsertStretchSpacer(NUM2UINT(idx),NIL_P(prop) ? 1 : NUM2INT(prop)));
219
+ }
220
+
221
+
222
+ /*
223
+ * call-seq:
224
+ * prepend(window, [options])
225
+ * prepend(sizer, [options])
226
+ * prepend(size, [options])
227
+ *
228
+ * prepends a new WX::Sizer::Item
229
+ * ===Arguments
230
+ * * window is a WX::Window
231
+ * * sizer is a WX::Sizer
232
+ * * size is a WX::Size
233
+ *
234
+ * *options: Hash with possible options to set:
235
+ * * expand true/false says if the element should expand to the whole size
236
+ * * proportion Integer
237
+ * ===Return value
238
+ * WX::Sizer::Item
239
+ */
240
+ DLL_LOCAL VALUE _prepend(int argc,VALUE *argv,VALUE self)
241
+ {
242
+ VALUE obj,hash;
243
+ rb_scan_args(argc, argv, "11",&obj,&hash);
244
+
245
+ wxSizerFlags flags(unwrap<wxSizerFlags>(hash));
246
+
247
+ if(rb_obj_is_kind_of(obj, rb_cWXWindow))
248
+ return wrap(_self->Prepend(unwrap<wxWindow*>(obj),flags));
249
+ else if(rb_obj_is_kind_of(obj, rb_cWXSizer))
250
+ return wrap(_self->Prepend(unwrap<wxSizer*>(obj),flags));
251
+ else {
252
+ const wxSize &size = unwrap<wxSize>(obj);
253
+ return wrap(_self->Prepend(size.GetWidth(),size.GetHeight(),flags));
254
+ }
255
+ }
256
+
257
+ /*
258
+ * call-seq:
259
+ * prepend_spacer(size)
260
+ *
261
+ * prepend a new spacer WX::Sizer::Item
262
+ * ===Arguments
263
+ * * size is a Integer
264
+ * ===Return value
265
+ * WX::Sizer::Item
266
+ */
267
+ DLL_LOCAL VALUE _prepend_spacer(VALUE self,VALUE size)
268
+ {
269
+ return wrap(_self->PrependSpacer(NUM2INT(size)));
270
+ }
271
+
272
+ /*
273
+ * call-seq:
274
+ * prepend_stretch_spacer([prop])
275
+ *
276
+ * prepends a new stretch spacer WX::Sizer::Item
277
+ * ===Arguments
278
+ * * prop is a Integer
279
+ * ===Return value
280
+ * WX::Sizer::Item
281
+ */
282
+ DLL_LOCAL VALUE _prepend_stretch_spacer(int argc,VALUE *argv,VALUE self)
283
+ {
284
+ VALUE prop;
285
+ rb_scan_args(argc, argv, "01",&prop);
286
+
287
+ return wrap(_self->PrependStretchSpacer(NIL_P(prop) ? 1 : NUM2INT(prop)));
288
+ }
289
+
290
+
291
+
292
+ DLL_LOCAL VALUE _getItem(VALUE self,VALUE index)
293
+ {
294
+ int cidx = NUM2INT(index);
295
+ if(check_index(cidx,_self->GetItemCount()))
296
+ return wrap(_self->GetItem(cidx));
297
+ return Qnil;
298
+ }
299
+
300
+ DLL_LOCAL VALUE _each_size(VALUE self)
301
+ {
302
+ return UINT2NUM(_self->GetItemCount());
303
+ }
304
+
305
+
306
+ DLL_LOCAL VALUE _each(VALUE self)
307
+ {
308
+ RETURN_SIZED_ENUMERATOR(self,0,NULL,RUBY_METHOD_FUNC(_each_size));
309
+ std::size_t count(_self->GetItemCount());
310
+ for(std::size_t i = 0; i < count; ++i)
311
+ rb_yield(wrap(_self->GetItem(i)));
312
+ return self;
313
+ }
314
+
315
+
316
+ DLL_LOCAL VALUE _remove(VALUE self,VALUE index)
317
+ {
318
+ rb_check_frozen(self);
319
+ int cidx = NUM2INT(index);
320
+ if(check_index(cidx,_self->GetItemCount()))
321
+ return wrap(_self->Remove(cidx));
322
+ return Qnil;
323
+ }
324
+
325
+
326
+ }
327
+ }
328
+
329
+ DLL_LOCAL void Init_WXSizer(VALUE rb_mWX)
330
+ {
331
+ using namespace RubyWX::Sizer;
332
+ rb_cWXSizer = rb_define_class_under(rb_mWX,"Sizer",rb_cObject);
333
+ rb_undef_alloc_func(rb_cWXSizer);
334
+
335
+ rb_undef_method(rb_cWXSizer,"initialize_copy");
336
+ rb_undef_method(rb_cWXSizer,"_load");
337
+ rb_undef_method(rb_cWXSizer,"_dump");
338
+
339
+ rb_define_method(rb_cWXSizer,"initialize",RUBY_METHOD_FUNC(_initialize),-1);
340
+
341
+ rb_define_method(rb_cWXSizer,"size",RUBY_METHOD_FUNC(_GetSize),0);
342
+ rb_define_method(rb_cWXSizer,"position",RUBY_METHOD_FUNC(_GetPosition),0);
343
+
344
+ rb_define_method(rb_cWXSizer,"layout",RUBY_METHOD_FUNC(_Layout),0);
345
+
346
+ rb_define_method(rb_cWXSizer,"add",RUBY_METHOD_FUNC(_add),-1);
347
+ rb_define_method(rb_cWXSizer,"insert",RUBY_METHOD_FUNC(_insert),-1);
348
+ rb_define_method(rb_cWXSizer,"prepend",RUBY_METHOD_FUNC(_prepend),-1);
349
+
350
+ rb_define_method(rb_cWXSizer,"add_spacer",RUBY_METHOD_FUNC(_add_spacer),1);
351
+ rb_define_method(rb_cWXSizer,"insert_spacer",RUBY_METHOD_FUNC(_insert_spacer),2);
352
+ rb_define_method(rb_cWXSizer,"prepend_spacer",RUBY_METHOD_FUNC(_prepend_spacer),1);
353
+
354
+ rb_define_method(rb_cWXSizer,"add_stretch_spacer",RUBY_METHOD_FUNC(_add_stretch_spacer),-1);
355
+ rb_define_method(rb_cWXSizer,"insert_stretch_spacer",RUBY_METHOD_FUNC(_insert_stretch_spacer),-1);
356
+ rb_define_method(rb_cWXSizer,"prepend_stretch_spacer",RUBY_METHOD_FUNC(_prepend_stretch_spacer),-1);
357
+
358
+ rb_define_method(rb_cWXSizer,"[]",RUBY_METHOD_FUNC(_getItem),1);
359
+
360
+ rb_define_method(rb_cWXSizer,"each",RUBY_METHOD_FUNC(_each),0);
361
+ rb_include_module(rb_cWXSizer,rb_mEnumerable);
362
+
363
+ rb_define_method(rb_cWXSizer,"remove",RUBY_METHOD_FUNC(_remove),1);
364
+
365
+ registerInfo<wxSizer>(rb_cWXSizer);
366
+
367
+ }
368
+
@@ -0,0 +1,23 @@
1
+ /*
2
+ * wxSizer.hpp
3
+ *
4
+ * Created on: 20.03.2012
5
+ * Author: hanmac
6
+ */
7
+
8
+ #ifndef WXSIZER_HPP_
9
+ #define WXSIZER_HPP_
10
+
11
+ #include "wxBoxSizer.hpp"
12
+
13
+ extern VALUE rb_cWXSizer;
14
+
15
+ void Init_WXSizer(VALUE rb_mWX);
16
+
17
+ template <>
18
+ wxSizerFlags unwrap< wxSizerFlags >(const VALUE &hash);
19
+
20
+ template <>
21
+ wxSizer* unwrap<wxSizer*>(const VALUE &arg);
22
+
23
+ #endif /* WXSIZER_HPP_ */
@@ -0,0 +1,37 @@
1
+ /*
2
+ * wxSizerItem.cpp
3
+ *
4
+ * Created on: 27.03.2012
5
+ * Author: hanmac
6
+ */
7
+
8
+
9
+ #include "wxSizer.hpp"
10
+ #include "wxSizerItem.hpp"
11
+
12
+ #define _self unwrap<wxSizerItem*>(self)
13
+
14
+ VALUE rb_cWXSizerItem;
15
+
16
+ namespace RubyWX {
17
+ namespace SizerItem {
18
+
19
+
20
+ }
21
+ }
22
+
23
+
24
+
25
+ DLL_LOCAL void Init_WXSizerItem(VALUE rb_mWX)
26
+ {
27
+ using namespace RubyWX::SizerItem;
28
+ rb_cWXSizerItem = rb_define_class_under(rb_cWXSizer,"Item",rb_cObject);
29
+ rb_undef_alloc_func(rb_cWXSizerItem);
30
+
31
+ //rb_define_attr_method(rb_cWXSizerItem,"orientation",_getOrientation,_setOrientation);
32
+
33
+ registerInfo<wxSizerItem>(rb_cWXSizerItem);
34
+ }
35
+
36
+
37
+