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
@@ -0,0 +1,192 @@
|
|
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 OwnerDrawnComboBox < Window
|
16
|
+
|
17
|
+
include Typemap::ClientData
|
18
|
+
|
19
|
+
def setup
|
20
|
+
super
|
21
|
+
spec.items << 'wxItemContainer'
|
22
|
+
# override inheritance chain
|
23
|
+
spec.override_inheritance_chain('wxOwnerDrawnComboBox', %w[wxComboCtrl wxControl wxWindow wxEvtHandler wxObject])
|
24
|
+
spec.fold_bases('wxOwnerDrawnComboBox' => %w[wxItemContainer])
|
25
|
+
spec.regard %w[
|
26
|
+
wxOwnerDrawnComboBox::OnDrawBackground
|
27
|
+
wxOwnerDrawnComboBox::OnDrawItem
|
28
|
+
wxOwnerDrawnComboBox::OnMeasureItem
|
29
|
+
wxOwnerDrawnComboBox::OnMeasureItemWidth
|
30
|
+
]
|
31
|
+
# unuseful overloads
|
32
|
+
spec.ignore 'wxOwnerDrawnComboBox::wxOwnerDrawnComboBox(wxWindow *, wxWindowID, const wxString &, const wxPoint &, const wxSize &, int, const wxString [], long, const wxValidator &, const wxString &)',
|
33
|
+
'wxOwnerDrawnComboBox::Create(wxWindow *, wxWindowID, const wxString &, const wxPoint &, const wxSize &, int, const wxString [], long, const wxValidator &, const wxString &)'
|
34
|
+
spec.ignore('wxItemContainer::Append(const wxString &, void *)',
|
35
|
+
'wxItemContainer::Append(const std::vector< wxString > &)',
|
36
|
+
'wxItemContainer::Append(const wxArrayString &, void **)',
|
37
|
+
'wxItemContainer::Append(unsigned int, const wxString *)',
|
38
|
+
'wxItemContainer::Append(unsigned int, const wxString *, void **)',
|
39
|
+
'wxItemContainer::Append(unsigned int, const wxString *, wxClientData **)',
|
40
|
+
'wxItemContainer::Insert(const wxString &, unsigned int, void *)',
|
41
|
+
'wxItemContainer::Insert(const std::vector< wxString > &)',
|
42
|
+
'wxItemContainer::Insert(const wxArrayString &, unsigned int, void **)',
|
43
|
+
'wxItemContainer::Insert(unsigned int, const wxString *, unsigned int)',
|
44
|
+
'wxItemContainer::Insert(unsigned int, const wxString *, unsigned int, void **)',
|
45
|
+
'wxItemContainer::Insert(unsigned int, const wxString *, unsigned int, wxClientData **)',
|
46
|
+
'wxItemContainer::Set(const std::vector< wxString > &)',
|
47
|
+
'wxItemContainer::Set(const wxArrayString &, void **)',
|
48
|
+
'wxItemContainer::Set(unsigned int, const wxString *)',
|
49
|
+
'wxItemContainer::Set(unsigned int, const wxString *, void **)',
|
50
|
+
'wxItemContainer::Set(unsigned int, const wxString *, wxClientData **)',
|
51
|
+
'wxItemContainer::GetClientData',
|
52
|
+
'wxItemContainer::SetClientData',
|
53
|
+
'wxItemContainer::HasClientUntypedData',
|
54
|
+
'wxItemContainer::Clear')
|
55
|
+
# ignore these but keep docs; will add custom versions below
|
56
|
+
spec.ignore([
|
57
|
+
'wxItemContainer::DetachClientObject',
|
58
|
+
'wxItemContainer::Append(const wxArrayString &, wxClientData **)',
|
59
|
+
'wxItemContainer::Insert(const wxArrayString &, unsigned int, wxClientData **)',
|
60
|
+
'wxItemContainer::Set(const wxArrayString &, wxClientData **)'], ignore_doc: false)
|
61
|
+
# ambiguous
|
62
|
+
spec.ignore 'wxOwnerDrawnComboBox::IsEmpty', ignore_doc: false
|
63
|
+
# missing from docs; needed to override TextEntry version
|
64
|
+
spec.extend_interface 'wxOwnerDrawnComboBox', 'void Clear()'
|
65
|
+
# missing from docs; required so proxy calls correct override
|
66
|
+
spec.extend_interface 'wxOwnerDrawnComboBox',
|
67
|
+
'virtual void DoSetPopupControl(wxComboPopup* popup)',
|
68
|
+
visibility: 'protected'
|
69
|
+
# missing from docs; implementations of wxItemContainerImmutable methods
|
70
|
+
spec.extend_interface 'wxOwnerDrawnComboBox',
|
71
|
+
'unsigned int GetCount() const',
|
72
|
+
'wxString GetString(unsigned int n) const',
|
73
|
+
'void SetString(unsigned int n, const wxString& s)',
|
74
|
+
'int FindString(const wxString& s, bool bCase = false) const',
|
75
|
+
'void Select(int n)',
|
76
|
+
'wxArrayString GetStrings() const'
|
77
|
+
# for doc only
|
78
|
+
spec.map 'void** clientData' => 'Array', swig: false do
|
79
|
+
map_in code: ''
|
80
|
+
end
|
81
|
+
# Replace the old Wx definitions of these methods adding
|
82
|
+
# proper checks on the data arrays.
|
83
|
+
# Also add an item enumerator.
|
84
|
+
spec.add_extend_code 'wxOwnerDrawnComboBox', <<~__HEREDOC
|
85
|
+
wxString GetListStringSelection()
|
86
|
+
{
|
87
|
+
return $self->wxItemContainerImmutable::GetStringSelection();
|
88
|
+
}
|
89
|
+
|
90
|
+
bool SetListStringSelection(const wxString& string)
|
91
|
+
{
|
92
|
+
return $self->wxItemContainerImmutable::SetStringSelection(string);
|
93
|
+
}
|
94
|
+
|
95
|
+
void SetListSelection(int n)
|
96
|
+
{
|
97
|
+
$self->SetSelection(n);
|
98
|
+
}
|
99
|
+
|
100
|
+
int GetListSelection()
|
101
|
+
{
|
102
|
+
return $self->GetSelection();
|
103
|
+
}
|
104
|
+
|
105
|
+
VALUE DetachClientObject(unsigned int n)
|
106
|
+
{
|
107
|
+
VALUE rc = Qnil;
|
108
|
+
wxClientData *wxcd = $self->DetachClientObject(n);
|
109
|
+
wxRubyClientData *rbcd = wxcd ? dynamic_cast<wxRubyClientData*> (wxcd) : nullptr;
|
110
|
+
if (rbcd)
|
111
|
+
{
|
112
|
+
rc = rbcd->GetData();
|
113
|
+
delete rbcd;
|
114
|
+
}
|
115
|
+
return rc;
|
116
|
+
}
|
117
|
+
|
118
|
+
int Append(const wxArrayString &items, VALUE rb_clientData)
|
119
|
+
{
|
120
|
+
if (TYPE(rb_clientData) != T_ARRAY ||
|
121
|
+
static_cast<unsigned int> (RARRAY_LEN(rb_clientData)) != items.GetCount())
|
122
|
+
{
|
123
|
+
rb_raise(rb_eArgError,
|
124
|
+
TYPE(rb_clientData) == T_ARRAY ?
|
125
|
+
"expected Array for client_data" :
|
126
|
+
"client_data Array needs to be equal in size to items Array");
|
127
|
+
}
|
128
|
+
|
129
|
+
std::unique_ptr<wxClientData*[]> cd_arr = std::make_unique<wxClientData*[]> (RARRAY_LEN(rb_clientData));
|
130
|
+
for (int i=0; i<RARRAY_LEN(rb_clientData) ;++i)
|
131
|
+
{
|
132
|
+
cd_arr[i] = new wxRubyClientData(rb_ary_entry(rb_clientData, i));
|
133
|
+
}
|
134
|
+
return $self->Append(items, cd_arr.get());
|
135
|
+
}
|
136
|
+
|
137
|
+
int Insert(const wxArrayString &items, unsigned int pos, VALUE rb_clientData)
|
138
|
+
{
|
139
|
+
if (TYPE(rb_clientData) != T_ARRAY ||
|
140
|
+
static_cast<unsigned int> (RARRAY_LEN(rb_clientData)) != items.GetCount())
|
141
|
+
{
|
142
|
+
rb_raise(rb_eArgError,
|
143
|
+
TYPE(rb_clientData) == T_ARRAY ?
|
144
|
+
"expected Array for client_data" :
|
145
|
+
"client_data Array needs to be equal in size to items Array");
|
146
|
+
}
|
147
|
+
|
148
|
+
std::unique_ptr<wxClientData*[]> cd_arr = std::make_unique<wxClientData*[]> (RARRAY_LEN(rb_clientData));
|
149
|
+
for (int i=0; i<RARRAY_LEN(rb_clientData) ;++i)
|
150
|
+
{
|
151
|
+
cd_arr[i] = new wxRubyClientData(rb_ary_entry(rb_clientData, i));
|
152
|
+
}
|
153
|
+
return $self->Insert(items, pos, cd_arr.get());
|
154
|
+
}
|
155
|
+
|
156
|
+
void Set(const wxArrayString &items, VALUE rb_clientData)
|
157
|
+
{
|
158
|
+
if (TYPE(rb_clientData) != T_ARRAY ||
|
159
|
+
static_cast<unsigned int> (RARRAY_LEN(rb_clientData)) != items.GetCount())
|
160
|
+
{
|
161
|
+
rb_raise(rb_eArgError,
|
162
|
+
TYPE(rb_clientData) == T_ARRAY ?
|
163
|
+
"expected Array for client_data" :
|
164
|
+
"client_data Array needs to be equal in size to items Array");
|
165
|
+
}
|
166
|
+
|
167
|
+
std::unique_ptr<wxClientData*[]> cd_arr = std::make_unique<wxClientData*[]> (RARRAY_LEN(rb_clientData));
|
168
|
+
for (int i=0; i<RARRAY_LEN(rb_clientData) ;++i)
|
169
|
+
{
|
170
|
+
cd_arr[i] = new wxRubyClientData(rb_ary_entry(rb_clientData, i));
|
171
|
+
}
|
172
|
+
$self->Set(items, cd_arr.get());
|
173
|
+
}
|
174
|
+
|
175
|
+
VALUE each_string()
|
176
|
+
{
|
177
|
+
VALUE rc = Qnil;
|
178
|
+
for (unsigned int i=0; i<$self->GetCount() ;++i)
|
179
|
+
{
|
180
|
+
VALUE rb_s = WXSTR_TO_RSTR($self->GetString(i));
|
181
|
+
rc = rb_yield(rb_s);
|
182
|
+
}
|
183
|
+
return rc;
|
184
|
+
}
|
185
|
+
__HEREDOC
|
186
|
+
end
|
187
|
+
|
188
|
+
end # class OwnerDrawnComboBox
|
189
|
+
|
190
|
+
end # class Director
|
191
|
+
|
192
|
+
end # module WXRuby3
|
@@ -141,7 +141,7 @@ module WXRuby3
|
|
141
141
|
spec.map_apply 'int * OUTPUT' => 'int* pIndex'
|
142
142
|
end
|
143
143
|
# for UIntProperty and IntProperty
|
144
|
-
if Config.instance.features_set?('
|
144
|
+
if Config.instance.features_set?('USE_LONGLONG')
|
145
145
|
# wxLongLong mapping to be considered before considering 'long' (see typecheck precedence)
|
146
146
|
spec.map 'const wxLongLong&' => 'Integer' do
|
147
147
|
map_in temp: 'wxLongLong tmp', code: <<~__CODE
|
@@ -18,6 +18,8 @@ module WXRuby3
|
|
18
18
|
|
19
19
|
include Typemap::PGCell
|
20
20
|
|
21
|
+
include Typemap::ClientData
|
22
|
+
|
21
23
|
def setup
|
22
24
|
super
|
23
25
|
if spec.module_name == 'wxPGProperty'
|
@@ -54,7 +56,30 @@ module WXRuby3
|
|
54
56
|
{
|
55
57
|
return (*self)[idx];
|
56
58
|
}
|
57
|
-
|
59
|
+
|
60
|
+
VALUE each_label()
|
61
|
+
{
|
62
|
+
VALUE rc = Qnil;
|
63
|
+
for (unsigned int i=0; i<$self->GetCount() ;++i)
|
64
|
+
{
|
65
|
+
VALUE rb_lbl = WXSTR_TO_RSTR($self->GetLabel(i));
|
66
|
+
rc = rb_yield(rb_lbl);
|
67
|
+
}
|
68
|
+
return rc;
|
69
|
+
}
|
70
|
+
|
71
|
+
VALUE each_entry()
|
72
|
+
{
|
73
|
+
VALUE rc = Qnil;
|
74
|
+
for (unsigned int i=0; i<$self->GetCount() ;++i)
|
75
|
+
{
|
76
|
+
wxPGChoiceEntry *entry = &($self->Item(i));
|
77
|
+
VALUE rb_entry = SWIG_NewPointerObj(SWIG_as_voidptr(entry), SWIGTYPE_p_wxPGChoiceEntry, 0);
|
78
|
+
rc = rb_yield(rb_entry);
|
79
|
+
}
|
80
|
+
return rc;
|
81
|
+
}
|
82
|
+
__HEREDOC
|
58
83
|
# for GetIndicesForStrings
|
59
84
|
spec.map 'wxArrayString *unmatched' => 'Array,nil' do
|
60
85
|
|
@@ -90,7 +115,7 @@ module WXRuby3
|
|
90
115
|
# obsolete
|
91
116
|
spec.ignore %w[wxPGProperty::AddChild wxPGProperty::GetValueString]
|
92
117
|
# not of use in Ruby
|
93
|
-
spec.ignore(%w[wxPGProperty::
|
118
|
+
spec.ignore(%w[wxPGProperty::GetClientData wxPGProperty::SetClientData])
|
94
119
|
# only keep the const version
|
95
120
|
spec.ignore 'wxPGProperty::GetCell'
|
96
121
|
spec.regard 'wxPGProperty::GetCell(unsigned int) const'
|
@@ -123,32 +148,6 @@ module WXRuby3
|
|
123
148
|
spec.suppress_warning(473,
|
124
149
|
'wxPGProperty::DoGetEditorClass',
|
125
150
|
'wxPGProperty::DoGetValidator')
|
126
|
-
spec.add_header_code <<~__HEREDOC
|
127
|
-
extern void GC_mark_wxPGProperty(void* ptr)
|
128
|
-
{
|
129
|
-
#ifdef __WXRB_DEBUG__
|
130
|
-
if (wxRuby_TraceLevel()>1)
|
131
|
-
{
|
132
|
-
std::wcout << "> GC_mark_wxPGProperty : " << ptr;
|
133
|
-
if (ptr) std::wcout << " (" << ((wxPGProperty*)ptr)->GetName() << ')';
|
134
|
-
std::wcout << std::endl;
|
135
|
-
}
|
136
|
-
#endif
|
137
|
-
if (ptr)
|
138
|
-
{
|
139
|
-
VALUE object = (VALUE)((wxPGProperty*)ptr)->GetClientData();
|
140
|
-
if (object && !NIL_P(object))
|
141
|
-
{
|
142
|
-
#ifdef __WXRB_DEBUG__
|
143
|
-
if (wxRuby_TraceLevel()>2)
|
144
|
-
std::wcout << "*** marking property data " << ptr << std::endl;
|
145
|
-
#endif
|
146
|
-
rb_gc_mark(object);
|
147
|
-
}
|
148
|
-
}
|
149
|
-
}
|
150
|
-
__HEREDOC
|
151
|
-
spec.add_swig_code '%markfunc wxPGProperty "GC_mark_wxPGProperty";'
|
152
151
|
spec.ignore 'wxPGProperty::m_clientData' # not wanted for wxRuby
|
153
152
|
# take protected members into account
|
154
153
|
spec.regard 'wxPGProperty::wxPGProperty',
|
@@ -214,7 +213,6 @@ module WXRuby3
|
|
214
213
|
}
|
215
214
|
__CODE
|
216
215
|
else
|
217
|
-
spec.add_header_code 'extern void GC_mark_wxPGProperty(void* ptr);'
|
218
216
|
spec.items.each do |itm|
|
219
217
|
unless itm == 'wxColourPropertyValue'
|
220
218
|
# add protected member methods and var to complement base class
|
@@ -227,7 +225,6 @@ module WXRuby3
|
|
227
225
|
'wxVariant m_value',
|
228
226
|
visibility: 'protected'
|
229
227
|
spec.rename_for_ruby 'value_' => "#{itm}::m_value"
|
230
|
-
spec.add_swig_code %Q{%markfunc #{itm} "GC_mark_wxPGProperty";}
|
231
228
|
spec.new_object %Q{#{itm}::GetEditorDialog}
|
232
229
|
spec.suppress_warning(473, "#{itm}::GetEditorDialog")
|
233
230
|
end
|
@@ -39,16 +39,11 @@ module WXRuby3
|
|
39
39
|
spec.extend_interface 'wxPropertyGridInterface',
|
40
40
|
'void SetPropertyValues(const wxVariant &list, const wxPGPropArgCls& defaultCategory = 0)'
|
41
41
|
# optionals
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
spec.ignore 'wxPropertyGridInterface::GetPropertyValueAsDateTime'
|
48
|
-
end
|
49
|
-
unless Config.instance.features_set?('wxUSE_VALIDATORS')
|
50
|
-
spec.ignore 'wxPropertyGridInterface::GetPropertyValidator'
|
51
|
-
end
|
42
|
+
spec.ignore_unless 'USE_LONGLONG',
|
43
|
+
'wxPropertyGridInterface::GetPropertyValueAsLongLong',
|
44
|
+
'wxPropertyGridInterface::GetPropertyValueAsULongLong'
|
45
|
+
spec.ignore_unless 'USE_DATETIME', 'wxPropertyGridInterface::GetPropertyValueAsDateTime'
|
46
|
+
spec.ignore_unless 'USE_VALIDATORS', 'wxPropertyGridInterface::GetPropertyValidator'
|
52
47
|
# fix incorrect XML documentation
|
53
48
|
spec.ignore 'wxPropertyGridInterface::SetPropertyImage', ignore_doc: false # ignore non-const BitmapBundle arg decl
|
54
49
|
# and add correct decl
|
@@ -14,13 +14,13 @@ module WXRuby3
|
|
14
14
|
|
15
15
|
class RibbonButtonBar < Window
|
16
16
|
|
17
|
+
include Typemap::ClientData
|
18
|
+
|
17
19
|
def setup
|
18
20
|
super
|
19
21
|
# exclude these; far better done in pure Ruby
|
20
22
|
spec.ignore 'wxRibbonButtonBar::SetItemClientData',
|
21
|
-
'wxRibbonButtonBar::GetItemClientData'
|
22
|
-
spec.ignore 'wxRibbonButtonBar::SetItemClientObject',
|
23
|
-
'wxRibbonButtonBar::GetItemClientObject'
|
23
|
+
'wxRibbonButtonBar::GetItemClientData'
|
24
24
|
# not needed because of type mapping
|
25
25
|
spec.ignore 'wxRibbonButtonBar::GetItemId',
|
26
26
|
'wxRibbonButtonBar::GetItemById'
|
@@ -14,15 +14,13 @@ module WXRuby3
|
|
14
14
|
|
15
15
|
class RibbonGallery < Window
|
16
16
|
|
17
|
+
include Typemap::ClientData
|
18
|
+
|
17
19
|
def setup
|
18
20
|
super
|
19
|
-
# exclude these; far better done in pure Ruby
|
20
|
-
spec.ignore 'wxRibbonGallery::SetItemClientObject',
|
21
|
-
'wxRibbonGallery::GetItemClientObject',
|
22
|
-
'wxRibbonGallery::Append(const wxBitmap &, int, wxClientData *)'
|
23
21
|
spec.ignore 'wxRibbonGallery::SetItemClientData',
|
24
22
|
'wxRibbonGallery::GetItemClientData',
|
25
|
-
'wxRibbonGallery::Append(const wxBitmap &, int, void *)'
|
23
|
+
'wxRibbonGallery::Append(const wxBitmap &, int, void *)'
|
26
24
|
spec.map 'wxRibbonGalleryItem*' => 'Integer' do
|
27
25
|
map_out code: '$result = ULL2NUM(reinterpret_cast<uintptr_t> ($1));'
|
28
26
|
map_directorout code: '$result = reinterpret_cast<wxRibbonGalleryItem*> ((uintptr_t)NUM2ULL($1));'
|
@@ -45,6 +45,17 @@ module WXRuby3
|
|
45
45
|
}
|
46
46
|
return rc;
|
47
47
|
}
|
48
|
+
|
49
|
+
VALUE each_child()
|
50
|
+
{
|
51
|
+
VALUE rc = Qnil;
|
52
|
+
for (size_t i=0; i<$self->GetChildCount() ;++i)
|
53
|
+
{
|
54
|
+
wxRichTextObject *rto = $self->GetChild(i);
|
55
|
+
rc = rb_yield(wxRuby_RichTextObject2Ruby(rto, 0));
|
56
|
+
}
|
57
|
+
return rc;
|
58
|
+
}
|
48
59
|
__HEREDOC
|
49
60
|
|
50
61
|
spec.new_object 'wxRichTextLine::Clone'
|
@@ -161,6 +172,20 @@ module WXRuby3
|
|
161
172
|
}
|
162
173
|
$self->MoveFromList(wx_lst);
|
163
174
|
}
|
175
|
+
|
176
|
+
VALUE each_line()
|
177
|
+
{
|
178
|
+
VALUE rc = Qnil;
|
179
|
+
const wxRichTextLineVector &lines = $self->GetLines();
|
180
|
+
int lnr = 0;
|
181
|
+
for (const wxRichTextLine* line : lines)
|
182
|
+
{
|
183
|
+
VALUE rb_ln = SWIG_NewPointerObj(SWIG_as_voidptr(const_cast<wxRichTextLine*> (line)), SWIGTYPE_p_wxRichTextLine, 0);
|
184
|
+
rc = rb_yield(rb_ln);
|
185
|
+
++lnr;
|
186
|
+
}
|
187
|
+
return rc;
|
188
|
+
}
|
164
189
|
__CODE
|
165
190
|
|
166
191
|
spec.do_not_generate(:typedefs, :variables, :enums, :defines, :functions)
|
@@ -15,7 +15,7 @@ module WXRuby3
|
|
15
15
|
class RichTextCtrl < Window
|
16
16
|
|
17
17
|
include Typemap::RichText
|
18
|
-
if Config.instance.features_set?('
|
18
|
+
if Config.instance.features_set?('USE_DATETIME')
|
19
19
|
include Typemap::DateTime
|
20
20
|
end
|
21
21
|
|
@@ -117,9 +117,7 @@ module WXRuby3
|
|
117
117
|
wxRichTextCtrl::ProcessMouseMovement
|
118
118
|
wxRichTextCtrl::ProcessBackKey
|
119
119
|
]
|
120
|
-
|
121
|
-
spec.ignore %w[wxRichTextCtrl::GetDragStartTime wxRichTextCtrl::SetDragStartTime]
|
122
|
-
end
|
120
|
+
spec.ignore_unless 'USE_DATETIME', %w[wxRichTextCtrl::GetDragStartTime wxRichTextCtrl::SetDragStartTime]
|
123
121
|
spec.add_header_code 'extern VALUE wxRuby_RichTextObject2Ruby(const wxRichTextObject *wx_rto, int own);'
|
124
122
|
spec.swig_import('swig/classes/include/wxTextAttr.h',
|
125
123
|
'swig/classes/include/wxRichTextObject.h',
|
@@ -208,6 +206,18 @@ module WXRuby3
|
|
208
206
|
__CODE
|
209
207
|
|
210
208
|
end
|
209
|
+
spec.add_extend_code 'wxRichTextCtrl', <<~__HEREDOC
|
210
|
+
VALUE each_line()
|
211
|
+
{
|
212
|
+
VALUE rc = Qnil;
|
213
|
+
for (int i=0; i<$self->GetNumberOfLines() ;++i)
|
214
|
+
{
|
215
|
+
VALUE rb_ln = WXSTR_TO_RSTR($self->GetLineText(i));
|
216
|
+
rc = rb_yield(rb_ln);
|
217
|
+
}
|
218
|
+
return rc;
|
219
|
+
}
|
220
|
+
__HEREDOC
|
211
221
|
end
|
212
222
|
end # class RichTextCtrl
|
213
223
|
|
@@ -27,11 +27,13 @@ module WXRuby3
|
|
27
27
|
wxRichTextFormattingDialog::SetStyle
|
28
28
|
wxRichTextFormattingDialog::SetStyleDefinition
|
29
29
|
]
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
30
|
+
if Config.instance.wx_version < '3.3.0'
|
31
|
+
# add undocumented methods
|
32
|
+
spec.extend_interface 'wxRichTextFormattingDialog',
|
33
|
+
'wxRichTextObject* GetObject() const',
|
34
|
+
'void SetObject(wxRichTextObject* obj)',
|
35
|
+
'virtual bool ApplyStyle(wxRichTextCtrl* ctrl, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO)'
|
36
|
+
end
|
35
37
|
spec.add_header_code 'extern VALUE wxRuby_RichTextObject2Ruby(const wxRichTextObject *wx_rto, int own);'
|
36
38
|
spec.disown 'wxRichTextFormattingDialogFactory *factory'
|
37
39
|
spec.suppress_warning(473, 'wxRichTextFormattingDialogFactory::CreatePage')
|
@@ -83,13 +83,15 @@ module WXRuby3
|
|
83
83
|
return rb_rtsd;
|
84
84
|
}
|
85
85
|
__HEREDOC
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
86
|
+
if Config.instance.wx_version < '3.3.0'
|
87
|
+
# add undocumented convenience method
|
88
|
+
spec.extend_interface 'wxRichTextListStyleDefinition',
|
89
|
+
'void SetAttributes(int i, int leftIndent, int leftSubIndent, int bulletStyle, const wxString& bulletSymbol = wxEmptyString)'
|
90
|
+
# undocumented methods
|
91
|
+
spec.extend_interface 'wxRichTextStyleSheet',
|
92
|
+
'wxRichTextStyleSheet(const wxRichTextStyleSheet& sheet)',
|
93
|
+
'void Copy(const wxRichTextStyleSheet& sheet)'
|
94
|
+
end
|
93
95
|
# redefine these since we need to be able to selectively specify 'disown'
|
94
96
|
spec.ignore 'wxRichTextStyleSheet::AddCharacterStyle',
|
95
97
|
'wxRichTextStyleSheet::AddListStyle',
|
@@ -12,12 +12,19 @@ module WXRuby3
|
|
12
12
|
|
13
13
|
class Sizer < Director
|
14
14
|
|
15
|
+
include Typemap::ClientData
|
16
|
+
|
15
17
|
def setup
|
16
|
-
# Any nested sizers passed to Add() in are owned by C++, not GC
|
18
|
+
# Any nested sizers passed to Add() in are owned by C++, not GC-ed by Ruby
|
17
19
|
case spec.module_name
|
18
20
|
when 'wxSizer'
|
19
21
|
spec.items << 'wxSizerFlags'
|
20
22
|
spec.gc_as_untracked('wxSizerFlags')
|
23
|
+
if Config.instance.wx_version < '3.3.0'
|
24
|
+
# missing from docs
|
25
|
+
spec.extend_interface 'wxSizerFlags',
|
26
|
+
'wxSizerFlags& HorzBorder()'
|
27
|
+
end
|
21
28
|
spec.make_abstract('wxSizer')
|
22
29
|
spec.ignore %w[wxSizer::IsShown wxSizer::SetVirtualSizeHints]
|
23
30
|
# cannot use these with wxRuby
|
@@ -45,7 +52,7 @@ module WXRuby3
|
|
45
52
|
spec.ignore 'wxSizer::Detach(wxSizer*)',
|
46
53
|
'wxSizer::Detach(int)', ignore_doc: false
|
47
54
|
spec.add_extend_code 'wxSizer', <<~__HEREDOC
|
48
|
-
bool
|
55
|
+
bool Detach(wxSizer* szr)
|
49
56
|
{
|
50
57
|
if ($self->Detach(szr))
|
51
58
|
{
|
@@ -60,7 +67,7 @@ module WXRuby3
|
|
60
67
|
return false;
|
61
68
|
}
|
62
69
|
|
63
|
-
bool
|
70
|
+
bool Detach(int itm_nr)
|
64
71
|
{
|
65
72
|
wxSizerItem* itm = $self->GetItem(itm_nr);
|
66
73
|
if (itm)
|
@@ -82,6 +89,21 @@ module WXRuby3
|
|
82
89
|
}
|
83
90
|
return false;
|
84
91
|
}
|
92
|
+
|
93
|
+
VALUE each_child()
|
94
|
+
{
|
95
|
+
const wxSizerItemList& child_list = self->GetChildren();
|
96
|
+
VALUE rc = Qnil;
|
97
|
+
wxSizerItemList::compatibility_iterator node = child_list.GetFirst();
|
98
|
+
while (node)
|
99
|
+
{
|
100
|
+
wxSizerItem *wx_si = node->GetData();
|
101
|
+
VALUE rb_si = SWIG_NewPointerObj(wx_si, SWIGTYPE_p_wxSizerItem, 0);
|
102
|
+
rc = rb_yield(rb_si);
|
103
|
+
node = node->GetNext();
|
104
|
+
}
|
105
|
+
return rc;
|
106
|
+
}
|
85
107
|
__HEREDOC
|
86
108
|
# Typemap for GetChildren - convert to array of Sizer items
|
87
109
|
spec.map 'wxSizerItemList&' => 'Array<Wx::SizerItem>' do
|
@@ -109,9 +131,13 @@ module WXRuby3
|
|
109
131
|
spec.ignore 'wxGridBagSizer::Add(wxGBSizerItem *)'
|
110
132
|
# need to adjust sizer arg name to apply disown specs
|
111
133
|
spec.ignore 'wxGridBagSizer::Add(wxSizer *, const wxGBPosition &, const wxGBSpan &, int, int, wxObject *)',
|
134
|
+
'wxGridBagSizer::Add(wxWindow *, const wxGBPosition &, const wxGBSpan &, int, int, wxObject *)',
|
135
|
+
'wxGridBagSizer::Add(int, int, const wxGBPosition &, const wxGBSpan &, int, int, wxObject *)',
|
112
136
|
ignore_doc: false
|
113
137
|
spec.extend_interface 'wxGridBagSizer',
|
114
|
-
'wxSizerItem *Add(wxSizer *sizer_disown, const wxGBPosition &pos, const wxGBSpan &span=wxDefaultSpan, int flag=0, int border=0, wxObject *userData=NULL)'
|
138
|
+
'wxSizerItem * Add(wxSizer *sizer_disown, const wxGBPosition &pos, const wxGBSpan &span=wxDefaultSpan, int flag=0, int border=0, wxObject *userData=NULL)',
|
139
|
+
'wxSizerItem * Add(wxWindow *window, const wxGBPosition &pos, const wxGBSpan &span=wxDefaultSpan, int flag=0, int border=0, wxObject *userData=NULL)',
|
140
|
+
'wxSizerItem * Add(int width, int height, const wxGBPosition &pos, const wxGBSpan &span=wxDefaultSpan, int flag=0, int border=0, wxObject *userData=NULL)'
|
115
141
|
spec.disown 'wxSizer* sizer_disown'
|
116
142
|
end
|
117
143
|
# no real use for allowing these to be overloaded but a whole lot of grieve
|
@@ -12,15 +12,27 @@ module WXRuby3
|
|
12
12
|
|
13
13
|
class SizerItem < Director
|
14
14
|
|
15
|
+
include Typemap::ClientData
|
16
|
+
|
15
17
|
def setup
|
16
18
|
spec.disable_proxies
|
17
19
|
# do not allow creating SizerItems in Ruby; this has limited benefits and
|
18
20
|
# memory management of sizer items is a nightmare
|
19
21
|
case spec.module_name
|
20
22
|
when 'wxSizerItem'
|
23
|
+
spec.gc_as_untracked 'wxSizerItem'
|
21
24
|
spec.make_abstract 'wxSizerItem'
|
22
25
|
# ignore constructors
|
23
26
|
spec.ignore 'wxSizerItem::wxSizerItem'
|
27
|
+
# needs more discriminating return type for type map
|
28
|
+
spec.ignore 'wxSizerItem::GetUserData', ignore_doc: false
|
29
|
+
spec.add_header_code 'typedef wxObject* WxUserDataObject;'
|
30
|
+
spec.extend_interface 'wxSizerItem',
|
31
|
+
'WxUserDataObject GetUserData() const'
|
32
|
+
# for doc gen only
|
33
|
+
spec.map 'wxObject*' => 'Object', swig: false do
|
34
|
+
map_out code: ''
|
35
|
+
end
|
24
36
|
spec.ignore(%w[wxSizerItem::SetSizer wxSizerItem::SetSpacer wxSizerItem::SetWindow])
|
25
37
|
# need to adjust sizer arg name to apply disown specs
|
26
38
|
spec.ignore 'wxSizerItem::AssignSizer(wxSizer *)', ignore_doc: false
|
@@ -45,6 +57,7 @@ module WXRuby3
|
|
45
57
|
}
|
46
58
|
__HEREDOC
|
47
59
|
when 'wxGBSizerItem'
|
60
|
+
spec.gc_as_untracked 'wxGBSizerItem'
|
48
61
|
spec.make_abstract 'wxGBSizerItem'
|
49
62
|
# ignore constructors
|
50
63
|
spec.ignore 'wxGBSizerItem::wxGBSizerItem',
|
@@ -20,6 +20,34 @@ module WXRuby3
|
|
20
20
|
__HEREDOC
|
21
21
|
super
|
22
22
|
end
|
23
|
+
|
24
|
+
def process(gendoc: false)
|
25
|
+
defmod = super
|
26
|
+
spec.include 'wx/generic/statbmpg.h'
|
27
|
+
def_statbmp = defmod.find_item('wxStaticBitmap')
|
28
|
+
# create a definition for 'wxGenericStaticBitmap' which is not documented
|
29
|
+
def_genstatbmp = def_statbmp.dup
|
30
|
+
def_genstatbmp.name = 'wxGenericStaticBitmap'
|
31
|
+
def_genstatbmp.brief_doc = nil
|
32
|
+
def_genstatbmp.detailed_doc = nil
|
33
|
+
def_genstatbmp.items = def_genstatbmp.items.collect { |itm| itm.dup }
|
34
|
+
def_genstatbmp.items.each do |itm|
|
35
|
+
if itm.is_a?(Extractor::MethodDef)
|
36
|
+
itm.overloads = itm.overloads.collect { |ovl| ovl.dup }
|
37
|
+
itm.all.each do |ovl|
|
38
|
+
ovl.name = 'wxGenericStaticBitmap' if ovl.is_ctor
|
39
|
+
ovl.class_name = 'wxGenericStaticBitmap'
|
40
|
+
ovl.update_attributes(klass: def_genstatbmp)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
def_genstatbmp.items.delete_if { |itm| itm.is_a?(Extractor::EnumDef) && itm.name == 'ScaleMode' }
|
45
|
+
spec.add_swig_code %Q{typedef wxStaticBitmap::ScaleMode ScaleMode; }
|
46
|
+
spec.add_header_code %Q{typedef wxStaticBitmap::ScaleMode ScaleMode; }
|
47
|
+
defmod.items << def_genstatbmp
|
48
|
+
defmod
|
49
|
+
end
|
50
|
+
|
23
51
|
end # class StaticBitmap
|
24
52
|
|
25
53
|
end # class Director
|
@@ -16,11 +16,10 @@ module WXRuby3
|
|
16
16
|
|
17
17
|
def setup
|
18
18
|
super
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
end
|
19
|
+
# missing from implementation currently for WXOSX (and WXQT)
|
20
|
+
spec.ignore_unless(Config::AnyOf.new(*%w[WXMSW WXGTK]),
|
21
|
+
'wxStaticBox::wxStaticBox(wxWindow *, wxWindowID, wxWindow *, const wxPoint &, const wxSize &, long, const wxString &)',
|
22
|
+
'wxStaticBox::Create(wxWindow *, wxWindowID, wxWindow *, const wxPoint &, const wxSize &, long, const wxString &)')
|
24
23
|
end
|
25
24
|
end # class StaticBox
|
26
25
|
|