wxruby3 0.9.4-x64-mingw-ucrt → 0.9.7-x64-mingw-ucrt

Sign up to get free protection for your applications and to get access to all the features.
Files changed (390) hide show
  1. checksums.yaml +4 -4
  2. data/.wxconfig +9 -8
  3. data/INSTALL.md +315 -78
  4. data/README.md +32 -21
  5. data/ext/wxbase32u_gcc_custom.dll +0 -0
  6. data/ext/wxbase32u_net_gcc_custom.dll +0 -0
  7. data/ext/wxbase32u_xml_gcc_custom.dll +0 -0
  8. data/ext/wxmsw32u_aui_gcc_custom.dll +0 -0
  9. data/ext/wxmsw32u_core_gcc_custom.dll +0 -0
  10. data/ext/wxmsw32u_gl_gcc_custom.dll +0 -0
  11. data/ext/wxmsw32u_html_gcc_custom.dll +0 -0
  12. data/ext/wxmsw32u_media_gcc_custom.dll +0 -0
  13. data/ext/wxmsw32u_propgrid_gcc_custom.dll +0 -0
  14. data/ext/wxmsw32u_qa_gcc_custom.dll +0 -0
  15. data/ext/wxmsw32u_ribbon_gcc_custom.dll +0 -0
  16. data/ext/wxmsw32u_richtext_gcc_custom.dll +0 -0
  17. data/ext/wxmsw32u_stc_gcc_custom.dll +0 -0
  18. data/ext/wxmsw32u_webview_gcc_custom.dll +0 -0
  19. data/ext/wxmsw32u_xrc_gcc_custom.dll +0 -0
  20. data/lib/wx/core/combo_ctrl.rb +171 -0
  21. data/lib/wx/core/ext.rb +22 -3
  22. data/lib/wx/doc/comboctrl.rb +128 -3
  23. data/lib/wx/doc/gen/about_dialog_info.rb +1 -1
  24. data/lib/wx/doc/gen/accelerator.rb +1 -1
  25. data/lib/wx/doc/gen/accessible.rb +1 -1
  26. data/lib/wx/doc/gen/activity_indicator.rb +1 -1
  27. data/lib/wx/doc/gen/animation.rb +1 -1
  28. data/lib/wx/doc/gen/animation_ctrl.rb +1 -1
  29. data/lib/wx/doc/gen/any_button.rb +1 -1
  30. data/lib/wx/doc/gen/app.rb +1 -1
  31. data/lib/wx/doc/gen/app_traits.rb +3 -55
  32. data/lib/wx/doc/gen/art_provider.rb +1 -3
  33. data/lib/wx/doc/gen/aui/aui_dock_art.rb +430 -426
  34. data/lib/wx/doc/gen/aui/aui_floating_frame.rb +34 -30
  35. data/lib/wx/doc/gen/aui/aui_manager.rb +352 -349
  36. data/lib/wx/doc/gen/aui/aui_manager_event.rb +107 -103
  37. data/lib/wx/doc/gen/aui/aui_mdi_child_frame.rb +157 -153
  38. data/lib/wx/doc/gen/aui/aui_mdi_client_window.rb +42 -37
  39. data/lib/wx/doc/gen/aui/aui_mdi_parent_frame.rb +109 -105
  40. data/lib/wx/doc/gen/aui/aui_notebook.rb +438 -434
  41. data/lib/wx/doc/gen/aui/aui_notebook_event.rb +145 -141
  42. data/lib/wx/doc/gen/aui/aui_pane_info.rb +689 -685
  43. data/lib/wx/doc/gen/aui/aui_tab_art.rb +369 -365
  44. data/lib/wx/doc/gen/aui/aui_tab_ctrl.rb +100 -96
  45. data/lib/wx/doc/gen/aui/aui_tool_bar.rb +445 -441
  46. data/lib/wx/doc/gen/aui/aui_tool_bar_art.rb +268 -264
  47. data/lib/wx/doc/gen/aui/aui_tool_bar_event.rb +179 -175
  48. data/lib/wx/doc/gen/aui/aui_tool_bar_item.rb +219 -215
  49. data/lib/wx/doc/gen/banner_window.rb +1 -1
  50. data/lib/wx/doc/gen/bitmap.rb +1 -1
  51. data/lib/wx/doc/gen/bitmap_button.rb +1 -1
  52. data/lib/wx/doc/gen/bitmap_combo_box.rb +1 -1
  53. data/lib/wx/doc/gen/book_ctrl_base.rb +1 -1
  54. data/lib/wx/doc/gen/book_ctrl_event.rb +1 -1
  55. data/lib/wx/doc/gen/box_sizer.rb +1 -1
  56. data/lib/wx/doc/gen/brush.rb +1 -1
  57. data/lib/wx/doc/gen/busy_info.rb +1 -1
  58. data/lib/wx/doc/gen/button.rb +1 -1
  59. data/lib/wx/doc/gen/calculate_layout_event.rb +1 -1
  60. data/lib/wx/doc/gen/calendar_ctrl.rb +1 -1
  61. data/lib/wx/doc/gen/calendar_date_attr.rb +1 -1
  62. data/lib/wx/doc/gen/calendar_event.rb +1 -1
  63. data/lib/wx/doc/gen/caret.rb +1 -1
  64. data/lib/wx/doc/gen/check_box.rb +1 -1
  65. data/lib/wx/doc/gen/check_list_box.rb +1 -1
  66. data/lib/wx/doc/gen/choice.rb +1 -1
  67. data/lib/wx/doc/gen/choicebook.rb +1 -1
  68. data/lib/wx/doc/gen/client_dc.rb +1 -1
  69. data/lib/wx/doc/gen/clipboard.rb +1 -1
  70. data/lib/wx/doc/gen/collapsible_pane.rb +1 -1
  71. data/lib/wx/doc/gen/collapsible_pane_event.rb +1 -1
  72. data/lib/wx/doc/gen/colour.rb +1 -2
  73. data/lib/wx/doc/gen/colour_dialog.rb +2 -2
  74. data/lib/wx/doc/gen/colour_picker_ctrl.rb +1 -1
  75. data/lib/wx/doc/gen/colour_picker_event.rb +1 -1
  76. data/lib/wx/doc/gen/combo_box.rb +4 -3
  77. data/lib/wx/doc/gen/combo_ctrl.rb +92 -228
  78. data/lib/wx/doc/gen/command_link_button.rb +1 -1
  79. data/lib/wx/doc/gen/config_base.rb +1 -1
  80. data/lib/wx/doc/gen/context_help_button.rb +1 -1
  81. data/lib/wx/doc/gen/control.rb +1 -1
  82. data/lib/wx/doc/gen/control_with_items.rb +1 -1
  83. data/lib/wx/doc/gen/core.rb +5 -5
  84. data/lib/wx/doc/gen/cursor.rb +1 -1
  85. data/lib/wx/doc/gen/data_format.rb +1 -1
  86. data/lib/wx/doc/gen/data_object.rb +1 -1
  87. data/lib/wx/doc/gen/data_object_simple_base.rb +1 -1
  88. data/lib/wx/doc/gen/date_event.rb +1 -1
  89. data/lib/wx/doc/gen/date_picker_ctrl.rb +1 -1
  90. data/lib/wx/doc/gen/dc.rb +1 -4
  91. data/lib/wx/doc/gen/defs.rb +1 -1
  92. data/lib/wx/doc/gen/dial_up_event.rb +1 -1
  93. data/lib/wx/doc/gen/dial_up_manager.rb +1 -1
  94. data/lib/wx/doc/gen/dialog.rb +1 -2
  95. data/lib/wx/doc/gen/dir_dialog.rb +1 -1
  96. data/lib/wx/doc/gen/dir_filter_list_ctrl.rb +1 -1
  97. data/lib/wx/doc/gen/dir_picker_ctrl.rb +1 -1
  98. data/lib/wx/doc/gen/drag_drop.rb +1 -1
  99. data/lib/wx/doc/gen/drag_image.rb +1 -1
  100. data/lib/wx/doc/gen/editable_list_box.rb +1 -1
  101. data/lib/wx/doc/gen/event.rb +1 -1
  102. data/lib/wx/doc/gen/event_blocker.rb +1 -1
  103. data/lib/wx/doc/gen/event_filter.rb +1 -1
  104. data/lib/wx/doc/gen/events.rb +3 -25
  105. data/lib/wx/doc/gen/evt_handler.rb +1 -1
  106. data/lib/wx/doc/gen/ext_help_controller.rb +1 -1
  107. data/lib/wx/doc/gen/file_ctrl.rb +1 -1
  108. data/lib/wx/doc/gen/file_ctrl_event.rb +1 -1
  109. data/lib/wx/doc/gen/file_dialog.rb +1 -3
  110. data/lib/wx/doc/gen/file_dialog_custom_control.rb +1 -1
  111. data/lib/wx/doc/gen/file_dialog_customize_hook.rb +54 -62
  112. data/lib/wx/doc/gen/file_dir_picker_event.rb +1 -1
  113. data/lib/wx/doc/gen/file_picker_ctrl.rb +1 -1
  114. data/lib/wx/doc/gen/file_system.rb +2 -59
  115. data/lib/wx/doc/gen/find_dialog_event.rb +1 -1
  116. data/lib/wx/doc/gen/find_replace_data.rb +1 -1
  117. data/lib/wx/doc/gen/find_replace_dialog.rb +1 -1
  118. data/lib/wx/doc/gen/flex_grid_sizer.rb +1 -1
  119. data/lib/wx/doc/gen/font.rb +1 -1
  120. data/lib/wx/doc/gen/font_data.rb +1 -1
  121. data/lib/wx/doc/gen/font_dialog.rb +1 -1
  122. data/lib/wx/doc/gen/font_picker_ctrl.rb +1 -1
  123. data/lib/wx/doc/gen/font_picker_event.rb +1 -1
  124. data/lib/wx/doc/gen/frame.rb +1 -2
  125. data/lib/wx/doc/gen/fs_file.rb +1 -1
  126. data/lib/wx/doc/gen/functions.rb +1 -1
  127. data/lib/wx/doc/gen/gauge.rb +1 -1
  128. data/lib/wx/doc/gen/gb_sizer_item.rb +1 -1
  129. data/lib/wx/doc/gen/gcdc.rb +1 -1
  130. data/lib/wx/doc/gen/gdi_common.rb +3 -3
  131. data/lib/wx/doc/gen/gdi_object.rb +1 -1
  132. data/lib/wx/doc/gen/generic_dir_ctrl.rb +1 -1
  133. data/lib/wx/doc/gen/graphics_context.rb +1 -1
  134. data/lib/wx/doc/gen/graphics_object.rb +1 -1
  135. data/lib/wx/doc/gen/grid/grid_cell_activatable_editor.rb +28 -24
  136. data/lib/wx/doc/gen/grid/grid_cell_attr.rb +251 -247
  137. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_editor.rb +25 -21
  138. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_renderer.rb +27 -23
  139. data/lib/wx/doc/gen/grid/grid_cell_bool_editor.rb +38 -34
  140. data/lib/wx/doc/gen/grid/grid_cell_bool_renderer.rb +25 -21
  141. data/lib/wx/doc/gen/grid/grid_cell_choice_editor.rb +35 -31
  142. data/lib/wx/doc/gen/grid/grid_cell_date_editor.rb +28 -24
  143. data/lib/wx/doc/gen/grid/grid_cell_date_renderer.rb +34 -30
  144. data/lib/wx/doc/gen/grid/grid_cell_date_time_renderer.rb +30 -26
  145. data/lib/wx/doc/gen/grid/grid_cell_editor.rb +183 -179
  146. data/lib/wx/doc/gen/grid/grid_cell_enum_editor.rb +29 -25
  147. data/lib/wx/doc/gen/grid/grid_cell_enum_renderer.rb +33 -29
  148. data/lib/wx/doc/gen/grid/grid_cell_float_editor.rb +34 -30
  149. data/lib/wx/doc/gen/grid/grid_cell_float_renderer.rb +67 -63
  150. data/lib/wx/doc/gen/grid/grid_cell_number_editor.rb +34 -30
  151. data/lib/wx/doc/gen/grid/grid_cell_number_renderer.rb +25 -21
  152. data/lib/wx/doc/gen/grid/grid_cell_renderer.rb +93 -89
  153. data/lib/wx/doc/gen/grid/grid_cell_string_renderer.rb +25 -21
  154. data/lib/wx/doc/gen/grid/grid_cell_text_editor.rb +38 -34
  155. data/lib/wx/doc/gen/grid/grid_ctrl.rb +2716 -2724
  156. data/lib/wx/doc/gen/grid/grid_editor_created_event.rb +82 -78
  157. data/lib/wx/doc/gen/grid/grid_event.rb +106 -102
  158. data/lib/wx/doc/gen/grid/grid_range_select_event.rb +93 -89
  159. data/lib/wx/doc/gen/grid/grid_size_event.rb +70 -66
  160. data/lib/wx/doc/gen/grid/grid_string_table.rb +130 -126
  161. data/lib/wx/doc/gen/grid/grid_table_base.rb +303 -299
  162. data/lib/wx/doc/gen/grid/grid_table_message.rb +70 -66
  163. data/lib/wx/doc/gen/grid_bag_sizer.rb +1 -1
  164. data/lib/wx/doc/gen/grid_sizer.rb +1 -1
  165. data/lib/wx/doc/gen/gui_event_loop.rb +1 -1
  166. data/lib/wx/doc/gen/header_ctrl.rb +1 -2
  167. data/lib/wx/doc/gen/header_ctrl_event.rb +1 -1
  168. data/lib/wx/doc/gen/help_controller.rb +1 -1
  169. data/lib/wx/doc/gen/help_provider.rb +1 -1
  170. data/lib/wx/doc/gen/html/html_cell.rb +515 -511
  171. data/lib/wx/doc/gen/html/html_cell_event.rb +58 -54
  172. data/lib/wx/doc/gen/html/html_easy_printing.rb +171 -167
  173. data/lib/wx/doc/gen/html/html_help_controller.rb +292 -288
  174. data/lib/wx/doc/gen/html/html_help_data.rb +147 -143
  175. data/lib/wx/doc/gen/html/html_help_window.rb +232 -228
  176. data/lib/wx/doc/gen/html/html_link_event.rb +30 -26
  177. data/lib/wx/doc/gen/html/html_list_box.rb +301 -297
  178. data/lib/wx/doc/gen/html/html_printout.rb +94 -90
  179. data/lib/wx/doc/gen/html/html_window.rb +406 -402
  180. data/lib/wx/doc/gen/hyperlink_ctrl.rb +1 -1
  181. data/lib/wx/doc/gen/hyperlink_event.rb +1 -1
  182. data/lib/wx/doc/gen/icon.rb +1 -1
  183. data/lib/wx/doc/gen/icon_location.rb +1 -1
  184. data/lib/wx/doc/gen/image.rb +1 -3
  185. data/lib/wx/doc/gen/image_list.rb +1 -1
  186. data/lib/wx/doc/gen/info_bar.rb +1 -1
  187. data/lib/wx/doc/gen/keyboard_state.rb +1 -1
  188. data/lib/wx/doc/gen/list_box.rb +1 -1
  189. data/lib/wx/doc/gen/list_ctrl.rb +1 -2
  190. data/lib/wx/doc/gen/list_event.rb +1 -1
  191. data/lib/wx/doc/gen/listbook.rb +1 -1
  192. data/lib/wx/doc/gen/locale.rb +1 -1
  193. data/lib/wx/doc/gen/log.rb +1 -1
  194. data/lib/wx/doc/gen/mdi_client_window.rb +1 -1
  195. data/lib/wx/doc/gen/mdi_frame.rb +1 -1
  196. data/lib/wx/doc/gen/media_ctrl.rb +1 -7
  197. data/lib/wx/doc/gen/media_event.rb +1 -1
  198. data/lib/wx/doc/gen/memory_dc.rb +1 -1
  199. data/lib/wx/doc/gen/menu.rb +1 -3
  200. data/lib/wx/doc/gen/menu_bar.rb +1 -1
  201. data/lib/wx/doc/gen/menu_item.rb +1 -1
  202. data/lib/wx/doc/gen/message_dialog.rb +1 -1
  203. data/lib/wx/doc/gen/mini_frame.rb +1 -1
  204. data/lib/wx/doc/gen/mirror_dc.rb +1 -1
  205. data/lib/wx/doc/gen/mouse_state.rb +1 -1
  206. data/lib/wx/doc/gen/multi_choice_dialog.rb +1 -1
  207. data/lib/wx/doc/gen/non_owned_window.rb +1 -1
  208. data/lib/wx/doc/gen/notebook.rb +1 -2
  209. data/lib/wx/doc/gen/num_validator.rb +1 -1
  210. data/lib/wx/doc/gen/number_entry_dialog.rb +1 -1
  211. data/lib/wx/doc/gen/object.rb +1 -1
  212. data/lib/wx/doc/gen/owner_drawn_combo_box.rb +1 -1
  213. data/lib/wx/doc/gen/paint_dc.rb +1 -1
  214. data/lib/wx/doc/gen/palette.rb +1 -1
  215. data/lib/wx/doc/gen/panel.rb +1 -1
  216. data/lib/wx/doc/gen/pen.rb +1 -1
  217. data/lib/wx/doc/gen/persistence_manager.rb +1 -1
  218. data/lib/wx/doc/gen/persistent_object.rb +1 -1
  219. data/lib/wx/doc/gen/persistent_window.rb +1 -1
  220. data/lib/wx/doc/gen/pg/numeric_property_validator.rb +33 -29
  221. data/lib/wx/doc/gen/pg/pg_array_editor_dialog.rb +299 -295
  222. data/lib/wx/doc/gen/pg/pg_cell.rb +162 -158
  223. data/lib/wx/doc/gen/pg/pg_editor.rb +693 -689
  224. data/lib/wx/doc/gen/pg/pg_multi_button.rb +133 -129
  225. data/lib/wx/doc/gen/pg/pg_properties.rb +2662 -2658
  226. data/lib/wx/doc/gen/pg/pg_property.rb +1929 -1938
  227. data/lib/wx/doc/gen/pg/pg_validation_info.rb +275 -273
  228. data/lib/wx/doc/gen/pg/property_grid.rb +708 -706
  229. data/lib/wx/doc/gen/pg/property_grid_event.rb +168 -164
  230. data/lib/wx/doc/gen/pg/property_grid_interface.rb +1071 -1067
  231. data/lib/wx/doc/gen/pg/property_grid_manager.rb +386 -384
  232. data/lib/wx/doc/gen/pg/property_grid_page.rb +267 -265
  233. data/lib/wx/doc/gen/pg/property_grid_page_state.rb +147 -144
  234. data/lib/wx/doc/gen/picker_base.rb +1 -1
  235. data/lib/wx/doc/gen/platform_info.rb +1 -1
  236. data/lib/wx/doc/gen/popup_window.rb +1 -1
  237. data/lib/wx/doc/gen/progress_dialog.rb +1 -1
  238. data/lib/wx/doc/gen/property_sheet_dialog.rb +1 -1
  239. data/lib/wx/doc/gen/prt/page_setup_dialog.rb +32 -28
  240. data/lib/wx/doc/gen/prt/post_script_dc.rb +21 -18
  241. data/lib/wx/doc/gen/prt/preview_frame.rb +49 -45
  242. data/lib/wx/doc/gen/prt/print_abort_dialog.rb +126 -122
  243. data/lib/wx/doc/gen/prt/print_data.rb +637 -633
  244. data/lib/wx/doc/gen/prt/print_dialog.rb +43 -39
  245. data/lib/wx/doc/gen/prt/printer.rb +484 -480
  246. data/lib/wx/doc/gen/prt/printer_dc.rb +26 -22
  247. data/lib/wx/doc/gen/query_layout_info_event.rb +1 -1
  248. data/lib/wx/doc/gen/radio_box.rb +1 -1
  249. data/lib/wx/doc/gen/radio_button.rb +1 -1
  250. data/lib/wx/doc/gen/rbn/ribbon_art_provider.rb +1716 -1712
  251. data/lib/wx/doc/gen/rbn/ribbon_bar.rb +239 -235
  252. data/lib/wx/doc/gen/rbn/ribbon_bar_event.rb +34 -30
  253. data/lib/wx/doc/gen/rbn/ribbon_button_bar.rb +439 -435
  254. data/lib/wx/doc/gen/rbn/ribbon_button_bar_event.rb +52 -48
  255. data/lib/wx/doc/gen/rbn/ribbon_control.rb +116 -112
  256. data/lib/wx/doc/gen/rbn/ribbon_gallery.rb +205 -201
  257. data/lib/wx/doc/gen/rbn/ribbon_gallery_event.rb +44 -40
  258. data/lib/wx/doc/gen/rbn/ribbon_page.rb +129 -125
  259. data/lib/wx/doc/gen/rbn/ribbon_panel.rb +229 -225
  260. data/lib/wx/doc/gen/rbn/ribbon_panel_event.rb +34 -30
  261. data/lib/wx/doc/gen/rbn/ribbon_tool_bar.rb +329 -325
  262. data/lib/wx/doc/gen/rbn/ribbon_tool_bar_event.rb +31 -27
  263. data/lib/wx/doc/gen/rearrange_ctrl.rb +1 -1
  264. data/lib/wx/doc/gen/rearrange_list.rb +1 -1
  265. data/lib/wx/doc/gen/region.rb +1 -1
  266. data/lib/wx/doc/gen/region_iterator.rb +1 -1
  267. data/lib/wx/doc/gen/rtc/rich_text_box.rb +424 -420
  268. data/lib/wx/doc/gen/rtc/rich_text_buffer.rb +1148 -1144
  269. data/lib/wx/doc/gen/rtc/rich_text_buffer_data_object.rb +30 -26
  270. data/lib/wx/doc/gen/rtc/rich_text_composite_object.rb +516 -512
  271. data/lib/wx/doc/gen/rtc/rich_text_ctrl.rb +1991 -1987
  272. data/lib/wx/doc/gen/rtc/rich_text_event.rb +159 -155
  273. data/lib/wx/doc/gen/rtc/rich_text_file_handler.rb +167 -163
  274. data/lib/wx/doc/gen/rtc/rich_text_formatting_dialog.rb +271 -267
  275. data/lib/wx/doc/gen/rtc/rich_text_header_footer_data.rb +171 -167
  276. data/lib/wx/doc/gen/rtc/rich_text_html_handler.rb +88 -85
  277. data/lib/wx/doc/gen/rtc/rich_text_image.rb +323 -319
  278. data/lib/wx/doc/gen/rtc/rich_text_object.rb +2819 -2815
  279. data/lib/wx/doc/gen/rtc/rich_text_paragraph_layout_box.rb +1187 -1183
  280. data/lib/wx/doc/gen/rtc/rich_text_printing.rb +242 -238
  281. data/lib/wx/doc/gen/rtc/rich_text_style_list_box.rb +286 -279
  282. data/lib/wx/doc/gen/rtc/rich_text_style_organiser_dialog.rb +181 -177
  283. data/lib/wx/doc/gen/rtc/rich_text_xml_handler.rb +47 -44
  284. data/lib/wx/doc/gen/rtc/symbol_picker_dialog.rb +145 -141
  285. data/lib/wx/doc/gen/sash_event.rb +1 -1
  286. data/lib/wx/doc/gen/sash_layout_window.rb +1 -1
  287. data/lib/wx/doc/gen/sash_window.rb +1 -1
  288. data/lib/wx/doc/gen/scaled_dc.rb +1 -1
  289. data/lib/wx/doc/gen/screen_dc.rb +1 -1
  290. data/lib/wx/doc/gen/scroll_bar.rb +1 -2
  291. data/lib/wx/doc/gen/scrolled_canvas.rb +1 -1
  292. data/lib/wx/doc/gen/scrolled_control.rb +1 -1
  293. data/lib/wx/doc/gen/scrolled_window.rb +1 -1
  294. data/lib/wx/doc/gen/search_ctrl.rb +1 -1
  295. data/lib/wx/doc/gen/simplebook.rb +1 -1
  296. data/lib/wx/doc/gen/single_choice_dialog.rb +1 -1
  297. data/lib/wx/doc/gen/sizer.rb +1 -2
  298. data/lib/wx/doc/gen/sizer_item.rb +1 -1
  299. data/lib/wx/doc/gen/slider.rb +1 -2
  300. data/lib/wx/doc/gen/spin_button.rb +1 -1
  301. data/lib/wx/doc/gen/spin_ctrl.rb +1 -1
  302. data/lib/wx/doc/gen/spin_ctrl_double.rb +1 -1
  303. data/lib/wx/doc/gen/spin_double_event.rb +1 -1
  304. data/lib/wx/doc/gen/spin_event.rb +1 -1
  305. data/lib/wx/doc/gen/splash_screen.rb +2 -2
  306. data/lib/wx/doc/gen/splitter_event.rb +1 -1
  307. data/lib/wx/doc/gen/splitter_window.rb +1 -1
  308. data/lib/wx/doc/gen/static_bitmap.rb +1 -1
  309. data/lib/wx/doc/gen/static_box.rb +1 -1
  310. data/lib/wx/doc/gen/static_box_sizer.rb +1 -1
  311. data/lib/wx/doc/gen/static_line.rb +1 -1
  312. data/lib/wx/doc/gen/static_text.rb +1 -1
  313. data/lib/wx/doc/gen/status_bar.rb +1 -1
  314. data/lib/wx/doc/gen/stc/styled_text_ctrl.rb +4202 -4199
  315. data/lib/wx/doc/gen/stc/styled_text_event.rb +7511 -7508
  316. data/lib/wx/doc/gen/std_dialog_button_sizer.rb +1 -1
  317. data/lib/wx/doc/gen/svg_file_dc.rb +1 -1
  318. data/lib/wx/doc/gen/system_options.rb +1 -1
  319. data/lib/wx/doc/gen/system_settings.rb +1 -1
  320. data/lib/wx/doc/gen/task_bar_button.rb +1 -1
  321. data/lib/wx/doc/gen/task_bar_icon.rb +1 -2
  322. data/lib/wx/doc/gen/task_bar_icon_event.rb +1 -1
  323. data/lib/wx/doc/gen/text_attr.rb +1 -1
  324. data/lib/wx/doc/gen/text_ctrl.rb +1 -6
  325. data/lib/wx/doc/gen/text_entry.rb +1 -1
  326. data/lib/wx/doc/gen/text_entry_dialog.rb +1 -1
  327. data/lib/wx/doc/gen/text_validator.rb +1 -1
  328. data/lib/wx/doc/gen/time_picker_ctrl.rb +1 -1
  329. data/lib/wx/doc/gen/timer.rb +1 -1
  330. data/lib/wx/doc/gen/timer_event.rb +1 -1
  331. data/lib/wx/doc/gen/tip_provider.rb +1 -1
  332. data/lib/wx/doc/gen/toggle_button.rb +1 -1
  333. data/lib/wx/doc/gen/tool_bar.rb +1 -1
  334. data/lib/wx/doc/gen/tool_tip.rb +1 -1
  335. data/lib/wx/doc/gen/toolbook.rb +1 -1
  336. data/lib/wx/doc/gen/top_level_window.rb +1 -1
  337. data/lib/wx/doc/gen/tree_ctrl.rb +1 -3
  338. data/lib/wx/doc/gen/tree_event.rb +1 -1
  339. data/lib/wx/doc/gen/treebook.rb +1 -1
  340. data/lib/wx/doc/gen/ui_action_simulator.rb +1 -1
  341. data/lib/wx/doc/gen/utils.rb +1 -1
  342. data/lib/wx/doc/gen/v_list_box.rb +1 -1
  343. data/lib/wx/doc/gen/v_scrolled_window.rb +1 -2
  344. data/lib/wx/doc/gen/validator.rb +1 -1
  345. data/lib/wx/doc/gen/variant.rb +1 -1
  346. data/lib/wx/doc/gen/window.rb +1 -1
  347. data/lib/wx/doc/gen/window_dc.rb +1 -1
  348. data/lib/wx/doc/gen/window_disabler.rb +1 -1
  349. data/lib/wx/doc/gen/with_images.rb +1 -1
  350. data/lib/wx/doc/gen/wizard.rb +1 -2
  351. data/lib/wx/doc/gen/wizard_event.rb +1 -1
  352. data/lib/wx/doc/gen/wizard_page.rb +1 -2
  353. data/lib/wx/doc/gen/wizard_page_simple.rb +1 -1
  354. data/lib/wx/doc/gen/wrap_sizer.rb +1 -1
  355. data/lib/wx/doc/gen/xml_node.rb +1 -1
  356. data/lib/wx/doc/gen/xml_resource.rb +1 -1
  357. data/lib/wx/doc/owner_drawn_combobox.rb +5 -1
  358. data/lib/wx/rtc/ext/rich_text_ctrl.rb +5 -5
  359. data/lib/wx/version.rb +1 -1
  360. data/lib/wx/wxruby/base.rb +6 -4
  361. data/lib/wx/wxruby/cmd/sampler.rb +39 -29
  362. data/lib/wx/wxruby/cmd/setup.rb +122 -0
  363. data/lib/wx/wxruby/cmd/test.rb +56 -6
  364. data/lib/wxruby_aui.so +0 -0
  365. data/lib/wxruby_core.so +0 -0
  366. data/lib/wxruby_grid.so +0 -0
  367. data/lib/wxruby_html.so +0 -0
  368. data/lib/wxruby_pg.so +0 -0
  369. data/lib/wxruby_prt.so +0 -0
  370. data/lib/wxruby_rbn.so +0 -0
  371. data/lib/wxruby_rtc.so +0 -0
  372. data/lib/wxruby_stc.so +0 -0
  373. data/rakelib/install.rb +2 -0
  374. data/rakelib/lib/config/linux.rb +24 -2
  375. data/rakelib/lib/config/macosx.rb +16 -0
  376. data/rakelib/lib/config/mingw.rb +133 -9
  377. data/rakelib/lib/config/pkgman/arch.rb +53 -0
  378. data/rakelib/lib/config/pkgman/base.rb +169 -0
  379. data/rakelib/lib/config/pkgman/debian.rb +66 -0
  380. data/rakelib/lib/config/pkgman/macosx.rb +183 -0
  381. data/rakelib/lib/config/pkgman/rhel.rb +54 -0
  382. data/rakelib/lib/config/pkgman/suse.rb +54 -0
  383. data/rakelib/lib/config/unixish.rb +36 -19
  384. data/rakelib/lib/config.rb +254 -61
  385. data/rakelib/prepost.rake +9 -4
  386. data/rakelib/yard/templates/default/fulldoc/html/css/wxruby3.css +14 -0
  387. data/rakelib/yard/templates/default/fulldoc/html/setup.rb +5 -5
  388. data/rakelib/yard/yard/relative_markdown_links.rb +7 -1
  389. data/tests/test_combo_ctrl.rb +196 -0
  390. metadata +25 -4
@@ -0,0 +1,169 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
5
+ ###
6
+ # wxRuby3 buildtools platform pkg manager base
7
+ ###
8
+
9
+ module WXRuby3
10
+
11
+ module Config
12
+
13
+ module Platform
14
+
15
+ module PkgManager
16
+
17
+ MIN_GENERIC_PKGS = %w[gtk3-devel patchelf g++ make git webkit2gtk3-devel gspell-devel gstreamer-devel gstreamer-plugins-base-devel libcurl-devel libsecret-devel libnotify-devel libSDL-devel zlib-devel]
18
+
19
+ class << self
20
+
21
+ def install(pkgs)
22
+ # do we need to install anything?
23
+ if !pkgs.empty? || builds_wxwidgets?
24
+ # determine the linux distro specs
25
+ distro = get_distro
26
+ begin
27
+ # load distro installation support
28
+ require_relative "./#{distro[:type]}"
29
+ rescue LoadError
30
+ # do we need to build wxWidgets?
31
+ pkgs.concat(MIN_GENERIC_PKGS) if builds_wxwidgets?
32
+ $stderr.puts <<~__ERROR_TXT
33
+ ERROR: Do not know how to install required packages for distro type '#{distro[:type]}'.
34
+
35
+ Make sure the following packages (or equivalent) are installed and than try again with `WXRUBY_NO_AUTOINSTALL=1`:
36
+ #{pkgs.join(', ')}
37
+ __ERROR_TXT
38
+ exit(1)
39
+ end
40
+ # can we install?
41
+ unless no_autoinstall? || has_sudo? || is_root?
42
+ $stderr.puts 'ERROR: Cannot check for or install required packages. Please install sudo or run as root and try again.'
43
+ exit(1)
44
+ end
45
+ # do we need to build wxWidgets?
46
+ if builds_wxwidgets?
47
+ # add platform specific packages for wxWidgets
48
+ add_platform_pkgs(pkgs)
49
+ end
50
+ # do we actually have any packages to install?
51
+ unless pkgs.empty?
52
+ # autoinstall or not?
53
+ unless wants_autoinstall?
54
+ $stderr.puts <<~__ERROR_TXT
55
+ ERROR: This system may lack installed versions of the following required software packages:
56
+ #{pkgs.join(', ')}
57
+
58
+ Install these packages and try again.
59
+ __ERROR_TXT
60
+ exit(1)
61
+ end
62
+ # do the actual install
63
+ unless do_install(distro, pkgs)
64
+ $stderr.puts <<~__ERROR_TXT
65
+ ERROR: Failed to install all or some of the following required software packages:
66
+ #{pkgs.join(', ')}
67
+
68
+ Fix any problems or install these packages yourself and try again.
69
+ __ERROR_TXT
70
+ if WXRuby3.config.run_silent?
71
+ $stderr.puts "For error details check #{WXRuby3.config.silent_log_name}"
72
+ end
73
+ exit(1)
74
+ end
75
+ end
76
+ end
77
+ end
78
+
79
+ private
80
+
81
+ def builds_wxwidgets?
82
+ Config.get_config('with-wxwin') && Config.get_cfg_string('wxwin').empty?
83
+ end
84
+
85
+ def no_autoinstall?
86
+ Config.get_config('autoinstall') == false
87
+ end
88
+
89
+ def wants_autoinstall?
90
+ WXRuby3.config.wants_autoinstall?
91
+ end
92
+
93
+ def has_sudo?
94
+ system('command -v sudo > /dev/null')
95
+ end
96
+
97
+ def is_root?
98
+ `id -u 2>/dev/null`.chomp == '0'
99
+ end
100
+
101
+ def run(cmd)
102
+ $stdout.print "Running #{cmd}..."
103
+ rc = WXRuby3.config.sh("#{is_root? ? '' : 'sudo '}#{cmd}")
104
+ $stderr.puts (rc ? 'done!' : 'FAILED!')
105
+ rc
106
+ end
107
+
108
+ def expand(cmd)
109
+ `#{is_root? ? '' : 'sudo '}#{cmd}`
110
+ end
111
+
112
+ def get_distro
113
+ if File.file?('/etc/os-release') # works with most (if not all) recent distro releases
114
+ data = File.readlines('/etc/os-release').reduce({}) do |hash, line|
115
+ val, var = line.split('=')
116
+ hash[val] = var.strip.gsub(/(\A")|("\Z)/, '')
117
+ hash
118
+ end
119
+ {
120
+ type: if data['ID_LIKE']
121
+ data['ID_LIKE'].split.first.to_sym
122
+ elsif File.file?('/etc/redhat-release')
123
+ :rhel
124
+ elsif File.file?('/etc/SUSE-brand') || File.file?('/etc/SuSE-release')
125
+ :suse
126
+ elsif File.file?('/etc/debian_version')
127
+ :debian
128
+ else
129
+ data['ID'].to_sym
130
+ end,
131
+ distro: data['ID'].downcase,
132
+ release: data['VERSION_ID']
133
+ }
134
+ elsif File.file?('/etc/redhat-release')
135
+ data = File.read('/etc/redhat-release').strip
136
+ {
137
+ type: :rhel,
138
+ distro: data.split.shift.downcase,
139
+ release: data =~ /\d+(\.\d+)*/ ? $~[0] : ''
140
+ }
141
+ elsif File.file?('/etc/SUSE-brand') || File.file?('/etc/SuSE-release')
142
+ data = File.readlines(File.file?('/etc/SUSE-brand') ? '/etc/SUSE-brand' : '/etc/SuSE-release')
143
+ {
144
+ type: :suse,
145
+ distro: data.shift.split.shift.downcase,
146
+ release: (data.find { |s| s.strip =~ /\AVERSION\s*=/ } || '').split('=').last || ''
147
+ }
148
+ elsif File.file?('/etc/debian_version')
149
+ {
150
+ type: :debian,
151
+ distro: 'generic',
152
+ release: File.read('/etc/debian_version').strip
153
+ }
154
+ else
155
+ {
156
+ type: :unknown
157
+ }
158
+ end
159
+ end
160
+
161
+ end
162
+
163
+ end
164
+
165
+ end
166
+
167
+ end
168
+
169
+ end
@@ -0,0 +1,66 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
5
+ ###
6
+ # wxRuby3 buildtools platform pkg manager for Debian type systems
7
+ ###
8
+
9
+ module WXRuby3
10
+
11
+ module Config
12
+
13
+ module Platform
14
+
15
+ module PkgManager
16
+
17
+ PLATFORM_DEPS = %w[libgtk-3-dev libwebkit2gtk-4.0-dev libgspell-1-dev libunwind-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libcurl4-openssl-dev libsecret-1-dev libnotify-dev]
18
+
19
+ class << self
20
+
21
+ private
22
+
23
+ def do_install(distro, pkgs)
24
+ run_apt(make_install_cmd(pkgs))
25
+ end
26
+
27
+ def add_platform_pkgs(pkgs)
28
+ # get architecture
29
+ arch = expand('dpkg --print-architecture').strip
30
+ # find pkgs we need
31
+ PLATFORM_DEPS.inject(pkgs) do |list, pkg|
32
+ list << pkg unless (system("dpkg-query -s \"#{pkg}:#{arch}\" >/dev/null 2>&1") ||
33
+ system("dpkg-query -s \"#{pkg}:all\" >/dev/null 2>&1") ||
34
+ (expand("dpkg-query -s \"#{pkg}\" 2>/dev/null").strip =~ /Architecture: (#{arch}|all)/))
35
+ list
36
+ end
37
+ end
38
+
39
+ def run_apt(cmd)
40
+ run("DEBIAN_FRONTEND=noninteractive apt-get -q -o=Dpkg::Use-Pty=0 #{cmd}")
41
+ end
42
+
43
+ def update_pkgs
44
+ run_apt('update')
45
+ end
46
+
47
+ def make_install_cmd(pkgs)
48
+ # update cache
49
+ update_pkgs
50
+ # get list of available packages
51
+ apt_cache = `apt-cache pkgnames`.chomp.split("\n").collect { |s| s.strip }
52
+ # remove un-installables
53
+ pkgs = pkgs.select { |pkg| apt_cache.include?(pkg) }
54
+ # create install command
55
+ "install -y #{ pkgs.join(' ') }"
56
+ end
57
+
58
+ end
59
+
60
+ end
61
+
62
+ end
63
+
64
+ end
65
+
66
+ end
@@ -0,0 +1,183 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
5
+ ###
6
+ # wxRuby3 buildtools MacOSX pkg manager
7
+ ###
8
+
9
+ module WXRuby3
10
+
11
+ module Config
12
+
13
+ module Platform
14
+
15
+ module PkgManager
16
+
17
+ class << self
18
+
19
+ def install(pkgs)
20
+ # do we need to install anything?
21
+ if !pkgs.empty?
22
+ # can we install XCode commandline tools?
23
+ unless no_autoinstall? || !pkgs.include?('xcode') || has_sudo? || is_root?
24
+ STDERR.puts 'ERROR: Cannot check for or install required packages. Please install sudo or run as root and try again.'
25
+ exit(1)
26
+ end
27
+
28
+ # autoinstall or not?
29
+ unless pkgs.empty? || wants_autoinstall?
30
+ $stderr.puts <<~__ERROR_TXT
31
+ ERROR: This system may lack installed versions of the following required software packages:
32
+ #{pkgs.join(', ')}
33
+
34
+ Install these packages and try again.
35
+ __ERROR_TXT
36
+ exit(1)
37
+ end
38
+ # do the actual install (or nothing)
39
+ unless do_install(pkgs)
40
+ $stderr.puts <<~__ERROR_TXT
41
+ ERROR: Failed to install all or some of the following required software packages:
42
+ #{pkgs.join(', ')}
43
+
44
+ Fix any problems or install these packages yourself and try again.
45
+ __ERROR_TXT
46
+ exit(1)
47
+ end
48
+ end
49
+ end
50
+
51
+ private
52
+
53
+ def do_install(pkgs)
54
+ rc = true
55
+ # first see if we need to install XCode commandline tools
56
+ if pkgs.include?('xcode')
57
+ pkgs.delete('xcode')
58
+ rc = run('xcode-select --install')
59
+ end
60
+ # now check if we need any other packages (which need Homebrew or MacPorts)
61
+ if rc && !pkgs.empty?
62
+ # Has Ruby been installed through MacPorts?
63
+ if has_macports? &&
64
+ (ruby_info = expand('port -q installed installed').strip.split("\n").find { |ln| ln.strip =~ /\Aruby\d+\s/ })
65
+
66
+ # this is really crap; with MacPorts we need to install swig-ruby instead of simply swig
67
+ # which for whatever nonsensical reason will pull in another (older) Ruby version (probably 2.3 or such)
68
+ # although SWIG's Ruby support is version agnostic and has no binary bindings
69
+ if pkgs.include?('swig')
70
+ pkgs.delete('swig')
71
+ pkgs << 'swig-ruby'
72
+ end
73
+ # in case MacPorts was installed with root privileges this install would also have to be run
74
+ # with root privileges (otherwise it would fail early on with access problems) so we can
75
+ # just run without sudo as we either have root privileges for root-installed MacPorts or
76
+ # we're running without root privileges for user-installed MacPorts
77
+ pkgs.each { |pkg| rc &&= sh("port install #{pkg}") }
78
+
79
+ # or are we running without root privileges and have Homebrew installed?
80
+ # (Ruby may be installed using Homebrew itself or using a Ruby version manager like RVM)
81
+ elsif !is_root? && has_homebrew?
82
+
83
+ pkgs.each { |pkg| rc &&= sh("brew install #{pkg}") }
84
+
85
+ # or do we have MacPorts (running either privileged or not) and
86
+ # a Ruby installed using a Ruby version manager.
87
+ elsif has_macports?
88
+
89
+ # same crap as above
90
+ if pkgs.include?('swig')
91
+ pkgs.delete('swig')
92
+ pkgs << 'swig-ruby'
93
+ end
94
+ # in case MacPorts was installed with root privileges this install would also have to be run
95
+ # with root privileges (otherwise it would fail early on with access problems) so we can
96
+ # just run without sudo as we either have root privileges for root-installed MacPorts or
97
+ # we're running without root privileges for user-installed MacPorts
98
+ pkgs.each { |pkg| rc &&= sh("port install #{pkg}") }
99
+
100
+ else
101
+ if has_homebrew? || is_root?
102
+ $stderr.puts <<~__ERROR_TXT
103
+ ERROR: Unsupported Ruby installation. wxRuby3 can only be installed for Ruby with root privileges
104
+ in case Ruby was installed with MacPorts. Homebrew should not be run with root privileges.
105
+
106
+ Re-install a supported Ruby setup and try again.
107
+ __ERROR_TXT
108
+ else
109
+ $stderr.puts <<~__ERROR_TXT
110
+ ERROR: Unsupported Ruby installation. wxRuby3 requires either a MacPorts installed Ruby version
111
+ or a non-privileged Ruby installation and have Homebrew installed.
112
+
113
+ Install either Homebrew or MacPorts and try again.
114
+ __ERROR_TXT
115
+ end
116
+ exit(1)
117
+ end
118
+ end
119
+ rc
120
+ end
121
+
122
+ def builds_wxwidgets?
123
+ Config.get_config('with-wxwin') && Config.get_cfg_string('wxwin').empty?
124
+ end
125
+
126
+ def no_autoinstall?
127
+ Config.get_config('autoinstall') == false
128
+ end
129
+
130
+ def wants_autoinstall?
131
+ WXRuby3.config.wants_autoinstall?
132
+ end
133
+
134
+ def has_sudo?
135
+ system('command -v sudo > /dev/null')
136
+ end
137
+
138
+ def is_root?
139
+ if @is_root.nil?
140
+ @is_root = (`id -u 2>/dev/null`.chomp == '0')
141
+ end
142
+ @is_root
143
+ end
144
+
145
+ def has_macports?
146
+ if @has_macports.nil?
147
+ @has_macports = system('command -v port>/dev/null')
148
+ end
149
+ end
150
+
151
+ def has_homebrew?
152
+ if @has_homebrew.nil?
153
+ @has_homebrew = system('command -v brew>/dev/null')
154
+ end
155
+ end
156
+
157
+ def run(cmd)
158
+ $stdout.print "Running #{cmd}..."
159
+ rc = WXRuby3.config.sh("#{is_root? ? '' : 'sudo '}#{cmd}")
160
+ $stderr.puts (rc ? 'done!' : 'FAILED!')
161
+ rc
162
+ end
163
+
164
+ def sh(*cmd, title: nil)
165
+ $stdout.print(title ? title : "Running #{cmd}...")
166
+ rc = WXRuby3.config.sh(*cmd)
167
+ $stderr.puts (rc ? 'done!' : 'FAILED!')
168
+ rc
169
+ end
170
+
171
+ def expand(cmd)
172
+ WXRuby3.config.expand(cmd)
173
+ end
174
+
175
+ end
176
+
177
+ end
178
+
179
+ end
180
+
181
+ end
182
+
183
+ end
@@ -0,0 +1,54 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
5
+ ###
6
+ # wxRuby3 buildtools platform pkg manager for RHEL type systems
7
+ ###
8
+
9
+ module WXRuby3
10
+
11
+ module Config
12
+
13
+ module Platform
14
+
15
+ module PkgManager
16
+
17
+ PLATFORM_DEPS = %w[expat-devel findutils gspell-devel gstreamer1-plugins-base-devel gtk3-devel libcurl-devel libjpeg-devel libnotify-devel libpng-devel libSM-devel libsecret-devel libtiff-devel SDL-devel webkit2gtk4.1-devel zlib-devel]
18
+
19
+ class << self
20
+
21
+ private
22
+
23
+ def do_install(distro, pkgs)
24
+ run_dnf(make_install_cmd(pkgs))
25
+ end
26
+
27
+ def add_platform_pkgs(pkgs)
28
+ # add build tools
29
+ if pkgs.include?('git')
30
+ pkgs.delete('git')
31
+ pkgs << 'git-core'
32
+ end
33
+ # find pkgs we need
34
+ PLATFORM_DEPS.inject(pkgs) { |list, pkg| list << pkg unless system("dnf list installed #{pkg} >/dev/null 2>&1"); list }
35
+ end
36
+
37
+ def run_dnf(cmd)
38
+ run("dnf #{cmd}")
39
+ end
40
+
41
+ def make_install_cmd(pkgs)
42
+ # create install command
43
+ "install -y #{ pkgs.join(' ') }"
44
+ end
45
+
46
+ end
47
+
48
+ end
49
+
50
+ end
51
+
52
+ end
53
+
54
+ end
@@ -0,0 +1,54 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
5
+ ###
6
+ # wxRuby3 buildtools platform pkg manager for SuSE type systems
7
+ ###
8
+
9
+ module WXRuby3
10
+
11
+ module Config
12
+
13
+ module Platform
14
+
15
+ module PkgManager
16
+
17
+ PLATFORM_DEPS = %w[gtk3-devel webkit2gtk3-devel gspell-devel gstreamer-devel gstreamer-plugins-base-devel libcurl-devel libsecret-devel libnotify-devel libSDL-devel zlib-devel libjpeg-devel libpng-devel]
18
+
19
+ class << self
20
+
21
+ private
22
+
23
+ def do_install(distro, pkgs)
24
+ run_zypper(make_install_cmd(pkgs))
25
+ end
26
+
27
+ def add_platform_pkgs(pkgs)
28
+ # add build tools
29
+ if pkgs.include?('g++')
30
+ pkgs.delete('g++')
31
+ pkgs << 'gcc-c++'
32
+ end
33
+ # find pkgs we need
34
+ PLATFORM_DEPS.inject(pkgs) { |list, pkg| list << pkg unless system("rpm -q --whatprovides #{pkg} >/dev/null 2>&1"); list }
35
+ end
36
+
37
+ def run_zypper(cmd)
38
+ run("zypper -t -i #{cmd}")
39
+ end
40
+
41
+ def make_install_cmd(pkgs)
42
+ # create install command
43
+ "install -y #{ pkgs.join(' ') }"
44
+ end
45
+
46
+ end
47
+
48
+ end
49
+
50
+ end
51
+
52
+ end
53
+
54
+ end
@@ -52,32 +52,49 @@ module WXRuby3
52
52
  objs = pkg.all_obj_files.collect { |o| File.join('..', o) }.join(' ') + ' '
53
53
  depsh = pkg.dep_libnames.collect { |dl| "#{dl}.#{dll_ext}" }.join(' ')
54
54
  sh "cd lib && #{WXRuby3.config.ld} #{WXRuby3.config.ldflags(pkg.lib_target)} #{objs} #{depsh} " +
55
- "#{WXRuby3.config.libs} #{WXRuby3.config.link_output_flag}#{pkg.lib_target}"
55
+ "#{WXRuby3.config.libs} #{WXRuby3.config.link_output_flag}#{pkg.lib_target}",
56
+ fail_on_error: true
57
+ end
58
+
59
+ def check_tool_pkgs
60
+ pkg_deps = super
61
+ pkg_deps << 'doxygen' unless system('command -v doxygen>/dev/null')
62
+ pkg_deps << 'swig' unless system('command -v swig>/dev/null')
63
+ pkg_deps
56
64
  end
57
65
 
58
66
  def get_rpath_origin
59
67
  "$ORIGIN"
60
68
  end
61
69
 
70
+ def expand(cmd)
71
+ STDERR.puts "> sh: #{cmd}" if verbose?
72
+ s = super
73
+ STDERR.puts "< #{s}" if verbose?
74
+ s
75
+ end
76
+
62
77
  private
63
78
 
64
79
  def wx_checkout
65
- check_git
80
+ $stdout.print 'Checking out wxWidgets...' if run_silent?
66
81
  # clone wxWidgets GIT repository under ext_path
67
82
  chdir(ext_path) do
68
- if (rc = sh("git clone https://github.com/wxWidgets/wxWidgets.git"))
83
+ if (rc = sh("#{get_cfg_string('git')} clone https://github.com/wxWidgets/wxWidgets.git"))
69
84
  chdir('wxWidgets') do
70
85
  tag = if @wx_version
71
86
  "v#{@wx_version}"
72
87
  else
73
- expand('git tag').split("\n").select { |t| (/\Av3\.(\d+)/ =~ t) && $1.to_i >= 2 }.max
88
+ expand("#{get_cfg_string('git')} tag").split("\n").select { |t| (/\Av3\.(\d+)/ =~ t) && $1.to_i >= 2 }.max
74
89
  end
75
90
  # checkout the version we are building against
76
- rc = sh("git checkout #{tag}")
91
+ rc = sh("#{get_cfg_string('git')} checkout #{tag}")
77
92
  end
78
93
  end
79
- unless rc
80
- STDERR.puts "ERROR: Failed to checkout wxWidgets."
94
+ if rc
95
+ $stdout.puts 'done!' if run_silent?
96
+ else
97
+ $stderr.puts "ERROR: Failed to checkout wxWidgets."
81
98
  exit(1)
82
99
  end
83
100
  end
@@ -92,36 +109,36 @@ module WXRuby3
92
109
  end
93
110
 
94
111
  def wx_build
112
+ $stdout.print 'Configuring wxWidgets...' if run_silent?
95
113
  # initialize submodules
96
- unless sh('git submodule update --init')
97
- STDERR.puts "ERROR: Failed to update wxWidgets submodules."
114
+ unless sh("#{get_cfg_string('git')} submodule update --init")
115
+ $stderr.puts "ERROR: Failed to update wxWidgets submodules."
98
116
  exit(1)
99
117
  end
100
118
  # configure wxWidgets
101
119
  unless wx_configure
102
- STDERR.puts "ERROR: Failed to configure wxWidgets."
120
+ $stderr.puts "ERROR: Failed to configure wxWidgets."
103
121
  exit(1)
104
122
  end
123
+ $stdout.puts 'done!' if run_silent?
124
+ $stdout.print 'Building wxWidgets...' if run_silent?
105
125
  # make and install wxWidgets
106
126
  unless wx_make
107
- STDERR.puts "ERROR: Failed to build wxWidgets libraries."
127
+ $stderr.puts "ERROR: Failed to build wxWidgets libraries."
108
128
  exit(1)
109
129
  end
130
+ $stdout.puts 'done!' if run_silent?
110
131
  end
111
132
 
112
133
  def wx_generate_xml
113
134
  chdir(File.join(ext_path, 'wxWidgets', 'docs', 'doxygen')) do
114
- sh({ 'WX_SKIP_DOXYGEN_VERSION_CHECK' => '1' }, './regen.sh xml')
135
+ unless sh({ 'DOXYGEN' => get_cfg_string("doxygen"), 'WX_SKIP_DOXYGEN_VERSION_CHECK' => '1' }, './regen.sh xml')
136
+ $stderr.puts 'ERROR: Failed to generate wxWidgets XML API specifications for parsing by wxRuby3.'
137
+ exit(1)
138
+ end
115
139
  end
116
140
  end
117
141
 
118
- def expand(cmd)
119
- STDERR.puts "> sh: #{cmd}" if verbose?
120
- s = super
121
- STDERR.puts "< #{s}" if verbose?
122
- s
123
- end
124
-
125
142
  # Allow specification of custom wxWidgets build (mostly useful for
126
143
  # static wxRuby3 builds)
127
144
  def get_wx_path