wxruby3 1.6.1 → 1.8.0

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 (642) hide show
  1. checksums.yaml +4 -4
  2. data/CREDITS.md +32 -25
  3. data/INSTALL.md +46 -6
  4. data/README.md +17 -17
  5. data/assets/repo-social-preview.odg +0 -0
  6. data/assets/repo-social-preview.xcf +0 -0
  7. data/ext/wxruby3/include/wxRubyApp.h +203 -91
  8. data/ext/wxruby3/include/wxruby-ComboPopup.h +25 -8
  9. data/ext/wxruby3/include/wxruby-GCTracking.h +262 -0
  10. data/ext/wxruby3/include/wxruby-MBConv.h +190 -0
  11. data/ext/wxruby3/include/wxruby-SharedEventHandler.h +183 -0
  12. data/ext/wxruby3/include/wxruby-SharedPtr.h +104 -0
  13. data/ext/wxruby3/include/wxruby-runtime.h +107 -1
  14. data/ext/wxruby3/swig/common.i +2 -2
  15. data/ext/wxruby3/swig/custom/director.swg +2 -2
  16. data/ext/wxruby3/swig/custom/rubyprimtypes.swg +59 -15
  17. data/ext/wxruby3/swig/custom/rubyrun.swg +4 -0
  18. data/ext/wxruby3/swig/custom/rubytracking.swg +9 -19
  19. data/ext/wxruby3/swig/custom/swiglabels.swg +129 -0
  20. data/ext/wxruby3/swig/custom/swigrun.swg +15 -0
  21. data/ext/wxruby3/swig/custom/typemaps/swigtypemaps.swg +20 -0
  22. data/ext/wxruby3/swig/custom/wx_ruby_shared_ptr.i +434 -0
  23. data/ext/wxruby3/swig/custom/wx_shared_ptr.i +431 -0
  24. data/ext/wxruby3/swig/mark_free_impl.i +83 -144
  25. data/ext/wxruby3/swig/memory_management.i +8 -43
  26. data/ext/wxruby3/swig/wx.i +88 -86
  27. data/lib/wx/aui/events/evt_list.rb +148 -0
  28. data/lib/wx/aui/require.rb +0 -1
  29. data/lib/wx/core/calendar_ctrl.rb +15 -0
  30. data/lib/wx/core/clipboard.rb +9 -13
  31. data/lib/wx/core/config.rb +1 -1
  32. data/lib/wx/core/const.rb +0 -1
  33. data/lib/wx/core/context_help.rb +17 -0
  34. data/lib/wx/core/cursor.rb +1 -0
  35. data/lib/wx/core/events/evt_list.rb +1458 -0
  36. data/lib/wx/core/font/encoding.rb +113 -0
  37. data/lib/wx/core/generic_validator.rb +83 -31
  38. data/lib/wx/core/helpcontrollerhelpprovider.rb +10 -2
  39. data/lib/wx/core/mbconv.rb +11 -0
  40. data/lib/wx/core/media_ctrl.rb +31 -0
  41. data/lib/wx/core/tipwindow.rb +16 -0
  42. data/lib/wx/core/top_level_window.rb +7 -0
  43. data/lib/wx/core.rb +6 -0
  44. data/lib/wx/doc/art_provider.rb +17 -0
  45. data/lib/wx/doc/aui/auitabctrl.rb +35 -0
  46. data/lib/wx/doc/config.rb +2 -2
  47. data/lib/wx/doc/context_help.rb +42 -0
  48. data/lib/wx/doc/core.rb +0 -5
  49. data/lib/wx/doc/functions.rb +11 -1
  50. data/lib/wx/doc/gen/about_dialog_info.rb +330 -0
  51. data/lib/wx/doc/gen/accelerator.rb +178 -0
  52. data/lib/wx/doc/gen/activity_indicator.rb +83 -0
  53. data/lib/wx/doc/gen/affine_matrix2d.rb +286 -0
  54. data/lib/wx/doc/gen/animation.rb +275 -0
  55. data/lib/wx/doc/gen/animation_ctrl.rb +300 -0
  56. data/lib/wx/doc/gen/any_button.rb +191 -0
  57. data/lib/wx/doc/gen/app.rb +463 -0
  58. data/lib/wx/doc/gen/app_traits.rb +396 -0
  59. data/lib/wx/doc/gen/art_provider.rb +617 -0
  60. data/lib/wx/doc/gen/aui/aui_dock_art.rb +455 -0
  61. data/lib/wx/doc/gen/aui/aui_floating_frame.rb +54 -0
  62. data/lib/wx/doc/gen/aui/aui_manager.rb +847 -0
  63. data/lib/wx/doc/gen/aui/aui_manager_event.rb +131 -0
  64. data/lib/wx/doc/gen/aui/aui_mdi_child_frame.rb +180 -0
  65. data/lib/wx/doc/gen/aui/aui_mdi_client_window.rb +59 -0
  66. data/lib/wx/doc/gen/aui/aui_mdi_parent_frame.rb +130 -0
  67. data/lib/wx/doc/gen/aui/aui_notebook.rb +631 -0
  68. data/lib/wx/doc/gen/aui/aui_notebook_event.rb +233 -0
  69. data/lib/wx/doc/gen/aui/aui_pane_info.rb +769 -0
  70. data/lib/wx/doc/gen/aui/aui_tab_art.rb +352 -0
  71. data/lib/wx/doc/gen/aui/aui_tab_ctrl.rb +14 -0
  72. data/lib/wx/doc/gen/aui/aui_tool_bar.rb +510 -0
  73. data/lib/wx/doc/gen/aui/aui_tool_bar_art.rb +340 -0
  74. data/lib/wx/doc/gen/aui/aui_tool_bar_event.rb +244 -0
  75. data/lib/wx/doc/gen/aui/aui_tool_bar_item.rb +257 -0
  76. data/lib/wx/doc/gen/aui/event_list.rb +179 -0
  77. data/lib/wx/doc/gen/banner_window.rb +124 -0
  78. data/lib/wx/doc/gen/bitmap.rb +731 -0
  79. data/lib/wx/doc/gen/bitmap_button.rb +123 -0
  80. data/lib/wx/doc/gen/bitmap_combo_box.rb +221 -0
  81. data/lib/wx/doc/gen/book_ctrl_base.rb +274 -0
  82. data/lib/wx/doc/gen/book_ctrl_event.rb +66 -0
  83. data/lib/wx/doc/gen/box_sizer.rb +85 -0
  84. data/lib/wx/doc/gen/brush.rb +251 -0
  85. data/lib/wx/doc/gen/busy_info.rb +157 -0
  86. data/lib/wx/doc/gen/button.rb +182 -0
  87. data/lib/wx/doc/gen/calculate_layout_event.rb +62 -0
  88. data/lib/wx/doc/gen/calendar_ctrl.rb +505 -0
  89. data/lib/wx/doc/gen/calendar_date_attr.rb +138 -0
  90. data/lib/wx/doc/gen/calendar_event.rb +147 -0
  91. data/lib/wx/doc/gen/caret.rb +97 -0
  92. data/lib/wx/doc/gen/check_box.rb +175 -0
  93. data/lib/wx/doc/gen/check_list_box.rb +121 -0
  94. data/lib/wx/doc/gen/choice.rb +175 -0
  95. data/lib/wx/doc/gen/choicebook.rb +116 -0
  96. data/lib/wx/doc/gen/client_dc.rb +43 -0
  97. data/lib/wx/doc/gen/clipboard.rb +144 -0
  98. data/lib/wx/doc/gen/collapsible_pane.rb +138 -0
  99. data/lib/wx/doc/gen/collapsible_pane_event.rb +46 -0
  100. data/lib/wx/doc/gen/colour.rb +333 -0
  101. data/lib/wx/doc/gen/colour_dialog.rb +190 -0
  102. data/lib/wx/doc/gen/colour_picker_ctrl.rb +110 -0
  103. data/lib/wx/doc/gen/colour_picker_event.rb +77 -0
  104. data/lib/wx/doc/gen/combo_box.rb +292 -0
  105. data/lib/wx/doc/gen/combo_ctrl.rb +662 -0
  106. data/lib/wx/doc/gen/command_link_button.rb +134 -0
  107. data/lib/wx/doc/gen/config_base.rb +10 -0
  108. data/lib/wx/doc/gen/context_help_button.rb +56 -0
  109. data/lib/wx/doc/gen/control.rb +277 -0
  110. data/lib/wx/doc/gen/control_with_items.rb +253 -0
  111. data/lib/wx/doc/gen/core.rb +45 -0
  112. data/lib/wx/doc/gen/credential_entry_dialog.rb +137 -0
  113. data/lib/wx/doc/gen/cursor.rb +193 -0
  114. data/lib/wx/doc/gen/data_format.rb +85 -0
  115. data/lib/wx/doc/gen/data_object.rb +436 -0
  116. data/lib/wx/doc/gen/data_object_simple_base.rb +10 -0
  117. data/lib/wx/doc/gen/date_event.rb +49 -0
  118. data/lib/wx/doc/gen/date_picker_ctrl.rb +161 -0
  119. data/lib/wx/doc/gen/dc.rb +1631 -0
  120. data/lib/wx/doc/gen/dc_overlay.rb +102 -0
  121. data/lib/wx/doc/gen/defs.rb +2802 -0
  122. data/lib/wx/doc/gen/dial_up_event.rb +45 -0
  123. data/lib/wx/doc/gen/dial_up_manager.rb +149 -0
  124. data/lib/wx/doc/gen/dialog.rb +541 -0
  125. data/lib/wx/doc/gen/dir_dialog.rb +164 -0
  126. data/lib/wx/doc/gen/dir_filter_list_ctrl.rb +90 -0
  127. data/lib/wx/doc/gen/dir_picker_ctrl.rb +125 -0
  128. data/lib/wx/doc/gen/display.rb +238 -0
  129. data/lib/wx/doc/gen/drag_drop.rb +299 -0
  130. data/lib/wx/doc/gen/drag_image.rb +116 -0
  131. data/lib/wx/doc/gen/editable_list_box.rb +109 -0
  132. data/lib/wx/doc/gen/event.rb +990 -0
  133. data/lib/wx/doc/gen/event_blocker.rb +50 -0
  134. data/lib/wx/doc/gen/event_filter.rb +92 -0
  135. data/lib/wx/doc/gen/event_list.rb +1644 -0
  136. data/lib/wx/doc/gen/events.rb +2809 -0
  137. data/lib/wx/doc/gen/evt_handler.rb +229 -0
  138. data/lib/wx/doc/gen/ext_help_controller.rb +155 -0
  139. data/lib/wx/doc/gen/file_ctrl.rb +231 -0
  140. data/lib/wx/doc/gen/file_ctrl_event.rb +83 -0
  141. data/lib/wx/doc/gen/file_dialog.rb +353 -0
  142. data/lib/wx/doc/gen/file_dialog_custom_control.rb +165 -0
  143. data/lib/wx/doc/gen/file_dialog_customize_hook.rb +158 -0
  144. data/lib/wx/doc/gen/file_dir_picker_event.rb +100 -0
  145. data/lib/wx/doc/gen/file_picker_ctrl.rb +132 -0
  146. data/lib/wx/doc/gen/file_system.rb +232 -0
  147. data/lib/wx/doc/gen/find_dialog_event.rb +126 -0
  148. data/lib/wx/doc/gen/find_replace_data.rb +60 -0
  149. data/lib/wx/doc/gen/find_replace_dialog.rb +58 -0
  150. data/lib/wx/doc/gen/flex_grid_sizer.rb +199 -0
  151. data/lib/wx/doc/gen/font.rb +1379 -0
  152. data/lib/wx/doc/gen/font_data.rb +151 -0
  153. data/lib/wx/doc/gen/font_dialog.rb +88 -0
  154. data/lib/wx/doc/gen/font_picker_ctrl.rb +143 -0
  155. data/lib/wx/doc/gen/font_picker_event.rb +65 -0
  156. data/lib/wx/doc/gen/frame.rb +352 -0
  157. data/lib/wx/doc/gen/fs_file.rb +337 -0
  158. data/lib/wx/doc/gen/functions.rb +10 -0
  159. data/lib/wx/doc/gen/gauge.rb +157 -0
  160. data/lib/wx/doc/gen/gb_sizer_item.rb +68 -0
  161. data/lib/wx/doc/gen/gcdc.rb +46 -0
  162. data/lib/wx/doc/gen/gdi_common.rb +1271 -0
  163. data/lib/wx/doc/gen/gdi_object.rb +31 -0
  164. data/lib/wx/doc/gen/generic_about_dialog.rb +140 -0
  165. data/lib/wx/doc/gen/generic_dir_ctrl.rb +223 -0
  166. data/lib/wx/doc/gen/geometry.rb +661 -0
  167. data/lib/wx/doc/gen/graphics_context.rb +1184 -0
  168. data/lib/wx/doc/gen/graphics_object.rb +750 -0
  169. data/lib/wx/doc/gen/grid/event_list.rb +191 -0
  170. data/lib/wx/doc/gen/grid/grid_cell_activatable_editor.rb +40 -0
  171. data/lib/wx/doc/gen/grid/grid_cell_attr.rb +280 -0
  172. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_editor.rb +35 -0
  173. data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_renderer.rb +37 -0
  174. data/lib/wx/doc/gen/grid/grid_cell_bool_editor.rb +49 -0
  175. data/lib/wx/doc/gen/grid/grid_cell_bool_renderer.rb +35 -0
  176. data/lib/wx/doc/gen/grid/grid_cell_choice_editor.rb +46 -0
  177. data/lib/wx/doc/gen/grid/grid_cell_date_editor.rb +38 -0
  178. data/lib/wx/doc/gen/grid/grid_cell_date_renderer.rb +45 -0
  179. data/lib/wx/doc/gen/grid/grid_cell_date_time_renderer.rb +40 -0
  180. data/lib/wx/doc/gen/grid/grid_cell_editor.rb +197 -0
  181. data/lib/wx/doc/gen/grid/grid_cell_enum_editor.rb +39 -0
  182. data/lib/wx/doc/gen/grid/grid_cell_enum_renderer.rb +44 -0
  183. data/lib/wx/doc/gen/grid/grid_cell_float_editor.rb +45 -0
  184. data/lib/wx/doc/gen/grid/grid_cell_float_renderer.rb +79 -0
  185. data/lib/wx/doc/gen/grid/grid_cell_number_editor.rb +46 -0
  186. data/lib/wx/doc/gen/grid/grid_cell_number_renderer.rb +35 -0
  187. data/lib/wx/doc/gen/grid/grid_cell_renderer.rb +108 -0
  188. data/lib/wx/doc/gen/grid/grid_cell_string_renderer.rb +35 -0
  189. data/lib/wx/doc/gen/grid/grid_cell_text_editor.rb +49 -0
  190. data/lib/wx/doc/gen/grid/grid_ctrl.rb +3037 -0
  191. data/lib/wx/doc/gen/grid/grid_editor_created_event.rb +95 -0
  192. data/lib/wx/doc/gen/grid/grid_event.rb +129 -0
  193. data/lib/wx/doc/gen/grid/grid_range_select_event.rb +104 -0
  194. data/lib/wx/doc/gen/grid/grid_size_event.rb +85 -0
  195. data/lib/wx/doc/gen/grid/grid_string_table.rb +142 -0
  196. data/lib/wx/doc/gen/grid/grid_table_base.rb +317 -0
  197. data/lib/wx/doc/gen/grid/grid_table_message.rb +81 -0
  198. data/lib/wx/doc/gen/grid_bag_sizer.rb +323 -0
  199. data/lib/wx/doc/gen/grid_sizer.rb +195 -0
  200. data/lib/wx/doc/gen/gui_event_loop.rb +159 -0
  201. data/lib/wx/doc/gen/h_scrolled_window.rb +562 -0
  202. data/lib/wx/doc/gen/header_ctrl.rb +880 -0
  203. data/lib/wx/doc/gen/header_ctrl_event.rb +133 -0
  204. data/lib/wx/doc/gen/help_controller.rb +238 -0
  205. data/lib/wx/doc/gen/help_provider.rb +98 -0
  206. data/lib/wx/doc/gen/html/event_list.rb +38 -0
  207. data/lib/wx/doc/gen/html/html_cell.rb +536 -0
  208. data/lib/wx/doc/gen/html/html_cell_event.rb +69 -0
  209. data/lib/wx/doc/gen/html/html_data_object.rb +42 -0
  210. data/lib/wx/doc/gen/html/html_easy_printing.rb +203 -0
  211. data/lib/wx/doc/gen/html/html_help_controller.rb +382 -0
  212. data/lib/wx/doc/gen/html/html_help_data.rb +159 -0
  213. data/lib/wx/doc/gen/html/html_help_window.rb +258 -0
  214. data/lib/wx/doc/gen/html/html_link_event.rb +41 -0
  215. data/lib/wx/doc/gen/html/html_list_box.rb +346 -0
  216. data/lib/wx/doc/gen/html/html_printout.rb +109 -0
  217. data/lib/wx/doc/gen/html/html_window.rb +461 -0
  218. data/lib/wx/doc/gen/hyperlink_ctrl.rb +311 -0
  219. data/lib/wx/doc/gen/hyperlink_event.rb +44 -0
  220. data/lib/wx/doc/gen/icon.rb +267 -0
  221. data/lib/wx/doc/gen/icon_location.rb +40 -0
  222. data/lib/wx/doc/gen/image.rb +1371 -0
  223. data/lib/wx/doc/gen/image_list.rb +168 -0
  224. data/lib/wx/doc/gen/info_bar.rb +195 -0
  225. data/lib/wx/doc/gen/keyboard_state.rb +140 -0
  226. data/lib/wx/doc/gen/list_box.rb +304 -0
  227. data/lib/wx/doc/gen/list_ctrl.rb +1774 -0
  228. data/lib/wx/doc/gen/list_event.rb +208 -0
  229. data/lib/wx/doc/gen/listbook.rb +116 -0
  230. data/lib/wx/doc/gen/locale.rb +4293 -0
  231. data/lib/wx/doc/gen/log.rb +603 -0
  232. data/lib/wx/doc/gen/mb_conv.rb +10 -0
  233. data/lib/wx/doc/gen/mdi_client_window.rb +47 -0
  234. data/lib/wx/doc/gen/mdi_frame.rb +324 -0
  235. data/lib/wx/doc/gen/media_ctrl.rb +269 -0
  236. data/lib/wx/doc/gen/media_event.rb +117 -0
  237. data/lib/wx/doc/gen/memory_dc.rb +174 -0
  238. data/lib/wx/doc/gen/menu.rb +509 -0
  239. data/lib/wx/doc/gen/menu_bar.rb +287 -0
  240. data/lib/wx/doc/gen/menu_item.rb +362 -0
  241. data/lib/wx/doc/gen/message_dialog.rb +238 -0
  242. data/lib/wx/doc/gen/mini_frame.rb +108 -0
  243. data/lib/wx/doc/gen/mirror_dc.rb +22 -0
  244. data/lib/wx/doc/gen/mouse_state.rb +150 -0
  245. data/lib/wx/doc/gen/multi_choice_dialog.rb +80 -0
  246. data/lib/wx/doc/gen/non_owned_window.rb +49 -0
  247. data/lib/wx/doc/gen/notebook.rb +278 -0
  248. data/lib/wx/doc/gen/num_validator.rb +37 -0
  249. data/lib/wx/doc/gen/number_entry_dialog.rb +93 -0
  250. data/lib/wx/doc/gen/object.rb +59 -0
  251. data/lib/wx/doc/gen/owner_drawn_combo_box.rb +395 -0
  252. data/lib/wx/doc/gen/paint_dc.rb +27 -0
  253. data/lib/wx/doc/gen/palette.rb +92 -0
  254. data/lib/wx/doc/gen/panel.rb +127 -0
  255. data/lib/wx/doc/gen/pen.rb +511 -0
  256. data/lib/wx/doc/gen/persistence_manager.rb +135 -0
  257. data/lib/wx/doc/gen/persistent_object.rb +52 -0
  258. data/lib/wx/doc/gen/persistent_window.rb +241 -0
  259. data/lib/wx/doc/gen/pg/event_list.rb +106 -0
  260. data/lib/wx/doc/gen/pg/numeric_property_validator.rb +54 -0
  261. data/lib/wx/doc/gen/pg/pg_array_editor_dialog.rb +292 -0
  262. data/lib/wx/doc/gen/pg/pg_cell.rb +177 -0
  263. data/lib/wx/doc/gen/pg/pg_editor.rb +721 -0
  264. data/lib/wx/doc/gen/pg/pg_multi_button.rb +152 -0
  265. data/lib/wx/doc/gen/pg/pg_properties.rb +2829 -0
  266. data/lib/wx/doc/gen/pg/pg_property.rb +2078 -0
  267. data/lib/wx/doc/gen/pg/pg_validation_info.rb +344 -0
  268. data/lib/wx/doc/gen/pg/property_grid.rb +740 -0
  269. data/lib/wx/doc/gen/pg/property_grid_event.rb +184 -0
  270. data/lib/wx/doc/gen/pg/property_grid_interface.rb +1098 -0
  271. data/lib/wx/doc/gen/pg/property_grid_manager.rb +415 -0
  272. data/lib/wx/doc/gen/pg/property_grid_page.rb +354 -0
  273. data/lib/wx/doc/gen/pg/property_grid_page_state.rb +165 -0
  274. data/lib/wx/doc/gen/picker_base.rb +152 -0
  275. data/lib/wx/doc/gen/platform_info.rb +622 -0
  276. data/lib/wx/doc/gen/popup_window.rb +107 -0
  277. data/lib/wx/doc/gen/progress_dialog.rb +100 -0
  278. data/lib/wx/doc/gen/property_sheet_dialog.rb +216 -0
  279. data/lib/wx/doc/gen/prt/event_list.rb +17 -0
  280. data/lib/wx/doc/gen/prt/page_setup_dialog.rb +44 -0
  281. data/lib/wx/doc/gen/prt/post_script_dc.rb +30 -0
  282. data/lib/wx/doc/gen/prt/preview_frame.rb +78 -0
  283. data/lib/wx/doc/gen/prt/print_abort_dialog.rb +151 -0
  284. data/lib/wx/doc/gen/prt/print_data.rb +804 -0
  285. data/lib/wx/doc/gen/prt/print_dialog.rb +55 -0
  286. data/lib/wx/doc/gen/prt/printer.rb +518 -0
  287. data/lib/wx/doc/gen/prt/printer_dc.rb +37 -0
  288. data/lib/wx/doc/gen/query_layout_info_event.rb +106 -0
  289. data/lib/wx/doc/gen/radio_box.rb +306 -0
  290. data/lib/wx/doc/gen/radio_button.rb +159 -0
  291. data/lib/wx/doc/gen/rbn/event_list.rb +136 -0
  292. data/lib/wx/doc/gen/rbn/ribbon_art_provider.rb +1142 -0
  293. data/lib/wx/doc/gen/rbn/ribbon_bar.rb +308 -0
  294. data/lib/wx/doc/gen/rbn/ribbon_bar_event.rb +45 -0
  295. data/lib/wx/doc/gen/rbn/ribbon_button_bar.rb +458 -0
  296. data/lib/wx/doc/gen/rbn/ribbon_button_bar_event.rb +63 -0
  297. data/lib/wx/doc/gen/rbn/ribbon_control.rb +143 -0
  298. data/lib/wx/doc/gen/rbn/ribbon_gallery.rb +229 -0
  299. data/lib/wx/doc/gen/rbn/ribbon_gallery_event.rb +55 -0
  300. data/lib/wx/doc/gen/rbn/ribbon_page.rb +174 -0
  301. data/lib/wx/doc/gen/rbn/ribbon_panel.rb +270 -0
  302. data/lib/wx/doc/gen/rbn/ribbon_panel_event.rb +45 -0
  303. data/lib/wx/doc/gen/rbn/ribbon_tool_bar.rb +360 -0
  304. data/lib/wx/doc/gen/rbn/ribbon_tool_bar_event.rb +42 -0
  305. data/lib/wx/doc/gen/rearrange_ctrl.rb +78 -0
  306. data/lib/wx/doc/gen/rearrange_list.rb +123 -0
  307. data/lib/wx/doc/gen/region.rb +380 -0
  308. data/lib/wx/doc/gen/region_iterator.rb +76 -0
  309. data/lib/wx/doc/gen/rich_tool_tip.rb +154 -0
  310. data/lib/wx/doc/gen/rt/event_list.rb +17 -0
  311. data/lib/wx/doc/gen/rt/shared_evt_handler.rb +14 -0
  312. data/lib/wx/doc/gen/rt/thread_event.rb +71 -0
  313. data/lib/wx/doc/gen/rtc/event_list.rb +125 -0
  314. data/lib/wx/doc/gen/rtc/rich_text_box.rb +445 -0
  315. data/lib/wx/doc/gen/rtc/rich_text_buffer.rb +1188 -0
  316. data/lib/wx/doc/gen/rtc/rich_text_buffer_data_object.rb +41 -0
  317. data/lib/wx/doc/gen/rtc/rich_text_composite_object.rb +538 -0
  318. data/lib/wx/doc/gen/rtc/rich_text_ctrl.rb +2103 -0
  319. data/lib/wx/doc/gen/rtc/rich_text_event.rb +173 -0
  320. data/lib/wx/doc/gen/rtc/rich_text_file_handler.rb +181 -0
  321. data/lib/wx/doc/gen/rtc/rich_text_formatting_dialog.rb +319 -0
  322. data/lib/wx/doc/gen/rtc/rich_text_header_footer_data.rb +193 -0
  323. data/lib/wx/doc/gen/rtc/rich_text_html_handler.rb +102 -0
  324. data/lib/wx/doc/gen/rtc/rich_text_image.rb +337 -0
  325. data/lib/wx/doc/gen/rtc/rich_text_object.rb +2922 -0
  326. data/lib/wx/doc/gen/rtc/rich_text_paragraph_layout_box.rb +1240 -0
  327. data/lib/wx/doc/gen/rtc/rich_text_printing.rb +258 -0
  328. data/lib/wx/doc/gen/rtc/rich_text_style_list_box.rb +344 -0
  329. data/lib/wx/doc/gen/rtc/rich_text_style_organiser_dialog.rb +227 -0
  330. data/lib/wx/doc/gen/rtc/rich_text_xml_handler.rb +59 -0
  331. data/lib/wx/doc/gen/rtc/symbol_picker_dialog.rb +169 -0
  332. data/lib/wx/doc/gen/sash_event.rb +147 -0
  333. data/lib/wx/doc/gen/sash_layout_window.rb +232 -0
  334. data/lib/wx/doc/gen/sash_window.rb +171 -0
  335. data/lib/wx/doc/gen/scaled_dc.rb +10 -0
  336. data/lib/wx/doc/gen/screen_dc.rb +30 -0
  337. data/lib/wx/doc/gen/scroll_bar.rb +204 -0
  338. data/lib/wx/doc/gen/scrolled_canvas.rb +410 -0
  339. data/lib/wx/doc/gen/scrolled_control.rb +410 -0
  340. data/lib/wx/doc/gen/scrolled_window.rb +430 -0
  341. data/lib/wx/doc/gen/search_ctrl.rb +159 -0
  342. data/lib/wx/doc/gen/secret_store.rb +116 -0
  343. data/lib/wx/doc/gen/simplebook.rb +110 -0
  344. data/lib/wx/doc/gen/single_choice_dialog.rb +89 -0
  345. data/lib/wx/doc/gen/sizer.rb +945 -0
  346. data/lib/wx/doc/gen/sizer_item.rb +244 -0
  347. data/lib/wx/doc/gen/slider.rb +342 -0
  348. data/lib/wx/doc/gen/spin_button.rb +157 -0
  349. data/lib/wx/doc/gen/spin_ctrl.rb +231 -0
  350. data/lib/wx/doc/gen/spin_ctrl_double.rb +192 -0
  351. data/lib/wx/doc/gen/spin_double_event.rb +55 -0
  352. data/lib/wx/doc/gen/spin_event.rb +51 -0
  353. data/lib/wx/doc/gen/splash_screen.rb +113 -0
  354. data/lib/wx/doc/gen/splitter_event.rb +99 -0
  355. data/lib/wx/doc/gen/splitter_window.rb +498 -0
  356. data/lib/wx/doc/gen/static_bitmap.rb +256 -0
  357. data/lib/wx/doc/gen/static_box.rb +180 -0
  358. data/lib/wx/doc/gen/static_box_sizer.rb +85 -0
  359. data/lib/wx/doc/gen/static_line.rb +83 -0
  360. data/lib/wx/doc/gen/static_text.rb +127 -0
  361. data/lib/wx/doc/gen/status_bar.rb +290 -0
  362. data/lib/wx/doc/gen/stc/event_list.rb +221 -0
  363. data/lib/wx/doc/gen/stc/styled_text_ctrl.rb +4474 -0
  364. data/lib/wx/doc/gen/stc/styled_text_event.rb +8762 -0
  365. data/lib/wx/doc/gen/std_dialog_button_sizer.rb +129 -0
  366. data/lib/wx/doc/gen/svg_file_dc.rb +164 -0
  367. data/lib/wx/doc/gen/system_options.rb +129 -0
  368. data/lib/wx/doc/gen/system_settings.rb +507 -0
  369. data/lib/wx/doc/gen/task_bar_icon.rb +127 -0
  370. data/lib/wx/doc/gen/task_bar_icon_event.rb +88 -0
  371. data/lib/wx/doc/gen/text_attr.rb +756 -0
  372. data/lib/wx/doc/gen/text_ctrl.rb +1033 -0
  373. data/lib/wx/doc/gen/text_entry.rb +441 -0
  374. data/lib/wx/doc/gen/text_entry_dialog.rb +220 -0
  375. data/lib/wx/doc/gen/text_validator.rb +245 -0
  376. data/lib/wx/doc/gen/time_picker_ctrl.rb +128 -0
  377. data/lib/wx/doc/gen/timer.rb +119 -0
  378. data/lib/wx/doc/gen/timer_event.rb +68 -0
  379. data/lib/wx/doc/gen/tip_provider.rb +63 -0
  380. data/lib/wx/doc/gen/tip_window.rb +51 -0
  381. data/lib/wx/doc/gen/toggle_button.rb +182 -0
  382. data/lib/wx/doc/gen/tool_bar.rb +890 -0
  383. data/lib/wx/doc/gen/tool_tip.rb +86 -0
  384. data/lib/wx/doc/gen/toolbook.rb +118 -0
  385. data/lib/wx/doc/gen/top_level_window.rb +516 -0
  386. data/lib/wx/doc/gen/tree_ctrl.rb +1052 -0
  387. data/lib/wx/doc/gen/tree_event.rb +127 -0
  388. data/lib/wx/doc/gen/treebook.rb +180 -0
  389. data/lib/wx/doc/gen/ui_action_simulator.rb +109 -0
  390. data/lib/wx/doc/gen/utils.rb +273 -0
  391. data/lib/wx/doc/gen/v_list_box.rb +272 -0
  392. data/lib/wx/doc/gen/v_scrolled_canvas.rb +195 -0
  393. data/lib/wx/doc/gen/v_scrolled_window.rb +191 -0
  394. data/lib/wx/doc/gen/validator.rb +68 -0
  395. data/lib/wx/doc/gen/variant.rb +294 -0
  396. data/lib/wx/doc/gen/web/event_list.rb +95 -0
  397. data/lib/wx/doc/gen/web/web_view.rb +1136 -0
  398. data/lib/wx/doc/gen/web/web_view_event.rb +210 -0
  399. data/lib/wx/doc/gen/web/web_view_handler.rb +318 -0
  400. data/lib/wx/doc/gen/window.rb +2917 -0
  401. data/lib/wx/doc/gen/window_dc.rb +38 -0
  402. data/lib/wx/doc/gen/window_disabler.rb +30 -0
  403. data/lib/wx/doc/gen/with_images.rb +84 -0
  404. data/lib/wx/doc/gen/wizard.rb +257 -0
  405. data/lib/wx/doc/gen/wizard_event.rb +113 -0
  406. data/lib/wx/doc/gen/wizard_page.rb +65 -0
  407. data/lib/wx/doc/gen/wizard_page_simple.rb +88 -0
  408. data/lib/wx/doc/gen/wrap_sizer.rb +79 -0
  409. data/lib/wx/doc/gen/xml_node.rb +316 -0
  410. data/lib/wx/doc/gen/xml_resource.rb +320 -0
  411. data/lib/wx/doc/generic_validator.rb +5 -0
  412. data/lib/wx/doc/html/html_help_controller.rb +23 -1
  413. data/lib/wx/doc/mbconv.rb +108 -0
  414. data/lib/wx/doc/rt/shared_event_handler.rb +49 -0
  415. data/lib/wx/doc/rt/thread_event.rb +28 -0
  416. data/lib/wx/doc/tip_window.rb +18 -6
  417. data/lib/wx/doc/webview.rb +40 -0
  418. data/lib/wx/grid/events/evt_list.rb +166 -0
  419. data/lib/wx/helpers.rb +1 -1
  420. data/lib/wx/html/events/evt_list.rb +27 -0
  421. data/lib/wx/html/htmlhelpcontroller.rb +10 -0
  422. data/lib/wx/html/simple_html_listbox.rb +46 -33
  423. data/lib/wx/keyword_defs.rb +20 -0
  424. data/lib/wx/pg/events/evt_list.rb +73 -0
  425. data/lib/wx/pg/pg_property.rb +26 -0
  426. data/lib/wx/pg/property_grid_interface.rb +2 -2
  427. data/lib/wx/rbn/events/evt_list.rb +102 -0
  428. data/lib/wx/rt/events/evt_list.rb +8 -0
  429. data/lib/wx/rt/require.rb +8 -0
  430. data/lib/wx/rt/thread_event.rb +14 -0
  431. data/lib/wx/rt.rb +16 -0
  432. data/lib/wx/rtc/events/evt_list.rb +98 -0
  433. data/lib/wx/rtc/ext/rich_text_ctrl.rb +24 -0
  434. data/lib/wx/stc/events/evt_list.rb +178 -0
  435. data/lib/wx/version.rb +1 -1
  436. data/lib/wx/web/events/evt_list.rb +74 -0
  437. data/lib/wx/web/require.rb +8 -0
  438. data/lib/wx/web/webview.rb +106 -0
  439. data/lib/wx/web.rb +17 -0
  440. data/lib/wx/wxruby/cmd/setup.rb +21 -0
  441. data/lib/wx.rb +2 -0
  442. data/rakelib/configure.rb +33 -0
  443. data/rakelib/gem.rake +3 -2
  444. data/rakelib/gem.rb +3 -2
  445. data/rakelib/install.rb +54 -27
  446. data/rakelib/lib/config/linux.rb +1 -1
  447. data/rakelib/lib/config/macosx.rb +22 -6
  448. data/rakelib/lib/config/mingw.rb +66 -5
  449. data/rakelib/lib/config/pkgman/linux.rb +7 -2
  450. data/rakelib/lib/config/pkgman/mingw.rb +1 -1
  451. data/rakelib/lib/config/unixish.rb +7 -5
  452. data/rakelib/lib/config.rb +52 -7
  453. data/rakelib/lib/core/include/client_data.inc +38 -17
  454. data/rakelib/lib/core/include/funcall.inc +1 -1
  455. data/rakelib/lib/core/include/swigdirector.inc +6 -6
  456. data/rakelib/lib/core/include/swigrubyerrors.inc +4 -8
  457. data/rakelib/lib/core/include/swigrubyrun.inc +34 -30
  458. data/rakelib/lib/core/include/swigrun.inc +189 -0
  459. data/rakelib/lib/core/package.rb +3 -3
  460. data/rakelib/lib/director/accelerator.rb +1 -1
  461. data/rakelib/lib/director/animation.rb +1 -0
  462. data/rakelib/lib/director/app.rb +1 -8
  463. data/rakelib/lib/director/app_traits.rb +1 -1
  464. data/rakelib/lib/director/art_provider.rb +7 -3
  465. data/rakelib/lib/director/aui_manager.rb +21 -14
  466. data/rakelib/lib/director/aui_mdi_child_frame.rb +2 -0
  467. data/rakelib/lib/director/aui_mdi_parent_frame.rb +4 -0
  468. data/rakelib/lib/director/aui_notebook.rb +20 -3
  469. data/rakelib/lib/director/aui_tab_ctrl.rb +64 -106
  470. data/rakelib/lib/director/calendar_ctrl.rb +72 -14
  471. data/rakelib/lib/director/clipboard.rb +2 -0
  472. data/rakelib/lib/director/comboctrl.rb +0 -7
  473. data/rakelib/lib/director/context_help_button.rb +35 -2
  474. data/rakelib/lib/director/data_object.rb +15 -7
  475. data/rakelib/lib/director/date_picker_ctrl.rb +4 -1
  476. data/rakelib/lib/director/display.rb +81 -0
  477. data/rakelib/lib/director/event.rb +33 -16
  478. data/rakelib/lib/director/event_handler.rb +59 -30
  479. data/rakelib/lib/director/fs_file.rb +15 -10
  480. data/rakelib/lib/director/functions.rb +17 -0
  481. data/rakelib/lib/director/geometry.rb +5 -0
  482. data/rakelib/lib/director/grid_cell_attr.rb +1 -3
  483. data/rakelib/lib/director/grid_cell_editor.rb +14 -12
  484. data/rakelib/lib/director/grid_cell_renderer.rb +11 -8
  485. data/rakelib/lib/director/grid_ctrl.rb +231 -117
  486. data/rakelib/lib/director/help_controller.rb +70 -2
  487. data/rakelib/lib/director/help_provider.rb +1 -1
  488. data/rakelib/lib/director/html_listbox.rb +16 -3
  489. data/rakelib/lib/director/hvscrolled.rb +7 -106
  490. data/rakelib/lib/director/image_list.rb +1 -0
  491. data/rakelib/lib/director/mb_conv.rb +30 -0
  492. data/rakelib/lib/director/mdi_frame.rb +4 -0
  493. data/rakelib/lib/director/menu.rb +113 -22
  494. data/rakelib/lib/director/menu_bar.rb +103 -2
  495. data/rakelib/lib/director/menu_item.rb +7 -1
  496. data/rakelib/lib/director/num_validator.rb +27 -0
  497. data/rakelib/lib/director/numeric_property_validator.rb +9 -0
  498. data/rakelib/lib/director/persistence_manager.rb +3 -2
  499. data/rakelib/lib/director/popup_window.rb +2 -0
  500. data/rakelib/lib/director/preview_frame.rb +28 -5
  501. data/rakelib/lib/director/printer.rb +59 -5
  502. data/rakelib/lib/director/property_grid.rb +37 -18
  503. data/rakelib/lib/director/property_grid_interface.rb +10 -8
  504. data/rakelib/lib/director/property_grid_manager.rb +99 -39
  505. data/rakelib/lib/director/property_grid_page.rb +60 -0
  506. data/rakelib/lib/director/rich_tooltip.rb +22 -0
  507. data/rakelib/lib/director/richtext_buffer.rb +5 -2
  508. data/rakelib/lib/director/richtext_ctrl.rb +5 -0
  509. data/rakelib/lib/director/richtext_object.rb +13 -4
  510. data/rakelib/lib/director/richtext_style_listbox.rb +4 -1
  511. data/rakelib/lib/director/scrolled_t.rb +3 -0
  512. data/rakelib/lib/director/searchctrl.rb +1 -0
  513. data/rakelib/lib/director/shared_evt_handler.rb +30 -0
  514. data/rakelib/lib/director/sizer.rb +8 -17
  515. data/rakelib/lib/director/sizer_item.rb +3 -4
  516. data/rakelib/lib/director/task_bar_icon.rb +18 -12
  517. data/rakelib/lib/director/text_validator.rb +9 -0
  518. data/rakelib/lib/director/thread_event.rb +33 -0
  519. data/rakelib/lib/director/tip_window.rb +117 -6
  520. data/rakelib/lib/director/tool_bar.rb +6 -0
  521. data/rakelib/lib/director/validator.rb +15 -1
  522. data/rakelib/lib/director/variant.rb +48 -28
  523. data/rakelib/lib/director/vlistbox.rb +25 -22
  524. data/rakelib/lib/director/webview.rb +166 -0
  525. data/rakelib/lib/director/webview_event.rb +37 -0
  526. data/rakelib/lib/director/webview_handler.rb +63 -0
  527. data/rakelib/lib/director/window.rb +10 -1
  528. data/rakelib/lib/director/xml_resource.rb +6 -0
  529. data/rakelib/lib/generate/doc/aui_manager.yaml +1 -1
  530. data/rakelib/lib/generate/doc/rich_tool_tip.yaml +26 -0
  531. data/rakelib/lib/generate/doc/thread_event.yaml +20 -0
  532. data/rakelib/lib/generate/doc/web_view.yaml +135 -0
  533. data/rakelib/lib/generate/doc/web_view_event.yaml +38 -0
  534. data/rakelib/lib/generate/doc/web_view_handler.yaml +58 -0
  535. data/rakelib/lib/generate/doc.rb +12 -7
  536. data/rakelib/lib/generate/interface.rb +16 -1
  537. data/rakelib/lib/specs/interfaces.rb +15 -1
  538. data/rakelib/lib/swig_runner.rb +10 -10
  539. data/rakelib/lib/typemap/aui_tabctrl.rb +46 -0
  540. data/rakelib/lib/typemap/common.rb +37 -4
  541. data/rakelib/lib/typemap/mb_conv.rb +58 -0
  542. data/rakelib/lib/typemap/print_page_range.rb +32 -8
  543. data/rakelib/prepost.rake +23 -31
  544. data/rakelib/prepost.rb +20 -0
  545. data/samples/art/wxruby-512x512.png +0 -0
  546. data/samples/calendar/calendar.rb +64 -1
  547. data/samples/dialogs/dialogs.rb +172 -0
  548. data/samples/dialogs/tip.xpm +157 -0
  549. data/samples/drawing/maths_images.rb +1 -1
  550. data/samples/event/event.rb +1 -1
  551. data/samples/event/threaded.rb +295 -42
  552. data/samples/event/tn_threaded.png +0 -0
  553. data/samples/help/doc/back.gif +0 -0
  554. data/samples/help/doc/contents.gif +0 -0
  555. data/samples/help/doc/cshelp.txt +9 -0
  556. data/samples/help/doc/doc.chm +0 -0
  557. data/samples/help/doc/doc.cnt +8 -0
  558. data/samples/help/doc/doc.h +7 -0
  559. data/samples/help/doc/doc.hhc +40 -0
  560. data/samples/help/doc/doc.hhk +31 -0
  561. data/samples/help/doc/doc.hhp +33 -0
  562. data/samples/help/doc/doc.hpj +21 -0
  563. data/samples/help/doc/doc.htm +27 -0
  564. data/samples/help/doc/doc1.htm +24 -0
  565. data/samples/help/doc/doc2.htm +12 -0
  566. data/samples/help/doc/doc3.htm +12 -0
  567. data/samples/help/doc/doc4.htm +12 -0
  568. data/samples/help/doc/doc5.htm +14 -0
  569. data/samples/help/doc/forward.gif +0 -0
  570. data/samples/help/doc/up.gif +0 -0
  571. data/samples/help/doc.chm +0 -0
  572. data/samples/help/doc.chw +0 -0
  573. data/samples/help/doc.zip +0 -0
  574. data/samples/help/help.rb +352 -0
  575. data/samples/help/tn_help.png +0 -0
  576. data/samples/printing/printing2.rb +1 -1
  577. data/samples/sampler.rb +26 -8
  578. data/samples/text/textctrl.rb +2 -2
  579. data/samples/treectrl/treectrl.rb +2 -2
  580. data/samples/webview/handler_advanced.html +55 -0
  581. data/samples/webview/tn_webview.png +0 -0
  582. data/samples/webview/webview.rb +1264 -0
  583. data/tests/assets/handler_advanced.html +55 -0
  584. data/tests/assets/test.css +1 -0
  585. data/tests/assets/test.html +9 -0
  586. data/tests/assets/test.zip +0 -0
  587. data/tests/lib/leaked_process_event_exception_test.rb +1 -1
  588. data/tests/lib/leaked_queued_event_exception_test.rb +1 -1
  589. data/tests/lib/text_entry_tests.rb +2 -2
  590. data/tests/lib/wxapp_runner.rb +65 -35
  591. data/tests/lib/wxframe_runner.rb +40 -13
  592. data/tests/lib/wxrb_test.rb +58 -0
  593. data/tests/test_app_event_filter.rb +1 -1
  594. data/tests/test_app_exit_exception.rb +3 -3
  595. data/tests/test_app_init_exception.rb +3 -3
  596. data/tests/test_app_traits.rb +24 -21
  597. data/tests/test_art.rb +14 -14
  598. data/tests/test_art_provider.rb +1 -1
  599. data/tests/test_basic.rb +2 -2
  600. data/tests/test_book_controls.rb +1 -1
  601. data/tests/test_box_sizer.rb +1 -1
  602. data/tests/test_clipboard.rb +9 -9
  603. data/tests/test_combo_ctrl.rb +2 -2
  604. data/tests/test_config.rb +17 -7
  605. data/tests/test_dc.rb +1 -1
  606. data/tests/test_dialog.rb +1 -1
  607. data/tests/test_event_handling.rb +1 -1
  608. data/tests/test_events.rb +1 -1
  609. data/tests/test_exceptions.rb +10 -8
  610. data/tests/test_ext_controls.rb +13 -13
  611. data/tests/test_file_dialog.rb +6 -6
  612. data/tests/test_font.rb +8 -8
  613. data/tests/test_gdi_object.rb +1 -1
  614. data/tests/test_geometry.rb +2 -2
  615. data/tests/test_grid_ctrl.rb +133 -0
  616. data/tests/test_grid_sizer.rb +2 -2
  617. data/tests/test_help.rb +88 -0
  618. data/tests/test_intl.rb +2 -2
  619. data/tests/test_item_data.rb +12 -12
  620. data/tests/test_list_ctrl.rb +1 -1
  621. data/tests/test_log.rb +2 -2
  622. data/tests/test_media_ctrl.rb +15 -7
  623. data/tests/test_menu.rb +81 -2
  624. data/tests/test_persistence.rb +1 -1
  625. data/tests/test_proof_check.rb +6 -6
  626. data/tests/test_propgrid.rb +32 -32
  627. data/tests/test_richtext.rb +10 -24
  628. data/tests/test_secret_store.rb +1 -1
  629. data/tests/test_shared_event_handler.rb +141 -0
  630. data/tests/test_sizer.rb +1 -1
  631. data/tests/test_std_controls.rb +13 -13
  632. data/tests/test_styled_text_ctrl.rb +1 -1
  633. data/tests/test_timer.rb +1 -1
  634. data/tests/test_tree_ctrl.rb +1 -1
  635. data/tests/test_validators.rb +79 -36
  636. data/tests/test_variant.rb +1 -1
  637. data/tests/test_webview.rb +492 -0
  638. data/tests/test_window.rb +14 -14
  639. data/tests/testapp.rb +2 -2
  640. data/tests/testapp_noframe.rb +2 -2
  641. metadata +476 -11
  642. data/lib/wx/aui/aui_tab_ctrl.rb +0 -18
@@ -0,0 +1,166 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
5
+ ###
6
+ # wxRuby3 wxWidgets interface director
7
+ ###
8
+
9
+ require_relative './window'
10
+
11
+ module WXRuby3
12
+
13
+ class Director
14
+
15
+ class WebView < Window
16
+
17
+ include Typemap::IOStreams
18
+ include Typemap::DateTime
19
+
20
+ def setup
21
+ spec.items << 'wxWebViewHistoryItem'
22
+ if Config.instance.wx_version_check('3.3.0') >= 0
23
+ spec.items << 'wxWebViewConfiguration'
24
+ end
25
+ super
26
+ if Config.instance.wx_version_check('3.3.0') >= 0
27
+ spec.gc_as_object 'wxWebViewConfiguration'
28
+ spec.no_proxy 'wxWebViewConfiguration'
29
+ spec.extend_interface 'wxWebViewConfiguration', 'wxWebViewConfiguration()', visibility: 'protected'
30
+ spec.make_abstract 'wxWebViewConfiguration'
31
+ # not useful in wxRuby
32
+ spec.ignore 'wxWebViewConfiguration::GetNativeConfiguration'
33
+ end
34
+ spec.gc_as_untracked 'wxWebViewHistoryItem'
35
+
36
+ spec.no_proxy 'wxWebView'
37
+ spec.ignore 'wxWebView::RegisterFactory'
38
+ spec.ignore 'wxWebView::GetNativeBackend'
39
+ if Config.instance.features_set?('WXMSW', 'USE_WEBVIEW_IE')
40
+ spec.include 'wx/msw/webview_ie.h', 'wx/msw/registry.h'
41
+ spec.add_extend_code 'wxWebView', <<~__CODE
42
+ // Have to add our own version here as wxw gets the execution module name wrong.
43
+ static bool msw_set_ie_emulation_level(wxWebViewIE_EmulationLevel level = wxWEBVIEWIE_EMU_IE11)
44
+ {
45
+ // Registry key where emulation level for programs are set
46
+ static const wxChar* IE_EMULATION_KEY =
47
+ wxT("SOFTWARE\\\\Microsoft\\\\Internet Explorer\\\\Main")
48
+ wxT("\\\\FeatureControl\\\\FEATURE_BROWSER_EMULATION");
49
+
50
+ wxRegKey key(wxRegKey::HKCU, IE_EMULATION_KEY);
51
+ // Check the existence of the key and create it if it does not exist
52
+ if ( !key.Exists() && !key.Create() )
53
+ {
54
+ wxLogWarning(_("Failed to find web view emulation level in the registry"));
55
+ return false;
56
+ }
57
+
58
+ const wxString programName = wxT("ruby.exe");
59
+ if ( level != wxWEBVIEWIE_EMU_DEFAULT )
60
+ {
61
+ if ( !key.SetValue(programName, level) )
62
+ {
63
+ wxLogWarning(_("Failed to set web view to modern emulation level"));
64
+ return false;
65
+ }
66
+ }
67
+ else
68
+ {
69
+ if ( !key.DeleteValue(programName) )
70
+ {
71
+ wxLogWarning(_("Failed to reset web view to standard emulation level"));
72
+ return false;
73
+ }
74
+ }
75
+
76
+ return true;
77
+ }
78
+ __CODE
79
+ else
80
+ spec.ignore 'wxWebViewIE_EmulationLevel'
81
+ end
82
+ if Config.instance.wx_version_check('3.1.1') >= 0
83
+ spec.map 'wxString *output' => 'String,nil' do
84
+ map_in ignore: true, temp: 'wxString tmp', code: '$1 = &tmp;'
85
+ map_out ignore: 'bool'
86
+ map_argout code: <<~__CODE
87
+ if (result)
88
+ {
89
+ $result = WXSTR_TO_RSTR(tmp$argnum);
90
+ }
91
+ else
92
+ {
93
+ $result = Qnil;
94
+ }
95
+ __CODE
96
+ end
97
+ end
98
+ if Config.instance.wx_version_check('3.1.6') >= 0
99
+ # do not support inherently unsafe 'void* clientData'
100
+ spec.ignore 'wxWebView::RunScriptAsync', ignore_doc: false
101
+ spec.add_extend_code 'wxWebView', <<~__CODE
102
+ void RunScriptAsync(const wxString& javascript)
103
+ {
104
+ $self->RunScriptAsync(javascript, nullptr);
105
+ }
106
+ __CODE
107
+ spec.map 'void* clientData', swig: false do
108
+ map_in ignore: true, code: ''
109
+ end
110
+ end
111
+
112
+ spec.add_swig_code <<~__CODE
113
+ %include <wx_ruby_shared_ptr.i>
114
+ %wx_ruby_shared_ptr(wxWebViewHandler, wxWebViewHandler);
115
+ %wx_ruby_shared_ptr(wxWebViewArchiveHandler, wxWebViewHandler);
116
+ %wx_ruby_shared_ptr(wxWebViewFSHandler, wxWebViewHandler);
117
+
118
+ %include <wx_shared_ptr.i>
119
+ %wx_shared_ptr(wxWebViewHistoryItem);
120
+ __CODE
121
+
122
+ spec.map 'wxSharedPtr<wxWebViewHandler>' => 'Wx::WebViewHandler>' do
123
+ map_in code: <<~__CODE
124
+ void* argp$argnum;
125
+ int res$argnum = SWIG_ConvertPtr($input, &argp$argnum, SWIGTYPE_p_WxRubySharedPtrT_wxWebViewHandler_wxWebViewHandler_t, 0 );
126
+ if (!SWIG_IsOK(res$argnum)) {
127
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "WxRubySharedPtr< wxWebViewHandler, wxWebViewHandler >","RegisterHandler", 2, argv[0] ));
128
+ }
129
+ if (!argp2) {
130
+ SWIG_exception_fail(SWIG_NullReferenceError, Ruby_Format_TypeError("invalid null reference ", "WxRubySharedPtr< wxWebViewHandler, wxWebViewHandler >","RegisterHandler", 2, argv[0]));
131
+ } else {
132
+ arg2 = *(reinterpret_cast< WxRubySharedPtr< wxWebViewHandler, wxWebViewHandler > * >(argp2));
133
+ }
134
+ __CODE
135
+ end
136
+
137
+ spec.map 'wxVector< wxSharedPtr<wxWebViewHistoryItem> >' => 'Array<Wx::WEB::WebViewHistoryItem>' do
138
+ map_out code: <<~__CODE
139
+ $result = rb_ary_new();
140
+ wxVector< wxSharedPtr<wxWebViewHistoryItem> > *history = (wxVector< wxSharedPtr<wxWebViewHistoryItem> > *)&$1;
141
+ for (wxSharedPtr<wxWebViewHistoryItem>& hist_item : *history)
142
+ {
143
+ VALUE r_hist = SWIG_NewPointerObj(new wxSharedPtr<wxWebViewHistoryItem>(SWIG_STD_MOVE(hist_item)), SWIGTYPE_p_wxSharedPtrT_wxWebViewHistoryItem_t, SWIG_POINTER_OWN);
144
+ rb_ary_push($result, r_hist);
145
+ }
146
+ __CODE
147
+ end
148
+
149
+ spec.map 'wxSharedPtr<wxWebViewHistoryItem>' => 'Wx::WEB::WebViewHistoryItem', swig: false do
150
+ map_in code: ''
151
+ end
152
+
153
+ # fix event definitions
154
+ if Config.instance.wx_version_check('3.3.0') >= 0
155
+ # completely missing up and until 3.3.2 but should be there
156
+ if Config.instance.wx_version_check('3.3.2') <= 0
157
+ spec.add_swig_code %Q{%constant wxEventType wxEVT_WEBVIEW_BROWSING_DATA_CLEARED = wxEVT_WEBVIEW_BROWSING_DATA_CLEARED;}
158
+ end
159
+ end
160
+ end
161
+
162
+ end # class WebView
163
+
164
+ end # class Director
165
+
166
+ end # module WXRuby3
@@ -0,0 +1,37 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
5
+ ###
6
+ # wxRuby3 wxWidgets interface director
7
+ ###
8
+
9
+ require_relative './event'
10
+
11
+ module WXRuby3
12
+
13
+ class Director
14
+
15
+ class WebViewEvent < Event
16
+
17
+ def setup
18
+ super
19
+ spec.override_inheritance_chain('wxWebViewEvent',
20
+ {'wxNotifyEvent' => 'wxEvents'}, {'wxCommandEvent' => 'wxEvent'}, 'wxEvent', 'wxObject')
21
+ if Config.instance.wx_version_check('3.3.0') >= 0
22
+ spec.items << 'wxWebViewWindowFeatures'
23
+ spec.gc_as_untracked 'wxWebViewWindowFeatures'
24
+ spec.no_proxy 'wxWebViewWindowFeatures'
25
+ spec.make_abstract 'wxWebViewWindowFeatures'
26
+ spec.extend_interface 'wxWebViewWindowFeatures',
27
+ 'virtual wxWebViewWindowFeatures()',
28
+ visibility: 'protected'
29
+
30
+ end
31
+ spec.do_not_generate(:variables, :defines, :enums, :functions)
32
+ end
33
+ end # class WebViewEvent
34
+
35
+ end # class Director
36
+
37
+ end # module WXRuby3
@@ -0,0 +1,63 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
5
+ ###
6
+ # wxRuby3 wxWidgets interface director
7
+ ###
8
+
9
+ module WXRuby3
10
+
11
+ class Director
12
+
13
+ class WebViewHandler < Director
14
+
15
+ include Typemap::IOStreams
16
+ include Typemap::MBConv
17
+
18
+ def setup
19
+ spec.items.concat %w[wxWebViewArchiveHandler wxWebViewFSHandler]
20
+ if Config.instance.wx_version_check('3.3.0') >= 0
21
+ spec.items.concat %w[wxWebViewHandlerRequest wxWebViewHandlerResponse wxWebViewHandlerResponseData]
22
+ end
23
+ super
24
+ spec.gc_as_untracked 'wxWebViewHandler', 'wxWebViewArchiveHandler', 'wxWebViewFSHandler'
25
+ spec.make_abstract 'wxWebViewHandler'
26
+ spec.add_swig_code <<~__CODE
27
+ %include <wx_ruby_shared_ptr.i>
28
+ %wx_ruby_shared_ptr(wxWebViewHandler, wxWebViewHandler);
29
+ %wx_ruby_shared_ptr(wxWebViewArchiveHandler, wxWebViewHandler);
30
+ %wx_ruby_shared_ptr(wxWebViewFSHandler, wxWebViewHandler);
31
+ __CODE
32
+ if Config.instance.wx_version_check('3.3.0') >= 0
33
+ spec.gc_as_untracked 'wxWebViewHandlerRequest', 'wxWebViewHandlerResponse', 'wxWebViewHandlerResponseData'
34
+ spec.no_proxy 'wxWebViewHandlerRequest', 'wxWebViewHandlerResponse'
35
+ spec.make_abstract 'wxWebViewHandlerRequest'
36
+ spec.make_abstract 'wxWebViewHandlerResponse'
37
+ spec.make_abstract 'wxWebViewHandlerResponseData'
38
+ spec.add_swig_code <<~__CODE
39
+ %include <wx_shared_ptr.i>
40
+ %wx_shared_ptr(wxWebViewHandlerResponse);
41
+ %wx_shared_ptr(wxWebViewHandlerResponseData);
42
+ __CODE
43
+ spec.map 'wxSharedPtr<wxWebViewHandlerResponse>' => 'Wx::WEB::WebViewHandlerResponse', swig: false do
44
+ map_in code: ''
45
+ end
46
+ spec.map 'wxSharedPtr<wxWebViewHandlerResponseData>' => 'Wx::WEB::WebViewHandlerResponseData', swig: false do
47
+ map_in code: ''
48
+ end
49
+ spec.suppress_warning(473,
50
+ 'wxWebViewHandlerResponseData::GetStream')
51
+ end
52
+ spec.suppress_warning(473,
53
+ 'wxWebViewHandler::GetFile',
54
+ 'wxWebViewArchiveHandler::GetFile',
55
+ 'wxWebViewFSHandler::GetFile')
56
+ spec.do_not_generate(:variables, :defines, :enums, :functions)
57
+ end
58
+
59
+ end # class WebViewHandler
60
+
61
+ end # class Director
62
+
63
+ end # module WXRuby3
@@ -127,7 +127,7 @@ module WXRuby3
127
127
  spec.ignore 'wxWindow::EnableTouchEvents'
128
128
  end
129
129
  if Config.instance.wx_version_check('3.3.0') >= 0
130
- spec.ignore_unless('WXMSW', 'wxWindow::MSWDisableComposited')
130
+ spec.ignore_unless('WXMSW', 'wxWindow::MSWDisableComposited') if Config.instance.wx_version_check('3.3.1') <= 0
131
131
  spec.ignore('wxWindow::GTKGetWin32Handle')
132
132
  end
133
133
  if Config.instance.features_set?('USE_ACCESSIBILITY')
@@ -236,6 +236,10 @@ module WXRuby3
236
236
  spec.override_events 'wxWindow', 'EVT_ACTIVATE' => ['EVT_ACTIVATE', 0, 'wxActivateEvent']
237
237
  when 'wxNonOwnedWindow'
238
238
  spec.no_proxy('wxNonOwnedWindow')
239
+ if Config.instance.features_set?('WXOSX')
240
+ spec.extend_interface('wxNonOwnedWindow',
241
+ 'virtual bool Destroy() override')
242
+ end
239
243
  when 'wxControl'
240
244
  # add these to the generated interface to be parsed by SWIG
241
245
  # the wxWidgets docs are flawed in this respect that several reimplemented
@@ -288,6 +292,7 @@ module WXRuby3
288
292
  "#{spec.class_name(citem)}::GetScrollRange",
289
293
  "#{spec.class_name(citem)}::GetScrollThumb",
290
294
  "#{spec.class_name(citem)}::GetTextExtent",
295
+ "#{spec.class_name(citem)}::GetDPI",
291
296
  "#{spec.class_name(citem)}::HasCapture",
292
297
  "#{spec.class_name(citem)}::HasMultiplePages",
293
298
  "#{spec.class_name(citem)}::IsDoubleBuffered",
@@ -305,6 +310,9 @@ module WXRuby3
305
310
  "#{spec.class_name(citem)}::SetBackgroundColour",
306
311
  "#{spec.class_name(citem)}::SetBackgroundStyle",
307
312
  "#{spec.class_name(citem)}::HasTransparentBackground",
313
+ "#{spec.class_name(citem)}::CanSetTransparent",
314
+ "#{spec.class_name(citem)}::SetTransparent",
315
+ "#{spec.class_name(citem)}::GetThemeEnabled",
308
316
  "#{spec.class_name(citem)}::SetCursor",
309
317
  "#{spec.class_name(citem)}::SetFocus",
310
318
  "#{spec.class_name(citem)}::SetFocusFromKbd",
@@ -329,6 +337,7 @@ module WXRuby3
329
337
  "#{spec.class_name(citem)}::GetDefaultAttributes",
330
338
  "#{spec.class_name(citem)}::GetWindowStyleFlag",
331
339
  "#{spec.class_name(citem)}::GetDropTarget",
340
+ "#{spec.class_name(citem)}::SetDropTarget",
332
341
  "#{spec.class_name(citem)}::GetValidator",
333
342
  "#{spec.class_name(citem)}::IsTopLevel",
334
343
  "#{spec.class_name(citem)}::EnableTouchEvents",
@@ -18,6 +18,12 @@ module WXRuby3
18
18
  spec.ignore %w[wxXmlResource::AddHandler wxXmlResource::ClearHandlers wxXmlResource::InsertHandler]
19
19
  # not really added value; will add alternative allowing more flexibility (see below)
20
20
  spec.ignore 'wxXmlResource::LoadDocument(wxXmlDocument *, const wxString &)'
21
+ # unwanted in Ruby
22
+ spec.ignore 'wxXmlResource::LoadObject',
23
+ 'wxXmlResource::LoadObjectRecursively'
24
+ # unattached loaders return owned objects
25
+ spec.new_object 'wxXmlResource::LoadMenu(const wxString &)',
26
+ 'wxXmlResource::LoadMenuBar(const wxString &)'
21
27
  # For these three methods, there are two variants in wxWidgets. One loads an
22
28
  # XRC from scratch and returns an instance of a core Wx class
23
29
  # (Wx::Dialog, Wx::Frame, or Wx::Panel). The other loads a layout into
@@ -25,4 +25,4 @@
25
25
  :para:
26
26
  - :pattern: !ruby/regexp /The overridden version may return true but modify.*appending them./
27
27
  :replace: |
28
- The overridden version may return a 2-element array with an AuiTabCtrl and tab index instead to change where the page should be inserted, e.g. by returning a tab index of 0 to insert the new pages at the beginning instead of appending them.
28
+ The overridden version may return a 2-element array with an {Wx::AUI::AuiTabCtrl} and tab index instead to change where the page should be inserted, e.g. by returning a tab index of 0 to insert the new pages at the beginning instead of appending them.
@@ -0,0 +1,26 @@
1
+ ---
2
+ :wxRichToolTip:
3
+ :detail:
4
+ :pre:
5
+ :para:
6
+ - :pattern: !ruby/regexp /The images below show some examples.*/
7
+ :replace: |
8
+
9
+ :programlisting:
10
+ - :pattern: !ruby/regexp /.*/
11
+ :replace: |
12
+
13
+ ```ruby
14
+ password = Wx::TextCtrl.new(..., style: Wx::TE_PASSWORD)
15
+ # ...
16
+ tip = Wx::RichToolTip.new("Caps Lock is on",
17
+ "You might have made an error in your password\n" +
18
+ "entry because Caps Lock is turned on.\n" +
19
+ "\n" +
20
+ "Press Caps Lock key to turn it off.")
21
+ tip.set_icon(Wx::ICON_WARNING)
22
+ tip.show_for(password)
23
+ ```
24
+ :post:
25
+ - :pattern: !ruby/regexp /<div class='appearance'>.*</table></div>/m
26
+ :subst: ''
@@ -0,0 +1,20 @@
1
+ ---
2
+ :wxThreadEvent:
3
+ :detail:
4
+ :pre:
5
+ :detaileddescription:
6
+ - :pattern: !ruby/regexp /.*/
7
+ :replace: |
8
+
9
+ This event is not natively emitted by any control/class: it is just a helper class for the user.
10
+ Its most important feature is the {Wx::RT::ThreadEvent#get_event_category} implementation which allows
11
+ thread events <b>NOT</b> to be processed by {Wx::GUIEventLoop#yield_for} calls (unless the
12
+ {Wx::EventCategory::EVT_CATEGORY_THREAD} is specified - which is never in wx code).
13
+
14
+ In wxRuby user defined classes can be derived from this class but it is important to note that when used
15
+ with {Wx::RT::SharedEvtHandler#queue_message} (the only imaginable use for thread events) no Ruby state
16
+ will <b>ever</b> persist and adding instance variables is therefor not useful.
17
+ The real benefit of being able to derive from this class is that it provides for the registration and use of
18
+ user defined event types for the derived classes allowing to differentiate in event handling.
19
+ @see Wx::GUIEventLoop#yield_for
20
+ @see Wx::RT::SharedEvtHandler
@@ -0,0 +1,135 @@
1
+ ---
2
+ :wxWebView:
3
+ :detail:
4
+ :pre:
5
+ :detaileddescription:
6
+ - :pattern: !ruby/regexp /wxWEBVIEW_BACKEND_IE\s+\(MSW\)/
7
+ :subst: 'Wx::WEB::WEBVIEW_BACKEND_IE (MSW)'
8
+ - :pattern: !ruby/regexp /Internet\s+Explorer\s+7/
9
+ :subst: 'Internet Explorer 11'
10
+ - :pattern: !ruby/regexp /wxWebViewIE::MSWSetEmulationLevel/
11
+ :subst: 'wxWebView::msw_set_ie_emulation_level'
12
+ - :pattern: !ruby/regexp /wxWebViewBackendIE/m
13
+ :global: true
14
+ :subst: 'wxWEBVIEW_BACKEND_IE'
15
+ - :pattern: !ruby/regexp /wxWEBVIEW_BACKEND_EDGE/m
16
+ :global: true
17
+ :subst: 'Wx::WEB::WEBVIEW_BACKEND_EDGE'
18
+ - :pattern: !ruby/regexp /wxWebViewBackendEdge/m
19
+ :global: true
20
+ :subst: 'wxWEBVIEW_BACKEND_EDGE'
21
+ - :pattern: !ruby/regexp /This\s+backend.*using\s+CMake.\s+To\s+build.*steps:/
22
+ :subst: 'This backend is enabled by default for WXMSW.'
23
+ - :pattern: !ruby/regexp /wxWebViewBackendWebKit/m
24
+ :global: true
25
+ :subst: 'wxWEBVIEW_BACKEND_WEBKIT'
26
+ - :pattern: !ruby/regexp /wxWEBVIEW_WEBKIT/m
27
+ :global: true
28
+ :subst: 'Wx::WEB::WEBVIEW_BACKEND_WEBKIT'
29
+ - :pattern: !ruby/regexp /wxWEBVIEW_CHROMIUM/m
30
+ :global: true
31
+ :subst: 'Wx::WEB::WEBVIEW_BACKEND_CHROMIUM'
32
+ - :pattern: !ruby/regexp /wxWebViewBackendChromium/m
33
+ :global: true
34
+ :subst: 'wxWEBVIEW_BACKEND_CHROMIUM'
35
+ :programlisting:
36
+ - :pattern: !ruby/regexp /wxSetEnv/
37
+ :replace: |
38
+
39
+
40
+ ```ruby
41
+ ENV['WEBKIT_DISABLE_DMABUF_RENDERER'] = '1'
42
+ ```
43
+
44
+ :post:
45
+ - :pattern: !ruby/regexp /-\s+When\s+not\s+using\s+CMake:.*remove\s+the dependency\s+on\s+WebView2Loader\.dll\s+at runtime./m
46
+ :subst: ''
47
+ - :pattern: !ruby/regexp /If.*fixed\s+version.*WebView2.*Edge\s+backend\./
48
+ :subst: ''
49
+ - :pattern: !ruby/regexp /see\s+\{Wx::WebViewChromium\}.*build\s+instructions./
50
+ :subst: |
51
+ see the wxWidgets documentation for wxWebViewChromium for additional usage and build instructions.
52
+ This backend can not be automatically build by the wxRuby3 build scripts but requires a custom wxWidgets installation.
53
+ See the wxRuby3 INSTALL documentation for details on how to build with a custom wxWidgets setup.
54
+ :wxWebView.RunScript:
55
+ :detail:
56
+ :pre:
57
+ :programlisting:
58
+ - :pattern: !ruby/regexp /document\.write/
59
+ :replace: |
60
+
61
+
62
+ ```ruby
63
+ webview.run_script('document.write('Hello from wxWidgets!')')
64
+ ```
65
+
66
+ - :pattern: !ruby/regexp /document\.getElementById/
67
+ :replace: |
68
+
69
+
70
+ ```ruby
71
+ if (result = webview.run_script('document.getElementById('some_id').innerHTML'))
72
+ #... result contains the contents of the given element ...
73
+ # else: the element with this ID probably doesn't exist.
74
+ end
75
+ ```
76
+
77
+ :post:
78
+ - :pattern: !ruby/regexp /return\s+false/m
79
+ :global: true
80
+ :subst: 'return nil'
81
+ - :pattern: !ruby/regexp /MSWSetEmulationLevel\(\)/
82
+ :subst: 'Wx::WEB::WebView::msw_set_ie_emulation_level'
83
+ - :pattern: !ruby/regexp /If.*output.*success/m
84
+ :subst: 'This method returns the result of executing this code on success (or nil if no result or on failure)'
85
+ - :pattern: !ruby/regexp /true\s+if\s+there\s+is.*error./m
86
+ :subst: ''
87
+ :wxWebView.AddScriptMessageHandler:
88
+ :detail:
89
+ :pre:
90
+ :programlisting:
91
+ - :pattern: !ruby/regexp /AddScriptMessageHandler/
92
+ :replace: |
93
+
94
+
95
+ ```ruby
96
+ # Install message handler with the name wx_msg
97
+ @webView.add_script_message_handler("wx_msg")
98
+ # Bind handler
99
+ @webView.evt_webview_script_message_received(Wx::ID_ANY) { |evt|
100
+ Wx.log_message("Script message received; value = %s, handler = %s", evt.get_string, evt.get_message_handler)
101
+ }
102
+ ```
103
+
104
+ :post:
105
+ - :pattern: !ruby/regexp /Sample\s+C\+\+\s+code\s+/
106
+ :subst: 'Sample code '
107
+ :wxWebView.SetProxy:
108
+ :detail:
109
+ :pre:
110
+ :programlisting:
111
+ - :pattern: !ruby/regexp /.*/
112
+ :replace: |
113
+
114
+
115
+ ```ruby
116
+ webview = Wx::WEB::WebView.new
117
+ unless webview.set_proxy("http://127.0.0.1:8080")
118
+ Wx.log_warning("Setting proxy failed!")
119
+ end
120
+ webview.create(parent, Wx::ID_ANY)
121
+ ```
122
+
123
+ :wxWebView.IsBackendAvailable:
124
+ :detail:
125
+ :pre:
126
+ :programlisting:
127
+ - :pattern: !ruby/regexp /.*/
128
+ :replace: |
129
+
130
+
131
+ ```ruby
132
+ if Wx::WEB::WebView::is_backend_available(Wx::WEB::WEBVIEW_BACKEND_EDGE)
133
+ #... enable some extra functionality not available with the IE backend ...
134
+ end
135
+ ```
@@ -0,0 +1,38 @@
1
+ ---
2
+ :wxWebViewWindowFeatures:
3
+ :detail:
4
+ :pre:
5
+ :programlisting:
6
+ - :pattern: !ruby/regexp /wxEVT_WEBVIEW_NEWWINDOW/
7
+ :replace: |
8
+
9
+
10
+ ```ruby
11
+ # Bind new window handler
12
+ @webView.evt_webview_newwindow(Wx::ID_ANY) { |evt|
13
+ if evt.get_url == "http://badwebsite.com"
14
+ evt.veto # Disallow new window for badwebsite.com
15
+ else
16
+ evt.skip # Allow new window for all other websites
17
+ end
18
+ }
19
+
20
+ # Bind new window features handler
21
+ @webView.evt_webview_newwindow_features(Wx::ID_ANY) { |evt|
22
+ # Get target window features
23
+ features = evt.get_target_window_features
24
+ # Create a top level window for the child web view
25
+ win = Wx::Frame.new(nil, Wx::ID_ANY, features.get_position, features.get_size)
26
+ sizer = Wx::VBoxSizer.new
27
+ win.set_sizer(sizer)
28
+ # Get the child web view
29
+ childWebView = features.get_child_web_view
30
+ # Place the child web view into the window
31
+ childWebView.create(win, Wx::ID_ANY)
32
+ sizer.add(childWebView, Wx::SizerFlags.new.proportion(1).expand)
33
+ }
34
+ ```
35
+
36
+ :post:
37
+ - :pattern: !ruby/regexp /Sample\s+C\+\+\s+code\s+/
38
+ :subst: 'Sample code '
@@ -0,0 +1,58 @@
1
+ ---
2
+ :wxWebViewHandler.SetVirtualHost:
3
+ :detail:
4
+ :post:
5
+ - :pattern: !ruby/regexp /name\.\{Wx::site\}/
6
+ :subst: '<code>name.wxsite</code>'
7
+ :wxWebViewHandler.StartRequest:
8
+ :detail:
9
+ :pre:
10
+ :programlisting:
11
+ - :pattern: !ruby/regexp /.*/
12
+ :replace: |
13
+
14
+ ```ruby
15
+ def start_request(request, response)
16
+ # Set common headers allowing access from XMLHTTPRequests()
17
+ response.set_header("Access-Control-Allow-Origin", "*")
18
+ response.set_header("Access-Control-Allow-Headers", "*")
19
+
20
+ # Handle options request
21
+ if request.get_method.casecmp("options") == 0
22
+ response.finish("")
23
+ return
24
+ end
25
+
26
+ # Check the post data type
27
+ unless request.get_header("Content-Type").start_with?("application/json")
28
+ response.finish_with_error
29
+ return;
30
+ end
31
+
32
+ # Process input data
33
+ postData = request.get_data_string
34
+
35
+ #...
36
+
37
+ # Send result
38
+ response.set_content_type("application/json")
39
+ response.finish("{ result: true }")
40
+ end
41
+ ```
42
+ :wxWebViewHandlerResponse.Finish:
43
+ :detail:
44
+ :pre:
45
+ :detaileddescription:
46
+ - :pattern: !ruby/regexp /simplesect.*kind.*see.*Finish.*wxMBConv/
47
+ :replace: |
48
+ @see finish(text, conv)
49
+ - :pattern: !ruby/regexp /simplesect.*kind.*see.*Finish.*wxWebViewHandlerResponseData/
50
+ :replace: |
51
+ @see find(data)
52
+ :wxWebViewHandlerResponseData:
53
+ :detail:
54
+ :pre:
55
+ :detaileddescription:
56
+ - :pattern: !ruby/regexp /simplesect.*kind.*see.*Finish.*wxWebViewHandlerResponseData/
57
+ :replace: |
58
+ @see Wx::WEB::WebViewHandlerResponse#finish(data)
@@ -49,7 +49,7 @@ module WXRuby3
49
49
  end
50
50
  table = { 'Wx' => {}}
51
51
  handle_module(Wx, table['Wx'])
52
- STDOUT.puts JSON.dump(table)
52
+ File.open(ARGV[0], 'w+') { |f| f << JSON.dump(table) }
53
53
  __SCRIPT
54
54
  STDERR.puts "* executing constants collection script:\n#{script}" if Director.trace?
55
55
  begin
@@ -57,22 +57,27 @@ module WXRuby3
57
57
  ftmp_name = tmpfile.path.dup
58
58
  tmpfile << script
59
59
  tmpfile.close(false)
60
- result = if Director.trace?
61
- Config.instance.run(ftmp_name, capture: :out, verbose: false)
62
- else
63
- Config.instance.run(ftmp_name, capture: :no_err, verbose: false)
64
- end
60
+ tmpconsts = Tempfile.new('constants')
61
+ fconsts_name = tmpconsts.path.dup
62
+ tmpconsts.close(false)
63
+ if Director.trace?
64
+ Config.instance.run(ftmp_name, fconsts_name, capture: :out, verbose: false)
65
+ else
66
+ Config.instance.run(ftmp_name, fconsts_name, capture: :no_err, verbose: false)
67
+ end
68
+ result = File.read(fconsts_name)
65
69
  STDERR.puts "* got constants collection output:\n#{result}" if Director.trace?
66
70
  begin
67
71
  db = JSON.load(result)
68
72
  rescue Exception
69
- File.open('constants_raw.json', "w") { |f| f << result } if Director.verbose?
73
+ # File.open('constants_raw.json', "w") { |f| f << result } if Director.verbose?
70
74
  ::Kernel.raise RuntimeError, "Exception loading constants collection result: #{$!.message.slice(0, 512)}", cause: nil
71
75
  end
72
76
  File.open('constants.json', "w") { |f| f << JSON.pretty_generate(db) } if Director.verbose?
73
77
  return db
74
78
  ensure
75
79
  File.unlink(ftmp_name)
80
+ File.unlink(fconsts_name)
76
81
  end
77
82
  end
78
83