wxruby3 0.9.4-x64-mingw-ucrt → 0.9.7-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 (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