wxruby 1.9.3-x86-linux

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 (226) hide show
  1. data/LICENSE +53 -0
  2. data/README +299 -0
  3. data/lib/wx.rb +42 -0
  4. data/lib/wx/accessors.rb +52 -0
  5. data/lib/wx/classes/app.rb +45 -0
  6. data/lib/wx/classes/artprovider.rb +31 -0
  7. data/lib/wx/classes/bitmap.rb +23 -0
  8. data/lib/wx/classes/checklistbox.rb +45 -0
  9. data/lib/wx/classes/choice.rb +4 -0
  10. data/lib/wx/classes/clientdc.rb +13 -0
  11. data/lib/wx/classes/clipboard.rb +16 -0
  12. data/lib/wx/classes/colour.rb +47 -0
  13. data/lib/wx/classes/combobox.rb +4 -0
  14. data/lib/wx/classes/commandevent.rb +7 -0
  15. data/lib/wx/classes/controlwithitems.rb +10 -0
  16. data/lib/wx/classes/event.rb +5 -0
  17. data/lib/wx/classes/evthandler.rb +894 -0
  18. data/lib/wx/classes/font.rb +118 -0
  19. data/lib/wx/classes/grid.rb +129 -0
  20. data/lib/wx/classes/helpcontroller.rb +5 -0
  21. data/lib/wx/classes/htmlhelpcontroller.rb +5 -0
  22. data/lib/wx/classes/htmlwindow.rb +6 -0
  23. data/lib/wx/classes/icon.rb +14 -0
  24. data/lib/wx/classes/image.rb +14 -0
  25. data/lib/wx/classes/listbox.rb +4 -0
  26. data/lib/wx/classes/listctrl.rb +21 -0
  27. data/lib/wx/classes/locale.rb +28 -0
  28. data/lib/wx/classes/mediactrl.rb +22 -0
  29. data/lib/wx/classes/menu.rb +62 -0
  30. data/lib/wx/classes/menuitem.rb +7 -0
  31. data/lib/wx/classes/object.rb +7 -0
  32. data/lib/wx/classes/paintdc.rb +12 -0
  33. data/lib/wx/classes/point.rb +48 -0
  34. data/lib/wx/classes/previewframe.rb +13 -0
  35. data/lib/wx/classes/rect.rb +5 -0
  36. data/lib/wx/classes/size.rb +49 -0
  37. data/lib/wx/classes/sound.rb +23 -0
  38. data/lib/wx/classes/styledtextctrl.rb +92 -0
  39. data/lib/wx/classes/textctrl.rb +14 -0
  40. data/lib/wx/classes/texturlevent.rb +6 -0
  41. data/lib/wx/classes/timer.rb +69 -0
  42. data/lib/wx/classes/treectrl.rb +44 -0
  43. data/lib/wx/classes/window.rb +49 -0
  44. data/lib/wx/classes/xmlresource.rb +16 -0
  45. data/lib/wx/keyword_ctors.rb +219 -0
  46. data/lib/wx/keyword_defs.rb +485 -0
  47. data/lib/wx/version.rb +3 -0
  48. data/lib/wxruby2.so +0 -0
  49. data/samples/SAMPLES-LICENSE.TXT +18 -0
  50. data/samples/aui/aui.rb +1360 -0
  51. data/samples/bigdemo/About.rbw +39 -0
  52. data/samples/bigdemo/ColorPanel.rbw +25 -0
  53. data/samples/bigdemo/GridSimple.rbw +80 -0
  54. data/samples/bigdemo/MDIDemo.rbw +59 -0
  55. data/samples/bigdemo/PopupMenu.rbw +151 -0
  56. data/samples/bigdemo/ShapedWindow.rbw +135 -0
  57. data/samples/bigdemo/Sizers.rbw +545 -0
  58. data/samples/bigdemo/bigdemo.rb +826 -0
  59. data/samples/bigdemo/demoTemplate.rbw +37 -0
  60. data/samples/bigdemo/helpfile.htb +0 -0
  61. data/samples/bigdemo/icons/Test 015.jpg +0 -0
  62. data/samples/bigdemo/icons/Test 015.png +0 -0
  63. data/samples/bigdemo/icons/choice.bmp +0 -0
  64. data/samples/bigdemo/icons/choice.xpm +27 -0
  65. data/samples/bigdemo/icons/combo.bmp +0 -0
  66. data/samples/bigdemo/icons/combo.xpm +27 -0
  67. data/samples/bigdemo/icons/copy.xpm +25 -0
  68. data/samples/bigdemo/icons/cut.xpm +24 -0
  69. data/samples/bigdemo/icons/gauge.bmp +0 -0
  70. data/samples/bigdemo/icons/gauge.xpm +27 -0
  71. data/samples/bigdemo/icons/help.xpm +25 -0
  72. data/samples/bigdemo/icons/list.bmp +0 -0
  73. data/samples/bigdemo/icons/list.xpm +27 -0
  74. data/samples/bigdemo/icons/mondrian.ico +0 -0
  75. data/samples/bigdemo/icons/mondrian.xpm +44 -0
  76. data/samples/bigdemo/icons/new.xpm +24 -0
  77. data/samples/bigdemo/icons/ogl.ico +0 -0
  78. data/samples/bigdemo/icons/ogl.xpm +45 -0
  79. data/samples/bigdemo/icons/open.xpm +26 -0
  80. data/samples/bigdemo/icons/paste.bmp +0 -0
  81. data/samples/bigdemo/icons/paste.xpm +38 -0
  82. data/samples/bigdemo/icons/pointy.png +0 -0
  83. data/samples/bigdemo/icons/preview.xpm +26 -0
  84. data/samples/bigdemo/icons/print.xpm +26 -0
  85. data/samples/bigdemo/icons/radio.bmp +0 -0
  86. data/samples/bigdemo/icons/radio.xpm +27 -0
  87. data/samples/bigdemo/icons/robert.xpm +415 -0
  88. data/samples/bigdemo/icons/ruby.png +0 -0
  89. data/samples/bigdemo/icons/sashtest.ico +0 -0
  90. data/samples/bigdemo/icons/save.xpm +25 -0
  91. data/samples/bigdemo/icons/smiles.bmp +0 -0
  92. data/samples/bigdemo/icons/smiles.xpm +39 -0
  93. data/samples/bigdemo/icons/smiley.ico +0 -0
  94. data/samples/bigdemo/icons/smiley.xpm +42 -0
  95. data/samples/bigdemo/icons/stattext.xpm +24 -0
  96. data/samples/bigdemo/icons/test2.bmp +0 -0
  97. data/samples/bigdemo/icons/test2.png +0 -0
  98. data/samples/bigdemo/icons/test2.xpm +79 -0
  99. data/samples/bigdemo/icons/text.bmp +0 -0
  100. data/samples/bigdemo/icons/text.xpm +27 -0
  101. data/samples/bigdemo/icons/tog1.bmp +0 -0
  102. data/samples/bigdemo/icons/tog1.xpm +38 -0
  103. data/samples/bigdemo/icons/tog2.bmp +0 -0
  104. data/samples/bigdemo/icons/tog2.xpm +38 -0
  105. data/samples/bigdemo/icons/wxwin.ico +0 -0
  106. data/samples/bigdemo/icons/wxwin16x16.png +0 -0
  107. data/samples/bigdemo/icons/wxwin16x16.xpm +25 -0
  108. data/samples/bigdemo/icons/wxwin32x32.png +0 -0
  109. data/samples/bigdemo/icons/wxwin48x48.png +0 -0
  110. data/samples/bigdemo/run.rb +94 -0
  111. data/samples/bigdemo/tips.txt +7 -0
  112. data/samples/bigdemo/utils.rb +12 -0
  113. data/samples/bigdemo/wxArtProvider.rbw +285 -0
  114. data/samples/bigdemo/wxBitmapButton.rbw +64 -0
  115. data/samples/bigdemo/wxButton.rbw +66 -0
  116. data/samples/bigdemo/wxCalendarCtrl.rbw +72 -0
  117. data/samples/bigdemo/wxCheckBox.rbw +52 -0
  118. data/samples/bigdemo/wxCheckListBox.rbw +77 -0
  119. data/samples/bigdemo/wxChoice.rbw +49 -0
  120. data/samples/bigdemo/wxChoicebook.rbw +80 -0
  121. data/samples/bigdemo/wxColourDialog.rbw +34 -0
  122. data/samples/bigdemo/wxComboBox.rbw +79 -0
  123. data/samples/bigdemo/wxCursor.rbw +140 -0
  124. data/samples/bigdemo/wxDialog.rbw +92 -0
  125. data/samples/bigdemo/wxDirDialog.rbw +32 -0
  126. data/samples/bigdemo/wxDragImage.rbw +74 -0
  127. data/samples/bigdemo/wxFileDialog.rbw +39 -0
  128. data/samples/bigdemo/wxFileDialog_Save.rbw +38 -0
  129. data/samples/bigdemo/wxFindReplaceDialog.rbw +85 -0
  130. data/samples/bigdemo/wxFontDialog.rbw +176 -0
  131. data/samples/bigdemo/wxFrame.rbw +55 -0
  132. data/samples/bigdemo/wxGauge.rbw +73 -0
  133. data/samples/bigdemo/wxGenericDirCtrl.rbw +78 -0
  134. data/samples/bigdemo/wxGrid.rbw +68 -0
  135. data/samples/bigdemo/wxHtmlHelpController.rbw +57 -0
  136. data/samples/bigdemo/wxListBox.rbw +142 -0
  137. data/samples/bigdemo/wxListCtrl_virtual.rbw +109 -0
  138. data/samples/bigdemo/wxMDIWindows.rbw +52 -0
  139. data/samples/bigdemo/wxMenu.rbw +238 -0
  140. data/samples/bigdemo/wxMessageDialog.rbw +30 -0
  141. data/samples/bigdemo/wxMiniFrame.rbw +74 -0
  142. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +34 -0
  143. data/samples/bigdemo/wxNotebook.rbw +138 -0
  144. data/samples/bigdemo/wxProgressDialog.rbw +45 -0
  145. data/samples/bigdemo/wxRadioBox.rbw +74 -0
  146. data/samples/bigdemo/wxRadioButton.rbw +127 -0
  147. data/samples/bigdemo/wxSashWindow.rbw +145 -0
  148. data/samples/bigdemo/wxScrolledMessageDialog.rbw +59 -0
  149. data/samples/bigdemo/wxScrolledWindow.rbw +201 -0
  150. data/samples/bigdemo/wxSingleChoiceDialog.rbw +35 -0
  151. data/samples/bigdemo/wxSlider.rbw +44 -0
  152. data/samples/bigdemo/wxSpinButton.rbw +52 -0
  153. data/samples/bigdemo/wxSpinCtrl.rbw +53 -0
  154. data/samples/bigdemo/wxSplitterWindow.rbw +65 -0
  155. data/samples/bigdemo/wxStaticBitmap.rbw +53 -0
  156. data/samples/bigdemo/wxStaticText.rbw +57 -0
  157. data/samples/bigdemo/wxStatusBar.rbw +128 -0
  158. data/samples/bigdemo/wxTextCtrl.rbw +151 -0
  159. data/samples/bigdemo/wxTextEntryDialog.rbw +34 -0
  160. data/samples/bigdemo/wxToggleButton.rbw +51 -0
  161. data/samples/bigdemo/wxToolBar.rbw +133 -0
  162. data/samples/bigdemo/wxTreeCtrl.rbw +192 -0
  163. data/samples/calendar/calendar.rb +275 -0
  164. data/samples/caret/caret.rb +286 -0
  165. data/samples/caret/mondrian.xpm +44 -0
  166. data/samples/controls/controls.rb +1140 -0
  167. data/samples/controls/get_item_sample.rb +87 -0
  168. data/samples/controls/icons/choice.xpm +27 -0
  169. data/samples/controls/icons/combo.xpm +27 -0
  170. data/samples/controls/icons/gauge.xpm +27 -0
  171. data/samples/controls/icons/list.xpm +27 -0
  172. data/samples/controls/icons/radio.xpm +27 -0
  173. data/samples/controls/icons/stattext.xpm +24 -0
  174. data/samples/controls/icons/text.xpm +27 -0
  175. data/samples/controls/mondrian.ico +0 -0
  176. data/samples/controls/mondrian.xpm +44 -0
  177. data/samples/controls/test2.bmp +0 -0
  178. data/samples/dialogs/dialogs.rb +724 -0
  179. data/samples/dialogs/tips.txt +18 -0
  180. data/samples/drawing/graphics_drawing.rb +232 -0
  181. data/samples/drawing/images.rb +48 -0
  182. data/samples/drawing/paperclip.png +0 -0
  183. data/samples/etc/activation.rb +108 -0
  184. data/samples/etc/choice.rb +72 -0
  185. data/samples/etc/miniframe.rb +84 -0
  186. data/samples/etc/sash.rb +135 -0
  187. data/samples/etc/scrollwin.rb +116 -0
  188. data/samples/etc/system_settings.rb +258 -0
  189. data/samples/etc/threaded.rb +81 -0
  190. data/samples/etc/wizard.rb +79 -0
  191. data/samples/event/event.rb +184 -0
  192. data/samples/grid/grid.rb +202 -0
  193. data/samples/html/html.rb +264 -0
  194. data/samples/listbook/listbook.rb +181 -0
  195. data/samples/listbook/listbook.xrc +370 -0
  196. data/samples/mdi/mdi.rb +87 -0
  197. data/samples/media/mediactrl.rb +173 -0
  198. data/samples/minimal/minimal.rb +85 -0
  199. data/samples/minimal/mondrian.ico +0 -0
  200. data/samples/minimal/mondrian.png +0 -0
  201. data/samples/minimal/nothing.rb +21 -0
  202. data/samples/opengl/cube.rb +123 -0
  203. data/samples/printing/mondrian.ico +0 -0
  204. data/samples/printing/mondrian.xpm +44 -0
  205. data/samples/printing/printing.rb +484 -0
  206. data/samples/sockets/SocketPackets.rb +27 -0
  207. data/samples/sockets/res/message-new.png +0 -0
  208. data/samples/sockets/res/user.png +0 -0
  209. data/samples/sockets/wxClient.rb +395 -0
  210. data/samples/sockets/wxServer.rb +422 -0
  211. data/samples/sockets/wxSocketGUI.rb +97 -0
  212. data/samples/text/mondrian.ico +0 -0
  213. data/samples/text/mondrian.xpm +44 -0
  214. data/samples/text/scintilla.rb +174 -0
  215. data/samples/text/textctrl.rb +124 -0
  216. data/samples/text/unicode.rb +238 -0
  217. data/samples/text/utf8.txt +15 -0
  218. data/samples/treectrl/icon1.xpm +79 -0
  219. data/samples/treectrl/icon2.xpm +53 -0
  220. data/samples/treectrl/icon3.xpm +79 -0
  221. data/samples/treectrl/icon4.xpm +43 -0
  222. data/samples/treectrl/icon5.xpm +79 -0
  223. data/samples/treectrl/treectrl.rb +1180 -0
  224. data/samples/xrc/samples.xrc +46 -0
  225. data/samples/xrc/xrc_sample.rb +107 -0
  226. metadata +303 -0
@@ -0,0 +1,118 @@
1
+ class Wx::Font
2
+ # String names of the constants provided by C++
3
+ # (enum is originally defined inc include/wx/fontenc.h)
4
+ ENCODING_NAMES = %w[
5
+ DEFAULT
6
+
7
+ ISO-8859-1
8
+ ISO-8859-2
9
+ ISO-8859-3
10
+ ISO-8859-4
11
+ ISO-8859-5
12
+ ISO-8859-6
13
+ ISO-8859-7
14
+ ISO-8859-8
15
+ ISO-8859-9
16
+ ISO-8859-10
17
+ ISO-8859-11
18
+ ISO-8859-12
19
+ ISO-8859-13
20
+ ISO-8859-14
21
+ ISO-8859-15
22
+ ISO-8859-MAX
23
+
24
+ KOI8
25
+ KOI8-U
26
+ ALTERNATIVE
27
+ BULGARIAN
28
+
29
+ CP437
30
+ CP850
31
+ CP852
32
+ CP855
33
+ CP866
34
+
35
+ CP874
36
+ CP932
37
+ CP936
38
+ CP949
39
+ CP950
40
+ CP1250
41
+ CP1251
42
+ CP1252
43
+ CP1253
44
+ CP1254
45
+ CP1255
46
+ CP1256
47
+ CP1257
48
+ CP12-MAX
49
+
50
+ UTF7
51
+ UTF8
52
+ EUC-JP
53
+ UTF16BE
54
+ UTF16LE
55
+ UTF32BE
56
+ UTF32LE
57
+
58
+ MACROMAN
59
+ MACJAPANESE
60
+ MACCHINESETRAD
61
+ MACKOREAN
62
+ MACARABIC
63
+ MACHEBREW
64
+ MACGREEK
65
+ MACCYRILLIC
66
+ MACDEVANAGARI
67
+ MACGURMUKHI
68
+ MACGUJARATI
69
+ MACORIYA
70
+ MACBENGALI
71
+ MACTAMIL
72
+ MACTELUGU
73
+ MACKANNADA
74
+ MACMALAJALAM
75
+ MACSINHALESE
76
+ MACBURMESE
77
+ MACKHMER
78
+ MACTHAI
79
+ MACLAOTIAN
80
+ MACGEORGIAN
81
+ MACARMENIAN
82
+ MACCHINESESIMP
83
+ MACTIBETAN
84
+ MACMONGOLIAN
85
+ MACETHIOPIC
86
+ MACCENTRALEUR
87
+ MACVIATNAMESE
88
+ MACARABICEXT
89
+ MACSYMBOL
90
+ MACDINGBATS
91
+ MACTURKISH
92
+ MACCROATIAN
93
+ MACICELANDIC
94
+ MACROMANIAN
95
+ MACCELTIC
96
+ MACGAELIC
97
+ MACKEYBOARD
98
+ MAX
99
+ ]
100
+
101
+ class << self
102
+ # Returns the name of the platform's default font encoding
103
+ def get_default_encoding_name
104
+ ENCODING_NAMES[ get_default_encoding ]
105
+ end
106
+
107
+ # Sets the default encoding to be +enc+, which may be the string
108
+ # name of an encoding (eg 'UTF8') or an internal WxWidgets flag
109
+ # (eg Wx::FONTENCODING_UTF8).
110
+ def set_default_encoding_name(enc)
111
+ if flag_int = ENCODING_NAMES.index(enc.upcase)
112
+ set_default_encoding(flag_int)
113
+ else
114
+ raise ArgumentError, "Unknown font encoding name '#{enc}'"
115
+ end
116
+ end
117
+ end
118
+ end
@@ -0,0 +1,129 @@
1
+ # A data-oriented editable table control.
2
+ class Wx::Grid
3
+ # The following extensions are all to prevent crashes associated with
4
+ # garbage collection of Grid-related classes; they do not extend the
5
+ # public functionality of the class in any way.
6
+ #
7
+ # The GridCellRenderers and GridCellEditors pose a problem for ruby's
8
+ # GC, in that Wx makes them owned by the grid once they have been set
9
+ # for a cell or group of cells. However, because they are SWIG
10
+ # directors we cannot allow the ruby object they are originally
11
+ # associated with to be swept by GC.
12
+ #
13
+ # The code below stores Ruby redefines all methods that may
14
+ # potentially set an Editor or Renderer, and stores a reference to
15
+ # it in an instance variable, so they are not disposed of up when GC sweeps.
16
+
17
+ # These all need to be set up as private methods which default to an
18
+ # array. This can't be done in initialize b/c that may not be called
19
+ # when a Grid is loaded from XRC
20
+ %w| __cell_editors __col_editors __row_editors
21
+ __cell_renderers __col_renderers __row_renderers |.each do | meth |
22
+ define_method(meth) do
23
+ instance_variable_get("@#{meth}") ||
24
+ instance_variable_set("@#{meth}", [])
25
+ end
26
+ private meth
27
+ end
28
+
29
+ # store default editor
30
+ wx_set_default_editor = self.instance_method(:set_default_editor)
31
+ define_method(:set_default_editor) do | editr |
32
+ wx_set_default_editor.bind(self).call(editr)
33
+ @__default_editor = editr
34
+ end
35
+
36
+ # store default renderer
37
+ wx_set_default_renderer = self.instance_method(:set_default_renderer)
38
+ define_method(:set_default_renderer) do | rendr |
39
+ wx_set_default_renderer.bind(self).call(rendr)
40
+ @__default_renderer = rendr
41
+ end
42
+
43
+ # store cell editors
44
+ wx_set_cell_editor = self.instance_method(:set_cell_editor)
45
+ define_method(:set_cell_editor) do | row, col, editr |
46
+ wx_set_cell_editor.bind(self).call(row, col, editr)
47
+ __cell_editors[row] ||= []
48
+ __cell_editors[row][col] = editr
49
+ end
50
+
51
+ # store cell renderer
52
+ wx_set_cell_renderer = self.instance_method(:set_cell_renderer)
53
+ define_method(:set_cell_renderer) do | row, col, rendr |
54
+ wx_set_cell_renderer.bind(self).call(row, col, rendr)
55
+ __cell_renderers[row] ||= []
56
+ __cell_renderers[row][col] = rendr
57
+ end
58
+
59
+ # Store an editor and/or renderer for a whole column
60
+ wx_set_col_attr = self.instance_method(:set_col_attr)
61
+ define_method(:set_col_attr) do | col, attr |
62
+ wx_set_col_attr.bind(self).call(col, attr)
63
+ if attr.has_editor
64
+ __col_editors[col] = attr.get_editor(self, 0, col)
65
+ end
66
+ if attr.has_renderer
67
+ __col_renderers[col] = attr.get_renderer(self, 0, col)
68
+ end
69
+ end
70
+
71
+ # Store an editor and/or renderer for a whole row
72
+ wx_set_row_attr = self.instance_method(:set_row_attr)
73
+ define_method(:set_row_attr) do | row, attr |
74
+ wx_set_row_attr.bind(self).call(row, attr)
75
+ if attr.has_editor
76
+ __row_editors[row] = attr.get_editor(self, row, 0)
77
+ end
78
+ if attr.has_renderer
79
+ __row_renderers[row] = attr.get_renderer(self, row, 0)
80
+ end
81
+ end
82
+
83
+ # This and the following methods do a bit of book-keeping - as rows
84
+ # and columns are deleted and inserted, the position of the columns
85
+ # and rows with stored editors and renderers may move.
86
+ alias :__insert_rows :insert_rows
87
+ def insert_rows(pos = 0, num = 1, update_labels = true)
88
+ __insert_rows(pos, num, update_labels)
89
+ num.times { __row_editors.insert(pos, nil) }
90
+ num.times { __row_renderers.insert(pos, nil) }
91
+ num.times { __cell_editors.insert(pos, []) }
92
+ num.times { __cell_renderers.insert(pos, []) }
93
+ end
94
+
95
+ alias :__insert_cols :insert_cols
96
+ def insert_cols(pos = 0, num = 1, update_labels = true)
97
+ __insert_cols(pos, num, update_labels)
98
+ num.times { __col_editors.insert(pos, nil) }
99
+ num.times { __col_renderers.insert(pos, nil) }
100
+ num.times do
101
+ __cell_editors.map { | col | col.insert(pos, []) if col }
102
+ end
103
+ num.times do
104
+ __cell_renderers.map { | col | col.insert(pos, []) if col }
105
+ end
106
+ end
107
+
108
+ alias :__delete_rows :delete_rows
109
+ def delete_rows(pos = 0, num = 1, update_labels = true)
110
+ __delete_rows(pos, num, update_labels)
111
+ __row_editors.slice!(pos, num)
112
+ __row_renderers.slice!(pos, num)
113
+ __cell_editors.slice!(pos, num)
114
+ __cell_renderers.slice!(pos, num)
115
+ end
116
+
117
+ alias :__delete_cols :delete_cols
118
+ def delete_cols(pos = 0, num = 1, update_labels = true)
119
+ __delete_cols(pos, num, update_labels)
120
+ __col_editors.slice!(pos, num)
121
+ __col_renderers.slice!(pos, num)
122
+ num.times do
123
+ __cell_editors.map { | col | col.slice!(pos, num) if col }
124
+ end
125
+ num.times do
126
+ __cell_renderers.map { | col | col.slice!(pos, num) if col }
127
+ end
128
+ end
129
+ end
@@ -0,0 +1,5 @@
1
+ class Wx::HelpController
2
+ def self.instance(*args)
3
+ @instance ||= new(*args)
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class Wx::HtmlHelpController
2
+ def self.instance(*args)
3
+ @instance ||= new(*args)
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ class Wx::HtmlWindow
2
+ # imitate the in-built LoadFile method
3
+ def load_file(file)
4
+ set_page( File.read(file) )
5
+ end
6
+ end
@@ -0,0 +1,14 @@
1
+ class Wx::Icon
2
+ # Redefine the initialize method so it raises an exception if a
3
+ # non-existent file is given to the constructor; otherwise, wx Widgets
4
+ # just carries on with an empty icon, which may cause faults later
5
+ wx_init = self.instance_method(:initialize)
6
+ define_method(:initialize) do | *args |
7
+ if args[0].kind_of? String
8
+ if not File.exist?( File.expand_path(args[0]) )
9
+ Kernel.raise(ArgumentError, "Icon file does not exist: #{args[0]}")
10
+ end
11
+ end
12
+ wx_init.bind(self).call(*args)
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ class Wx::Image
2
+ # Redefine the initialize method so it raises an exception if a
3
+ # non-existent file is given to the constructor; otherwise, wx Widgets
4
+ # just carries on with an invalid image, which may cause faults later
5
+ wx_init = self.instance_method(:initialize)
6
+ define_method(:initialize) do | *args |
7
+ if args[0].kind_of? String
8
+ if not File.exist?( File.expand_path(args[0]) )
9
+ Kernel.raise(ArgumentError, "Image file does not exist: #{args[0]}")
10
+ end
11
+ end
12
+ wx_init.bind(self).call(*args)
13
+ end
14
+ end
@@ -0,0 +1,4 @@
1
+ class Wx::ListBox
2
+ alias :get_item_data :get_client_data
3
+ alias :set_item_data :set_client_data
4
+ end
@@ -0,0 +1,21 @@
1
+ # Multi-item control with numerous possible view styles
2
+ class Wx::ListCtrl
3
+ # Make these ruby enumerables so find, find_all, map are available
4
+ include Enumerable
5
+ # Passes each valid item index into the passed block
6
+ def each
7
+ 0.upto(item_count - 1) { | i | yield i }
8
+ end
9
+
10
+ # Stub version for LC_VIRTUAL controls that does nothing; may be
11
+ # overridden in subclasses.
12
+ def on_get_item_attr(i)
13
+ nil
14
+ end
15
+
16
+ # Stub version for LC_VIRTUAL|LC_REPORT controls that does nothing;
17
+ # may be overridden in subclasses.
18
+ def on_get_item_column_image(i, col)
19
+ -1
20
+ end
21
+ end
@@ -0,0 +1,28 @@
1
+ class Wx::Locale
2
+ class << self
3
+ def get_system_language_name
4
+ get_language_name( get_system_language )
5
+ end
6
+
7
+ def get_system_encoding_name
8
+ Wx::Font::ENCODING_NAMES[ get_system_encoding ]
9
+ end
10
+
11
+ # Set the current locale by a name, canonical name, or Wx::LANGUAGE_
12
+ # constant; mainly here because it seems a bit strange in Ruby to
13
+ # have global side-effects in a constructor
14
+ def set_locale(locale)
15
+ if locale.kind_of?(Fixnum)
16
+ new(locale)
17
+ elsif locale.kind_of?(String) and lang_info = find_language_info(locale)
18
+ new(lang_info.language)
19
+ else
20
+ raise ArgumentError, "Unknown language #{locale}"
21
+ end
22
+ end
23
+ end
24
+
25
+ def get_language_name
26
+ self.class.get_language_name(get_language)
27
+ end
28
+ end
@@ -0,0 +1,22 @@
1
+ # Functionality here must be loaded first to add custom events
2
+ require 'wx/classes/evthandler'
3
+
4
+ # These event handlers should only be defined if MediaCtrl is actually
5
+ # available; some builds may not include it
6
+ if defined?(Wx::MediaCtrl)
7
+ evt_type = Wx::EvtHandler::EventType
8
+ mediactrl_event_types = [
9
+ evt_type['evt_media_finished', 1,
10
+ Wx::EVT_MEDIA_FINISHED,
11
+ Wx::MediaEvent],
12
+ evt_type['evt_media_stop', 1,
13
+ Wx::EVT_MEDIA_STOP,
14
+ Wx::MediaEvent],
15
+ evt_type['evt_media_loaded', 1,
16
+ Wx::EVT_MEDIA_LOADED,
17
+ Wx::MediaEvent]
18
+ ]
19
+ mediactrl_event_types.each do | ev_type |
20
+ Wx::EvtHandler.register_event_type(ev_type)
21
+ end
22
+ end
@@ -0,0 +1,62 @@
1
+ # A single labelled list within a drop-down menu, or a popup menu
2
+ class Wx::Menu
3
+
4
+ # In the standard WxWidgets API, the methods append, prepend, insert
5
+ # (and their variants) require a constant integer id as the identifier
6
+ # of the menu item. This is then used in event handling.
7
+ #
8
+ # In WxRuby the use of explicit ids can be avoided in most cases,
9
+ # being a most unruby-ish practice. So, by analogy with the general
10
+ # use of Wx::Window classes and event handlers, where the id is
11
+ # implicit in the constructor, and the window can be passed direct to
12
+ # the event handler setup method, the below sets up a similar facility
13
+ # for adding items to Wx::Menu.
14
+ #
15
+ # For all these methods, the only required argument is the string name
16
+ # of the menu item; a system-default id will be supplied if no
17
+ # explicit one is given. The return value of these methods in all
18
+ # cases is a Wx::MenuItem object, which can be passed directly as the
19
+ # first argument to an evt_menu handler.
20
+ def self.methods_with_optional_ids(*meth_names)
21
+ class_eval do
22
+ meth_names.each do | meth |
23
+ old_meth = instance_method(meth)
24
+ define_method(meth) do | *args |
25
+ case args.first
26
+ when Fixnum then old_meth.bind(self).call(*args)
27
+ when String then old_meth.bind(self).call(Wx::ID_ANY, *args)
28
+ when Wx::MenuItem then old_meth.bind(self).call(args.first)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+
35
+ # Create the optional-id methods
36
+ methods_with_optional_ids :append, :prepend,
37
+ :append_check_item, :prepend_check_item,
38
+ :append_radio_item, :prepend_radio_item
39
+
40
+ # This is much the same as above, except for insert and variants,
41
+ # which take an additional first argument, the position at which to
42
+ # insert the new item.
43
+ def self.methods_with_optional_ids_and_pos(*meth_names)
44
+ class_eval do
45
+ meth_names.each do | meth |
46
+ old_meth = instance_method(meth)
47
+ define_method(meth) do | pos, *args |
48
+ case args.first
49
+ when Fixnum then old_meth.bind(self).call(pos, *args)
50
+ when String then old_meth.bind(self).call(pos, Wx::ID_ANY, *args)
51
+ when Wx::MenuItem then old_meth.bind(self).call(pos, args.first)
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
57
+
58
+ # Create the optional-id methods
59
+ methods_with_optional_ids_and_pos :insert,
60
+ :insert_check_item,
61
+ :insert_radio_item
62
+ end
@@ -0,0 +1,7 @@
1
+ # An individual item within a frame or popup menu
2
+ class Wx::MenuItem
3
+ # Get the Wx id, not Ruby's deprecated Object#id
4
+ alias :id :get_id
5
+ # In case a more explicit option is preferred.
6
+ alias :wx_id :get_id
7
+ end