wxruby3 0.9.0.pre.beta.11-x64-mingw-ucrt → 0.9.0.pre.beta.13-x64-mingw-ucrt

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 (270) hide show
  1. checksums.yaml +4 -4
  2. data/INSTALL.md +85 -0
  3. data/README.md +2 -0
  4. data/assets/logo.png +0 -0
  5. data/assets/logo.svg +170 -0
  6. data/assets/logo.xcf +0 -0
  7. data/ext/wxbase32u_gcc_custom.dll +0 -0
  8. data/ext/wxbase32u_net_gcc_custom.dll +0 -0
  9. data/ext/wxbase32u_xml_gcc_custom.dll +0 -0
  10. data/ext/wxmsw32u_aui_gcc_custom.dll +0 -0
  11. data/ext/wxmsw32u_core_gcc_custom.dll +0 -0
  12. data/ext/wxmsw32u_gl_gcc_custom.dll +0 -0
  13. data/ext/wxmsw32u_html_gcc_custom.dll +0 -0
  14. data/ext/wxmsw32u_media_gcc_custom.dll +0 -0
  15. data/ext/wxmsw32u_propgrid_gcc_custom.dll +0 -0
  16. data/ext/wxmsw32u_qa_gcc_custom.dll +0 -0
  17. data/ext/wxmsw32u_ribbon_gcc_custom.dll +0 -0
  18. data/ext/wxmsw32u_richtext_gcc_custom.dll +0 -0
  19. data/ext/wxmsw32u_stc_gcc_custom.dll +0 -0
  20. data/ext/wxmsw32u_webview_gcc_custom.dll +0 -0
  21. data/ext/wxmsw32u_xrc_gcc_custom.dll +0 -0
  22. data/lib/wx/core/array_ext.rb +26 -0
  23. data/lib/wx/core/art_locator.rb +92 -0
  24. data/lib/wx/core/artprovider.rb +1 -1
  25. data/lib/wx/core/bitmap.rb +90 -53
  26. data/lib/wx/core/cursor.rb +12 -0
  27. data/lib/wx/core/dataformat.rb +3 -1
  28. data/lib/wx/core/dc.rb +76 -52
  29. data/lib/wx/core/enum.rb +4 -0
  30. data/lib/wx/core/event.rb +38 -5
  31. data/lib/wx/core/events/evt_list.rb +3 -2
  32. data/lib/wx/core/evthandler.rb +64 -23
  33. data/lib/wx/core/icon.rb +50 -35
  34. data/lib/wx/core/id_helper.rb +32 -0
  35. data/lib/wx/core/image.rb +63 -53
  36. data/lib/wx/core/point.rb +14 -0
  37. data/lib/wx/core/real_point.rb +15 -1
  38. data/lib/wx/core/rect.rb +42 -7
  39. data/lib/wx/core/region_iterator.rb +37 -0
  40. data/lib/wx/core/size.rb +20 -0
  41. data/lib/wx/core/window.rb +8 -31
  42. data/lib/wx/doc/array_ext.rb +27 -0
  43. data/lib/wx/doc/art_locator.rb +57 -0
  44. data/lib/wx/doc/bitmap.rb +27 -0
  45. data/lib/wx/doc/clipboard.rb +12 -0
  46. data/lib/wx/doc/const.rb +77 -0
  47. data/lib/wx/doc/cursor.rb +16 -0
  48. data/lib/wx/doc/data_object.rb +1 -2
  49. data/lib/wx/doc/dc.rb +63 -46
  50. data/lib/wx/doc/event.rb +24 -0
  51. data/lib/wx/doc/events.rb +14 -0
  52. data/lib/wx/doc/evthandler.rb +24 -3
  53. data/lib/wx/doc/extra/00_starting.md +1 -1
  54. data/lib/wx/doc/extra/06_geometry.md +10 -4
  55. data/lib/wx/doc/extra/10_art.md +105 -0
  56. data/lib/wx/doc/gc_dc.rb +21 -0
  57. data/lib/wx/doc/gdi_common.rb +122 -1
  58. data/lib/wx/doc/gen/about_dialog_info.rb +1 -4
  59. data/lib/wx/doc/gen/animation.rb +3 -3
  60. data/lib/wx/doc/gen/animation_ctrl.rb +4 -4
  61. data/lib/wx/doc/gen/any_button.rb +1 -1
  62. data/lib/wx/doc/gen/aui/aui_floating_frame.rb +1 -1
  63. data/lib/wx/doc/gen/aui/aui_manager.rb +2 -2
  64. data/lib/wx/doc/gen/aui/aui_mdi_child_frame.rb +3 -3
  65. data/lib/wx/doc/gen/aui/aui_mdi_parent_frame.rb +3 -3
  66. data/lib/wx/doc/gen/aui/aui_notebook.rb +2 -2
  67. data/lib/wx/doc/gen/aui/aui_tool_bar.rb +6 -6
  68. data/lib/wx/doc/gen/bitmap.rb +1 -1
  69. data/lib/wx/doc/gen/bitmap_button.rb +2 -2
  70. data/lib/wx/doc/gen/book_ctrl_base.rb +4 -4
  71. data/lib/wx/doc/gen/brush.rb +1 -1
  72. data/lib/wx/doc/gen/button.rb +2 -2
  73. data/lib/wx/doc/gen/calendar_ctrl.rb +3 -3
  74. data/lib/wx/doc/gen/calendar_date_attr.rb +1 -1
  75. data/lib/wx/doc/gen/check_box.rb +2 -2
  76. data/lib/wx/doc/gen/check_list_box.rb +3 -3
  77. data/lib/wx/doc/gen/choice.rb +2 -2
  78. data/lib/wx/doc/gen/choicebook.rb +2 -2
  79. data/lib/wx/doc/gen/collapsible_pane.rb +2 -2
  80. data/lib/wx/doc/gen/colour.rb +1 -3
  81. data/lib/wx/doc/gen/colour_dialog.rb +1 -2
  82. data/lib/wx/doc/gen/colour_picker_ctrl.rb +2 -2
  83. data/lib/wx/doc/gen/combo_box.rb +4 -4
  84. data/lib/wx/doc/gen/context_help_button.rb +1 -1
  85. data/lib/wx/doc/gen/control.rb +3 -3
  86. data/lib/wx/doc/gen/core.rb +2 -2
  87. data/lib/wx/doc/gen/data_format.rb +1 -1
  88. data/lib/wx/doc/gen/data_object.rb +6 -6
  89. data/lib/wx/doc/gen/date_picker_ctrl.rb +2 -2
  90. data/lib/wx/doc/gen/dc.rb +9 -9
  91. data/lib/wx/doc/gen/defs.rb +0 -4
  92. data/lib/wx/doc/gen/dialog.rb +3 -3
  93. data/lib/wx/doc/gen/dir_dialog.rb +2 -4
  94. data/lib/wx/doc/gen/dir_filter_list_ctrl.rb +2 -2
  95. data/lib/wx/doc/gen/dir_picker_ctrl.rb +2 -2
  96. data/lib/wx/doc/gen/drag_drop.rb +13 -1
  97. data/lib/wx/doc/gen/editable_list_box.rb +2 -2
  98. data/lib/wx/doc/gen/event.rb +0 -1
  99. data/lib/wx/doc/gen/event_list.rb +18 -16
  100. data/lib/wx/doc/gen/events.rb +87 -2
  101. data/lib/wx/doc/gen/ext_help_controller.rb +2 -2
  102. data/lib/wx/doc/gen/file_dialog.rb +1 -1
  103. data/lib/wx/doc/gen/file_picker_ctrl.rb +2 -2
  104. data/lib/wx/doc/gen/font.rb +6 -6
  105. data/lib/wx/doc/gen/font_dialog.rb +1 -2
  106. data/lib/wx/doc/gen/font_picker_ctrl.rb +2 -2
  107. data/lib/wx/doc/gen/frame.rb +5 -5
  108. data/lib/wx/doc/gen/fs_file.rb +2 -2
  109. data/lib/wx/doc/gen/gauge.rb +2 -2
  110. data/lib/wx/doc/gen/gdi_common.rb +18 -21
  111. data/lib/wx/doc/gen/generic_dir_ctrl.rb +2 -2
  112. data/lib/wx/doc/gen/graphics_context.rb +4 -4
  113. data/lib/wx/doc/gen/graphics_object.rb +2 -2
  114. data/lib/wx/doc/gen/grid/grid_cell_bool_editor.rb +1 -1
  115. data/lib/wx/doc/gen/grid/grid_cell_date_time_renderer.rb +1 -1
  116. data/lib/wx/doc/gen/grid/grid_cell_enum_editor.rb +1 -1
  117. data/lib/wx/doc/gen/grid/grid_cell_enum_renderer.rb +1 -1
  118. data/lib/wx/doc/gen/grid/grid_cell_float_editor.rb +1 -1
  119. data/lib/wx/doc/gen/grid/grid_cell_float_renderer.rb +1 -1
  120. data/lib/wx/doc/gen/grid/grid_ctrl.rb +7 -7
  121. data/lib/wx/doc/gen/help_controller.rb +1 -1
  122. data/lib/wx/doc/gen/html/html_cell.rb +4 -4
  123. data/lib/wx/doc/gen/html/html_easy_printing.rb +6 -6
  124. data/lib/wx/doc/gen/html/html_help_controller.rb +6 -6
  125. data/lib/wx/doc/gen/html/html_help_frame.rb +2 -2
  126. data/lib/wx/doc/gen/html/html_help_window.rb +6 -6
  127. data/lib/wx/doc/gen/html/html_list_box.rb +6 -6
  128. data/lib/wx/doc/gen/html/html_printout.rb +4 -4
  129. data/lib/wx/doc/gen/html/html_window.rb +4 -4
  130. data/lib/wx/doc/gen/icon.rb +6 -6
  131. data/lib/wx/doc/gen/image.rb +7 -7
  132. data/lib/wx/doc/gen/list_box.rb +4 -4
  133. data/lib/wx/doc/gen/list_ctrl.rb +5 -5
  134. data/lib/wx/doc/gen/listbook.rb +2 -2
  135. data/lib/wx/doc/gen/locale.rb +8 -8
  136. data/lib/wx/doc/gen/log.rb +2 -2
  137. data/lib/wx/doc/gen/mdi_frame.rb +5 -5
  138. data/lib/wx/doc/gen/media_ctrl.rb +4 -4
  139. data/lib/wx/doc/gen/menu.rb +12 -12
  140. data/lib/wx/doc/gen/menu_item.rb +1 -1
  141. data/lib/wx/doc/gen/message_dialog.rb +2 -4
  142. data/lib/wx/doc/gen/mini_frame.rb +2 -2
  143. data/lib/wx/doc/gen/notebook.rb +3 -3
  144. data/lib/wx/doc/gen/number_entry_dialog.rb +0 -1
  145. data/lib/wx/doc/gen/object.rb +0 -1
  146. data/lib/wx/doc/gen/panel.rb +2 -2
  147. data/lib/wx/doc/gen/pen.rb +2 -2
  148. data/lib/wx/doc/gen/pg/pg_array_editor_dialog.rb +1 -1
  149. data/lib/wx/doc/gen/pg/pg_cell.rb +1 -1
  150. data/lib/wx/doc/gen/pg/pg_properties.rb +20 -20
  151. data/lib/wx/doc/gen/pg/pg_property.rb +12 -12
  152. data/lib/wx/doc/gen/pg/property_grid.rb +3 -3
  153. data/lib/wx/doc/gen/pg/property_grid_interface.rb +14 -14
  154. data/lib/wx/doc/gen/pg/property_grid_manager.rb +3 -3
  155. data/lib/wx/doc/gen/pg/property_grid_page.rb +2 -2
  156. data/lib/wx/doc/gen/pg/property_grid_page_state.rb +2 -2
  157. data/lib/wx/doc/gen/popup_window.rb +3 -3
  158. data/lib/wx/doc/gen/property_sheet_dialog.rb +3 -3
  159. data/lib/wx/doc/gen/prt/print_abort_dialog.rb +1 -1
  160. data/lib/wx/doc/gen/prt/printer.rb +1 -1
  161. data/lib/wx/doc/gen/radio_box.rb +4 -4
  162. data/lib/wx/doc/gen/radio_button.rb +2 -2
  163. data/lib/wx/doc/gen/rbn/ribbon_bar.rb +2 -2
  164. data/lib/wx/doc/gen/rbn/ribbon_button_bar.rb +12 -12
  165. data/lib/wx/doc/gen/rbn/ribbon_control.rb +1 -1
  166. data/lib/wx/doc/gen/rbn/ribbon_gallery.rb +2 -2
  167. data/lib/wx/doc/gen/rbn/ribbon_page.rb +2 -2
  168. data/lib/wx/doc/gen/rbn/ribbon_panel.rb +2 -2
  169. data/lib/wx/doc/gen/rbn/ribbon_tool_bar.rb +11 -11
  170. data/lib/wx/doc/gen/region.rb +1 -1
  171. data/lib/wx/doc/gen/region_iterator.rb +76 -0
  172. data/lib/wx/doc/gen/rtc/rich_text_buffer.rb +10 -10
  173. data/lib/wx/doc/gen/rtc/rich_text_ctrl.rb +19 -19
  174. data/lib/wx/doc/gen/rtc/rich_text_file_handler.rb +2 -2
  175. data/lib/wx/doc/gen/rtc/rich_text_header_footer_data.rb +4 -4
  176. data/lib/wx/doc/gen/rtc/rich_text_html_handler.rb +1 -1
  177. data/lib/wx/doc/gen/rtc/rich_text_printing.rb +6 -6
  178. data/lib/wx/doc/gen/rtc/rich_text_xml_handler.rb +1 -1
  179. data/lib/wx/doc/gen/rtc/symbol_picker_dialog.rb +2 -2
  180. data/lib/wx/doc/gen/sash_event.rb +1 -1
  181. data/lib/wx/doc/gen/sash_layout_window.rb +2 -2
  182. data/lib/wx/doc/gen/sash_window.rb +1 -1
  183. data/lib/wx/doc/gen/scroll_bar.rb +150 -0
  184. data/lib/wx/doc/gen/scrolled_canvas.rb +2 -2
  185. data/lib/wx/doc/gen/scrolled_control.rb +2 -2
  186. data/lib/wx/doc/gen/scrolled_window.rb +2 -2
  187. data/lib/wx/doc/gen/simplebook.rb +2 -2
  188. data/lib/wx/doc/gen/sizer.rb +3 -3
  189. data/lib/wx/doc/gen/slider.rb +2 -2
  190. data/lib/wx/doc/gen/spin_button.rb +2 -2
  191. data/lib/wx/doc/gen/spin_ctrl.rb +2 -2
  192. data/lib/wx/doc/gen/splash_screen.rb +1 -1
  193. data/lib/wx/doc/gen/splitter_window.rb +2 -2
  194. data/lib/wx/doc/gen/static_bitmap.rb +2 -2
  195. data/lib/wx/doc/gen/static_box.rb +4 -4
  196. data/lib/wx/doc/gen/static_box_sizer.rb +1 -1
  197. data/lib/wx/doc/gen/static_line.rb +2 -2
  198. data/lib/wx/doc/gen/static_text.rb +2 -2
  199. data/lib/wx/doc/gen/status_bar.rb +2 -2
  200. data/lib/wx/doc/gen/stc/styled_text_ctrl.rb +3 -3
  201. data/lib/wx/doc/gen/task_bar_icon.rb +2 -2
  202. data/lib/wx/doc/gen/text_attr.rb +3 -3
  203. data/lib/wx/doc/gen/text_ctrl.rb +3 -3
  204. data/lib/wx/doc/gen/text_entry_dialog.rb +6 -8
  205. data/lib/wx/doc/gen/text_validator.rb +1 -1
  206. data/lib/wx/doc/gen/time_picker_ctrl.rb +2 -2
  207. data/lib/wx/doc/gen/tip_provider.rb +1 -3
  208. data/lib/wx/doc/gen/toggle_button.rb +2 -2
  209. data/lib/wx/doc/gen/tool_bar.rb +10 -10
  210. data/lib/wx/doc/gen/toolbook.rb +2 -2
  211. data/lib/wx/doc/gen/top_level_window.rb +4 -4
  212. data/lib/wx/doc/gen/tree_ctrl.rb +4 -4
  213. data/lib/wx/doc/gen/treebook.rb +2 -2
  214. data/lib/wx/doc/gen/utils.rb +5 -42
  215. data/lib/wx/doc/gen/v_list_box.rb +2 -2
  216. data/lib/wx/doc/gen/v_scrolled_window.rb +2 -2
  217. data/lib/wx/doc/gen/variant.rb +10 -10
  218. data/lib/wx/doc/gen/window.rb +9 -14
  219. data/lib/wx/doc/gen/wizard.rb +2 -2
  220. data/lib/wx/doc/gen/wizard_event.rb +1 -1
  221. data/lib/wx/doc/gen/xml_node.rb +2 -2
  222. data/lib/wx/doc/gen/xml_resource.rb +3 -3
  223. data/lib/wx/doc/graphics_context.rb +42 -0
  224. data/lib/wx/doc/icon.rb +18 -0
  225. data/lib/wx/doc/id_helper.rb +25 -0
  226. data/lib/wx/doc/image.rb +33 -0
  227. data/lib/wx/doc/region_iterator.rb +31 -0
  228. data/lib/wx/doc/scaled_dc.rb +1 -0
  229. data/lib/wx/doc/window.rb +18 -0
  230. data/lib/wx/version.rb +1 -1
  231. data/lib/wx/wxruby/cmd/sampler.rb +3 -21
  232. data/lib/wxruby_aui.so +0 -0
  233. data/lib/wxruby_core.so +0 -0
  234. data/lib/wxruby_grid.so +0 -0
  235. data/lib/wxruby_html.so +0 -0
  236. data/lib/wxruby_pg.so +0 -0
  237. data/lib/wxruby_prt.so +0 -0
  238. data/lib/wxruby_rbn.so +0 -0
  239. data/lib/wxruby_rtc.so +0 -0
  240. data/lib/wxruby_stc.so +0 -0
  241. data/rakelib/lib/config.rb +4 -4
  242. data/samples/art/wxruby-128x128.png +0 -0
  243. data/samples/art/wxruby-256x256.png +0 -0
  244. data/samples/art/wxruby-64x64.png +0 -0
  245. data/samples/art/wxruby.ico +0 -0
  246. data/samples/art/wxruby.png +0 -0
  247. data/samples/drawing/graphics_drawing.rb +1 -2
  248. data/samples/propgrid/propgrid.rb +65 -65
  249. data/samples/sample.xpm +246 -470
  250. data/samples/treectrl/treectrl.rb +1 -1
  251. data/tests/art/my_art/sample.xpm +251 -0
  252. data/tests/art/sample3.xpm +251 -0
  253. data/tests/art/test_art/bitmap/sample.xpm +251 -0
  254. data/tests/art/test_art/bitmap/wxruby.bmp +0 -0
  255. data/tests/art/test_art/bitmap/wxruby.png +0 -0
  256. data/tests/art/test_art/bitmap/wxruby.xpm +251 -0
  257. data/tests/art/test_art/cursor/wxruby.bmp +0 -0
  258. data/tests/art/test_art/icon/sample.xpm +251 -0
  259. data/tests/art/test_art/icon/wxruby.ico +0 -0
  260. data/tests/art/test_art/icon/wxruby.png +0 -0
  261. data/tests/art/test_art/image/sample.xpm +251 -0
  262. data/tests/art/test_art/image/wxruby.jpg +0 -0
  263. data/tests/art/test_art/image/wxruby.png +0 -0
  264. data/tests/art/test_art/sample2.xpm +251 -0
  265. data/tests/test_art.rb +91 -0
  266. data/tests/test_clipboard.rb +35 -0
  267. data/tests/test_dc.rb +70 -0
  268. data/tests/test_events.rb +12 -0
  269. data/tests/test_geometry.rb +13 -0
  270. metadata +48 -5
data/lib/wx/core/dc.rb CHANGED
@@ -1,68 +1,92 @@
1
- # Class for drawing primitives and bitmaps on various outputs (screen, paper)
2
- class Wx::DC
3
- # provide Ruby-style convenience methods supporting wxDCxxxChanger-like functionality
4
1
 
5
- def with_brush(brush)
6
- begin
7
- old_brush = self.brush
8
- self.brush = brush
9
- yield(self) if block_given?
10
- ensure
11
- self.brush = old_brush
2
+ module Wx
3
+ # Class for drawing primitives and bitmaps on various outputs (screen, paper)
4
+ class DC
5
+ # provide Ruby-style convenience methods supporting wxDCxxxChanger-like functionality
6
+
7
+ def with_brush(brush)
8
+ begin
9
+ old_brush = self.brush
10
+ self.brush = brush
11
+ yield(self) if block_given?
12
+ ensure
13
+ self.brush = old_brush
14
+ end
12
15
  end
13
- end
14
16
 
15
- def with_pen(pen)
16
- begin
17
- old_pen = self.pen
18
- self.pen = pen
19
- yield(self) if block_given?
20
- ensure
21
- self.pen = old_pen
17
+ def with_pen(pen)
18
+ begin
19
+ old_pen = self.pen
20
+ self.pen = pen
21
+ yield(self) if block_given?
22
+ ensure
23
+ self.pen = old_pen
24
+ end
22
25
  end
23
- end
24
26
 
25
- def with_font(font)
26
- begin
27
- old_font = self.font
28
- self.font = font
29
- yield(self) if block_given?
30
- ensure
31
- self.font = old_font
27
+ def with_font(font)
28
+ begin
29
+ old_font = self.font
30
+ self.font = font
31
+ yield(self) if block_given?
32
+ ensure
33
+ self.font = old_font
34
+ end
32
35
  end
33
- end
34
36
 
35
- def with_text_foreground(clr)
36
- begin
37
- old = self.get_text_foreground
38
- self.text_foreground = clr
39
- yield(self) if block_given?
40
- ensure
41
- self.text_foreground = old
37
+ def with_text_foreground(clr)
38
+ begin
39
+ old = self.get_text_foreground
40
+ self.text_foreground = clr
41
+ yield(self) if block_given?
42
+ ensure
43
+ self.text_foreground = old
44
+ end
42
45
  end
43
- end
44
- alias :with_text_fg :with_text_foreground
46
+ alias :with_text_fg :with_text_foreground
45
47
 
46
- def with_text_background(clr)
47
- begin
48
- old = self.get_text_background
49
- self.text_background = clr
50
- yield(self) if block_given?
51
- ensure
52
- self.text_background = old
48
+ def with_text_background(clr)
49
+ begin
50
+ old = self.get_text_background
51
+ self.text_background = clr
52
+ yield(self) if block_given?
53
+ ensure
54
+ self.text_background = old
55
+ end
53
56
  end
57
+ alias :with_text_bg :with_text_background
58
+
59
+ def with_background_mode(mode)
60
+ begin
61
+ old = self.get_background_mode
62
+ self.background_mode = mode
63
+ yield(self) if block_given?
64
+ ensure
65
+ self.background_mode = old
66
+ end
67
+ end
68
+ alias :with_bg_mode :with_background_mode
69
+
54
70
  end
55
- alias :with_text_bg :with_text_background
56
71
 
57
- def with_background_mode(mode)
58
- begin
59
- old = self.get_background_mode
60
- self.background_mode = mode
61
- yield(self) if block_given?
62
- ensure
63
- self.background_mode = old
72
+ class MemoryDC
73
+
74
+ # convenience method for drawing on a temporary memory DC
75
+ def self.draw_on(arg)
76
+ dc = case arg
77
+ when Wx::Bitmap, Wx::DC
78
+ self.new(arg)
79
+ else
80
+ ::Kernel.raise ArgumentError, 'Expected Wx::Bitmap or Wx::DC'
81
+ end
82
+ begin
83
+ yield(dc) if block_given?
84
+ ensure
85
+ dc.select_object(Wx::NULL_BITMAP)
86
+ end
87
+ nil
64
88
  end
89
+
65
90
  end
66
- alias :with_bg_mode :with_background_mode
67
91
 
68
92
  end
data/lib/wx/core/enum.rb CHANGED
@@ -25,4 +25,8 @@ class Wx::Enum
25
25
  self.to_i == 0
26
26
  end
27
27
 
28
+ def hash
29
+ @value.hash
30
+ end
31
+
28
32
  end
data/lib/wx/core/event.rb CHANGED
@@ -1,10 +1,43 @@
1
- # Base class for all events
2
- class Wx::Event
3
- # Get the Wx id, not Ruby's deprecated Object#id
4
- alias :id :get_id
5
- end
1
+
2
+ require_relative './evthandler'
6
3
 
7
4
  module Wx
5
+
6
+ # Base class for all events
7
+ class Event
8
+
9
+ # overload the #initialize method to add a check on a
10
+ # correct match between EventType and event class
11
+ wx_init = self.instance_method(:initialize)
12
+ define_method :initialize do |evt_type = Wx::EVT_NULL, *rest|
13
+ evt_klass = Wx::EvtHandler.event_class_for_type(evt_type)
14
+ if evt_klass >= self.class
15
+ wx_init.bind(self).call(evt_type, *rest)
16
+ else
17
+ ::Kernel.raise ArgumentError, "Invalid event type #{Wx::EvtHandler.event_name_for_type(evt_type)}:#{evt_type} for class #{self.class}"
18
+ end
19
+ end
20
+
21
+ # Get the Wx id, not Ruby's deprecated Object#id
22
+ alias :id :get_id
23
+ end
24
+
25
+ class Wx::CommandEvent
26
+
27
+ # overload the #initialize method to add a check on a
28
+ # correct match between EventType and event class
29
+ wx_init = self.instance_method(:initialize)
30
+ define_method :initialize do |evt_type = Wx::EVT_NULL, *rest|
31
+ evt_klass = Wx::EvtHandler.event_class_for_type(evt_type)
32
+ if evt_klass >= self.class
33
+ wx_init.bind(self).call(evt_type, *rest)
34
+ else
35
+ ::Kernel.raise ArgumentError, "Invalid event type #{Wx::EvtHandler.event_name_for_type(evt_type)}:#{evt_type} for class #{self.class}"
36
+ end
37
+ end
38
+
39
+ end
40
+
8
41
  # reduce mapping warnings for this unpublished event class
9
42
  NcPaintEvent = Wx::Event
10
43
 
@@ -103,12 +103,12 @@ class Wx::EvtHandler
103
103
  Wx::ScrollEvent
104
104
  ] if Wx.const_defined?(:EVT_COMMAND_SCROLL_THUMBTRACK)
105
105
  self.register_event_type EventType[
106
- 'evt_command_scroll_thumbrelease', 0,
106
+ 'evt_command_scroll_thumbrelease', 1,
107
107
  Wx::EVT_COMMAND_SCROLL_THUMBRELEASE,
108
108
  Wx::ScrollEvent
109
109
  ] if Wx.const_defined?(:EVT_COMMAND_SCROLL_THUMBRELEASE)
110
110
  self.register_event_type EventType[
111
- 'evt_command_scroll_changed', 0,
111
+ 'evt_command_scroll_changed', 1,
112
112
  Wx::EVT_COMMAND_SCROLL_CHANGED,
113
113
  Wx::ScrollEvent
114
114
  ] if Wx.const_defined?(:EVT_COMMAND_SCROLL_CHANGED)
@@ -1197,6 +1197,7 @@ class Wx::EvtHandler
1197
1197
  # from wxChoice
1198
1198
  # from wxCollapsiblePane
1199
1199
  # from wxSlider
1200
+ # from wxScrollBar
1200
1201
  # from wxSpinButton
1201
1202
  # from wxSpinCtrl
1202
1203
  self.register_event_type EventType[
@@ -195,32 +195,73 @@ class Wx::EvtHandler
195
195
  end
196
196
 
197
197
  # Convenience evt_handler to listen to all mouse events.
198
- def evt_mouse_events(&block)
199
- evt_left_down(&block)
200
- evt_left_up(&block)
201
- evt_middle_down(&block)
202
- evt_middle_up(&block)
203
- evt_right_down(&block)
204
- evt_right_up(&block)
205
- evt_motion(&block)
206
- evt_left_dclick(&block)
207
- evt_middle_dclick(&block)
208
- evt_right_dclick(&block)
209
- evt_leave_window(&block)
210
- evt_enter_window(&block)
211
- evt_mousewheel(&block)
198
+ def evt_mouse_events(*args, &block)
199
+ evt_left_down(*args, &block)
200
+ evt_left_up(*args, &block)
201
+ evt_middle_down(*args, &block)
202
+ evt_middle_up(*args, &block)
203
+ evt_right_down(*args, &block)
204
+ evt_right_up(*args, &block)
205
+ evt_motion(*args, &block)
206
+ evt_left_dclick(*args, &block)
207
+ evt_middle_dclick(*args, &block)
208
+ evt_right_dclick(*args, &block)
209
+ evt_leave_window(*args, &block)
210
+ evt_enter_window(*args, &block)
211
+ evt_mousewheel(*args, &block)
212
212
  end
213
213
 
214
214
  # Convenience evt handler to listen to all scrollwin events.
215
- def evt_scrollwin(&block)
216
- evt_scrollwin_top(&block)
217
- evt_scrollwin_bottom(&block)
218
- evt_scrollwin_lineup(&block)
219
- evt_scrollwin_linedown(&block)
220
- evt_scrollwin_pageup(&block)
221
- evt_scrollwin_pagedown(&block)
222
- evt_scrollwin_thumbtrack(&block)
223
- evt_scrollwin_thumbrelease(&block)
215
+ def evt_scrollwin(meth = nil, &block)
216
+ evt_scrollwin_top(meth, &block)
217
+ evt_scrollwin_bottom(meth, &block)
218
+ evt_scrollwin_lineup(meth, &block)
219
+ evt_scrollwin_linedown(meth, &block)
220
+ evt_scrollwin_pageup(meth, &block)
221
+ evt_scrollwin_pagedown(meth, &block)
222
+ evt_scrollwin_thumbtrack(meth, &block)
223
+ evt_scrollwin_thumbrelease(meth, &block)
224
+ end
225
+
226
+ # Convenience evt handler to listen to all scroll events (Wx::Slider and Wx::ScrollBar)
227
+ def evt_scroll(meth = nil, &block)
228
+ evt_scroll_top(meth, &block)
229
+ evt_scroll_bottom(meth, &block)
230
+ evt_scroll_lineup(meth, &block)
231
+ evt_scroll_linedown(meth, &block)
232
+ evt_scroll_pageup(meth, &block)
233
+ evt_scroll_pagedown(meth, &block)
234
+ evt_scroll_thumbtrack(meth, &block)
235
+ evt_scroll_thumbrelease(meth, &block)
236
+ evt_scroll_changed(meth, &block)
237
+ end
238
+
239
+ # Convenience evt handler to listen to all scroll command events.
240
+ def evt_command_scroll(id, meth = nil, &block)
241
+ evt_command_scroll_top(id, meth, &block)
242
+ evt_command_scroll_bottom(id, meth, &block)
243
+ evt_command_scroll_lineup(id, meth, &block)
244
+ evt_command_scroll_linedown(id, meth, &block)
245
+ evt_command_scroll_pageup(id, meth, &block)
246
+ evt_command_scroll_pagedown(id, meth, &block)
247
+ evt_command_scroll_thumbtrack(id, meth, &block)
248
+ evt_command_scroll_thumbrelease(id, meth, &block)
249
+ evt_command_scroll_changed(id, meth, &block)
250
+ end
251
+
252
+ # add missing constants (these are redefinitions of other constants which are not documented themselves)
253
+ %i[EVT_COMMAND_SCROLL_TOP
254
+ EVT_COMMAND_SCROLL_BOTTOM
255
+ EVT_COMMAND_SCROLL_LINEUP
256
+ EVT_COMMAND_SCROLL_LINEDOWN
257
+ EVT_COMMAND_SCROLL_PAGEUP
258
+ EVT_COMMAND_SCROLL_PAGEDOWN
259
+ EVT_COMMAND_SCROLL_THUMBTRACK
260
+ EVT_COMMAND_SCROLL_THUMBRELEASE
261
+ EVT_COMMAND_SCROLL_CHANGED].each do |const|
262
+ unless Wx.const_defined?(const)
263
+ Wx.const_set(const, Wx.const_get(const.to_s.sub('EVT_COMMAND_', 'EVT_').to_sym))
264
+ end
224
265
  end
225
266
 
226
267
  if Wx.const_defined?(:EVT_DESTROY)
data/lib/wx/core/icon.rb CHANGED
@@ -1,46 +1,61 @@
1
1
  # Specific type of platform-dependent image used for frames on Windows and
2
2
  # Linux. Normally Bitmap is used
3
- class Wx::Icon
4
- # Load the type-guessing hash from Wx::Bitmap
5
- require 'wx/core/bitmap'
6
- BITMAP_TYPE_GUESS = Wx::Bitmap::BITMAP_TYPE_GUESS
7
-
8
- # Analogous to Image.from_bitmap
9
- def self.from_bitmap(bmp)
10
- ico = new
11
- ico.copy_from_bitmap(bmp)
12
- ico
13
- end
14
3
 
15
- def to_bitmap
16
- # for WXMSW platform Icon is not derived from Bitmap
17
- return self unless Wx::PLATFORM == 'WXMSW' || Wx::PLATFORM == 'WXOSX'
18
- bm = Wx::Bitmap.new
19
- bm.copy_from_icon(self)
20
- bm
21
- end
4
+ require_relative './art_locator'
5
+
6
+ module Wx
22
7
 
23
- if Wx::PLATFORM == 'WXMSW' || Wx::PLATFORM == 'WXOSX'
24
- def convert_to_image
25
- to_bitmap.convert_to_image
8
+ class Icon
9
+ # Load the type-guessing hash from Wx::Bitmap
10
+ require 'wx/core/bitmap'
11
+ BITMAP_TYPE_GUESS = Wx::Bitmap::BITMAP_TYPE_GUESS
12
+
13
+ # Analogous to Image.from_bitmap
14
+ def self.from_bitmap(bmp)
15
+ ico = new
16
+ ico.copy_from_bitmap(bmp)
17
+ ico
18
+ end
19
+
20
+ def to_bitmap
21
+ # for WXMSW platform Icon is not derived from Bitmap
22
+ return self unless Wx::PLATFORM == 'WXMSW' || Wx::PLATFORM == 'WXOSX'
23
+ bm = Wx::Bitmap.new
24
+ bm.copy_from_icon(self)
25
+ bm
26
26
  end
27
- end
28
27
 
29
- # Redefine the initialize method so it raises an exception if a
30
- # non-existent file is given to the constructor; otherwise, wx Widgets
31
- # just carries on with an empty icon, which may cause faults
32
- # later. Also guess icon type from filename, if not specified.
33
- wx_init = self.instance_method(:initialize)
34
- define_method(:initialize) do | *args |
35
- if args[0].kind_of? String
36
- if not File.exist?( File.expand_path(args[0]) )
37
- Kernel.raise(ArgumentError, "Icon file does not exist: #{args[0]}")
28
+ if Wx::PLATFORM == 'WXMSW' || Wx::PLATFORM == 'WXOSX'
29
+ def convert_to_image
30
+ to_bitmap.convert_to_image
38
31
  end
39
- # If type not specified, try to guess it from the file extension
40
- if not args[1] and ( file_ext = args[0][/\w+$/] )
41
- args[1] = BITMAP_TYPE_GUESS[file_ext.downcase]
32
+ end
33
+
34
+ # Redefine the initialize method so it raises an exception if a
35
+ # non-existent file is given to the constructor; otherwise, wx Widgets
36
+ # just carries on with an empty icon, which may cause faults
37
+ # later. Also guess icon type from filename, if not specified.
38
+ wx_init = self.instance_method(:initialize)
39
+ define_method(:initialize) do | *args |
40
+ if args[0].kind_of? String
41
+ if not File.exist?( File.expand_path(args[0]) )
42
+ Kernel.raise(ArgumentError, "Icon file does not exist: #{args[0]}")
43
+ end
44
+ # If type not specified, try to guess it from the file extension
45
+ if not args[1] and ( file_ext = args[0][/\w+$/] )
46
+ args[1] = BITMAP_TYPE_GUESS[file_ext.downcase]
47
+ end
42
48
  end
49
+ wx_init.bind(self).call(*args)
43
50
  end
44
- wx_init.bind(self).call(*args)
45
51
  end
52
+
53
+ def self.Icon(name, bmp_type = nil, *rest)
54
+ art_path = File.dirname(caller_path = caller_locations(1).first.absolute_path)
55
+ art_owner = File.basename(caller_path, '.*')
56
+ art_file = ArtLocator.find_art(name, art_type: :icon, art_path: art_path, art_section: art_owner, bmp_type: bmp_type)
57
+ ::Kernel.raise ArgumentError, "Cannot locate art file for #{name}:Icon" unless art_file
58
+ Icon.new(art_file, bmp_type, *rest)
59
+ end
60
+
46
61
  end
@@ -0,0 +1,32 @@
1
+
2
+ module Wx
3
+
4
+ # Mixin module to provide convenience method for defining Windows/Control ids.
5
+ # @example Define an ID module
6
+ # module MyIDS
7
+ # include Wx::IDHelper
8
+ # # by default the offset for the next id is Wx::ID_HIGHEST which makes 'Wx::ID_HIGHEST+1'
9
+ # # the first id value returned.
10
+ # MY_FIRST_ID = self.next_id
11
+ # MY_SECOND_ID = self.next_id # MY_SECOND_ID will have value Wx::ID_HIGHEST+2
12
+ #
13
+ # # optionally a user defined offset can be specified like this:
14
+ # MY_OTHER_ID = self.next_id(MY_FIRST_ID+1000) # MY_OTHER_ID will have value MY_FIRST_ID+1001
15
+ # MY_OTHER_ID2 = self.next_id # MY_OTHER_ID2 will have value MY_FIRST_ID+1002
16
+ # end
17
+ #
18
+ module IDHelper
19
+
20
+ def self.included(base)
21
+ base.singleton_class.class_eval do
22
+ def next_id(offset = nil)
23
+ # set the offset if @next_id still unset or a user defined offset has been specified
24
+ @next_id = (offset || Wx::ID_HIGHEST) if @next_id.nil? || offset
25
+ @next_id += 1 # increment and return next id
26
+ end
27
+ end
28
+ end
29
+
30
+ end
31
+
32
+ end
data/lib/wx/core/image.rb CHANGED
@@ -1,68 +1,78 @@
1
1
  # A platform-independent image; can be manipulated more extensively than
2
2
  # Bitmap, but must be converted to a Bitmap for drawing.
3
- class Wx::Image
3
+ module Wx
4
+ class Image
4
5
 
5
- # restore the overloaded method
6
- def set_rgb_data(data, *size)
7
- if size.empty?
8
- height = self.get_size.height
9
- width = self.get_size.width
10
- else
11
- width, height = size
12
- if Wx::Size === width
13
- height = width.height
14
- width = width.width
6
+ # restore the overloaded method
7
+ def set_rgb_data(data, *size)
8
+ if size.empty?
9
+ height = self.get_size.height
10
+ width = self.get_size.width
11
+ else
12
+ width, height = size
13
+ if Wx::Size === width
14
+ height = width.height
15
+ width = width.width
16
+ end
15
17
  end
18
+ set_rgb_data_with_size(data, width, height)
16
19
  end
17
- set_rgb_data_with_size(data, width, height)
18
- end
19
20
 
20
- # alias for backward compatibility
21
- alias :get_data :get_rgb_data
22
- alias :set_data :set_rgb_data
23
-
24
- # Load the type-guessing hash from Wx::Bitmap
25
- require_relative './bitmap'
26
- BITMAP_TYPE_GUESS = Wx::Bitmap::BITMAP_TYPE_GUESS
21
+ # alias for backward compatibility
22
+ alias :get_data :get_rgb_data
23
+ alias :set_data :set_rgb_data
27
24
 
28
- # Load a new image from an IO-like object that supports "read"
29
- def self.read(an_io, type_or_mime, index = -1)
30
- img = new
31
- img.load_stream(an_io, type_or_mime, index)
32
- img
33
- end
25
+ # Load the type-guessing hash from Wx::Bitmap
26
+ require_relative './bitmap'
27
+ BITMAP_TYPE_GUESS = Wx::Bitmap::BITMAP_TYPE_GUESS
34
28
 
35
- # Create a new image from Wx::Bitmap, preserving mask information
36
- def self.from_bitmap(bmp)
37
- bmp.convert_to_image
38
- end
29
+ # Load a new image from an IO-like object that supports "read"
30
+ def self.read(an_io, type_or_mime, index = -1)
31
+ img = new
32
+ img.load_stream(an_io, type_or_mime, index)
33
+ img
34
+ end
39
35
 
40
- # Ruby methods that switch class are conventionally named to_foo
41
- def to_bitmap
42
- Wx::Bitmap.from_image(self)
43
- end
36
+ # Create a new image from Wx::Bitmap, preserving mask information
37
+ def self.from_bitmap(bmp)
38
+ bmp.convert_to_image
39
+ end
44
40
 
45
- # Redefine the initialize method so it raises an exception if a
46
- # non-existent file is given to the constructor; otherwise, wx Widgets
47
- # just carries on with an invalid image, which may cause faults
48
- # later. Also, if loading from a file, and the type is not specified,
49
- # try to guess it from the filename extension
50
- wx_init = self.instance_method(:initialize)
51
- define_method(:initialize) do | *args |
52
- if args[0].kind_of? String
53
- if not File.exist?( File.expand_path(args[0]) )
54
- Kernel.raise(ArgumentError, "Image file does not exist: #{args[0]}")
55
- end
56
- # If type not specified, try to guess it from the file extension
57
- if not args[1] and file_ext = args[0][/\w+$/]
58
- args[1] = BITMAP_TYPE_GUESS[file_ext.downcase]
41
+ # Ruby methods that switch class are conventionally named to_foo
42
+ def to_bitmap
43
+ Wx::Bitmap.from_image(self)
44
+ end
45
+
46
+ # Redefine the initialize method so it raises an exception if a
47
+ # non-existent file is given to the constructor; otherwise, wx Widgets
48
+ # just carries on with an invalid image, which may cause faults
49
+ # later. Also, if loading from a file, and the type is not specified,
50
+ # try to guess it from the filename extension
51
+ wx_init = self.instance_method(:initialize)
52
+ define_method(:initialize) do | *args |
53
+ if args[0].kind_of? String
54
+ if not File.exist?( File.expand_path(args[0]) )
55
+ Kernel.raise(ArgumentError, "Image file does not exist: #{args[0]}")
56
+ end
57
+ # If type not specified, try to guess it from the file extension
58
+ if not args[1] and file_ext = args[0][/\w+$/]
59
+ args[1] = BITMAP_TYPE_GUESS[file_ext.downcase]
60
+ end
59
61
  end
62
+ wx_init.bind(self).call(*args)
63
+ end
64
+
65
+ # Convert to bitmap
66
+ def convert_to_bitmap
67
+ Wx::Bitmap.from_image(self)
60
68
  end
61
- wx_init.bind(self).call(*args)
62
69
  end
63
-
64
- # Convert to bitmap
65
- def convert_to_bitmap
66
- Wx::Bitmap.from_image(self)
70
+
71
+ def self.Image(name, bmp_type = nil, *rest)
72
+ art_path = File.dirname(caller_path = caller_locations(1).first.absolute_path)
73
+ art_owner = File.basename(caller_path, '.*')
74
+ art_file = ArtLocator.find_art(name, art_type: :image, art_path: art_path, art_section: art_owner, bmp_type: bmp_type)
75
+ ::Kernel.raise ArgumentError, "Cannot locate art file for #{name}:Image" unless art_file
76
+ Image.new(art_file, bmp_type, *rest)
67
77
  end
68
78
  end
data/lib/wx/core/point.rb CHANGED
@@ -100,4 +100,18 @@ class Wx::Point
100
100
  Wx::RealPoint.new(self.x.to_f, self.y.to_f)
101
101
  end
102
102
  alias :to_real :to_real_point
103
+
104
+ def to_point
105
+ self
106
+ end
107
+
108
+ def dup
109
+ Wx::Point.new(self.x, self.y)
110
+ end
111
+
112
+ def assign(pt)
113
+ self.x = pt.x
114
+ self.y = pt.y
115
+ self
116
+ end
103
117
  end
@@ -96,8 +96,22 @@ class Wx::RealPoint
96
96
  end
97
97
  end
98
98
 
99
-
100
99
  def to_point
101
100
  Wx::Point.new(self.x.to_i, self.y.to_i)
102
101
  end
102
+
103
+ def to_real_point
104
+ self
105
+ end
106
+
107
+ def dup
108
+ Wx::RealPoint.new(self.x, self.y)
109
+ end
110
+
111
+ def assign(pt)
112
+ self.x = pt.x
113
+ self.y = pt.y
114
+ self
115
+ end
116
+
103
117
  end