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,20 @@
1
+ /*
2
+ * wxFilePickerWidget.hpp
3
+ *
4
+ * Created on: 05.05.2014
5
+ * Author: hanmac
6
+ */
7
+
8
+ #ifndef WXFILEPICKERWIDGET_HPP_
9
+ #define WXFILEPICKERWIDGET_HPP_
10
+
11
+ #include "wxEvtHandler.hpp"
12
+
13
+ extern VALUE rb_cWXFilePickerWidget;
14
+
15
+ void Init_WXFilePickerWidget(VALUE rb_mWX);
16
+ #if wxUSE_FILEPICKERCTRL
17
+ #include <wx/filepicker.h>
18
+ #endif
19
+
20
+ #endif /* WXFILEPICKERWIDGET_HPP_ */
@@ -0,0 +1,542 @@
1
+ /*
2
+ * wxFont.cpp
3
+ *
4
+ * Created on: 28.02.2012
5
+ * Author: hanmac
6
+ */
7
+
8
+ #include "wxFont.hpp"
9
+ #include "wxApp.hpp"
10
+ #include "wxSize.hpp"
11
+
12
+ #define _self unwrap<wxFont*>(self)
13
+
14
+ VALUE rb_cWXFont;
15
+
16
+ typedef std::map<wxFontEncoding,VALUE> encodingholdertype;
17
+ encodingholdertype encodingholder;
18
+
19
+ typedef std::map<wxFont*,VALUE> fontlisttype;
20
+ fontlisttype fontlistholder;
21
+
22
+ template <>
23
+ wxFont unwrap< wxFont >(const VALUE &vfont)
24
+ {
25
+ return NIL_P(vfont) ? wxNullFont : *unwrap< wxFont* >(vfont);
26
+ }
27
+
28
+ #ifdef HAVE_RUBY_ENCODING_H
29
+ template <>
30
+ VALUE wrapenum< wxFontEncoding >(const wxFontEncoding &enc )
31
+ {
32
+ encodingholdertype::iterator it = encodingholder.find(enc);
33
+ if(it != encodingholder.end())
34
+ return it->second;
35
+ return Qnil;
36
+ }
37
+
38
+ template <>
39
+ wxFontEncoding unwrapenum< wxFontEncoding >(const VALUE &venc)
40
+ {
41
+ VALUE tmp = venc;
42
+ if(rb_obj_is_kind_of(tmp,rb_cString))
43
+ {
44
+ tmp = rb_enc_from_encoding(rb_enc_find(unwrap<char*>(tmp)));
45
+ }
46
+ for(encodingholdertype::iterator it = encodingholder.begin();it != encodingholder.end();++it)
47
+ {
48
+ if(it->second == tmp)
49
+ return it->first;
50
+ }
51
+ return wxFONTENCODING_DEFAULT;
52
+ }
53
+
54
+ void registerEnc(wxFontEncoding enc,const char* name)
55
+ {
56
+ encodingholder[enc]=rb_enc_from_encoding(rb_enc_find(name));
57
+ }
58
+ #endif
59
+
60
+ namespace RubyWX {
61
+ namespace Font {
62
+
63
+ APP_PROTECT(wxFont)
64
+
65
+ macro_attr(PointSize,int)
66
+ macro_attr(PixelSize,wxSize)
67
+ macro_attr_enum(Family,wxFontFamily)
68
+ macro_attr_enum(Style,wxFontStyle)
69
+ macro_attr_enum(Weight,wxFontWeight)
70
+ #ifdef HAVE_RUBY_ENCODING_H
71
+ macro_attr_enum(Encoding,wxFontEncoding)
72
+ #endif
73
+ macro_attr(Underlined,bool)
74
+ macro_attr(Strikethrough,bool)
75
+
76
+ macro_attr(FaceName,wxString)
77
+
78
+ void define_const()
79
+ {
80
+ if(rb_const_defined(rb_cWXFont,rb_intern("ITALIC")))
81
+ return;
82
+
83
+ rb_define_const(rb_cWXFont,"ITALIC",wrap(wxITALIC_FONT));
84
+ rb_define_const(rb_cWXFont,"NORMAL",wrap(wxNORMAL_FONT));
85
+ rb_define_const(rb_cWXFont,"SMALL",wrap(wxSMALL_FONT));
86
+ rb_define_const(rb_cWXFont,"SWISS",wrap(wxSWISS_FONT));
87
+ }
88
+
89
+ #define info_option(func,name,m) \
90
+ if(!NIL_P(tmp = rb_hash_aref(hash,ID2SYM(rb_intern(#name)))))\
91
+ val.func(m(tmp));
92
+
93
+ DLL_LOCAL wxFontInfo to_info(VALUE size,VALUE hash)
94
+ {
95
+ wxFontInfo val;
96
+
97
+ if(is_wrapable< wxSize >(size))
98
+ val = wxFontInfo(unwrap<wxSize>(size));
99
+ else
100
+ val = wxFontInfo(NUM2INT(size));
101
+
102
+ if(rb_obj_is_kind_of(hash,rb_cHash))
103
+ {
104
+ VALUE tmp;
105
+ info_option(Family,family,unwrapenum<wxFontFamily>)
106
+ info_option(FaceName,face_name,unwrap<wxString>)
107
+
108
+ info_option(Bold,bold,RTEST)
109
+ info_option(Light,light,RTEST)
110
+
111
+ info_option(Italic,italic,RTEST)
112
+ info_option(Slant,slant,RTEST)
113
+
114
+ info_option(AntiAliased,anti_aliased,RTEST)
115
+
116
+ info_option(Underlined,underlined,RTEST)
117
+ info_option(Strikethrough,strikethrough,RTEST)
118
+
119
+ #ifdef HAVE_RUBY_ENCODING_H
120
+ info_option(Encoding,encoding,unwrapenum<wxFontEncoding>)
121
+ #endif
122
+
123
+ }
124
+
125
+ return val;
126
+
127
+ }
128
+
129
+ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
130
+ {
131
+
132
+ VALUE size,hash;
133
+ rb_scan_args(argc, argv, "1:",&size,&hash);
134
+ //TODO: wx does not have 2-step constructor for wxFont from info
135
+ (*_self) = wxFont(to_info(size,hash));
136
+
137
+ // rb_call_super(argc,argv);
138
+ return self;
139
+ }
140
+
141
+ singlereturn(Smaller)
142
+ singlereturn(Larger)
143
+
144
+ singlereturn(Bold)
145
+ singlereturn(Italic)
146
+ singlereturn(Underlined)
147
+ singlereturn(Strikethrough)
148
+
149
+ singlefunc(MakeSmaller)
150
+ singlefunc(MakeLarger)
151
+
152
+ singlefunc(MakeBold)
153
+ singlefunc(MakeItalic)
154
+
155
+ singlefunc(MakeUnderlined)
156
+ singlefunc(MakeStrikethrough)
157
+
158
+ /*
159
+ * call-seq:
160
+ * marshal_dump -> Array
161
+ *
162
+ * Provides marshalling support for use by the Marshal library.
163
+ * ===Return value
164
+ * Array
165
+ */
166
+ DLL_LOCAL VALUE _marshal_dump(VALUE self)
167
+ {
168
+ VALUE ary = rb_ary_new();
169
+
170
+ rb_ary_push(ary,_getPointSize(self));
171
+ //rb_ary_push(ary,_getPixelSize(self));
172
+ rb_ary_push(ary,_getFamily(self));
173
+ rb_ary_push(ary,_getStyle(self));
174
+ rb_ary_push(ary,_getWeight(self));
175
+
176
+ rb_ary_push(ary,_getUnderlined(self));
177
+ rb_ary_push(ary,_getStrikethrough(self));
178
+
179
+ rb_ary_push(ary,_getFaceName(self));
180
+ #ifdef HAVE_RUBY_ENCODING_H
181
+ rb_ary_push(ary,_getEncoding(self));
182
+ #endif
183
+ return ary;
184
+ }
185
+
186
+ /*
187
+ * call-seq:
188
+ * marshal_load(array) -> nil
189
+ *
190
+ * Provides marshalling support for use by the Marshal library.
191
+ *
192
+ *
193
+ */
194
+ DLL_LOCAL VALUE _marshal_load(VALUE self,VALUE data)
195
+ {
196
+ _self->Create(
197
+ NUM2INT(RARRAY_AREF(data,0)),
198
+ unwrapenum<wxFontFamily>(RARRAY_AREF(data,1)),
199
+ unwrapenum<wxFontStyle>(RARRAY_AREF(data,2)),
200
+ unwrapenum<wxFontWeight>(RARRAY_AREF(data,3)),
201
+ RTEST(RARRAY_AREF(data,4)),
202
+ unwrap<wxString>(RARRAY_AREF(data,6)),
203
+ #ifdef HAVE_RUBY_ENCODING_H
204
+ unwrapenum<wxFontEncoding>(RARRAY_AREF(data,7))
205
+ #else
206
+ wxFONTENCODING_DEFAULT
207
+ #endif
208
+ );
209
+
210
+ _setStrikethrough(self,RARRAY_AREF(data,5));
211
+
212
+ return self;
213
+ }
214
+
215
+
216
+ DLL_LOCAL VALUE _compare(VALUE self,VALUE other)
217
+ {
218
+ return wrap((*_self) == unwrap<wxFont>(other));
219
+ }
220
+
221
+ DLL_LOCAL VALUE _to_s(VALUE self)
222
+ {
223
+ return wrap(wxToString(*_self));
224
+ }
225
+
226
+ DLL_LOCAL VALUE _class_get(int argc,VALUE *argv,VALUE self)
227
+ {
228
+
229
+ VALUE size,family,style,weight,underlined;
230
+ rb_scan_args(argc, argv, "41",&size,&family,&style,&weight,&underlined);
231
+ //TODO add refcounting
232
+ wxFont *font = wxTheFontList->FindOrCreateFont(
233
+ NUM2INT(size),
234
+ unwrapenum<wxFontFamily>(family),
235
+ unwrapenum<wxFontStyle>(style),
236
+ unwrapenum<wxFontWeight>(weight),
237
+ RTEST(underlined)
238
+ );
239
+
240
+ if(!font || !font->IsOk())
241
+ return Qnil;
242
+
243
+ //look in the FontList holder is font was already wrapped
244
+ fontlisttype::iterator it = fontlistholder.find(font);
245
+ if(it != fontlistholder.end()) {
246
+ return it->second;
247
+ } else {
248
+ //wrap wxFont pointer to ruby object
249
+ VALUE result = wrap(font);
250
+
251
+ //FontList objects should not be changed
252
+ rb_obj_freeze(result);
253
+ //Prevent FontList objects from been deleted
254
+ rwx_refobject(result);
255
+ //add wrapped font to the FontList holder to find it again
256
+ fontlistholder[font] = result;
257
+ return result;
258
+ }
259
+ }
260
+
261
+
262
+ }
263
+ }
264
+
265
+ /* Document-method: smaller
266
+ * call-seq:
267
+ * smaller -> Font
268
+ *
269
+ * returns new WX::Font which is 1/1.2 of the original size.
270
+ * ===Return value
271
+ * WX::Font
272
+ */
273
+
274
+ /* Document-method: larger
275
+ * call-seq:
276
+ * larger -> Font
277
+ *
278
+ * returns new WX::Font which is 1.2 times of the original size.
279
+ * ===Return value
280
+ * WX::Font
281
+ */
282
+
283
+ /* Document-method: to_bold
284
+ * call-seq:
285
+ * to_bold -> Font
286
+ *
287
+ * returns new WX::Font which is bold.
288
+ * ===Return value
289
+ * WX::Font
290
+ */
291
+
292
+ /* Document-method: to_italic
293
+ * call-seq:
294
+ * to_italic -> Font
295
+ *
296
+ * returns new WX::Font which is italic.
297
+ * ===Return value
298
+ * WX::Font
299
+ */
300
+
301
+ /* Document-method: to_underlined
302
+ * call-seq:
303
+ * to_underlined -> Font
304
+ *
305
+ * returns new WX::Font which is underlined.
306
+ * ===Return value
307
+ * WX::Font
308
+ */
309
+
310
+ /* Document-method: to_strikethrough
311
+ * call-seq:
312
+ * to_strikethrough -> Font
313
+ *
314
+ * returns new WX::Font which is strikethrough.
315
+ * ===Return value
316
+ * WX::Font
317
+ */
318
+
319
+
320
+ /* Document-method: smaller!
321
+ * call-seq:
322
+ * smaller! -> self
323
+ *
324
+ * makes this WX::Font 1/1.2 of the original size.
325
+ * ===Return value
326
+ * self
327
+ */
328
+
329
+ /* Document-method: larger!
330
+ * call-seq:
331
+ * larger! -> self
332
+ *
333
+ * makes this WX::Font 1.2 times of the original size.
334
+ * ===Return value
335
+ * self
336
+ */
337
+
338
+
339
+ /* Document-method: to_bold!
340
+ * call-seq:
341
+ * to_bold! -> self
342
+ *
343
+ * makes this WX::Font bold.
344
+ * ===Return value
345
+ * self
346
+ */
347
+
348
+ /* Document-method: to_italic!
349
+ * call-seq:
350
+ * to_italic! -> self
351
+ *
352
+ * makes this WX::Font italic.
353
+ * ===Return value
354
+ * self
355
+ */
356
+
357
+ /* Document-method: to_underlined!
358
+ * call-seq:
359
+ * to_underlined! -> self
360
+ *
361
+ * makes this WX::Font underlined.
362
+ * ===Return value
363
+ * self
364
+ */
365
+
366
+ /* Document-method: to_strikethrough!
367
+ * call-seq:
368
+ * to_strikethrough! -> self
369
+ *
370
+ * makes this WX::Font strikethrough.
371
+ * ===Return value
372
+ * self
373
+ */
374
+
375
+
376
+ /* Document-attr: point_size
377
+ * the point size of the Font, int
378
+ */
379
+ /* Document-attr: pixel_size
380
+ * the pixel size of the Font, WX::Size
381
+ */
382
+
383
+
384
+ /* Document-attr: family
385
+ * the family of the Font, Symbol
386
+ */
387
+ /* Document-attr: style
388
+ * the style of the Font, Symbol
389
+ */
390
+ /* Document-attr: weight
391
+ * the weight of the Font, Symbol
392
+ */
393
+ /* Document-attr: face_name
394
+ * the face name of the Font, Symbol
395
+ */
396
+
397
+ /* Document-attr: encoding
398
+ * the encoding of the Font, Encoding
399
+ */
400
+
401
+
402
+ /* Document-const: ITALIC
403
+ * predefined Font constant.
404
+ */
405
+ /* Document-const: NORMAL
406
+ * predefined Font constant.
407
+ */
408
+ /* Document-const: SMALL
409
+ * predefined Font constant.
410
+ */
411
+ /* Document-const: SWISS
412
+ * predefined Font constant.
413
+ */
414
+
415
+ DLL_LOCAL void Init_WXFont(VALUE rb_mWX)
416
+ {
417
+ #if 0
418
+ rb_define_attr(rb_cWXFont,"point_size",1,1);
419
+ rb_define_attr(rb_cWXFont,"pixel_size",1,1);
420
+
421
+ rb_define_attr(rb_cWXFont,"family",1,1);
422
+ rb_define_attr(rb_cWXFont,"style",1,1);
423
+ rb_define_attr(rb_cWXFont,"weight",1,1);
424
+ rb_define_attr(rb_cWXFont,"face_name",1,1);
425
+ rb_define_attr(rb_cWXFont,"encoding",1,1);
426
+
427
+ //can't defined before wxApp is initialized.
428
+ rb_define_const(rb_cWXFont,"ITALIC",wrap(wxITALIC_FONT));
429
+ rb_define_const(rb_cWXFont,"NORMAL",wrap(wxNORMAL_FONT));
430
+ rb_define_const(rb_cWXFont,"SMALL",wrap(wxSMALL_FONT));
431
+ rb_define_const(rb_cWXFont,"SWISS",wrap(wxSWISS_FONT));
432
+ #endif
433
+
434
+ using namespace RubyWX::Font;
435
+ rb_cWXFont = rb_define_class_under(rb_mWX,"Font",rb_cObject);
436
+ rb_define_alloc_func(rb_cWXFont,_alloc);
437
+
438
+ rb_define_method(rb_cWXFont,"initialize",RUBY_METHOD_FUNC(_initialize),-1);
439
+
440
+ rb_define_method(rb_cWXFont,"smaller",RUBY_METHOD_FUNC(_Smaller),0);
441
+ rb_define_method(rb_cWXFont,"larger",RUBY_METHOD_FUNC(_Larger),0);
442
+
443
+ rb_define_method(rb_cWXFont,"to_bold",RUBY_METHOD_FUNC(_Bold),0);
444
+ rb_define_method(rb_cWXFont,"to_italic",RUBY_METHOD_FUNC(_Italic),0);
445
+ rb_define_method(rb_cWXFont,"to_underlined",RUBY_METHOD_FUNC(_Underlined),0);
446
+ rb_define_method(rb_cWXFont,"to_strikethrough",RUBY_METHOD_FUNC(_Strikethrough),0);
447
+
448
+ rb_define_method(rb_cWXFont,"smaller!",RUBY_METHOD_FUNC(_MakeSmaller),0);
449
+ rb_define_method(rb_cWXFont,"larger!",RUBY_METHOD_FUNC(_MakeLarger),0);
450
+
451
+ rb_define_method(rb_cWXFont,"to_bold!",RUBY_METHOD_FUNC(_MakeBold),0);
452
+ rb_define_method(rb_cWXFont,"to_italic!",RUBY_METHOD_FUNC(_MakeItalic),0);
453
+ rb_define_method(rb_cWXFont,"to_underlined!",RUBY_METHOD_FUNC(_MakeUnderlined),0);
454
+ rb_define_method(rb_cWXFont,"to_strikethrough!",RUBY_METHOD_FUNC(_MakeStrikethrough),0);
455
+
456
+
457
+ rb_define_method(rb_cWXFont,"==",RUBY_METHOD_FUNC(_compare),1);
458
+
459
+ rb_define_method(rb_cWXFont,"to_s",RUBY_METHOD_FUNC(_to_s),0);
460
+
461
+ rb_define_attr_method(rb_cWXFont,"point_size",_getPointSize,_setPointSize);
462
+ rb_define_attr_method(rb_cWXFont,"pixel_size",_getPixelSize,_setPixelSize);
463
+
464
+ rb_define_attr_method(rb_cWXFont,"family",_getFamily,_setFamily);
465
+ rb_define_attr_method(rb_cWXFont,"style",_getStyle,_setStyle);
466
+ rb_define_attr_method(rb_cWXFont,"weight",_getWeight,_setWeight);
467
+ rb_define_attr_method(rb_cWXFont,"face_name",_getFaceName,_setFaceName);
468
+ #ifdef HAVE_RUBY_ENCODING_H
469
+ rb_define_attr_method(rb_cWXFont,"encoding",_getEncoding,_setEncoding);
470
+ #endif
471
+ rb_define_method(rb_cWXFont,"marshal_dump",RUBY_METHOD_FUNC(_marshal_dump),0);
472
+ rb_define_method(rb_cWXFont,"marshal_load",RUBY_METHOD_FUNC(_marshal_load),1);
473
+
474
+ rb_define_singleton_method(rb_cWXFont,"[]",RUBY_METHOD_FUNC(_class_get),-1);
475
+
476
+ registerInfo<wxFont>(rb_cWXFont);
477
+
478
+ registerEnum<wxFontWeight>("WX::FontWeight",wxFONTWEIGHT_NORMAL)
479
+ ->add(wxFONTWEIGHT_NORMAL,"normal")
480
+ ->add(wxFONTWEIGHT_LIGHT,"light")
481
+ ->add(wxFONTWEIGHT_BOLD,"bold");
482
+ registerEnum<wxFontStyle>("WX::FontStyle",wxFONTSTYLE_NORMAL)
483
+ ->add(wxFONTSTYLE_NORMAL,"normal")
484
+ ->add(wxFONTSTYLE_ITALIC,"italic")
485
+ ->add(wxFONTSTYLE_SLANT,"slant");
486
+ registerEnum<wxFontFamily>("WX::FontFamily",wxFONTFAMILY_DEFAULT)
487
+ ->add(wxFONTFAMILY_DEFAULT,"default")
488
+ ->add(wxFONTFAMILY_DECORATIVE,"decorative")
489
+ ->add(wxFONTFAMILY_ROMAN,"roman")
490
+ ->add(wxFONTFAMILY_SCRIPT,"script")
491
+ ->add(wxFONTFAMILY_SWISS,"swiss")
492
+ ->add(wxFONTFAMILY_MODERN,"modern")
493
+ ->add(wxFONTFAMILY_TELETYPE,"teletype");
494
+
495
+ #ifdef HAVE_RUBY_ENCODING_H
496
+ registerEnc(wxFONTENCODING_ISO8859_1,"ISO8859-1");
497
+ registerEnc(wxFONTENCODING_ISO8859_2,"ISO8859-2");
498
+ registerEnc(wxFONTENCODING_ISO8859_3,"ISO8859-3");
499
+ registerEnc(wxFONTENCODING_ISO8859_4,"ISO8859-4");
500
+ registerEnc(wxFONTENCODING_ISO8859_5,"ISO8859-5");
501
+ registerEnc(wxFONTENCODING_ISO8859_6,"ISO8859-6");
502
+ registerEnc(wxFONTENCODING_ISO8859_7,"ISO8859-7");
503
+ registerEnc(wxFONTENCODING_ISO8859_8,"ISO8859-8");
504
+ registerEnc(wxFONTENCODING_ISO8859_9,"ISO8859-9");
505
+ registerEnc(wxFONTENCODING_ISO8859_10,"ISO8859-10");
506
+ registerEnc(wxFONTENCODING_ISO8859_11,"ISO8859-11");
507
+ registerEnc(wxFONTENCODING_ISO8859_12,"ISO8859-12");
508
+ registerEnc(wxFONTENCODING_ISO8859_13,"ISO8859-13");
509
+ registerEnc(wxFONTENCODING_ISO8859_14,"ISO8859-14");
510
+ registerEnc(wxFONTENCODING_ISO8859_15,"ISO8859-15");
511
+
512
+ registerEnc(wxFONTENCODING_CP437,"CP437");
513
+ registerEnc(wxFONTENCODING_CP850,"CP850");
514
+ registerEnc(wxFONTENCODING_CP855,"CP855");
515
+ registerEnc(wxFONTENCODING_CP866,"CP866");
516
+
517
+ registerEnc(wxFONTENCODING_CP874,"CP874");
518
+ registerEnc(wxFONTENCODING_CP932,"CP932");
519
+ registerEnc(wxFONTENCODING_CP936,"CP936");
520
+ registerEnc(wxFONTENCODING_CP949,"CP949");
521
+ registerEnc(wxFONTENCODING_CP950,"CP945");
522
+ registerEnc(wxFONTENCODING_CP1250,"CP1250");
523
+ registerEnc(wxFONTENCODING_CP1251,"CP1251");
524
+ registerEnc(wxFONTENCODING_CP1252,"CP1252");
525
+ registerEnc(wxFONTENCODING_CP1253,"CP1253");
526
+ registerEnc(wxFONTENCODING_CP1254,"CP1254");
527
+ registerEnc(wxFONTENCODING_CP1255,"CP1255");
528
+ registerEnc(wxFONTENCODING_CP1256,"CP1256");
529
+ registerEnc(wxFONTENCODING_CP1257,"CP1257");
530
+ registerEnc(wxFONTENCODING_CP1258,"CP1258");
531
+ registerEnc(wxFONTENCODING_CP1361,"CP1361");
532
+
533
+ registerEnc(wxFONTENCODING_UTF7,"UTF-7");
534
+ registerEnc(wxFONTENCODING_UTF8,"UTF-8");
535
+ registerEnc(wxFONTENCODING_EUC_JP,"EUC-JP");
536
+
537
+ registerEnc(wxFONTENCODING_UTF16LE,"UTF-16LE");
538
+ registerEnc(wxFONTENCODING_UTF16BE,"UTF-16BE");
539
+ registerEnc(wxFONTENCODING_UTF32LE,"UTF-32LE");
540
+ registerEnc(wxFONTENCODING_UTF32BE,"UTF-32BE");
541
+ #endif
542
+ }