wxruby3 0.9.1 → 0.9.3
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/.yardopts +1 -0
- data/INSTALL.md +35 -29
- data/README.md +24 -15
- data/ext/wxruby3/include/wxRubyApp.h +338 -0
- data/ext/wxruby3/include/wxruby-ClientData.h +48 -0
- data/ext/wxruby3/include/wxruby-Config.h +6 -6
- data/ext/wxruby3/include/wxruby-Validator.h +39 -0
- data/ext/wxruby3/include/wxruby-ValidatorBinding.h +64 -0
- data/ext/wxruby3/swig/common.i +1 -1
- data/ext/wxruby3/swig/custom/director.swg +8 -0
- data/ext/wxruby3/swig/mark_free_impl.i +0 -33
- data/lib/wx/aui/aui_tab_ctrl.rb +18 -0
- data/lib/wx/aui/auinotebook.rb +6 -2
- data/lib/wx/aui/require.rb +1 -0
- data/lib/wx/core/app.rb +2 -2
- data/lib/wx/core/bitmap_combobox.rb +17 -21
- data/lib/wx/core/collapsible_pane.rb +1 -1
- data/lib/wx/core/combobox.rb +13 -3
- data/lib/wx/core/controlwithitems.rb +40 -128
- data/lib/wx/core/enum.rb +17 -1
- data/lib/wx/core/event.rb +6 -1
- data/lib/wx/core/evthandler.rb +8 -2
- data/lib/wx/core/generic_validator.rb +312 -0
- data/lib/wx/core/listbox.rb +2 -2
- data/lib/wx/core/log.rb +1 -1
- data/lib/wx/core/menu.rb +10 -0
- data/lib/wx/core/notebook.rb +6 -2
- data/lib/wx/core/owner_drawn_combobox.rb +45 -0
- data/lib/wx/core/size.rb +4 -0
- data/lib/wx/core/sizer.rb +12 -2
- data/lib/wx/core/standard_paths.rb +22 -0
- data/lib/wx/core/task_bar_button.rb +19 -0
- data/lib/wx/core/text_entry.rb +4 -1
- data/lib/wx/core/textctrl.rb +11 -1
- data/lib/wx/core/{treectrl.rb → tree_ctrl.rb} +31 -12
- data/lib/wx/core/validator.rb +70 -5
- data/lib/wx/core/window.rb +13 -7
- data/lib/wx/doc/app.rb +48 -38
- data/lib/wx/doc/art_locator.rb +48 -43
- data/lib/wx/doc/aui/auimanager.rb +16 -8
- data/lib/wx/doc/aui/auinotebook.rb +20 -5
- data/lib/wx/doc/clipboard.rb +11 -7
- data/lib/wx/doc/colour_dialog.rb +14 -10
- data/lib/wx/doc/comboctrl.rb +18 -0
- data/lib/wx/doc/controlwithitems.rb +34 -8
- data/lib/wx/doc/data_object.rb +2 -2
- data/lib/wx/doc/date_picker_ctrl.rb +23 -0
- data/lib/wx/doc/editable_listbox.rb +44 -0
- data/lib/wx/doc/enum.rb +15 -0
- data/lib/wx/doc/event.rb +12 -0
- data/lib/wx/doc/evthandler.rb +113 -108
- data/lib/wx/doc/extra/12_client_data.md +89 -0
- data/lib/wx/doc/extra/13_validators.md +139 -0
- data/lib/wx/doc/font.rb +1 -0
- data/lib/wx/doc/gc_dc.rb +6 -1
- data/lib/wx/doc/gdi_common.rb +4 -0
- data/lib/wx/doc/generic_validator.rb +95 -0
- data/lib/wx/doc/graphics_context.rb +1 -0
- data/lib/wx/doc/grid/grid.rb +22 -1
- data/lib/wx/doc/help_controller.rb +11 -7
- data/lib/wx/doc/html/html_help_controller.rb +12 -4
- data/lib/wx/doc/html/simple_html_listbox.rb +22 -0
- data/lib/wx/doc/list_ctrl.rb +33 -29
- data/lib/wx/doc/menu.rb +20 -0
- data/lib/wx/doc/notebook.rb +21 -0
- data/lib/wx/doc/num_validator.rb +387 -0
- data/lib/wx/doc/owner_drawn_combobox.rb +96 -0
- data/lib/wx/doc/pg/events.rb +13 -9
- data/lib/wx/doc/pg/numeric_property_validator.rb +33 -0
- data/lib/wx/doc/pg/pg_property.rb +18 -0
- data/lib/wx/doc/progress_dialog.rb +36 -32
- data/lib/wx/doc/prt/page_setup_dialog.rb +20 -12
- data/lib/wx/doc/prt/print_data.rb +13 -5
- data/lib/wx/doc/prt/print_dialog.rb +31 -23
- data/lib/wx/doc/prt/printer.rb +20 -12
- data/lib/wx/doc/radio_box.rb +19 -15
- data/lib/wx/doc/rbn/ribbon_bar.rb +13 -5
- data/lib/wx/doc/rbn/ribbon_button_bar.rb +13 -5
- data/lib/wx/doc/rbn/ribbon_gallery.rb +13 -5
- data/lib/wx/doc/rbn/ribbon_tool_bar.rb +13 -5
- data/lib/wx/doc/region_iterator.rb +32 -28
- data/lib/wx/doc/rtc/rich_text_composite_object.rb +24 -0
- data/lib/wx/doc/rtc/rich_text_ctrl.rb +24 -0
- data/lib/wx/doc/rtc/rich_text_paragraph.rb +24 -0
- data/lib/wx/doc/rtc/richtext_buffer.rb +27 -19
- data/lib/wx/doc/rtc/richtext_printing.rb +17 -9
- data/lib/wx/doc/rtc/richtext_style_sheet.rb +17 -9
- data/lib/wx/doc/sizer.rb +20 -0
- data/lib/wx/doc/static_bitmap.rb +25 -0
- data/lib/wx/doc/stc/styled_text_ctrl.rb +24 -0
- data/lib/wx/doc/stream.rb +39 -35
- data/lib/wx/doc/system_settings.rb +30 -26
- data/lib/wx/doc/text_validator.rb +23 -9
- data/lib/wx/doc/textctrl.rb +16 -0
- data/lib/wx/doc/tree_ctrl.rb +95 -0
- data/lib/wx/doc/treebook.rb +9 -5
- data/lib/wx/doc/v_list_box.rb +9 -5
- data/lib/wx/doc/validator.rb +113 -0
- data/lib/wx/doc/variant.rb +164 -160
- data/lib/wx/doc/window.rb +87 -47
- data/lib/wx/doc/window_disabler.rb +10 -6
- data/lib/wx/grid/grid.rb +27 -4
- data/lib/wx/html/simple_html_listbox.rb +24 -91
- data/lib/wx/keyword_defs.rb +34 -2
- data/lib/wx/pg/pg_property.rb +22 -0
- data/lib/wx/rbn/ribbon_gallery.rb +0 -21
- data/lib/wx/rtc/require.rb +3 -0
- data/lib/wx/rtc/rich_text_composite_object.rb +25 -0
- data/lib/wx/rtc/rich_text_ctrl.rb +25 -0
- data/lib/wx/rtc/rich_text_paragraph.rb +25 -0
- data/lib/wx/stc/require.rb +1 -0
- data/lib/wx/stc/styled_text_ctrl.rb +25 -0
- data/lib/wx/version.rb +1 -1
- data/rakelib/lib/config/linux.rb +0 -3
- data/rakelib/lib/config/macosx.rb +2 -2
- data/rakelib/lib/config/mingw.rb +13 -1
- data/rakelib/lib/config/unixish.rb +1 -1
- data/rakelib/lib/config.rb +14 -4
- data/rakelib/lib/core/include/client_data.inc +65 -0
- data/rakelib/lib/core/include/funcall.inc +1 -1
- data/rakelib/lib/core/package.rb +31 -9
- data/rakelib/lib/core/parameter.rb +1 -1
- data/rakelib/lib/core/spec.rb +6 -1
- data/rakelib/lib/core/spec_helper.rb +7 -1
- data/rakelib/lib/director/accelerator.rb +2 -3
- data/rakelib/lib/director/accessible.rb +47 -0
- data/rakelib/lib/director/app.rb +30 -319
- data/rakelib/lib/director/app_traits.rb +13 -13
- data/rakelib/lib/director/bitmap_combobox.rb +2 -2
- data/rakelib/lib/director/combobox.rb +22 -0
- data/rakelib/lib/director/comboctrl.rb +1 -55
- data/rakelib/lib/director/ctrl_with_items.rb +105 -26
- data/rakelib/lib/director/data_format.rb +1 -1
- data/rakelib/lib/director/date_picker_ctrl.rb +8 -6
- data/rakelib/lib/director/derived_dc.rb +1 -1
- data/rakelib/lib/director/dialog.rb +1 -0
- data/rakelib/lib/director/drag_image.rb +2 -3
- data/rakelib/lib/director/editable_listbox.rb +30 -0
- data/rakelib/lib/director/event.rb +104 -14
- data/rakelib/lib/director/event_handler.rb +3 -2
- data/rakelib/lib/director/frame.rb +1 -3
- data/rakelib/lib/director/functions.rb +4 -2
- data/rakelib/lib/director/gdicommon.rb +8 -10
- data/rakelib/lib/director/generic_dirctrl.rb +17 -0
- data/rakelib/lib/director/graphics_context.rb +2 -4
- data/rakelib/lib/director/grid_cell_attr.rb +0 -2
- data/rakelib/lib/director/grid_cell_editor.rb +0 -2
- data/rakelib/lib/director/grid_cell_renderer.rb +0 -2
- data/rakelib/lib/director/grid_ctrl.rb +34 -3
- data/rakelib/lib/director/header_ctrl.rb +6 -1
- data/rakelib/lib/director/html_listbox.rb +96 -22
- data/rakelib/lib/director/icon.rb +5 -2
- data/rakelib/lib/director/list_ctrl.rb +5 -6
- data/rakelib/lib/director/locale.rb +1 -3
- data/rakelib/lib/director/log.rb +1 -4
- data/rakelib/lib/director/media_ctrl.rb +54 -0
- data/rakelib/lib/director/menu.rb +16 -1
- data/rakelib/lib/director/menu_item.rb +2 -2
- data/rakelib/lib/director/num_validator.rb +495 -0
- data/rakelib/lib/director/numeric_property_validator.rb +131 -6
- data/rakelib/lib/director/owner_drawn_combobox.rb +192 -0
- data/rakelib/lib/director/pgproperties.rb +1 -1
- data/rakelib/lib/director/pgproperty.rb +27 -30
- data/rakelib/lib/director/property_grid_interface.rb +5 -10
- data/rakelib/lib/director/ribbon_button_bar.rb +3 -3
- data/rakelib/lib/director/ribbon_gallery.rb +3 -5
- data/rakelib/lib/director/richtext_composite_object.rb +25 -0
- data/rakelib/lib/director/richtext_ctrl.rb +14 -4
- data/rakelib/lib/director/richtext_formatting_dialog.rb +7 -5
- data/rakelib/lib/director/richtext_paragraph_layout_box.rb +9 -7
- data/rakelib/lib/director/sizer.rb +30 -4
- data/rakelib/lib/director/sizer_item.rb +13 -0
- data/rakelib/lib/director/static_bitmap.rb +28 -0
- data/rakelib/lib/director/static_box.rb +4 -5
- data/rakelib/lib/director/styled_text_ctrl.rb +12 -0
- data/rakelib/lib/director/task_bar_button.rb +30 -0
- data/rakelib/lib/director/task_bar_icon.rb +5 -13
- data/rakelib/lib/director/text_entry.rb +4 -0
- data/rakelib/lib/director/text_validator.rb +124 -13
- data/rakelib/lib/director/textctrl.rb +12 -1
- data/rakelib/lib/director/toggle_button.rb +1 -0
- data/rakelib/lib/director/tool_tip.rb +1 -1
- data/rakelib/lib/director/top_level_window.rb +4 -7
- data/rakelib/lib/director/tree_ctrl.rb +40 -6
- data/rakelib/lib/director/utils.rb +16 -2
- data/rakelib/lib/director/validator.rb +196 -21
- data/rakelib/lib/director/variant.rb +1 -1
- data/rakelib/lib/director/window.rb +40 -7
- data/rakelib/lib/director.rb +4 -4
- data/rakelib/lib/extractor/function.rb +8 -7
- data/rakelib/lib/extractor.rb +34 -5
- data/rakelib/lib/generate/analyzer.rb +9 -4
- data/rakelib/lib/generate/doc/busy_info.yaml +0 -2
- data/rakelib/lib/generate/doc/clipboard.yaml +0 -2
- data/rakelib/lib/generate/doc/cursor.yaml +0 -2
- data/rakelib/lib/generate/doc/panel.yaml +7 -0
- data/rakelib/lib/generate/doc.rb +85 -17
- data/rakelib/lib/specs/interfaces.rb +163 -160
- data/rakelib/lib/swig_runner.rb +55 -9
- data/rakelib/lib/typemap/client_data.rb +67 -0
- data/rakelib/lib/typemap/common.rb +33 -4
- data/rakelib/lib/typemap/datetime.rb +1 -1
- data/rakelib/lib/typemap/tree_itemid.rb +2 -2
- data/rakelib/yard/templates/default/fulldoc/html/css/wxruby3.css +74 -2
- data/rakelib/yard/templates/default/fulldoc/html/full_list.erb +38 -0
- data/rakelib/yard/templates/default/fulldoc/html/setup.rb +39 -0
- data/rakelib/yard/templates/default/tags/html/wxrb_require.erb +10 -0
- data/rakelib/yard/templates/default/tags/setup.rb +16 -0
- data/rakelib/yard/yard-custom-templates.rb +3 -0
- data/samples/aui/aui.rb +1237 -1233
- data/samples/calendar/calendar.rb +293 -289
- data/samples/controls/get_item_sample.rb +83 -79
- data/samples/controls/htlbox.rb +331 -327
- data/samples/dialogs/dialogs.rb +682 -694
- data/samples/dialogs/wizard.rb +52 -55
- data/samples/dragdrop/dragdrop.rb +146 -142
- data/samples/drawing/bitmap.rb +29 -26
- data/samples/drawing/bitmap_image.rb +84 -80
- data/samples/drawing/graphics_drawing.rb +209 -205
- data/samples/drawing/image_prt.rb +344 -340
- data/samples/drawing/maths_images.rb +18 -1
- data/samples/drawing/rmagic_bitmap_image.rb +88 -84
- data/samples/etc/caret.rb +306 -0
- data/samples/etc/miniframe.rb +65 -60
- data/samples/etc/sash.rb +109 -105
- data/samples/etc/scrollwin.rb +86 -80
- data/samples/etc/system_settings.rb +216 -209
- data/samples/event/activation.rb +72 -67
- data/samples/event/event.rb +160 -153
- data/samples/event/threaded.rb +8 -1
- data/samples/event/update_ui_event.rb +67 -60
- data/samples/grid/grid.rb +188 -181
- data/samples/grid/gridtablebase.rb +136 -129
- data/samples/html/html.rb +208 -204
- data/samples/mdi/mdi.rb +59 -54
- data/samples/minimal/minimal.rb +54 -51
- data/samples/minimal/nothing.rb +1 -0
- data/samples/printing/printing.rb +367 -377
- data/samples/printing/printing2.rb +203 -198
- data/samples/propgrid/propgrid.rb +2312 -2308
- data/samples/propgrid/propgrid_minimal.rb +57 -50
- data/samples/ribbon/ribbon.rb +780 -774
- data/samples/sampler/ext.rb +0 -33
- data/samples/sampler/sample.rb +4 -9
- data/samples/sampler.rb +1 -1
- data/samples/splash/splash.rb +118 -116
- data/samples/text/rich_textctrl.rb +207 -201
- data/samples/text/richtext.rb +1409 -1405
- data/samples/text/scintilla.rb +137 -128
- data/samples/text/textctrl.rb +89 -83
- data/samples/text/unicode.rb +175 -168
- data/samples/treectrl/treectrl.rb +1430 -1426
- data/samples/widgets/activityindicator.rb +95 -0
- data/samples/widgets/art/widgets/activityindicator.xpm +278 -0
- data/samples/widgets/art/widgets/bmpbtn.xpm +37 -0
- data/samples/widgets/art/widgets/bmpcombobox.xpm +54 -0
- data/samples/widgets/art/widgets/button.xpm +54 -0
- data/samples/widgets/art/widgets/checkbox.xpm +54 -0
- data/samples/{bigdemo/icons → widgets/art/widgets}/choice.xpm +1 -1
- data/samples/widgets/art/widgets/choicebk.xpm +54 -0
- data/samples/widgets/art/widgets/clrpicker.xpm +193 -0
- data/samples/widgets/art/widgets/combobox.xpm +54 -0
- data/samples/widgets/art/widgets/datepick.xpm +200 -0
- data/samples/widgets/art/widgets/dirctrl.xpm +54 -0
- data/samples/widgets/art/widgets/dirpicker.xpm +213 -0
- data/samples/widgets/art/widgets/filepicker.xpm +214 -0
- data/samples/widgets/art/widgets/fontpicker.xpm +185 -0
- data/samples/widgets/art/widgets/gauge.xpm +54 -0
- data/samples/widgets/art/widgets/header.xpm +54 -0
- data/samples/widgets/art/widgets/hyperlnk.xpm +54 -0
- data/samples/widgets/art/widgets/listbook.xpm +54 -0
- data/samples/widgets/art/widgets/listbox.xpm +54 -0
- data/samples/widgets/art/widgets/native.xpm +81 -0
- data/samples/widgets/art/widgets/notebook.xpm +54 -0
- data/samples/widgets/art/widgets/odcombobox.xpm +54 -0
- data/samples/widgets/art/widgets/radiobox.xpm +54 -0
- data/samples/widgets/art/widgets/scrolbar.xpm +54 -0
- data/samples/widgets/art/widgets/slider.xpm +54 -0
- data/samples/widgets/art/widgets/spinbtn.xpm +40 -0
- data/samples/widgets/art/widgets/statbmp.xpm +40 -0
- data/samples/widgets/art/widgets/statbox.xpm +54 -0
- data/samples/widgets/art/widgets/stattext.xpm +54 -0
- data/samples/widgets/art/widgets/text.xpm +54 -0
- data/samples/widgets/art/widgets/timepick.xpm +207 -0
- data/samples/widgets/art/widgets/toggle.xpm +54 -0
- data/samples/widgets/art/widgets/toucan.png +0 -0
- data/samples/widgets/bmpcombobox.rb +651 -0
- data/samples/widgets/button.rb +462 -0
- data/samples/widgets/checkbox.rb +211 -0
- data/samples/widgets/choice.rb +287 -0
- data/samples/widgets/clrpicker.rb +156 -0
- data/samples/widgets/combobox.rb +516 -0
- data/samples/widgets/datepick.rb +215 -0
- data/samples/widgets/dirctrl.rb +265 -0
- data/samples/widgets/dirpicker.rb +158 -0
- data/samples/widgets/editlbox.rb +122 -0
- data/samples/widgets/filectrl.rb +216 -0
- data/samples/widgets/filepicker.rb +214 -0
- data/samples/widgets/fontpicker.rb +135 -0
- data/samples/widgets/gauge.rb +311 -0
- data/samples/widgets/headerctrl.rb +236 -0
- data/samples/widgets/hyperlink.rb +203 -0
- data/samples/widgets/itemcontainer.rb +185 -0
- data/samples/widgets/listbox.rb +473 -0
- data/samples/widgets/notebook.rb +488 -0
- data/samples/widgets/odcombobox.rb +608 -0
- data/samples/widgets/radiobox.rb +328 -0
- data/samples/widgets/searchctrl.rb +159 -0
- data/samples/widgets/slider.rb +594 -0
- data/samples/widgets/spinbtn.rb +443 -0
- data/samples/widgets/statbmp.rb +130 -0
- data/samples/widgets/static.rb +436 -0
- data/samples/widgets/textctrl.rb +700 -0
- data/samples/widgets/timepick.rb +148 -0
- data/samples/widgets/tn_widgets.png +0 -0
- data/samples/widgets/toggle.rb +385 -0
- data/samples/widgets/widgets.rb +1233 -0
- data/samples/xrc/custom_xrc_sample.rb +47 -41
- data/samples/xrc/xrc_sample.rb +53 -47
- data/tests/media/beep_lo.wav +0 -0
- data/tests/test_event_handling.rb +52 -34
- data/tests/test_events.rb +7 -0
- data/tests/test_item_data.rb +24 -0
- data/tests/test_list_ctrl.rb +1 -1
- data/tests/test_media_ctrl.rb +38 -0
- data/tests/test_menu.rb +69 -0
- data/tests/test_pg.rb +27 -0
- data/tests/test_richtext.rb +45 -0
- data/tests/test_sizer.rb +59 -0
- data/tests/test_std_controls.rb +42 -1
- data/tests/test_styled_text_ctrl.rb +46 -0
- data/tests/test_tree_ctrl.rb +138 -0
- data/tests/test_validators.rb +805 -0
- data/tests/test_window.rb +12 -0
- data/tests/testapp_noframe.rb +1 -1
- metadata +121 -139
- data/lib/wx/core/choice.rb +0 -14
- data/lib/wx/core/combo_ctrl.rb +0 -110
- data/rakelib/lib/typemap/grid_client_data.rb +0 -58
- data/samples/bigdemo/About.rbw +0 -39
- data/samples/bigdemo/ColorPanel.rbw +0 -23
- data/samples/bigdemo/GridSimple.rbw +0 -78
- data/samples/bigdemo/MDIDemo.rbw +0 -57
- data/samples/bigdemo/PopupMenu.rbw +0 -146
- data/samples/bigdemo/ShapedWindow.rbw +0 -128
- data/samples/bigdemo/Sizers.rbw +0 -541
- data/samples/bigdemo/bigdemo.rb +0 -817
- data/samples/bigdemo/demoTemplate.rbw +0 -33
- data/samples/bigdemo/helpfile.htb +0 -0
- data/samples/bigdemo/icons/Test 015.jpg +0 -0
- data/samples/bigdemo/icons/Test 015.png +0 -0
- data/samples/bigdemo/icons/choice.bmp +0 -0
- data/samples/bigdemo/icons/combo.bmp +0 -0
- data/samples/bigdemo/icons/combo.xpm +0 -27
- data/samples/bigdemo/icons/copy.xpm +0 -25
- data/samples/bigdemo/icons/cut.xpm +0 -24
- data/samples/bigdemo/icons/gauge.bmp +0 -0
- data/samples/bigdemo/icons/gauge.xpm +0 -27
- data/samples/bigdemo/icons/help.xpm +0 -25
- data/samples/bigdemo/icons/list.bmp +0 -0
- data/samples/bigdemo/icons/list.xpm +0 -27
- data/samples/bigdemo/icons/mondrian.ico +0 -0
- data/samples/bigdemo/icons/mondrian.xpm +0 -44
- data/samples/bigdemo/icons/new.xpm +0 -24
- data/samples/bigdemo/icons/ogl.ico +0 -0
- data/samples/bigdemo/icons/ogl.xpm +0 -45
- data/samples/bigdemo/icons/open.xpm +0 -26
- data/samples/bigdemo/icons/paste.bmp +0 -0
- data/samples/bigdemo/icons/paste.xpm +0 -38
- data/samples/bigdemo/icons/pointy.png +0 -0
- data/samples/bigdemo/icons/preview.xpm +0 -26
- data/samples/bigdemo/icons/print.xpm +0 -26
- data/samples/bigdemo/icons/radio.bmp +0 -0
- data/samples/bigdemo/icons/radio.xpm +0 -27
- data/samples/bigdemo/icons/robert.xpm +0 -415
- data/samples/bigdemo/icons/sashtest.ico +0 -0
- data/samples/bigdemo/icons/save.xpm +0 -25
- data/samples/bigdemo/icons/smiles.bmp +0 -0
- data/samples/bigdemo/icons/smiles.xpm +0 -39
- data/samples/bigdemo/icons/smiley.ico +0 -0
- data/samples/bigdemo/icons/smiley.xpm +0 -42
- data/samples/bigdemo/icons/stattext.xpm +0 -24
- data/samples/bigdemo/icons/test2.bmp +0 -0
- data/samples/bigdemo/icons/test2.png +0 -0
- data/samples/bigdemo/icons/test2.xpm +0 -79
- data/samples/bigdemo/icons/text.bmp +0 -0
- data/samples/bigdemo/icons/text.xpm +0 -27
- data/samples/bigdemo/icons/tog1.bmp +0 -0
- data/samples/bigdemo/icons/tog1.xpm +0 -38
- data/samples/bigdemo/icons/tog2.bmp +0 -0
- data/samples/bigdemo/icons/tog2.xpm +0 -38
- data/samples/bigdemo/icons/wxruby-128x128.png +0 -0
- data/samples/bigdemo/icons/wxwin.ico +0 -0
- data/samples/bigdemo/icons/wxwin16x16.png +0 -0
- data/samples/bigdemo/icons/wxwin16x16.xpm +0 -25
- data/samples/bigdemo/icons/wxwin32x32.png +0 -0
- data/samples/bigdemo/icons/wxwin48x48.png +0 -0
- data/samples/bigdemo/run.rb +0 -98
- data/samples/bigdemo/tips.txt +0 -7
- data/samples/bigdemo/utils.rb +0 -20
- data/samples/bigdemo/wxArtProvider.rbw +0 -282
- data/samples/bigdemo/wxBitmapButton.rbw +0 -65
- data/samples/bigdemo/wxButton.rbw +0 -64
- data/samples/bigdemo/wxCalendarCtrl.rbw +0 -59
- data/samples/bigdemo/wxCheckBox.rbw +0 -50
- data/samples/bigdemo/wxCheckListBox.rbw +0 -65
- data/samples/bigdemo/wxChoice.rbw +0 -47
- data/samples/bigdemo/wxChoicebook.rbw +0 -78
- data/samples/bigdemo/wxColourDialog.rbw +0 -33
- data/samples/bigdemo/wxComboBox.rbw +0 -77
- data/samples/bigdemo/wxCursor.rbw +0 -136
- data/samples/bigdemo/wxDialog.rbw +0 -74
- data/samples/bigdemo/wxDirDialog.rbw +0 -29
- data/samples/bigdemo/wxDragImage.rbw +0 -70
- data/samples/bigdemo/wxFileDialog.rbw +0 -37
- data/samples/bigdemo/wxFileDialog_Save.rbw +0 -35
- data/samples/bigdemo/wxFindReplaceDialog.rbw +0 -82
- data/samples/bigdemo/wxFontDialog.rbw +0 -200
- data/samples/bigdemo/wxFrame.rbw +0 -53
- data/samples/bigdemo/wxGauge.rbw +0 -65
- data/samples/bigdemo/wxGenericDirCtrl.rbw +0 -74
- data/samples/bigdemo/wxGrid.rbw +0 -66
- data/samples/bigdemo/wxHtmlHelpController.rbw +0 -52
- data/samples/bigdemo/wxListBox.rbw +0 -140
- data/samples/bigdemo/wxListCtrl_virtual.rbw +0 -112
- data/samples/bigdemo/wxMDIWindows.rbw +0 -50
- data/samples/bigdemo/wxMenu.rbw +0 -247
- data/samples/bigdemo/wxMessageDialog.rbw +0 -27
- data/samples/bigdemo/wxMiniFrame.rbw +0 -70
- data/samples/bigdemo/wxMultipleChoiceDialog.rbw +0 -29
- data/samples/bigdemo/wxNotebook.rbw +0 -136
- data/samples/bigdemo/wxProgressDialog.rbw +0 -43
- data/samples/bigdemo/wxRadioBox.rbw +0 -72
- data/samples/bigdemo/wxRadioButton.rbw +0 -125
- data/samples/bigdemo/wxSashWindow.rbw +0 -141
- data/samples/bigdemo/wxScrolledMessageDialog.rbw +0 -57
- data/samples/bigdemo/wxScrolledWindow.rbw +0 -199
- data/samples/bigdemo/wxSingleChoiceDialog.rbw +0 -33
- data/samples/bigdemo/wxSlider.rbw +0 -42
- data/samples/bigdemo/wxSpinButton.rbw +0 -50
- data/samples/bigdemo/wxSpinCtrl.rbw +0 -51
- data/samples/bigdemo/wxSplitterWindow.rbw +0 -63
- data/samples/bigdemo/wxStaticBitmap.rbw +0 -47
- data/samples/bigdemo/wxStaticText.rbw +0 -55
- data/samples/bigdemo/wxStatusBar.rbw +0 -126
- data/samples/bigdemo/wxTextCtrl.rbw +0 -149
- data/samples/bigdemo/wxTextEntryDialog.rbw +0 -31
- data/samples/bigdemo/wxToggleButton.rbw +0 -49
- data/samples/bigdemo/wxToolBar.rbw +0 -131
- data/samples/bigdemo/wxTreeCtrl.rbw +0 -191
- data/samples/caret/caret.rb +0 -298
- data/samples/caret/mondrian.xpm +0 -44
- data/samples/controls/books.rb +0 -189
- data/samples/controls/choice.xpm +0 -27
- data/samples/controls/combo.xpm +0 -27
- data/samples/controls/controls.rb +0 -1099
- data/samples/controls/gauge.xpm +0 -27
- data/samples/controls/list.xpm +0 -27
- data/samples/controls/mondrian.ico +0 -0
- data/samples/controls/mondrian.xpm +0 -44
- data/samples/controls/radio.xpm +0 -27
- data/samples/controls/stattext.xpm +0 -24
- data/samples/controls/test2.bmp +0 -0
- data/samples/controls/text.xpm +0 -27
- data/samples/controls/tn_books.png +0 -0
- data/samples/controls/tn_controls.png +0 -0
- data/samples/etc/choice.rb +0 -87
- data/samples/etc/tn_choice.png +0 -0
- data/samples/text/mondrian.ico +0 -0
- data/samples/text/mondrian.xpm +0 -44
- /data/samples/{caret → etc}/tn_caret.png +0 -0
|
@@ -4,105 +4,38 @@
|
|
|
4
4
|
|
|
5
5
|
class Wx::HTML::SimpleHtmlListBox
|
|
6
6
|
|
|
7
|
-
#
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
get_count.times { | i | yield i }
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
# We need to cache client data in Ruby variables as we cannot access items
|
|
16
|
-
# during the GC mark phase as for some platforms (WXMSW at least) that would
|
|
17
|
-
# involve calling methods that would break in that phase.
|
|
18
|
-
|
|
19
|
-
def client_data_store
|
|
20
|
-
@client_data ||= []
|
|
21
|
-
end
|
|
22
|
-
private :client_data_store
|
|
23
|
-
|
|
24
|
-
wx_set_client_data = instance_method :set_client_data
|
|
25
|
-
define_method :set_client_data do |item, data|
|
|
26
|
-
item = item.to_i
|
|
27
|
-
wx_set_client_data.bind(self).call(item, data)
|
|
28
|
-
client_data_store[item] = data
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def get_client_data(item)
|
|
32
|
-
client_data_store[item.to_i]
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
wx_append = instance_method :append
|
|
36
|
-
define_method :append do |item, data=nil|
|
|
37
|
-
if data
|
|
38
|
-
if ::Array === item
|
|
39
|
-
if !(::Array === data)
|
|
40
|
-
::Kernel.raise ::TypeError.new("Expected Array for argument 3")
|
|
41
|
-
elsif data.size != item.size
|
|
42
|
-
::Kernel.raise ::ArgumentError.new("item and data array must be equal size")
|
|
43
|
-
end
|
|
44
|
-
offs = get_count
|
|
45
|
-
wx_append.bind(self).call(item)
|
|
46
|
-
item.size.times { |ix| set_client_data(offs+ix, data[ix]) }
|
|
47
|
-
else
|
|
48
|
-
wx_append.bind(self).call(item, data)
|
|
49
|
-
client_data_store[get_count-1] = data
|
|
50
|
-
end
|
|
7
|
+
# make sure to honor the inherited common overloads
|
|
8
|
+
wx_get_client_object = instance_method :get_client_object
|
|
9
|
+
define_method :get_client_object do |*args|
|
|
10
|
+
if args.empty?
|
|
11
|
+
super()
|
|
51
12
|
else
|
|
52
|
-
|
|
53
|
-
# no changes to data store
|
|
13
|
+
wx_get_client_object.bind(self).call(*args)
|
|
54
14
|
end
|
|
55
15
|
end
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
if ::Array === item
|
|
61
|
-
if !(::Array === data)
|
|
62
|
-
::Kernel.raise ::TypeError.new("Expected Array for argument 3")
|
|
63
|
-
elsif data.size != item.size
|
|
64
|
-
::Kernel.raise ::ArgumentError.new("item and data array must be equal size")
|
|
65
|
-
end
|
|
66
|
-
wx_insert.bind(self).call(item, pos)
|
|
67
|
-
client_data_store.insert(pos, *::Array.new(item.size))
|
|
68
|
-
item.size.times { |ix| set_client_data(pos+ix, data[ix]) }
|
|
69
|
-
else
|
|
70
|
-
wx_insert.bind(self).call(item, pos, data)
|
|
71
|
-
client_data_store.insert(pos, data)
|
|
72
|
-
end
|
|
16
|
+
wx_set_client_object = instance_method :set_client_object
|
|
17
|
+
define_method :set_client_object do |*args|
|
|
18
|
+
if args.size < 2
|
|
19
|
+
super(*args)
|
|
73
20
|
else
|
|
74
|
-
|
|
75
|
-
if ::Array === item
|
|
76
|
-
client_data_store.insert(pos, *::Array.new(item.size))
|
|
77
|
-
else
|
|
78
|
-
client_data_store.insert(pos, nil)
|
|
79
|
-
end
|
|
21
|
+
wx_set_client_object.bind(self).call(*args)
|
|
80
22
|
end
|
|
81
23
|
end
|
|
24
|
+
# redefine aliases
|
|
25
|
+
alias :client_object :get_client_object
|
|
26
|
+
alias :client_object= :set_client_object
|
|
82
27
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
if data
|
|
86
|
-
if !(::Array === data)
|
|
87
|
-
::Kernel.raise ::TypeError.new("Expected Array for argument 2")
|
|
88
|
-
elsif data.size != items.size
|
|
89
|
-
::Kernel.raise ::ArgumentError.new("items and data array must be equal size")
|
|
90
|
-
end
|
|
91
|
-
end
|
|
92
|
-
wx_set.bind(self).call(items)
|
|
93
|
-
client_data_store.clear
|
|
94
|
-
items.each_with_index { |item, ix| set_client_data(item, data[ix]) }
|
|
95
|
-
end
|
|
28
|
+
alias :get_client_data :get_client_object
|
|
29
|
+
alias :set_client_data :set_client_object
|
|
96
30
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
31
|
+
# Overload to provide Enumerator without block
|
|
32
|
+
wx_each_string = instance_method :each_string
|
|
33
|
+
define_method :each_string do |&block|
|
|
34
|
+
if block
|
|
35
|
+
wx_each_string.bind(self).call(&block)
|
|
36
|
+
else
|
|
37
|
+
::Enumerator.new { |y| wx_each_string.bind(self).call { |ln| y << ln } }
|
|
38
|
+
end
|
|
101
39
|
end
|
|
102
40
|
|
|
103
|
-
wx_delete = instance_method :delete
|
|
104
|
-
define_method :delete do |item|
|
|
105
|
-
wx_delete.bind(self).call(item.to_i)
|
|
106
|
-
client_data_store.slice!(item.to_i)
|
|
107
|
-
end
|
|
108
41
|
end
|
data/lib/wx/keyword_defs.rb
CHANGED
|
@@ -290,7 +290,12 @@ end
|
|
|
290
290
|
# A button which stays pressed when clicked by user.
|
|
291
291
|
Wx::define_keyword_ctors(Wx::ToggleButton) do
|
|
292
292
|
wx_ctor_params :id, :label, :pos, :size, :style
|
|
293
|
-
wx_ctor_params :validator, :name => '
|
|
293
|
+
wx_ctor_params :validator, :name => 'toggleButton'
|
|
294
|
+
end
|
|
295
|
+
|
|
296
|
+
Wx::define_keyword_ctors(Wx::BitmapToggleButton) do
|
|
297
|
+
wx_ctor_params :id, :label, :pos, :size, :style
|
|
298
|
+
wx_ctor_params :validator, :name => 'bitmapToggleButton'
|
|
294
299
|
end
|
|
295
300
|
|
|
296
301
|
# Control showing an entire calendar month
|
|
@@ -320,6 +325,12 @@ Wx::define_keyword_ctors(Wx::CheckListBox) do
|
|
|
320
325
|
wx_ctor_params :validator, :name => 'listBox'
|
|
321
326
|
end
|
|
322
327
|
|
|
328
|
+
# wxEditableListBox - an editable listbox is composite control that lets the user easily enter, delete and reorder a list of strings.
|
|
329
|
+
Wx::define_keyword_ctors(Wx::EditableListBox) do
|
|
330
|
+
wx_ctor_params :id, :label, :pos, :size, :style => Wx::EL_DEFAULT_STYLE
|
|
331
|
+
wx_ctor_params :name => 'editableListBox'
|
|
332
|
+
end
|
|
333
|
+
|
|
323
334
|
# wxChoice Choice control (a combobox without the editable area)
|
|
324
335
|
Wx::define_keyword_ctors(Wx::Choice) do
|
|
325
336
|
wx_ctor_params :id, :pos, :size, :choices, :style
|
|
@@ -349,6 +360,14 @@ Wx::define_keyword_ctors(Wx::ComboCtrl) do
|
|
|
349
360
|
wx_ctor_params :validator, :name => 'comboCtrl'
|
|
350
361
|
end
|
|
351
362
|
|
|
363
|
+
# wxOwnerDrawnComboBox
|
|
364
|
+
Wx::define_keyword_ctors(Wx::OwnerDrawnComboBox) do
|
|
365
|
+
wx_ctor_params :id, :value => ''
|
|
366
|
+
wx_ctor_params :pos, :size, :choices => []
|
|
367
|
+
wx_ctor_params :style
|
|
368
|
+
wx_ctor_params :validator, :name => 'ownerDrawnComboBox'
|
|
369
|
+
end
|
|
370
|
+
|
|
352
371
|
# wxGauge A control to represent a varying quantity, such as time
|
|
353
372
|
# remaining
|
|
354
373
|
Wx::define_keyword_ctors(Wx::Gauge) do
|
|
@@ -421,9 +440,16 @@ Wx::define_keyword_ctors(Wx::StaticBitmap) do
|
|
|
421
440
|
wx_ctor_params :id
|
|
422
441
|
# autoconvert Bitmaps to BitmapBundles for downward compatibility
|
|
423
442
|
wx_ctor_params :label
|
|
424
|
-
wx_ctor_params :pos, :size, :style, :name => Wx::
|
|
443
|
+
wx_ctor_params :pos, :size, :style, :name => Wx::STATIC_BITMAP_NAME_STR
|
|
425
444
|
end
|
|
426
445
|
|
|
446
|
+
# wxGenericStaticBitmap A control to display a bitmap
|
|
447
|
+
Wx::define_keyword_ctors(Wx::GenericStaticBitmap) do
|
|
448
|
+
wx_ctor_params :id
|
|
449
|
+
# autoconvert Bitmaps to BitmapBundles for downward compatibility
|
|
450
|
+
wx_ctor_params :label
|
|
451
|
+
wx_ctor_params :pos, :size, :style, :name => Wx::STATIC_BITMAP_NAME_STR
|
|
452
|
+
end
|
|
427
453
|
|
|
428
454
|
# wxRadioBox A group of radio buttons
|
|
429
455
|
Wx::define_keyword_ctors(Wx::RadioBox) do
|
|
@@ -582,3 +608,9 @@ Wx::define_keyword_ctors(Wx::RearrangeCtrl) do
|
|
|
582
608
|
wx_ctor_params :id, :pos, :size, :order, :items, :style
|
|
583
609
|
wx_ctor_params :validator, :name => 'rearrangeCtrl'
|
|
584
610
|
end
|
|
611
|
+
|
|
612
|
+
Wx::define_keyword_ctors(Wx::HeaderCtrlSimple) do
|
|
613
|
+
wx_ctor_params :winid => Wx::ID_ANY
|
|
614
|
+
wx_ctor_params :pos, :size, :style => Wx::HD_DEFAULT_STYLE
|
|
615
|
+
wx_ctor_params :name => 'headerCtrlSimple'
|
|
616
|
+
end
|
data/lib/wx/pg/pg_property.rb
CHANGED
|
@@ -37,4 +37,26 @@ module Wx::PG
|
|
|
37
37
|
alias :attributes= :set_attributes
|
|
38
38
|
end
|
|
39
39
|
|
|
40
|
+
class PGChoices
|
|
41
|
+
|
|
42
|
+
wx_each_label = instance_method :each_label
|
|
43
|
+
define_method :each_label do
|
|
44
|
+
if block_given?
|
|
45
|
+
wx_each_label.bind(self).call
|
|
46
|
+
else
|
|
47
|
+
::Enumerator.new { |y| wx_each_label.bind(self).call { |lbl| y << lbl } }
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
wx_each_entry = instance_method :each_entry
|
|
52
|
+
define_method :each_entry do
|
|
53
|
+
if block_given?
|
|
54
|
+
wx_each_entry.bind(self).call
|
|
55
|
+
else
|
|
56
|
+
::Enumerator.new { |y| wx_each_entry.bind(self).call { |entry| y << entry } }
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
end
|
|
61
|
+
|
|
40
62
|
end
|
|
@@ -4,27 +4,6 @@
|
|
|
4
4
|
|
|
5
5
|
class Wx::RBN::RibbonGallery
|
|
6
6
|
|
|
7
|
-
def item_client_data_store
|
|
8
|
-
@item_client_data ||= {}
|
|
9
|
-
end
|
|
10
|
-
private :item_client_data_store
|
|
11
|
-
|
|
12
|
-
def set_item_client_data(item, data)
|
|
13
|
-
item_client_data_store[item] = data
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def get_item_client_data(item)
|
|
17
|
-
item_client_data_store[item]
|
|
18
|
-
end
|
|
19
|
-
alias :item_client_data :get_item_client_data
|
|
20
|
-
|
|
21
|
-
wx_append = instance_method :append
|
|
22
|
-
define_method :append do |bmp, item_id, data=nil|
|
|
23
|
-
item = wx_append.bind(self).call(bmp, item_id)
|
|
24
|
-
set_item_client_data(item, data) if item && data
|
|
25
|
-
item
|
|
26
|
-
end
|
|
27
|
-
|
|
28
7
|
def items
|
|
29
8
|
if block_given?
|
|
30
9
|
count.times { |i| yield item(i) }
|
data/lib/wx/rtc/require.rb
CHANGED
|
@@ -7,7 +7,10 @@
|
|
|
7
7
|
require_relative './ext'
|
|
8
8
|
require_relative './events/evt_list'
|
|
9
9
|
require_relative './keyword_defs'
|
|
10
|
+
require_relative './rich_text_ctrl'
|
|
10
11
|
require_relative './richtext_buffer'
|
|
12
|
+
require_relative './rich_text_composite_object'
|
|
13
|
+
require_relative './rich_text_paragraph'
|
|
11
14
|
require_relative './richtext_formatting_dialog'
|
|
12
15
|
require_relative './symbol_picker_dialog'
|
|
13
16
|
require_relative './richtext_style_organiser_dialog'
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Copyright (c) 2023 M.J.N. Corino, The Netherlands
|
|
2
|
+
#
|
|
3
|
+
# This software is released under the MIT license.
|
|
4
|
+
|
|
5
|
+
module Wx
|
|
6
|
+
|
|
7
|
+
module RTC
|
|
8
|
+
|
|
9
|
+
class RichTextCompositeObject
|
|
10
|
+
|
|
11
|
+
# Overload to provide Enumerator without block
|
|
12
|
+
wx_each_child = instance_method :each_child
|
|
13
|
+
define_method :each_child do |&block|
|
|
14
|
+
if block
|
|
15
|
+
wx_each_child.bind(self).call(&block)
|
|
16
|
+
else
|
|
17
|
+
::Enumerator.new { |y| wx_each_child.bind(self).call { |rto| y << rto } }
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Copyright (c) 2023 M.J.N. Corino, The Netherlands
|
|
2
|
+
#
|
|
3
|
+
# This software is released under the MIT license.
|
|
4
|
+
|
|
5
|
+
module Wx
|
|
6
|
+
|
|
7
|
+
module RTC
|
|
8
|
+
|
|
9
|
+
class RichTextCtrl
|
|
10
|
+
|
|
11
|
+
# Overload to provide Enumerator without block
|
|
12
|
+
wx_each_line = instance_method :each_line
|
|
13
|
+
define_method :each_line do |&block|
|
|
14
|
+
if block
|
|
15
|
+
wx_each_line.bind(self).call(&block)
|
|
16
|
+
else
|
|
17
|
+
::Enumerator.new { |y| wx_each_line.bind(self).call { |ln| y << ln } }
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Copyright (c) 2023 M.J.N. Corino, The Netherlands
|
|
2
|
+
#
|
|
3
|
+
# This software is released under the MIT license.
|
|
4
|
+
|
|
5
|
+
module Wx
|
|
6
|
+
|
|
7
|
+
module RTC
|
|
8
|
+
|
|
9
|
+
class RichTextParagraph
|
|
10
|
+
|
|
11
|
+
# Overload to provide Enumerator without block
|
|
12
|
+
wx_each_line = instance_method :each_line
|
|
13
|
+
define_method :each_line do |&block|
|
|
14
|
+
if block
|
|
15
|
+
wx_each_line.bind(self).call(&block)
|
|
16
|
+
else
|
|
17
|
+
::Enumerator.new { |y| wx_each_line.bind(self).call { |ln| y << ln } }
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
end
|
data/lib/wx/stc/require.rb
CHANGED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Copyright (c) 2023 M.J.N. Corino, The Netherlands
|
|
2
|
+
#
|
|
3
|
+
# This software is released under the MIT license.
|
|
4
|
+
|
|
5
|
+
module Wx
|
|
6
|
+
|
|
7
|
+
module STC
|
|
8
|
+
|
|
9
|
+
class StyledTextCtrl
|
|
10
|
+
|
|
11
|
+
# Overload to provide Enumerator without block
|
|
12
|
+
wx_each_line = instance_method :each_line
|
|
13
|
+
define_method :each_line do |&block|
|
|
14
|
+
if block
|
|
15
|
+
wx_each_line.bind(self).call(&block)
|
|
16
|
+
else
|
|
17
|
+
::Enumerator.new { |y| wx_each_line.bind(self).call { |ln| y << ln } }
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
end
|
data/lib/wx/version.rb
CHANGED
data/rakelib/lib/config/linux.rb
CHANGED
|
@@ -65,9 +65,6 @@ module WXRuby3
|
|
|
65
65
|
# create a .so binary
|
|
66
66
|
@extra_ldflags << '-shared'
|
|
67
67
|
|
|
68
|
-
# This class is not available on linux ports (wxGTK/wxQT/wxX11/wxMotif)
|
|
69
|
-
exclude_module('wxPrinterDC')
|
|
70
|
-
|
|
71
68
|
unless @wx_path.empty?
|
|
72
69
|
libdirs = @wx_libs.select {|s| s.start_with?('-L')}.collect {|s| s.sub(/^-L/,'')}
|
|
73
70
|
@exec_env['LD_LIBRARY_PATH'] = "#{ENV['LD_LIBRARY_PATH']}:#{dest_dir}:#{libdirs.join(':')}"
|
|
@@ -65,7 +65,7 @@ module WXRuby3
|
|
|
65
65
|
end
|
|
66
66
|
end
|
|
67
67
|
# some weird thing with this; at least sometimes '--libs all' will not output media library even if feature active
|
|
68
|
-
if features_set?('
|
|
68
|
+
if features_set?('USE_MEDIACTRL')
|
|
69
69
|
lib_list = wx_config("--libs media").split(' ')
|
|
70
70
|
until lib_list.empty?
|
|
71
71
|
s = lib_list.shift
|
|
@@ -107,7 +107,7 @@ module WXRuby3
|
|
|
107
107
|
@ld.sub!(/-o\s*\Z/, '')
|
|
108
108
|
|
|
109
109
|
@extra_cflags.concat %w[-Wno-unused-function -Wno-conversion-null -Wno-sometimes-uninitialized
|
|
110
|
-
-Wno-overloaded-virtual -Wno-deprecated-copy
|
|
110
|
+
-Wno-overloaded-virtual -Wno-deprecated-copy]
|
|
111
111
|
@extra_cflags << ' -Wno-deprecated-declarations' unless @no_deprecated
|
|
112
112
|
|
|
113
113
|
# create a .dylib binary
|
data/rakelib/lib/config/mingw.rb
CHANGED
|
@@ -35,7 +35,7 @@ module WXRuby3
|
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
def debug_command(*args)
|
|
38
|
-
args.unshift(FileUtils::RUBY)
|
|
38
|
+
args.unshift(nix_path(FileUtils::RUBY))
|
|
39
39
|
args.unshift('--args')
|
|
40
40
|
args.unshift('gdb')
|
|
41
41
|
args.join(' ')
|
|
@@ -53,6 +53,18 @@ module WXRuby3
|
|
|
53
53
|
"{#{dll_ext},dll}"
|
|
54
54
|
end
|
|
55
55
|
|
|
56
|
+
def do_link(pkg)
|
|
57
|
+
# have to use option file for objects to link on windows because command line gets too long
|
|
58
|
+
ftmp = Tempfile.new('object')
|
|
59
|
+
ftmp.puts pkg.all_obj_files.collect { |o| File.join('..', o) }.join(' ')
|
|
60
|
+
ftmp.close # close but do not unlink
|
|
61
|
+
objs = "@#{ftmp.path}"
|
|
62
|
+
depsh = pkg.dep_libnames.collect { |dl| "#{dl}.#{dll_ext}" }.join(' ')
|
|
63
|
+
sh "cd lib && #{WXRuby3.config.ld} #{WXRuby3.config.ldflags(pkg.lib_target)} #{objs} #{depsh} " +
|
|
64
|
+
"#{WXRuby3.config.libs} #{WXRuby3.config.link_output_flag}#{pkg.lib_target}"
|
|
65
|
+
ftmp.unlink # cleanup
|
|
66
|
+
end
|
|
67
|
+
|
|
56
68
|
private
|
|
57
69
|
|
|
58
70
|
def wx_make
|
|
@@ -136,7 +136,7 @@ module WXRuby3
|
|
|
136
136
|
wx_libset = ::Set.new
|
|
137
137
|
wx_libset.merge wx_config("--libs all").split(' ')
|
|
138
138
|
# some weird thing with this; at least sometimes '--libs all' will not output media library even if feature active
|
|
139
|
-
if features_set?('
|
|
139
|
+
if features_set?('USE_MEDIACTRL')
|
|
140
140
|
wx_libset.merge wx_config("--libs media").split(' ')
|
|
141
141
|
end
|
|
142
142
|
wx_libset.collect { |s| s.dup }
|
data/rakelib/lib/config.rb
CHANGED
|
@@ -589,7 +589,7 @@ module WXRuby3
|
|
|
589
589
|
private :any_feature_set?
|
|
590
590
|
|
|
591
591
|
def features_set?(*featureset)
|
|
592
|
-
featureset.all? do |feature|
|
|
592
|
+
featureset.flatten.all? do |feature|
|
|
593
593
|
if AnyOf === feature
|
|
594
594
|
any_feature_set?(*feature.features)
|
|
595
595
|
else
|
|
@@ -615,9 +615,19 @@ module WXRuby3
|
|
|
615
615
|
def _retrieve_features(wxwidgets_setup_h)
|
|
616
616
|
features = {}
|
|
617
617
|
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
618
|
+
if is_configured? && wxwidgets_setup_h
|
|
619
|
+
File.read(wxwidgets_setup_h).scan(/^\s*#define\s+(wx\w+|__\w+__)\s+([01])/) do | define |
|
|
620
|
+
feat_val = $2.to_i.zero? ? false : true
|
|
621
|
+
feat_id = $1.sub(/\Awx/i, '').gsub(/\A__|__\Z/, '')
|
|
622
|
+
features[feat_id] = feat_val
|
|
623
|
+
end
|
|
624
|
+
# make sure correct platform defines are included as well which will not be the case always
|
|
625
|
+
# (for example __WXMSW__ and __WXOSX__ are not in setup.h)
|
|
626
|
+
features['WXMSW'] = true if features['GNUWIN32']
|
|
627
|
+
features['WXOSX'] = true if features['DARWIN']
|
|
628
|
+
# prior to wxWidgets 3.3 this feature was not set for wxGTK builds
|
|
629
|
+
features['WXGTK'] = true if features['LINUX'] && !features['WXGTK'] && wx_port == :wxgtk
|
|
630
|
+
end
|
|
621
631
|
|
|
622
632
|
features
|
|
623
633
|
end
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
// Copyright (c) 2023 M.J.N. Corino, The Netherlands
|
|
2
|
+
//
|
|
3
|
+
// This software is released under the MIT license.
|
|
4
|
+
|
|
5
|
+
#ifndef WXRUBY_EXPORT
|
|
6
|
+
#define WXRUBY_EXPORT WXRB_EXPORT_FLAG
|
|
7
|
+
#endif
|
|
8
|
+
|
|
9
|
+
#include "wxruby-ClientData.h"
|
|
10
|
+
|
|
11
|
+
#include <set>
|
|
12
|
+
|
|
13
|
+
static std::set<wxRubyClientData*> __s_WxRubyClientDataSet;
|
|
14
|
+
static std::set<wxRubyUserData*> __s_WxRubyUserDataSet;
|
|
15
|
+
|
|
16
|
+
WXRB_EXPORT_FLAG void wxRuby_RegisterClientData(wxRubyClientData* pcd)
|
|
17
|
+
{
|
|
18
|
+
__s_WxRubyClientDataSet.insert(pcd);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
WXRB_EXPORT_FLAG void wxRuby_RegisterUserData(wxRubyUserData* pud)
|
|
22
|
+
{
|
|
23
|
+
__s_WxRubyUserDataSet.insert(pud);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
static ID client_data_unlinked_id()
|
|
27
|
+
{
|
|
28
|
+
static ID __s_client_data_unlinked_id {};
|
|
29
|
+
if (__s_client_data_unlinked_id == ID())
|
|
30
|
+
{
|
|
31
|
+
__s_client_data_unlinked_id = rb_intern("client_data_unlinked");
|
|
32
|
+
}
|
|
33
|
+
return __s_client_data_unlinked_id;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
WXRB_EXPORT_FLAG void wxRuby_UnregisterClientData(wxRubyClientData* pcd)
|
|
37
|
+
{
|
|
38
|
+
VALUE rbcd = pcd->GetData();
|
|
39
|
+
__s_WxRubyClientDataSet.erase(pcd);
|
|
40
|
+
if (!NIL_P(rbcd) && rb_respond_to(rbcd, client_data_unlinked_id()))
|
|
41
|
+
{
|
|
42
|
+
wxRuby_Funcall(rbcd, client_data_unlinked_id(), 0);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
WXRB_EXPORT_FLAG void wxRuby_UnregisterUserData(wxRubyUserData* pud)
|
|
47
|
+
{
|
|
48
|
+
VALUE rbud = pud->GetData();
|
|
49
|
+
__s_WxRubyUserDataSet.erase(pud);
|
|
50
|
+
if (!NIL_P(rbud) && rb_respond_to(rbud, client_data_unlinked_id()))
|
|
51
|
+
{
|
|
52
|
+
wxRuby_Funcall(rbud, client_data_unlinked_id(), 0);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
static void wxRuby_GC_mark_ClientData()
|
|
57
|
+
{
|
|
58
|
+
for (wxRubyClientData* pcd : __s_WxRubyClientDataSet)
|
|
59
|
+
rb_gc_mark(pcd->GetData());
|
|
60
|
+
for (wxRubyUserData* pud : __s_WxRubyUserDataSet)
|
|
61
|
+
rb_gc_mark(pud->GetData());
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
typedef void (*WXRBMarkFunction)();
|
|
65
|
+
WXRUBY_EXPORT void wxRuby_AppendMarker(WXRBMarkFunction marker);
|
|
@@ -16,7 +16,7 @@ VALUE rb_get_backtrace(VALUE);
|
|
|
16
16
|
|
|
17
17
|
namespace Swig
|
|
18
18
|
{
|
|
19
|
-
class DirectorRubyException : public DirectorException
|
|
19
|
+
class WXRB_EXPORT_FLAG DirectorRubyException : public DirectorException
|
|
20
20
|
{
|
|
21
21
|
public:
|
|
22
22
|
DirectorRubyException(VALUE error, VALUE rcvr, ID fn_id)
|
data/rakelib/lib/core/package.rb
CHANGED
|
@@ -105,7 +105,7 @@ module WXRuby3
|
|
|
105
105
|
end
|
|
106
106
|
|
|
107
107
|
def included_directors
|
|
108
|
-
directors.select { |dir| !Config.instance.excluded_module?(dir.spec) }
|
|
108
|
+
directors.select { |dir| Package.full_docs? || !Config.instance.excluded_module?(dir.spec) }
|
|
109
109
|
end
|
|
110
110
|
|
|
111
111
|
def director_for_class(class_name)
|
|
@@ -248,7 +248,7 @@ module WXRuby3
|
|
|
248
248
|
end
|
|
249
249
|
|
|
250
250
|
# next initialize all modules with classes depending (bases AND mixins) on classes in any modules already
|
|
251
|
-
#
|
|
251
|
+
# selecteduntil there are no more modules left or none that are left depend on any selected ones
|
|
252
252
|
while dir_inx = inc_dirs.find_index { |dir| !dir.spec.initialize_at_end && is_dir_with_fulfilled_deps?(dir, cls_set) }
|
|
253
253
|
dir = inc_dirs[dir_inx]
|
|
254
254
|
modreg = Spec.module_registry[dir.spec.module_name]
|
|
@@ -327,6 +327,7 @@ module WXRuby3
|
|
|
327
327
|
fsrc << File.read(File.join(File.dirname(__FILE__), 'include', 'swigdirector.inc'))
|
|
328
328
|
fsrc << File.read(File.join(File.dirname(__FILE__), 'include', 'funcall.inc'))
|
|
329
329
|
fsrc << File.read(File.join(File.dirname(__FILE__), 'include', 'enum.inc'))
|
|
330
|
+
fsrc << File.read(File.join(File.dirname(__FILE__), 'include', 'client_data.inc'))
|
|
330
331
|
fsrc << File.read(File.join(File.dirname(__FILE__), 'include', 'init.inc'))
|
|
331
332
|
fsrc.puts
|
|
332
333
|
end
|
|
@@ -359,9 +360,11 @@ module WXRuby3
|
|
|
359
360
|
# generate constant definitions for feature defines from setup.h
|
|
360
361
|
fsrc.puts %Q{VALUE mWxSetup = rb_define_module_under(#{module_variable}, "Setup");}
|
|
361
362
|
Config.instance.features.each do |feature, val|
|
|
362
|
-
|
|
363
|
-
fsrc.puts %Q{rb_define_const(mWxSetup, "#{const_name}", Q#{val});}
|
|
363
|
+
fsrc.puts %Q{rb_define_const(mWxSetup, "#{feature}", Q#{val});}
|
|
364
364
|
end
|
|
365
|
+
fsrc.puts
|
|
366
|
+
# install wxRubyClientData marker
|
|
367
|
+
fsrc.puts %Q{wxRuby_AppendMarker(wxRuby_GC_mark_ClientData);}
|
|
365
368
|
else
|
|
366
369
|
fsrc.puts %Q{#{module_variable} = rb_define_module_under(wxRuby_Core(), "#{name}");}
|
|
367
370
|
# record package submodule in main module's list
|
|
@@ -409,7 +412,11 @@ module WXRuby3
|
|
|
409
412
|
item.event_types.each do |evt_hnd, evt_type, evt_arity, evt_klass, _|
|
|
410
413
|
evh_name = evt_hnd.downcase
|
|
411
414
|
unless evts_handled.include?(evh_name)
|
|
412
|
-
evt_klass ||= item.
|
|
415
|
+
evt_klass ||= if item.event
|
|
416
|
+
item.name
|
|
417
|
+
else
|
|
418
|
+
raise "Don't know Event class for #{evh_name} event type (from #{item.name})"
|
|
419
|
+
end
|
|
413
420
|
fout.puts ' '+<<~__HEREDOC.split("\n").join("\n ")
|
|
414
421
|
self.register_event_type EventType[
|
|
415
422
|
'#{evh_name}', #{evt_arity},
|
|
@@ -422,6 +429,13 @@ module WXRuby3
|
|
|
422
429
|
end
|
|
423
430
|
end
|
|
424
431
|
|
|
432
|
+
class << self
|
|
433
|
+
# need to share these over all packages since events may be defined in multiple
|
|
434
|
+
def generated_events
|
|
435
|
+
@generated_events ||= ::Set.new
|
|
436
|
+
end
|
|
437
|
+
end
|
|
438
|
+
|
|
425
439
|
def generate_event_list
|
|
426
440
|
# determine Ruby library events root for package
|
|
427
441
|
rbevt_root = File.join(ruby_classes_path, 'events')
|
|
@@ -437,7 +451,7 @@ module WXRuby3
|
|
|
437
451
|
|
|
438
452
|
class Wx::EvtHandler
|
|
439
453
|
__HEREDOC
|
|
440
|
-
evts_handled =
|
|
454
|
+
evts_handled = self.class.generated_events
|
|
441
455
|
# first iterate all event classes
|
|
442
456
|
command_event = nil # special case
|
|
443
457
|
included_directors.each do |dir|
|
|
@@ -523,10 +537,12 @@ module WXRuby3
|
|
|
523
537
|
# ----------------------------------------------------------------------------
|
|
524
538
|
|
|
525
539
|
|
|
526
|
-
|
|
540
|
+
module Wx
|
|
527
541
|
|
|
528
|
-
|
|
529
|
-
|
|
542
|
+
class EvtHandler
|
|
543
|
+
|
|
544
|
+
__HEREDOC
|
|
545
|
+
fdoc.indent(2) do
|
|
530
546
|
fdoc.doc.puts "@!group #{name} Event handler methods"
|
|
531
547
|
fdoc.puts
|
|
532
548
|
evts_handled = ::Set.new
|
|
@@ -557,6 +573,8 @@ module WXRuby3
|
|
|
557
573
|
fdoc.doc.puts '@!endgroup'
|
|
558
574
|
end
|
|
559
575
|
fdoc.puts
|
|
576
|
+
fdoc.puts ' end'
|
|
577
|
+
fdoc.puts
|
|
560
578
|
fdoc.puts 'end'
|
|
561
579
|
end
|
|
562
580
|
end
|
|
@@ -634,6 +652,10 @@ module WXRuby3
|
|
|
634
652
|
end
|
|
635
653
|
private :generate_core_doc
|
|
636
654
|
|
|
655
|
+
def self.full_docs?
|
|
656
|
+
!!ENV['WXRUBY_FULLDOCS']
|
|
657
|
+
end
|
|
658
|
+
|
|
637
659
|
def generate_docs
|
|
638
660
|
# make sure all modules have been extracted from xml
|
|
639
661
|
included_directors.each {|dir| dir.extract_interface(false, gendoc: true) }
|