wxruby3 1.7.0 → 1.8.1
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.
- checksums.yaml +4 -4
- data/INSTALL.md +27 -2
- data/README.md +15 -15
- data/ext/wxruby3/include/wxRubyApp.h +145 -46
- data/ext/wxruby3/include/wxruby-ComboPopup.h +25 -8
- data/ext/wxruby3/include/wxruby-GCTracking.h +262 -0
- data/ext/wxruby3/include/wxruby-MBConv.h +190 -0
- data/ext/wxruby3/include/wxruby-SharedEventHandler.h +183 -0
- data/ext/wxruby3/include/wxruby-SharedPtr.h +104 -0
- data/ext/wxruby3/include/wxruby-runtime.h +29 -0
- data/ext/wxruby3/swig/custom/rubytracking.swg +8 -22
- data/ext/wxruby3/swig/custom/wx_ruby_shared_ptr.i +434 -0
- data/ext/wxruby3/swig/custom/wx_shared_ptr.i +431 -0
- data/ext/wxruby3/swig/mark_free_impl.i +7 -132
- data/ext/wxruby3/swig/memory_management.i +8 -44
- data/ext/wxruby3/swig/wx.i +46 -73
- data/lib/wx/core/const.rb +0 -1
- data/lib/wx/core/context_help.rb +17 -0
- data/lib/wx/core/cursor.rb +1 -0
- data/lib/wx/core/helpcontrollerhelpprovider.rb +10 -2
- data/lib/wx/core/mbconv.rb +11 -0
- data/lib/wx/core/media_ctrl.rb +31 -0
- data/lib/wx/core/top_level_window.rb +7 -0
- data/lib/wx/core.rb +6 -0
- data/lib/wx/doc/art_provider.rb +17 -0
- data/lib/wx/doc/context_help.rb +42 -0
- data/lib/wx/doc/core.rb +0 -5
- data/lib/wx/doc/functions.rb +10 -0
- data/lib/wx/doc/html/html_help_controller.rb +23 -1
- data/lib/wx/doc/mbconv.rb +108 -0
- data/lib/wx/doc/rt/shared_event_handler.rb +49 -0
- data/lib/wx/doc/rt/thread_event.rb +28 -0
- data/lib/wx/doc/stream.rb +7 -3
- data/lib/wx/doc/webview.rb +40 -0
- data/lib/wx/helpers.rb +1 -1
- data/lib/wx/html/htmlhelpcontroller.rb +10 -0
- data/lib/wx/keyword_defs.rb +11 -0
- data/lib/wx/rt/require.rb +8 -0
- data/lib/wx/rt/thread_event.rb +14 -0
- data/lib/wx/rt.rb +16 -0
- data/lib/wx/version.rb +1 -1
- data/lib/wx/web/require.rb +8 -0
- data/lib/wx/web/webview.rb +106 -0
- data/lib/wx/web.rb +17 -0
- data/lib/wx/wxruby/cmd/setup.rb +15 -0
- data/lib/wx/wxruby/cmd/test.rb +8 -2
- data/lib/wx.rb +2 -0
- data/rakelib/configure.rb +24 -0
- data/rakelib/gem.rb +3 -2
- data/rakelib/install.rb +54 -27
- data/rakelib/lib/config/macosx.rb +7 -5
- data/rakelib/lib/config/mingw.rb +66 -5
- data/rakelib/lib/config/pkgman/linux.rb +4 -2
- data/rakelib/lib/config/pkgman/mingw.rb +1 -1
- data/rakelib/lib/config/unixish.rb +4 -2
- data/rakelib/lib/config.rb +37 -3
- data/rakelib/lib/core/include/client_data.inc +38 -17
- data/rakelib/lib/core/include/funcall.inc +1 -1
- data/rakelib/lib/core/include/swigdirector.inc +3 -3
- data/rakelib/lib/core/include/swigrubyrun.inc +14 -26
- data/rakelib/lib/core/package.rb +0 -2
- data/rakelib/lib/director/app.rb +1 -8
- data/rakelib/lib/director/art_provider.rb +7 -3
- data/rakelib/lib/director/comboctrl.rb +0 -7
- data/rakelib/lib/director/context_help_button.rb +35 -2
- data/rakelib/lib/director/derived_dc.rb +41 -32
- data/rakelib/lib/director/editable_listbox.rb +10 -8
- data/rakelib/lib/director/event_handler.rb +32 -28
- data/rakelib/lib/director/fs_file.rb +38 -10
- data/rakelib/lib/director/functions.rb +8 -0
- data/rakelib/lib/director/grid_cell_attr.rb +1 -3
- data/rakelib/lib/director/grid_cell_editor.rb +14 -12
- data/rakelib/lib/director/grid_cell_renderer.rb +11 -8
- data/rakelib/lib/director/grid_ctrl.rb +140 -121
- data/rakelib/lib/director/help_controller.rb +70 -2
- data/rakelib/lib/director/mb_conv.rb +30 -0
- data/rakelib/lib/director/menu.rb +92 -42
- data/rakelib/lib/director/menu_bar.rb +84 -45
- data/rakelib/lib/director/menu_item.rb +2 -2
- data/rakelib/lib/director/persistence_manager.rb +3 -2
- data/rakelib/lib/director/preview_frame.rb +2 -2
- data/rakelib/lib/director/ribbon_page.rb +11 -0
- data/rakelib/lib/director/richtext_buffer.rb +5 -2
- data/rakelib/lib/director/shared_evt_handler.rb +30 -0
- data/rakelib/lib/director/sizer.rb +8 -17
- data/rakelib/lib/director/sizer_item.rb +3 -4
- data/rakelib/lib/director/task_bar_icon.rb +7 -7
- data/rakelib/lib/director/thread_event.rb +33 -0
- data/rakelib/lib/director/top_level_window.rb +12 -4
- data/rakelib/lib/director/validator.rb +3 -1
- data/rakelib/lib/director/variant.rb +16 -12
- data/rakelib/lib/director/webview.rb +166 -0
- data/rakelib/lib/director/webview_event.rb +37 -0
- data/rakelib/lib/director/webview_handler.rb +63 -0
- data/rakelib/lib/generate/doc/thread_event.yaml +20 -0
- data/rakelib/lib/generate/doc/web_view.yaml +135 -0
- data/rakelib/lib/generate/doc/web_view_event.yaml +38 -0
- data/rakelib/lib/generate/doc/web_view_handler.yaml +58 -0
- data/rakelib/lib/specs/interfaces.rb +14 -2
- data/rakelib/lib/typemap/common.rb +34 -1
- data/rakelib/lib/typemap/mb_conv.rb +58 -0
- data/rakelib/prepost.rake +23 -31
- data/rakelib/prepost.rb +20 -0
- data/samples/event/threaded.rb +295 -42
- data/samples/event/tn_threaded.png +0 -0
- data/samples/help/doc/back.gif +0 -0
- data/samples/help/doc/contents.gif +0 -0
- data/samples/help/doc/cshelp.txt +9 -0
- data/samples/help/doc/doc.chm +0 -0
- data/samples/help/doc/doc.cnt +8 -0
- data/samples/help/doc/doc.h +7 -0
- data/samples/help/doc/doc.hhc +40 -0
- data/samples/help/doc/doc.hhk +31 -0
- data/samples/help/doc/doc.hhp +33 -0
- data/samples/help/doc/doc.hpj +21 -0
- data/samples/help/doc/doc.htm +27 -0
- data/samples/help/doc/doc1.htm +24 -0
- data/samples/help/doc/doc2.htm +12 -0
- data/samples/help/doc/doc3.htm +12 -0
- data/samples/help/doc/doc4.htm +12 -0
- data/samples/help/doc/doc5.htm +14 -0
- data/samples/help/doc/forward.gif +0 -0
- data/samples/help/doc/up.gif +0 -0
- data/samples/help/doc.chm +0 -0
- data/samples/help/doc.chw +0 -0
- data/samples/help/doc.zip +0 -0
- data/samples/help/help.rb +352 -0
- data/samples/help/tn_help.png +0 -0
- data/samples/webview/handler_advanced.html +55 -0
- data/samples/webview/tn_webview.png +0 -0
- data/samples/webview/webview.rb +1264 -0
- data/tests/assets/handler_advanced.html +55 -0
- data/tests/assets/test.zip +0 -0
- data/tests/lib/text_entry_tests.rb +2 -2
- data/tests/lib/wxapp_runner.rb +40 -0
- data/tests/lib/wxframe_runner.rb +17 -2
- data/tests/test_art.rb +8 -8
- data/tests/test_clipboard.rb +4 -4
- data/tests/test_config.rb +6 -6
- data/tests/test_exceptions.rb +8 -6
- data/tests/test_ext_controls.rb +3 -3
- data/tests/test_file_dialog.rb +5 -5
- data/tests/test_font.rb +7 -7
- data/tests/test_grid_ctrl.rb +133 -0
- data/tests/test_help.rb +88 -0
- data/tests/test_intl.rb +1 -1
- data/tests/test_media_ctrl.rb +14 -6
- data/tests/test_menu.rb +94 -86
- data/tests/test_persistence.rb +1 -1
- data/tests/test_proof_check.rb +5 -5
- data/tests/test_propgrid.rb +1 -1
- data/tests/test_shared_event_handler.rb +141 -0
- data/tests/test_std_controls.rb +5 -5
- data/tests/test_webview.rb +492 -0
- data/tests/test_window.rb +3 -3
- metadata +66 -368
- data/assets/repo-social-preview.odg +0 -0
- data/assets/repo-social-preview.xcf +0 -0
- data/lib/wx/aui/events/evt_list.rb +0 -148
- data/lib/wx/core/events/evt_list.rb +0 -1458
- data/lib/wx/core/font/encoding.rb +0 -113
- data/lib/wx/doc/gen/about_dialog_info.rb +0 -330
- data/lib/wx/doc/gen/accelerator.rb +0 -178
- data/lib/wx/doc/gen/activity_indicator.rb +0 -83
- data/lib/wx/doc/gen/affine_matrix2d.rb +0 -284
- data/lib/wx/doc/gen/animation.rb +0 -275
- data/lib/wx/doc/gen/animation_ctrl.rb +0 -300
- data/lib/wx/doc/gen/any_button.rb +0 -191
- data/lib/wx/doc/gen/app.rb +0 -463
- data/lib/wx/doc/gen/app_traits.rb +0 -396
- data/lib/wx/doc/gen/art_provider.rb +0 -605
- data/lib/wx/doc/gen/aui/aui_dock_art.rb +0 -455
- data/lib/wx/doc/gen/aui/aui_floating_frame.rb +0 -54
- data/lib/wx/doc/gen/aui/aui_manager.rb +0 -847
- data/lib/wx/doc/gen/aui/aui_manager_event.rb +0 -131
- data/lib/wx/doc/gen/aui/aui_mdi_child_frame.rb +0 -180
- data/lib/wx/doc/gen/aui/aui_mdi_client_window.rb +0 -59
- data/lib/wx/doc/gen/aui/aui_mdi_parent_frame.rb +0 -130
- data/lib/wx/doc/gen/aui/aui_notebook.rb +0 -631
- data/lib/wx/doc/gen/aui/aui_notebook_event.rb +0 -233
- data/lib/wx/doc/gen/aui/aui_pane_info.rb +0 -769
- data/lib/wx/doc/gen/aui/aui_tab_art.rb +0 -352
- data/lib/wx/doc/gen/aui/aui_tab_ctrl.rb +0 -14
- data/lib/wx/doc/gen/aui/aui_tool_bar.rb +0 -510
- data/lib/wx/doc/gen/aui/aui_tool_bar_art.rb +0 -340
- data/lib/wx/doc/gen/aui/aui_tool_bar_event.rb +0 -244
- data/lib/wx/doc/gen/aui/aui_tool_bar_item.rb +0 -257
- data/lib/wx/doc/gen/aui/event_list.rb +0 -179
- data/lib/wx/doc/gen/banner_window.rb +0 -124
- data/lib/wx/doc/gen/bitmap.rb +0 -731
- data/lib/wx/doc/gen/bitmap_button.rb +0 -123
- data/lib/wx/doc/gen/bitmap_combo_box.rb +0 -221
- data/lib/wx/doc/gen/book_ctrl_base.rb +0 -273
- data/lib/wx/doc/gen/book_ctrl_event.rb +0 -66
- data/lib/wx/doc/gen/box_sizer.rb +0 -85
- data/lib/wx/doc/gen/brush.rb +0 -251
- data/lib/wx/doc/gen/busy_info.rb +0 -157
- data/lib/wx/doc/gen/button.rb +0 -182
- data/lib/wx/doc/gen/calculate_layout_event.rb +0 -62
- data/lib/wx/doc/gen/calendar_ctrl.rb +0 -505
- data/lib/wx/doc/gen/calendar_date_attr.rb +0 -138
- data/lib/wx/doc/gen/calendar_event.rb +0 -147
- data/lib/wx/doc/gen/caret.rb +0 -97
- data/lib/wx/doc/gen/check_box.rb +0 -175
- data/lib/wx/doc/gen/check_list_box.rb +0 -121
- data/lib/wx/doc/gen/choice.rb +0 -175
- data/lib/wx/doc/gen/choicebook.rb +0 -116
- data/lib/wx/doc/gen/client_dc.rb +0 -43
- data/lib/wx/doc/gen/clipboard.rb +0 -144
- data/lib/wx/doc/gen/collapsible_pane.rb +0 -138
- data/lib/wx/doc/gen/collapsible_pane_event.rb +0 -46
- data/lib/wx/doc/gen/colour.rb +0 -333
- data/lib/wx/doc/gen/colour_dialog.rb +0 -190
- data/lib/wx/doc/gen/colour_picker_ctrl.rb +0 -110
- data/lib/wx/doc/gen/colour_picker_event.rb +0 -77
- data/lib/wx/doc/gen/combo_box.rb +0 -292
- data/lib/wx/doc/gen/combo_ctrl.rb +0 -662
- data/lib/wx/doc/gen/command_link_button.rb +0 -134
- data/lib/wx/doc/gen/config_base.rb +0 -10
- data/lib/wx/doc/gen/context_help_button.rb +0 -109
- data/lib/wx/doc/gen/control.rb +0 -277
- data/lib/wx/doc/gen/control_with_items.rb +0 -253
- data/lib/wx/doc/gen/core.rb +0 -45
- data/lib/wx/doc/gen/credential_entry_dialog.rb +0 -137
- data/lib/wx/doc/gen/cursor.rb +0 -193
- data/lib/wx/doc/gen/data_format.rb +0 -85
- data/lib/wx/doc/gen/data_object.rb +0 -436
- data/lib/wx/doc/gen/data_object_simple_base.rb +0 -10
- data/lib/wx/doc/gen/date_event.rb +0 -49
- data/lib/wx/doc/gen/date_picker_ctrl.rb +0 -161
- data/lib/wx/doc/gen/dc.rb +0 -1631
- data/lib/wx/doc/gen/dc_overlay.rb +0 -102
- data/lib/wx/doc/gen/defs.rb +0 -2802
- data/lib/wx/doc/gen/dial_up_event.rb +0 -45
- data/lib/wx/doc/gen/dial_up_manager.rb +0 -149
- data/lib/wx/doc/gen/dialog.rb +0 -541
- data/lib/wx/doc/gen/dir_dialog.rb +0 -164
- data/lib/wx/doc/gen/dir_filter_list_ctrl.rb +0 -90
- data/lib/wx/doc/gen/dir_picker_ctrl.rb +0 -125
- data/lib/wx/doc/gen/display.rb +0 -238
- data/lib/wx/doc/gen/drag_drop.rb +0 -299
- data/lib/wx/doc/gen/drag_image.rb +0 -116
- data/lib/wx/doc/gen/editable_list_box.rb +0 -109
- data/lib/wx/doc/gen/event.rb +0 -990
- data/lib/wx/doc/gen/event_blocker.rb +0 -50
- data/lib/wx/doc/gen/event_filter.rb +0 -92
- data/lib/wx/doc/gen/event_list.rb +0 -1644
- data/lib/wx/doc/gen/events.rb +0 -2809
- data/lib/wx/doc/gen/evt_handler.rb +0 -229
- data/lib/wx/doc/gen/ext_help_controller.rb +0 -109
- data/lib/wx/doc/gen/file_ctrl.rb +0 -231
- data/lib/wx/doc/gen/file_ctrl_event.rb +0 -83
- data/lib/wx/doc/gen/file_dialog.rb +0 -353
- data/lib/wx/doc/gen/file_dialog_custom_control.rb +0 -165
- data/lib/wx/doc/gen/file_dialog_customize_hook.rb +0 -158
- data/lib/wx/doc/gen/file_dir_picker_event.rb +0 -100
- data/lib/wx/doc/gen/file_picker_ctrl.rb +0 -132
- data/lib/wx/doc/gen/file_system.rb +0 -232
- data/lib/wx/doc/gen/find_dialog_event.rb +0 -126
- data/lib/wx/doc/gen/find_replace_data.rb +0 -60
- data/lib/wx/doc/gen/find_replace_dialog.rb +0 -58
- data/lib/wx/doc/gen/flex_grid_sizer.rb +0 -199
- data/lib/wx/doc/gen/font.rb +0 -1379
- data/lib/wx/doc/gen/font_data.rb +0 -151
- data/lib/wx/doc/gen/font_dialog.rb +0 -88
- data/lib/wx/doc/gen/font_picker_ctrl.rb +0 -143
- data/lib/wx/doc/gen/font_picker_event.rb +0 -65
- data/lib/wx/doc/gen/frame.rb +0 -352
- data/lib/wx/doc/gen/fs_file.rb +0 -337
- data/lib/wx/doc/gen/functions.rb +0 -10
- data/lib/wx/doc/gen/gauge.rb +0 -157
- data/lib/wx/doc/gen/gb_sizer_item.rb +0 -68
- data/lib/wx/doc/gen/gcdc.rb +0 -46
- data/lib/wx/doc/gen/gdi_common.rb +0 -1271
- data/lib/wx/doc/gen/gdi_object.rb +0 -31
- data/lib/wx/doc/gen/generic_about_dialog.rb +0 -140
- data/lib/wx/doc/gen/generic_dir_ctrl.rb +0 -223
- data/lib/wx/doc/gen/geometry.rb +0 -661
- data/lib/wx/doc/gen/graphics_context.rb +0 -1184
- data/lib/wx/doc/gen/graphics_object.rb +0 -750
- data/lib/wx/doc/gen/grid/event_list.rb +0 -191
- data/lib/wx/doc/gen/grid/grid_cell_activatable_editor.rb +0 -40
- data/lib/wx/doc/gen/grid/grid_cell_attr.rb +0 -280
- data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_editor.rb +0 -35
- data/lib/wx/doc/gen/grid/grid_cell_auto_wrap_string_renderer.rb +0 -37
- data/lib/wx/doc/gen/grid/grid_cell_bool_editor.rb +0 -49
- data/lib/wx/doc/gen/grid/grid_cell_bool_renderer.rb +0 -35
- data/lib/wx/doc/gen/grid/grid_cell_choice_editor.rb +0 -46
- data/lib/wx/doc/gen/grid/grid_cell_date_editor.rb +0 -38
- data/lib/wx/doc/gen/grid/grid_cell_date_renderer.rb +0 -45
- data/lib/wx/doc/gen/grid/grid_cell_date_time_renderer.rb +0 -40
- data/lib/wx/doc/gen/grid/grid_cell_editor.rb +0 -197
- data/lib/wx/doc/gen/grid/grid_cell_enum_editor.rb +0 -39
- data/lib/wx/doc/gen/grid/grid_cell_enum_renderer.rb +0 -44
- data/lib/wx/doc/gen/grid/grid_cell_float_editor.rb +0 -45
- data/lib/wx/doc/gen/grid/grid_cell_float_renderer.rb +0 -79
- data/lib/wx/doc/gen/grid/grid_cell_number_editor.rb +0 -46
- data/lib/wx/doc/gen/grid/grid_cell_number_renderer.rb +0 -35
- data/lib/wx/doc/gen/grid/grid_cell_renderer.rb +0 -108
- data/lib/wx/doc/gen/grid/grid_cell_string_renderer.rb +0 -35
- data/lib/wx/doc/gen/grid/grid_cell_text_editor.rb +0 -49
- data/lib/wx/doc/gen/grid/grid_ctrl.rb +0 -3002
- data/lib/wx/doc/gen/grid/grid_editor_created_event.rb +0 -95
- data/lib/wx/doc/gen/grid/grid_event.rb +0 -129
- data/lib/wx/doc/gen/grid/grid_range_select_event.rb +0 -104
- data/lib/wx/doc/gen/grid/grid_size_event.rb +0 -85
- data/lib/wx/doc/gen/grid/grid_string_table.rb +0 -142
- data/lib/wx/doc/gen/grid/grid_table_base.rb +0 -317
- data/lib/wx/doc/gen/grid/grid_table_message.rb +0 -81
- data/lib/wx/doc/gen/grid_bag_sizer.rb +0 -323
- data/lib/wx/doc/gen/grid_sizer.rb +0 -195
- data/lib/wx/doc/gen/gui_event_loop.rb +0 -159
- data/lib/wx/doc/gen/h_scrolled_window.rb +0 -562
- data/lib/wx/doc/gen/header_ctrl.rb +0 -880
- data/lib/wx/doc/gen/header_ctrl_event.rb +0 -133
- data/lib/wx/doc/gen/help_controller.rb +0 -195
- data/lib/wx/doc/gen/help_provider.rb +0 -98
- data/lib/wx/doc/gen/html/event_list.rb +0 -38
- data/lib/wx/doc/gen/html/html_cell.rb +0 -536
- data/lib/wx/doc/gen/html/html_cell_event.rb +0 -69
- data/lib/wx/doc/gen/html/html_data_object.rb +0 -42
- data/lib/wx/doc/gen/html/html_easy_printing.rb +0 -203
- data/lib/wx/doc/gen/html/html_help_controller.rb +0 -340
- data/lib/wx/doc/gen/html/html_help_data.rb +0 -159
- data/lib/wx/doc/gen/html/html_help_window.rb +0 -258
- data/lib/wx/doc/gen/html/html_link_event.rb +0 -41
- data/lib/wx/doc/gen/html/html_list_box.rb +0 -346
- data/lib/wx/doc/gen/html/html_printout.rb +0 -109
- data/lib/wx/doc/gen/html/html_window.rb +0 -461
- data/lib/wx/doc/gen/hyperlink_ctrl.rb +0 -311
- data/lib/wx/doc/gen/hyperlink_event.rb +0 -44
- data/lib/wx/doc/gen/icon.rb +0 -267
- data/lib/wx/doc/gen/icon_location.rb +0 -40
- data/lib/wx/doc/gen/image.rb +0 -1371
- data/lib/wx/doc/gen/image_list.rb +0 -168
- data/lib/wx/doc/gen/info_bar.rb +0 -195
- data/lib/wx/doc/gen/keyboard_state.rb +0 -140
- data/lib/wx/doc/gen/list_box.rb +0 -304
- data/lib/wx/doc/gen/list_ctrl.rb +0 -1774
- data/lib/wx/doc/gen/list_event.rb +0 -208
- data/lib/wx/doc/gen/listbook.rb +0 -116
- data/lib/wx/doc/gen/locale.rb +0 -4293
- data/lib/wx/doc/gen/log.rb +0 -603
- data/lib/wx/doc/gen/mdi_client_window.rb +0 -47
- data/lib/wx/doc/gen/mdi_frame.rb +0 -324
- data/lib/wx/doc/gen/media_ctrl.rb +0 -269
- data/lib/wx/doc/gen/media_event.rb +0 -117
- data/lib/wx/doc/gen/memory_dc.rb +0 -174
- data/lib/wx/doc/gen/menu.rb +0 -509
- data/lib/wx/doc/gen/menu_bar.rb +0 -287
- data/lib/wx/doc/gen/menu_item.rb +0 -362
- data/lib/wx/doc/gen/message_dialog.rb +0 -238
- data/lib/wx/doc/gen/mini_frame.rb +0 -108
- data/lib/wx/doc/gen/mirror_dc.rb +0 -22
- data/lib/wx/doc/gen/mouse_state.rb +0 -150
- data/lib/wx/doc/gen/multi_choice_dialog.rb +0 -80
- data/lib/wx/doc/gen/non_owned_window.rb +0 -49
- data/lib/wx/doc/gen/notebook.rb +0 -278
- data/lib/wx/doc/gen/num_validator.rb +0 -37
- data/lib/wx/doc/gen/number_entry_dialog.rb +0 -93
- data/lib/wx/doc/gen/object.rb +0 -59
- data/lib/wx/doc/gen/owner_drawn_combo_box.rb +0 -395
- data/lib/wx/doc/gen/paint_dc.rb +0 -27
- data/lib/wx/doc/gen/palette.rb +0 -92
- data/lib/wx/doc/gen/panel.rb +0 -127
- data/lib/wx/doc/gen/pen.rb +0 -511
- data/lib/wx/doc/gen/persistence_manager.rb +0 -135
- data/lib/wx/doc/gen/persistent_object.rb +0 -52
- data/lib/wx/doc/gen/persistent_window.rb +0 -241
- data/lib/wx/doc/gen/pg/event_list.rb +0 -106
- data/lib/wx/doc/gen/pg/numeric_property_validator.rb +0 -54
- data/lib/wx/doc/gen/pg/pg_array_editor_dialog.rb +0 -292
- data/lib/wx/doc/gen/pg/pg_cell.rb +0 -177
- data/lib/wx/doc/gen/pg/pg_editor.rb +0 -721
- data/lib/wx/doc/gen/pg/pg_multi_button.rb +0 -152
- data/lib/wx/doc/gen/pg/pg_properties.rb +0 -2829
- data/lib/wx/doc/gen/pg/pg_property.rb +0 -2078
- data/lib/wx/doc/gen/pg/pg_validation_info.rb +0 -344
- data/lib/wx/doc/gen/pg/property_grid.rb +0 -740
- data/lib/wx/doc/gen/pg/property_grid_event.rb +0 -184
- data/lib/wx/doc/gen/pg/property_grid_interface.rb +0 -1098
- data/lib/wx/doc/gen/pg/property_grid_manager.rb +0 -415
- data/lib/wx/doc/gen/pg/property_grid_page.rb +0 -354
- data/lib/wx/doc/gen/pg/property_grid_page_state.rb +0 -165
- data/lib/wx/doc/gen/picker_base.rb +0 -152
- data/lib/wx/doc/gen/platform_info.rb +0 -622
- data/lib/wx/doc/gen/popup_window.rb +0 -107
- data/lib/wx/doc/gen/progress_dialog.rb +0 -100
- data/lib/wx/doc/gen/property_sheet_dialog.rb +0 -216
- data/lib/wx/doc/gen/prt/event_list.rb +0 -17
- data/lib/wx/doc/gen/prt/page_setup_dialog.rb +0 -44
- data/lib/wx/doc/gen/prt/post_script_dc.rb +0 -30
- data/lib/wx/doc/gen/prt/preview_frame.rb +0 -78
- data/lib/wx/doc/gen/prt/print_abort_dialog.rb +0 -151
- data/lib/wx/doc/gen/prt/print_data.rb +0 -804
- data/lib/wx/doc/gen/prt/print_dialog.rb +0 -55
- data/lib/wx/doc/gen/prt/printer.rb +0 -518
- data/lib/wx/doc/gen/prt/printer_dc.rb +0 -37
- data/lib/wx/doc/gen/query_layout_info_event.rb +0 -106
- data/lib/wx/doc/gen/radio_box.rb +0 -306
- data/lib/wx/doc/gen/radio_button.rb +0 -159
- data/lib/wx/doc/gen/rbn/event_list.rb +0 -136
- data/lib/wx/doc/gen/rbn/ribbon_art_provider.rb +0 -1132
- data/lib/wx/doc/gen/rbn/ribbon_bar.rb +0 -308
- data/lib/wx/doc/gen/rbn/ribbon_bar_event.rb +0 -45
- data/lib/wx/doc/gen/rbn/ribbon_button_bar.rb +0 -458
- data/lib/wx/doc/gen/rbn/ribbon_button_bar_event.rb +0 -63
- data/lib/wx/doc/gen/rbn/ribbon_control.rb +0 -143
- data/lib/wx/doc/gen/rbn/ribbon_gallery.rb +0 -229
- data/lib/wx/doc/gen/rbn/ribbon_gallery_event.rb +0 -55
- data/lib/wx/doc/gen/rbn/ribbon_page.rb +0 -174
- data/lib/wx/doc/gen/rbn/ribbon_panel.rb +0 -270
- data/lib/wx/doc/gen/rbn/ribbon_panel_event.rb +0 -45
- data/lib/wx/doc/gen/rbn/ribbon_tool_bar.rb +0 -360
- data/lib/wx/doc/gen/rbn/ribbon_tool_bar_event.rb +0 -42
- data/lib/wx/doc/gen/rearrange_ctrl.rb +0 -78
- data/lib/wx/doc/gen/rearrange_list.rb +0 -123
- data/lib/wx/doc/gen/region.rb +0 -380
- data/lib/wx/doc/gen/region_iterator.rb +0 -76
- data/lib/wx/doc/gen/rich_tool_tip.rb +0 -154
- data/lib/wx/doc/gen/rtc/event_list.rb +0 -125
- data/lib/wx/doc/gen/rtc/rich_text_box.rb +0 -445
- data/lib/wx/doc/gen/rtc/rich_text_buffer.rb +0 -1188
- data/lib/wx/doc/gen/rtc/rich_text_buffer_data_object.rb +0 -41
- data/lib/wx/doc/gen/rtc/rich_text_composite_object.rb +0 -538
- data/lib/wx/doc/gen/rtc/rich_text_ctrl.rb +0 -2103
- data/lib/wx/doc/gen/rtc/rich_text_event.rb +0 -173
- data/lib/wx/doc/gen/rtc/rich_text_file_handler.rb +0 -181
- data/lib/wx/doc/gen/rtc/rich_text_formatting_dialog.rb +0 -319
- data/lib/wx/doc/gen/rtc/rich_text_header_footer_data.rb +0 -193
- data/lib/wx/doc/gen/rtc/rich_text_html_handler.rb +0 -102
- data/lib/wx/doc/gen/rtc/rich_text_image.rb +0 -337
- data/lib/wx/doc/gen/rtc/rich_text_object.rb +0 -2922
- data/lib/wx/doc/gen/rtc/rich_text_paragraph_layout_box.rb +0 -1240
- data/lib/wx/doc/gen/rtc/rich_text_printing.rb +0 -258
- data/lib/wx/doc/gen/rtc/rich_text_style_list_box.rb +0 -344
- data/lib/wx/doc/gen/rtc/rich_text_style_organiser_dialog.rb +0 -227
- data/lib/wx/doc/gen/rtc/rich_text_xml_handler.rb +0 -59
- data/lib/wx/doc/gen/rtc/symbol_picker_dialog.rb +0 -169
- data/lib/wx/doc/gen/sash_event.rb +0 -147
- data/lib/wx/doc/gen/sash_layout_window.rb +0 -232
- data/lib/wx/doc/gen/sash_window.rb +0 -171
- data/lib/wx/doc/gen/scaled_dc.rb +0 -10
- data/lib/wx/doc/gen/screen_dc.rb +0 -30
- data/lib/wx/doc/gen/scroll_bar.rb +0 -204
- data/lib/wx/doc/gen/scrolled_canvas.rb +0 -410
- data/lib/wx/doc/gen/scrolled_control.rb +0 -410
- data/lib/wx/doc/gen/scrolled_window.rb +0 -430
- data/lib/wx/doc/gen/search_ctrl.rb +0 -159
- data/lib/wx/doc/gen/secret_store.rb +0 -116
- data/lib/wx/doc/gen/simplebook.rb +0 -110
- data/lib/wx/doc/gen/single_choice_dialog.rb +0 -89
- data/lib/wx/doc/gen/sizer.rb +0 -945
- data/lib/wx/doc/gen/sizer_item.rb +0 -244
- data/lib/wx/doc/gen/slider.rb +0 -342
- data/lib/wx/doc/gen/spin_button.rb +0 -157
- data/lib/wx/doc/gen/spin_ctrl.rb +0 -231
- data/lib/wx/doc/gen/spin_ctrl_double.rb +0 -192
- data/lib/wx/doc/gen/spin_double_event.rb +0 -55
- data/lib/wx/doc/gen/spin_event.rb +0 -51
- data/lib/wx/doc/gen/splash_screen.rb +0 -113
- data/lib/wx/doc/gen/splitter_event.rb +0 -99
- data/lib/wx/doc/gen/splitter_window.rb +0 -498
- data/lib/wx/doc/gen/static_bitmap.rb +0 -256
- data/lib/wx/doc/gen/static_box.rb +0 -180
- data/lib/wx/doc/gen/static_box_sizer.rb +0 -85
- data/lib/wx/doc/gen/static_line.rb +0 -83
- data/lib/wx/doc/gen/static_text.rb +0 -127
- data/lib/wx/doc/gen/status_bar.rb +0 -290
- data/lib/wx/doc/gen/stc/event_list.rb +0 -221
- data/lib/wx/doc/gen/stc/styled_text_ctrl.rb +0 -4474
- data/lib/wx/doc/gen/stc/styled_text_event.rb +0 -8762
- data/lib/wx/doc/gen/std_dialog_button_sizer.rb +0 -129
- data/lib/wx/doc/gen/svg_file_dc.rb +0 -164
- data/lib/wx/doc/gen/system_options.rb +0 -129
- data/lib/wx/doc/gen/system_settings.rb +0 -507
- data/lib/wx/doc/gen/task_bar_icon.rb +0 -127
- data/lib/wx/doc/gen/task_bar_icon_event.rb +0 -88
- data/lib/wx/doc/gen/text_attr.rb +0 -756
- data/lib/wx/doc/gen/text_ctrl.rb +0 -1033
- data/lib/wx/doc/gen/text_entry.rb +0 -441
- data/lib/wx/doc/gen/text_entry_dialog.rb +0 -220
- data/lib/wx/doc/gen/text_validator.rb +0 -245
- data/lib/wx/doc/gen/time_picker_ctrl.rb +0 -128
- data/lib/wx/doc/gen/timer.rb +0 -119
- data/lib/wx/doc/gen/timer_event.rb +0 -68
- data/lib/wx/doc/gen/tip_provider.rb +0 -63
- data/lib/wx/doc/gen/tip_window.rb +0 -51
- data/lib/wx/doc/gen/toggle_button.rb +0 -182
- data/lib/wx/doc/gen/tool_bar.rb +0 -890
- data/lib/wx/doc/gen/tool_tip.rb +0 -86
- data/lib/wx/doc/gen/toolbook.rb +0 -118
- data/lib/wx/doc/gen/top_level_window.rb +0 -497
- data/lib/wx/doc/gen/tree_ctrl.rb +0 -1052
- data/lib/wx/doc/gen/tree_event.rb +0 -127
- data/lib/wx/doc/gen/treebook.rb +0 -180
- data/lib/wx/doc/gen/ui_action_simulator.rb +0 -109
- data/lib/wx/doc/gen/utils.rb +0 -273
- data/lib/wx/doc/gen/v_list_box.rb +0 -272
- data/lib/wx/doc/gen/v_scrolled_canvas.rb +0 -195
- data/lib/wx/doc/gen/v_scrolled_window.rb +0 -191
- data/lib/wx/doc/gen/validator.rb +0 -68
- data/lib/wx/doc/gen/variant.rb +0 -294
- data/lib/wx/doc/gen/window.rb +0 -2917
- data/lib/wx/doc/gen/window_dc.rb +0 -38
- data/lib/wx/doc/gen/window_disabler.rb +0 -30
- data/lib/wx/doc/gen/with_images.rb +0 -84
- data/lib/wx/doc/gen/wizard.rb +0 -257
- data/lib/wx/doc/gen/wizard_event.rb +0 -113
- data/lib/wx/doc/gen/wizard_page.rb +0 -65
- data/lib/wx/doc/gen/wizard_page_simple.rb +0 -88
- data/lib/wx/doc/gen/wrap_sizer.rb +0 -79
- data/lib/wx/doc/gen/xml_node.rb +0 -316
- data/lib/wx/doc/gen/xml_resource.rb +0 -320
- data/lib/wx/grid/events/evt_list.rb +0 -166
- data/lib/wx/html/events/evt_list.rb +0 -27
- data/lib/wx/pg/events/evt_list.rb +0 -73
- data/lib/wx/rbn/events/evt_list.rb +0 -102
- data/lib/wx/rtc/events/evt_list.rb +0 -98
- data/lib/wx/rtc/ext/rich_text_ctrl.rb +0 -24
- data/lib/wx/stc/events/evt_list.rb +0 -178
- data/samples/art/wxruby-512x512.png +0 -0
|
@@ -388,25 +388,22 @@ module WXRuby3
|
|
|
388
388
|
WXRUBY_TRACE_GUARD(WxRubyTraceGCTrackVariant, "GC_TRACK_VARIANT")
|
|
389
389
|
|
|
390
390
|
class WXRBValueVariantData;
|
|
391
|
-
// Mapping of WXRBValueVariantData* to Ruby VALUE
|
|
392
|
-
WX_DECLARE_VOIDPTR_HASH_MAP(VALUE,
|
|
393
|
-
WXRBVariantDataToRbValueHash);
|
|
394
|
-
static WXRBVariantDataToRbValueHash Variant_Value_Map;
|
|
395
391
|
|
|
396
|
-
static
|
|
392
|
+
static const std::string WXRUBY_VARIANT_DATA = { "WXRUBY_VARIANT_DATA" };
|
|
393
|
+
|
|
394
|
+
static void GC_mark_RbValueVariants(const TGCTrackingValueMap& values)
|
|
397
395
|
{
|
|
398
396
|
WXRUBY_TRACE_IF(WxRubyTraceGCMarkVariant, 2)
|
|
399
397
|
WXRUBY_TRACE("> GC_mark_RbValueVariants")
|
|
400
398
|
WXRUBY_TRACE_END
|
|
401
399
|
|
|
402
|
-
|
|
403
|
-
for( it = Variant_Value_Map.begin(); it != Variant_Value_Map.end(); ++it )
|
|
400
|
+
for(const auto& ti : values)
|
|
404
401
|
{
|
|
405
|
-
VALUE obj =
|
|
402
|
+
VALUE obj = ti.second;
|
|
406
403
|
|
|
407
404
|
WXRUBY_TRACE_IF(WxRubyTraceGCMarkVariant, 2)
|
|
408
405
|
WXRUBY_TRACE_WITH(void *c_ptr = (TYPE(obj) == T_DATA ? DATA_PTR(obj) : 0))
|
|
409
|
-
WXRUBY_TRACE("| GC_mark_RbValueVariants : " <<
|
|
406
|
+
WXRUBY_TRACE("| GC_mark_RbValueVariants : " << ti.first << "|" << (void*)c_ptr)
|
|
410
407
|
WXRUBY_TRACE_END
|
|
411
408
|
|
|
412
409
|
rb_gc_mark(obj);
|
|
@@ -419,12 +416,20 @@ module WXRuby3
|
|
|
419
416
|
|
|
420
417
|
static void wxRuby_RegisterValueVariantData(void* ptr, VALUE rbval)
|
|
421
418
|
{
|
|
419
|
+
static bool is_marker_registered = false;
|
|
420
|
+
|
|
422
421
|
WXRUBY_TRACE_IF(WxRubyTraceGCTrackVariant, 2)
|
|
423
422
|
WXRUBY_TRACE_WITH(void *c_ptr = (TYPE(rbval) == T_DATA ? DATA_PTR(rbval) : 0))
|
|
424
423
|
WXRUBY_TRACE("> wxRuby_RegisterValueVariantData : " << ptr << "|" << (void*)c_ptr)
|
|
425
424
|
WXRUBY_TRACE_END
|
|
426
425
|
|
|
427
|
-
|
|
426
|
+
if (!is_marker_registered)
|
|
427
|
+
{
|
|
428
|
+
wxRuby_RegisterTrackingCategory(WXRUBY_VARIANT_DATA, GC_mark_RbValueVariants, true);
|
|
429
|
+
is_marker_registered = true;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
wxRuby_RegisterCategoryValue(WXRUBY_VARIANT_DATA, ptr, rbval);
|
|
428
433
|
|
|
429
434
|
WXRUBY_TRACE_IF(WxRubyTraceGCMarkVariant, 2)
|
|
430
435
|
WXRUBY_TRACE("< wxRuby_RegisterValueVariantData")
|
|
@@ -437,7 +442,7 @@ module WXRuby3
|
|
|
437
442
|
WXRUBY_TRACE("> wxRuby_UnregisterValueVariantData : " << ptr)
|
|
438
443
|
WXRUBY_TRACE_END
|
|
439
444
|
|
|
440
|
-
|
|
445
|
+
wxRuby_UnregisterCategoryValue(WXRUBY_VARIANT_DATA, ptr);
|
|
441
446
|
|
|
442
447
|
WXRUBY_TRACE_IF(WxRubyTraceGCMarkVariant, 2)
|
|
443
448
|
WXRUBY_TRACE("< wxRuby_UnregisterValueVariantData")
|
|
@@ -502,7 +507,6 @@ module WXRuby3
|
|
|
502
507
|
return variant;
|
|
503
508
|
}
|
|
504
509
|
__HEREDOC
|
|
505
|
-
spec.add_init_code 'wxRuby_AppendMarker(GC_mark_RbValueVariants);'
|
|
506
510
|
# ignore GetType (not doc)
|
|
507
511
|
spec.ignore 'wxVariant::GetType', ignore_doc: false
|
|
508
512
|
# replace with custom implementation
|
|
@@ -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
|
|
@@ -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)
|
|
@@ -248,12 +248,18 @@ module WXRuby3
|
|
|
248
248
|
Director.Spec(pkg, 'wxPersistentWindow', requirements: %w[USE_CONFIG])
|
|
249
249
|
Director.Spec(pkg, 'wxSecretStore', requirements: %w[USE_SECRETSTORE])
|
|
250
250
|
Director.Spec(pkg, 'wxDCOverlay', director: Director::DerivedDC)
|
|
251
|
-
Director.Spec(pkg, 'wxGeometry', requirements: %w[USE_GEOMETRY])
|
|
252
|
-
Director.Spec(pkg, 'wxAffineMatrix2D', requirements: %w[USE_GEOMETRY])
|
|
251
|
+
Director.Spec(pkg, 'wxGeometry', requirements: Config.instance.wx_version_check('3.3.2') <= 0 ? %w[USE_GEOMETRY] : [])
|
|
252
|
+
Director.Spec(pkg, 'wxAffineMatrix2D', requirements: Config.instance.wx_version_check('3.3.2') <= 0 ? %w[USE_GEOMETRY] : [])
|
|
253
253
|
Director.Spec(pkg, 'wxCredentialEntryDialog', director: Director::Dialog, requirements: %w[USE_CREDENTIALDLG])
|
|
254
254
|
Director.Spec(pkg, 'wxGenericAboutDialog', director: Director::Dialog, requirements: %w[USE_ABOUTDLG])
|
|
255
|
+
Director.Spec(pkg, 'wxMBConv')
|
|
255
256
|
}
|
|
256
257
|
|
|
258
|
+
Director.Package('Wx::RT', 'USE_THREADS') do |pkg|
|
|
259
|
+
Director.Spec(pkg, 'wxSharedEvtHandler')
|
|
260
|
+
Director.Spec(pkg, 'wxThreadEvent')
|
|
261
|
+
end
|
|
262
|
+
|
|
257
263
|
Director.Package('Wx::PRT', 'USE_PRINTING_ARCHITECTURE') do |pkg|
|
|
258
264
|
Director.Spec(pkg, 'wxPrinterDC', director: Director::DerivedDC, requirements: Director.AnyOf(*%w[WXMSW WXOSX USE_GTKPRINT]))
|
|
259
265
|
Director.Spec(pkg, 'wxPostScriptDC', director: Director::DerivedDC)
|
|
@@ -387,4 +393,10 @@ module WXRuby3
|
|
|
387
393
|
Director.Spec(pkg, 'wxRibbonToolBar')
|
|
388
394
|
Director.Spec(pkg, 'wxRibbonButtonBar')
|
|
389
395
|
}
|
|
396
|
+
|
|
397
|
+
Director.Package('Wx::WEB', 'USE_WEBVIEW') { |pkg|
|
|
398
|
+
Director.Spec(pkg, 'wxWebViewHandler')
|
|
399
|
+
Director.Spec(pkg, 'wxWebView')
|
|
400
|
+
Director.Spec(pkg, 'wxWebViewEvent')
|
|
401
|
+
}
|
|
390
402
|
end # module WXRuby3
|
|
@@ -532,7 +532,7 @@ module WXRuby3
|
|
|
532
532
|
|
|
533
533
|
# window/sizer object wrapping
|
|
534
534
|
|
|
535
|
-
map 'wxWindow*' => 'Wx::Window', 'wxSizer*' => 'Wx::Sizer' do
|
|
535
|
+
map 'wxWindow*' => 'Wx::Window', 'wxControl*' => 'Wx::Control', 'wxSizer*' => 'Wx::Sizer' do
|
|
536
536
|
map_out code: '$result = wxRuby_WrapWxObjectInRuby($1);'
|
|
537
537
|
end
|
|
538
538
|
|
|
@@ -605,6 +605,39 @@ module WXRuby3
|
|
|
605
605
|
__CODE
|
|
606
606
|
end
|
|
607
607
|
|
|
608
|
+
# Menu bars need to be wrapped / unwrapped correctly
|
|
609
|
+
map 'wxMenuBar*' => 'Wx::MenuBar' do
|
|
610
|
+
add_header_code <<~__CODE
|
|
611
|
+
WXRUBY_EXPORT VALUE wxRuby_WrapWxMenuBarInRuby(wxMenuBar *wx_menubar);
|
|
612
|
+
WXRUBY_EXPORT void wxRuby_RegisterWxMenuBar(wxMenuBar* wx_menubar, VALUE rb_menubar);
|
|
613
|
+
__CODE
|
|
614
|
+
map_check code: <<~__CODE
|
|
615
|
+
wxRuby_RegisterWxMenuBar($1, argv[$argnum-2]);
|
|
616
|
+
__CODE
|
|
617
|
+
map_out code: <<~__CODE
|
|
618
|
+
$result = wxRuby_WrapWxMenuBarInRuby($1);
|
|
619
|
+
__CODE
|
|
620
|
+
map_directorin code: <<~__CODE
|
|
621
|
+
$input = wxRuby_WrapWxMenuBarInRuby($1);
|
|
622
|
+
__CODE
|
|
623
|
+
end
|
|
624
|
+
# As do menus
|
|
625
|
+
map 'wxMenu*' => 'Wx::Menu' do
|
|
626
|
+
add_header_code <<~__CODE
|
|
627
|
+
WXRUBY_EXPORT VALUE wxRuby_WrapWxMenuInRuby(wxMenu *wx_menu);
|
|
628
|
+
WXRUBY_EXPORT void wxRuby_RegisterWxMenu(wxMenu* wx_menu, VALUE rb_menu);
|
|
629
|
+
__CODE
|
|
630
|
+
map_check code: <<~__CODE
|
|
631
|
+
wxRuby_RegisterWxMenu($1, argv[$argnum-2]);
|
|
632
|
+
__CODE
|
|
633
|
+
map_out code: <<~__CODE
|
|
634
|
+
$result = wxRuby_WrapWxMenuInRuby($1);
|
|
635
|
+
__CODE
|
|
636
|
+
map_directorin code: <<~__CODE
|
|
637
|
+
$input = wxRuby_WrapWxMenuInRuby($1);
|
|
638
|
+
__CODE
|
|
639
|
+
end
|
|
640
|
+
|
|
608
641
|
# typemap to allow String or Symbol for wxColour in args
|
|
609
642
|
map 'const wxColour&', 'const wxColour*', as: 'Wx::Colour,String,Symbol' do
|
|
610
643
|
map_in temp: 'wxColour tmpcol', code: <<~__CODE
|