wxruby3 0.9.2 → 0.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/INSTALL.md +35 -29
- data/README.md +24 -15
- data/ext/wxruby3/include/wxruby-ClientData.h +48 -0
- data/ext/wxruby3/include/wxruby-Config.h +23 -5
- data/ext/wxruby3/include/wxruby-Persistence.h +79 -0
- data/ext/wxruby3/include/wxruby-Validator.h +39 -0
- data/ext/wxruby3/include/wxruby-ValidatorBinding.h +64 -0
- data/ext/wxruby3/swig/custom/director.swg +8 -0
- data/ext/wxruby3/swig/mark_free_impl.i +0 -33
- data/ext/wxruby3/swig/memory_management.i +6 -0
- data/lib/wx/core/bitmap_combobox.rb +17 -21
- data/lib/wx/core/book_ctrl_base.rb +16 -0
- data/lib/wx/core/combobox.rb +13 -3
- data/lib/wx/core/config.rb +454 -83
- data/lib/wx/core/controlwithitems.rb +40 -130
- 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/notebook.rb +10 -8
- data/lib/wx/core/owner_drawn_combobox.rb +45 -0
- data/lib/wx/core/peristent_object.rb +15 -0
- data/lib/wx/core/persistence_manager.rb +39 -0
- data/lib/wx/core/persistent_window.rb +16 -0
- data/lib/wx/core/size.rb +4 -0
- data/lib/wx/core/sizer.rb +1 -2
- data/lib/wx/core/standard_paths.rb +22 -0
- data/lib/wx/core/text_entry.rb +4 -1
- data/lib/wx/core/top_level_window.rb +16 -0
- data/lib/wx/core/treebook.rb +18 -0
- data/lib/wx/core/validator.rb +70 -5
- data/lib/wx/core/window.rb +3 -7
- data/lib/wx/core.rb +4 -0
- data/lib/wx/doc/art_locator.rb +1 -0
- data/lib/wx/doc/book_ctrl_base.rb +19 -0
- data/lib/wx/doc/comboctrl.rb +18 -0
- data/lib/wx/doc/config.rb +101 -41
- data/lib/wx/doc/controlwithitems.rb +16 -0
- 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/extra/12_client_data.md +89 -0
- data/lib/wx/doc/extra/13_validators.md +139 -0
- data/lib/wx/doc/extra/14_config.md +101 -0
- data/lib/wx/doc/extra/15_persistence.md +148 -0
- data/lib/wx/doc/gdi_common.rb +4 -0
- data/lib/wx/doc/generic_validator.rb +95 -0
- data/lib/wx/doc/html/simple_html_listbox.rb +22 -0
- data/lib/wx/doc/num_validator.rb +387 -0
- data/lib/wx/doc/owner_drawn_combobox.rb +96 -0
- data/lib/wx/doc/persistence_manager.rb +36 -0
- data/lib/wx/doc/persistent_object.rb +27 -0
- data/lib/wx/doc/pg/numeric_property_validator.rb +33 -0
- data/lib/wx/doc/static_bitmap.rb +25 -0
- data/lib/wx/doc/text_validator.rb +10 -0
- data/lib/wx/doc/top_level_window.rb +19 -0
- data/lib/wx/doc/treebook.rb +6 -1
- data/lib/wx/doc/validator.rb +113 -0
- data/lib/wx/doc/window.rb +30 -0
- data/lib/wx/html/simple_html_listbox.rb +24 -91
- data/lib/wx/keyword_defs.rb +34 -2
- data/lib/wx/rbn/ribbon_gallery.rb +0 -21
- data/lib/wx/version.rb +1 -1
- data/rakelib/build.rb +1 -1
- data/rakelib/lib/config/mingw.rb +12 -0
- 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 +39 -3
- data/rakelib/lib/core/parameter.rb +1 -1
- data/rakelib/lib/core/spec.rb +10 -0
- data/rakelib/lib/core/spec_helper.rb +8 -2
- data/rakelib/lib/director/app.rb +18 -0
- data/rakelib/lib/director/app_traits.rb +3 -1
- 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/config_base.rb +490 -19
- data/rakelib/lib/director/ctrl_with_items.rb +88 -21
- data/rakelib/lib/director/date_picker_ctrl.rb +8 -6
- data/rakelib/lib/director/editable_listbox.rb +30 -0
- data/rakelib/lib/director/event.rb +102 -12
- data/rakelib/lib/director/event_filter.rb +1 -1
- data/rakelib/lib/director/event_handler.rb +3 -2
- data/rakelib/lib/director/event_loop.rb +1 -1
- data/rakelib/lib/director/file_dialog_customize_hook.rb +2 -2
- data/rakelib/lib/director/functions.rb +4 -2
- data/rakelib/lib/director/generic_dirctrl.rb +17 -0
- data/rakelib/lib/director/grid_cell_attr.rb +1 -3
- data/rakelib/lib/director/grid_cell_editor.rb +1 -3
- data/rakelib/lib/director/grid_cell_renderer.rb +1 -3
- data/rakelib/lib/director/header_ctrl.rb +9 -1
- data/rakelib/lib/director/html_listbox.rb +97 -22
- 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/persistence_manager.rb +410 -0
- data/rakelib/lib/director/persistent_object.rb +70 -0
- data/rakelib/lib/director/persistent_window.rb +73 -0
- data/rakelib/lib/director/pgproperty.rb +3 -29
- data/rakelib/lib/director/ribbon_button_bar.rb +3 -3
- data/rakelib/lib/director/ribbon_gallery.rb +3 -5
- data/rakelib/lib/director/sizer.rb +15 -4
- data/rakelib/lib/director/sizer_item.rb +13 -0
- data/rakelib/lib/director/static_bitmap.rb +32 -0
- data/rakelib/lib/director/text_entry.rb +5 -1
- data/rakelib/lib/director/text_validator.rb +124 -13
- data/rakelib/lib/director/toggle_button.rb +1 -0
- data/rakelib/lib/director/top_level_window.rb +0 -2
- data/rakelib/lib/director/tree_ctrl.rb +35 -0
- data/rakelib/lib/director/utils.rb +16 -2
- data/rakelib/lib/director/validator.rb +196 -21
- data/rakelib/lib/director/window.rb +16 -2
- data/rakelib/lib/extractor/function.rb +2 -1
- data/rakelib/lib/generate/analyzer.rb +44 -44
- data/rakelib/lib/generate/doc.rb +11 -5
- data/rakelib/lib/specs/interfaces.rb +5 -0
- data/rakelib/lib/swig_runner.rb +55 -9
- data/rakelib/lib/typemap/client_data.rb +67 -0
- data/rakelib/lib/typemap/common.rb +3 -3
- data/rakelib/lib/typemap/config.rb +8 -0
- data/rakelib/lib/typemap/datetime.rb +1 -1
- data/rakelib/lib/typemap/tree_itemid.rb +2 -2
- 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 +1229 -0
- data/samples/xrc/custom_xrc_sample.rb +47 -41
- data/samples/xrc/xrc_sample.rb +53 -47
- data/tests/test_config.rb +207 -42
- 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_persistence.rb +142 -0
- data/tests/test_sizer.rb +44 -1
- data/tests/test_validators.rb +805 -0
- metadata +109 -138
- 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
|
@@ -66,8 +66,6 @@ module WXRuby3
|
|
|
66
66
|
__CODE
|
|
67
67
|
end
|
|
68
68
|
spec.ignore [
|
|
69
|
-
'wxWindow::TransferDataFromWindow',
|
|
70
|
-
'wxWindow::TransferDataToWindow',
|
|
71
69
|
'wxWindow::PopEventHandler',
|
|
72
70
|
'wxWindow::SetConstraints',
|
|
73
71
|
'wxWindow::GetHandle',
|
|
@@ -81,6 +79,9 @@ module WXRuby3
|
|
|
81
79
|
'wxWindow::SendIdleEvents',
|
|
82
80
|
'wxWindow::ClientToScreen(int*,int*)', # no need; prefer the wxPoint version
|
|
83
81
|
'wxWindow::ScreenToClient(int*,int*)', # no need; prefer the wxPoint version
|
|
82
|
+
# provide (non-virtual) renamed alternatives (prevent Ruby keyword/standard clash)
|
|
83
|
+
'wxWindow::Raise',
|
|
84
|
+
'wxWindow::Lower'
|
|
84
85
|
]
|
|
85
86
|
# no real docs and can't find actual examples of usage; ignore
|
|
86
87
|
spec.ignore 'wxWindow::GetConstraints', 'wxWindow::SetConstraints'
|
|
@@ -91,6 +92,15 @@ module WXRuby3
|
|
|
91
92
|
map_check code: ''
|
|
92
93
|
end
|
|
93
94
|
spec.add_extend_code 'wxWindow', <<~__HEREDOC
|
|
95
|
+
void raise_window()
|
|
96
|
+
{
|
|
97
|
+
$self->Raise();
|
|
98
|
+
}
|
|
99
|
+
void lower_window()
|
|
100
|
+
{
|
|
101
|
+
$self->Lower();
|
|
102
|
+
}
|
|
103
|
+
|
|
94
104
|
static wxWindow* find_window_by_id(long id, const wxWindow *find_from_parent=0)
|
|
95
105
|
{
|
|
96
106
|
return wxWindow::FindWindowById(id, find_from_parent);
|
|
@@ -269,9 +279,13 @@ module WXRuby3
|
|
|
269
279
|
"#{spec.class_name(citem)}::SetAcceleratorTable",
|
|
270
280
|
"#{spec.class_name(citem)}::SetBackgroundColour",
|
|
271
281
|
"#{spec.class_name(citem)}::SetBackgroundStyle",
|
|
282
|
+
"#{spec.class_name(citem)}::HasTransparentBackground",
|
|
272
283
|
"#{spec.class_name(citem)}::SetCursor",
|
|
273
284
|
"#{spec.class_name(citem)}::SetFocus",
|
|
274
285
|
"#{spec.class_name(citem)}::SetFocusFromKbd",
|
|
286
|
+
"#{spec.class_name(citem)}::AcceptsFocus",
|
|
287
|
+
"#{spec.class_name(citem)}::AcceptsFocusRecursively",
|
|
288
|
+
"#{spec.class_name(citem)}::AcceptsFocusFromKeyboard",
|
|
275
289
|
"#{spec.class_name(citem)}::SetFont",
|
|
276
290
|
"#{spec.class_name(citem)}::SetForegroundColour",
|
|
277
291
|
"#{spec.class_name(citem)}::SetHelpText",
|
|
@@ -95,8 +95,9 @@ module WXRuby3
|
|
|
95
95
|
params_doc.unlink if params_doc
|
|
96
96
|
# get brief doc
|
|
97
97
|
doc = xml_trans.to_doc(@brief_doc, item: self)
|
|
98
|
+
doc << "\n" if @detailed_doc # force empty line (paragraph break) between summary and detail
|
|
98
99
|
# add detailed doc text without params doc
|
|
99
|
-
doc << xml_trans.to_doc(@detailed_doc, item: self, desc: :detail)
|
|
100
|
+
doc << xml_trans.to_doc(@detailed_doc, item: self, desc: :detail) if @detailed_doc
|
|
100
101
|
# get mapped ruby parameter list
|
|
101
102
|
params = []
|
|
102
103
|
mapped_ret_args = nil
|
|
@@ -366,7 +366,7 @@ module WXRuby3
|
|
|
366
366
|
type_list = [type]
|
|
367
367
|
type_list << "#{enum_scope}::#{type.split('::').pop}" unless enum_scope.empty?
|
|
368
368
|
rb_enum_name = if !enum_scope.empty?
|
|
369
|
-
"#{enum_scope}::#{rb_wx_name(type.split('::').pop)}"
|
|
369
|
+
"#{rb_wx_name(enum_scope)}::#{rb_wx_name(type.split('::').pop)}"
|
|
370
370
|
else
|
|
371
371
|
rb_wx_name(type)
|
|
372
372
|
end
|
|
@@ -540,53 +540,53 @@ module WXRuby3
|
|
|
540
540
|
# check the preprocessed definitions
|
|
541
541
|
errors = []
|
|
542
542
|
warnings = []
|
|
543
|
-
|
|
544
|
-
|
|
543
|
+
# select eligible ClassDef
|
|
544
|
+
cls_items = def_items.select do |item|
|
|
545
|
+
Extractor::ClassDef === item && !item_ignored(item, doc_gen) &&
|
|
545
546
|
(!item.is_template? || template_as_class?(item.name)) &&
|
|
546
547
|
!is_folded_base?(item.name)
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
end
|
|
548
|
+
end
|
|
549
|
+
cls_items.each do |item|
|
|
550
|
+
intf_class_name = if item.is_template? || template_as_class?(item.name)
|
|
551
|
+
template_class_name(item.name)
|
|
552
|
+
else
|
|
553
|
+
item.name
|
|
554
|
+
end
|
|
555
|
+
# this should not happen
|
|
556
|
+
raise "Missing preprocessed data for class #{intf_class_name}" unless has_class_interface(intf_class_name)
|
|
557
|
+
# get the class's method registry
|
|
558
|
+
cls_mtdreg = class_interface_methods(intf_class_name)
|
|
559
|
+
# check all directly inherited generated methods
|
|
560
|
+
mtdlist = ::Set.new # remember handled signatures
|
|
561
|
+
base_list(item).each do |base_name|
|
|
562
|
+
# make sure the base class has been preprocessed
|
|
563
|
+
get_class_interface(package, base_name, doc_gen) unless has_class_interface(base_name)
|
|
564
|
+
# generate any required enum typemaps for inherited virtuals
|
|
565
|
+
gen_base_class_enum_typemaps(base_name, enum_maps)
|
|
566
|
+
# iterate the base class's method registrations
|
|
567
|
+
class_interface_methods(base_name).each_pair do |mtdsig, mtdreg|
|
|
568
|
+
# only check on methods we have not handled yet
|
|
569
|
+
if !mtdlist.include?(mtdsig)
|
|
570
|
+
# did we inherit a virtual method that was not proxied in the base
|
|
571
|
+
if mtdreg[:virtual] && !mtdreg[:proxy]
|
|
572
|
+
# # if we did NOT generate a wrapper override and we do not have the proxy suppressed we're in trouble
|
|
573
|
+
# if !cls_mtdreg.has_key?(mtdsig) && has_method_proxy?(item.name, mtdreg[:method])
|
|
574
|
+
# warnings << "* WARNING: disabling proxy for virtual method #{mtdreg[:method].signature} without wrapper implementation in class #{item.name} since it is NOT proxied in base class #{base_name}!"
|
|
575
|
+
# els
|
|
576
|
+
if cls_mtdreg.has_key?(mtdsig) && !cls_mtdreg[mtdsig][:extension] && !has_method_proxy?(item.name, cls_mtdreg[mtdsig][:method])
|
|
577
|
+
# if this is not a custom extension and we do have an override wrapper and no proxy this is unnecessary code bloat
|
|
578
|
+
warnings << " * WARNING: Unnecessary override #{mtdreg[:method].signature} in class #{item.name} for non-proxied base in #{base_name}. Ignoring."
|
|
579
|
+
cls_mtdreg[mtdsig][:ignore] = true
|
|
580
|
+
end
|
|
581
|
+
# or did we inherit a virtual method that was proxied in the base
|
|
582
|
+
# for which we DO generate a wrapper override
|
|
583
|
+
elsif mtdreg[:virtual] && mtdreg[:proxy] && cls_mtdreg.has_key?(mtdsig)
|
|
584
|
+
# if we do not have a proxy as well we're in trouble
|
|
585
|
+
if !has_method_proxy?(item, mtdreg[:method])
|
|
586
|
+
errors << "* ERROR: method #{mtdreg[:method].signature} is NOT proxied with an overriden wrapper implementation in class #{item.name} but is also implemented and proxied in base class #{base_name}!"
|
|
587
587
|
end
|
|
588
|
-
mtdlist << mtdsig
|
|
589
588
|
end
|
|
589
|
+
mtdlist << mtdsig
|
|
590
590
|
end
|
|
591
591
|
end
|
|
592
592
|
end
|
data/rakelib/lib/generate/doc.rb
CHANGED
|
@@ -253,7 +253,7 @@ module WXRuby3
|
|
|
253
253
|
<div class="wxrb-remark">
|
|
254
254
|
<b>Remark:</b>
|
|
255
255
|
<p>#{node_to_doc(node)}</p>
|
|
256
|
-
</div
|
|
256
|
+
</div>
|
|
257
257
|
__NOTE
|
|
258
258
|
else
|
|
259
259
|
node_to_doc(node)
|
|
@@ -480,7 +480,7 @@ module WXRuby3
|
|
|
480
480
|
/\A\s*Include\s+file:/ # Include file note
|
|
481
481
|
''
|
|
482
482
|
else
|
|
483
|
-
para.sub!(/Include\s+file:\s
|
|
483
|
+
para.sub!(/Include\s+file:\s+\\?#include\s+<[^>]+> */, '')
|
|
484
484
|
if event_section?
|
|
485
485
|
case para
|
|
486
486
|
when /The following event handler macros redirect.*(\{.*})/
|
|
@@ -861,6 +861,7 @@ module WXRuby3
|
|
|
861
861
|
|
|
862
862
|
def get_class_doc(cls)
|
|
863
863
|
doc = @xml_trans.to_doc(cls.brief_doc, item: cls)
|
|
864
|
+
doc << "\n" if cls.detailed_doc # force empty line (paragraph break) between summary and detail
|
|
864
865
|
doc << @xml_trans.to_doc(cls.detailed_doc, item: cls, desc: :detail) if cls.detailed_doc
|
|
865
866
|
doc
|
|
866
867
|
end
|
|
@@ -900,6 +901,8 @@ module WXRuby3
|
|
|
900
901
|
fdoc.doc.indent { gen_item_requirements(fdoc, ovl) }
|
|
901
902
|
end
|
|
902
903
|
fdoc.puts "def #{name}(*args) end"
|
|
904
|
+
# in case all overloads were ignored there will be no SWIG generated alias
|
|
905
|
+
no_gen_alias = docs.all? { |ovl, _, _| ovl.ignored }
|
|
903
906
|
else
|
|
904
907
|
mtd, params, doc = docs.shift
|
|
905
908
|
fdoc.doc.puts doc
|
|
@@ -909,9 +912,11 @@ module WXRuby3
|
|
|
909
912
|
else
|
|
910
913
|
fdoc.puts "def #{name}(#{params}) end"
|
|
911
914
|
end
|
|
915
|
+
# in case the documented method was ignored there will be no SWIG generated alias
|
|
916
|
+
no_gen_alias = mtd.ignored
|
|
912
917
|
end
|
|
913
|
-
# check for SWIG generated aliases
|
|
914
|
-
if alias_methods.has_key?(cm.name)
|
|
918
|
+
# check for SWIG generated aliases (skip ignored method defs as these will not have SWIG generated aliases)
|
|
919
|
+
if !no_gen_alias && alias_methods.has_key?(cm.name)
|
|
915
920
|
fdoc.puts "alias_method :#{alias_methods[cm.name]}, :#{name}"
|
|
916
921
|
else
|
|
917
922
|
# check for aliases that will be available from WxRubyStyleAccessors at runtime
|
|
@@ -920,7 +925,8 @@ module WXRuby3
|
|
|
920
925
|
when /\Aget_(\w+)/
|
|
921
926
|
$1
|
|
922
927
|
when /\Aset_(\w+)/
|
|
923
|
-
if
|
|
928
|
+
# only document alias if at least 1 method overload has a single required argument
|
|
929
|
+
if docs.any? { |ovl, _, _| ovl.parameter_count > 0 && ovl.required_param_count < 2 }
|
|
924
930
|
"#{$1}="
|
|
925
931
|
else
|
|
926
932
|
nil
|
|
@@ -56,6 +56,7 @@ module WXRuby3
|
|
|
56
56
|
Director.Spec(pkg, 'wxCaret')
|
|
57
57
|
Director.Spec(pkg, 'wxValidator', requirements: %[USE_VALIDATORS])
|
|
58
58
|
Director.Spec(pkg, 'wxTextValidator', requirements: %[USE_VALIDATORS])
|
|
59
|
+
Director.Spec(pkg, 'wxNumValidator', requirements: %[USE_VALIDATORS])
|
|
59
60
|
Director.Spec(pkg, 'wxAccelerator', requirements: %w[USE_ACCEL])
|
|
60
61
|
Director.Spec(pkg, 'wxMenuItem', requirements: %w[USE_MENUS])
|
|
61
62
|
Director.Spec(pkg, 'wxMenuBar', requirements: %w[USE_MENUBAR])
|
|
@@ -80,6 +81,7 @@ module WXRuby3
|
|
|
80
81
|
Director.Spec(pkg, 'wxComboBox', requirements: %w[USE_COMBOBOX])
|
|
81
82
|
Director.Spec(pkg, 'wxBitmapComboBox', requirements: %w[USE_BITMAPCOMBOBOX])
|
|
82
83
|
Director.Spec(pkg, 'wxComboCtrl', requirements: %w[USE_COMBOCTRL])
|
|
84
|
+
Director.Spec(pkg, 'wxOwnerDrawnComboBox', requirements: %w[USE_ODCOMBOBOX ])
|
|
83
85
|
Director.Spec(pkg, 'wxRadioBox', requirements: %w[USE_RADIOBOX])
|
|
84
86
|
Director.Spec(pkg, 'wxPanel')
|
|
85
87
|
Director.Spec(pkg, 'wxWithImages')
|
|
@@ -228,6 +230,9 @@ module WXRuby3
|
|
|
228
230
|
Director.Spec(pkg, 'wxFileSystem', requirements: %w[USE_FILESYSTEM])
|
|
229
231
|
Director.Spec(pkg, 'wxDialUpManager', requirements: %w[USE_DIALUP_MANAGER])
|
|
230
232
|
Director.Spec(pkg, 'wxDialUpEvent', requirements: %w[USE_DIALUP_MANAGER])
|
|
233
|
+
Director.Spec(pkg, 'wxPersistenceManager', requirements: %w[USE_CONFIG])
|
|
234
|
+
Director.Spec(pkg, 'wxPersistentObject', requirements: %w[USE_CONFIG])
|
|
235
|
+
Director.Spec(pkg, 'wxPersistentWindow', requirements: %w[USE_CONFIG])
|
|
231
236
|
}
|
|
232
237
|
|
|
233
238
|
Director.Package('Wx::PRT', 'USE_PRINTING_ARCHITECTURE') do |pkg|
|
data/rakelib/lib/swig_runner.rb
CHANGED
|
@@ -404,29 +404,63 @@ module WXRuby3
|
|
|
404
404
|
dir_cls_re_txt = class_list.select { |clsdef| has_proxy?(clsdef) }.collect { |cd| cd.name }.join('|')
|
|
405
405
|
# create regexp for Director constructors (may not exist if no proxies are enabled)
|
|
406
406
|
dir_ctor_re = /SwigDirector_\w+::SwigDirector_\w+\(.*\)\s*:\s*(#{dir_cls_re_txt})\(.*\)\s*,\s*Swig::Director.*{/
|
|
407
|
+
# create regexp for method wrappers other than 'initialize' wrappers
|
|
408
|
+
wrap_mtd_re = /_wrap_(#{cls_re_txt})_(\w+)\(.*\)/
|
|
407
409
|
end
|
|
408
410
|
found_new = false
|
|
409
411
|
cpp_class = nil
|
|
410
412
|
cpp_new_re = nil
|
|
413
|
+
found_wrap_mtd = false
|
|
414
|
+
wrap_mtd_name = nil
|
|
415
|
+
wrap_mtd_upcall_re = nil
|
|
411
416
|
update_source do |line|
|
|
412
417
|
if found_new # inside 'initialize' wrapper?
|
|
413
418
|
if cpp_new_re =~ line # at C++ allocation of class instance?
|
|
414
|
-
#
|
|
415
|
-
|
|
416
|
-
|
|
419
|
+
if $1 # director allocation for derived class
|
|
420
|
+
# in case of copy ctor replace type of argument
|
|
421
|
+
# for director copy ctor
|
|
422
|
+
line.sub!(/\((\w+),\s*\(#{cpp_class}\s+const\s+\&\)/, "(\\1,(#{class_implementation(cpp_class)} const &)")
|
|
423
|
+
else # allocation for actual class
|
|
424
|
+
# replace with the registered implementation class
|
|
425
|
+
line.sub!(/new\s+#{cpp_class}\(/, "new #{class_implementation(cpp_class)}(")
|
|
426
|
+
# in case of copy ctor also replace type of argument
|
|
427
|
+
# for class copy ctor
|
|
428
|
+
line.sub!(/\(\(#{cpp_class}\s+const\s+\&\)/, "((#{class_implementation(cpp_class)} const &)")
|
|
429
|
+
end
|
|
417
430
|
elsif /\A}/ =~ line # end of wrapper function?
|
|
418
431
|
# stop matching (in case of overloads there will be one matching wrapper function
|
|
419
432
|
# that does no actual allocation but just acts as a front for the overload wrappers)
|
|
420
433
|
found_new = false
|
|
421
434
|
end
|
|
435
|
+
elsif found_wrap_mtd
|
|
436
|
+
if wrap_mtd_upcall_re =~ line # at upcall for possibly proxied wrapper?
|
|
437
|
+
line.gsub!(cpp_class, class_implementation(cpp_class))
|
|
438
|
+
# if the upcall does not yet cast the receiver instance to the correct implementation class
|
|
439
|
+
if /\((\w+)\)->/ =~ line
|
|
440
|
+
# add required cast
|
|
441
|
+
line.sub!(/\((\w+)\)->/, "((#{class_implementation(cpp_class)} *)\\1)->")
|
|
442
|
+
end
|
|
443
|
+
found_wrap_mtd = false # upcall found
|
|
444
|
+
elsif /\A}/ =~ line
|
|
445
|
+
found_wrap_mtd = false # end of wrapper method
|
|
446
|
+
end
|
|
422
447
|
elsif new_re =~ line # are we at an 'initialize' wrapper?
|
|
423
448
|
found_new = true
|
|
424
449
|
cpp_class = $1
|
|
425
|
-
cpp_new_re = /new\s
|
|
426
|
-
elsif proxies_enabled
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
450
|
+
cpp_new_re = /new\s+(SwigDirector_)?#{cpp_class}\(.*\)/ # regexp for C++ new expression for this specific class
|
|
451
|
+
elsif proxies_enabled
|
|
452
|
+
if dir_ctor_re =~ line # at director ctor?
|
|
453
|
+
# replace base class name by implementation name
|
|
454
|
+
cpp_class = $1
|
|
455
|
+
line.sub!(/:\s*#{cpp_class}\(/, ": #{class_implementation(cpp_class)}(")
|
|
456
|
+
# in case of copy ctor also replace type of argument
|
|
457
|
+
line.sub!(/\(VALUE\s+self,\s*#{cpp_class}\s+const\s+\&(\w+)\)/, "(VALUE self, #{class_implementation(cpp_class)} const &\\1)")
|
|
458
|
+
elsif wrap_mtd_re =~ line # at wrapper method other than 'initialize' wrapper
|
|
459
|
+
cpp_class = $1
|
|
460
|
+
wrap_mtd_name = $2
|
|
461
|
+
wrap_mtd_upcall_re = /-\>#{cpp_class}::#{wrap_mtd_name}\(/
|
|
462
|
+
found_wrap_mtd = true
|
|
463
|
+
end
|
|
430
464
|
end
|
|
431
465
|
line
|
|
432
466
|
end
|
|
@@ -435,11 +469,23 @@ module WXRuby3
|
|
|
435
469
|
# if so, we also need to update the header code (Director class declaration)
|
|
436
470
|
# create regexp for 'initialize' wrappers (due to overloads this could be more than one per class)
|
|
437
471
|
dir_re = /class\s+SwigDirector_\w+\s*:\s*public\s+(#{dir_cls_re_txt})\s*,\s*public\s+Swig::Director\s*{/
|
|
472
|
+
found_dir = false
|
|
473
|
+
copy_ctor_re = nil
|
|
438
474
|
update_header do |line|
|
|
439
|
-
if
|
|
475
|
+
if found_dir
|
|
476
|
+
if copy_ctor_re =~ line
|
|
477
|
+
# replace copy ctor arg type
|
|
478
|
+
arg = $1
|
|
479
|
+
line.sub!(/#{cpp_class}\s+const\s+&#{arg}/, "#{class_implementation(cpp_class)} const &#{arg}")
|
|
480
|
+
elsif /\A};/ =~ line
|
|
481
|
+
found_dir = false
|
|
482
|
+
end
|
|
483
|
+
elsif dir_re =~ line # at Director class declaration?
|
|
440
484
|
# replace base class name by implementation name
|
|
441
485
|
cpp_class = $1
|
|
442
486
|
line.sub!(/public\s+#{cpp_class}/, "public #{class_implementation(cpp_class)}")
|
|
487
|
+
copy_ctor_re = /SwigDirector_#{cpp_class}\(VALUE\s+self,\s*#{cpp_class}\s+const\s+&(\w+)\);/
|
|
488
|
+
found_dir = true
|
|
443
489
|
end
|
|
444
490
|
line
|
|
445
491
|
end
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Copyright (c) 2023 M.J.N. Corino, The Netherlands
|
|
2
|
+
#
|
|
3
|
+
# This software is released under the MIT license.
|
|
4
|
+
|
|
5
|
+
###
|
|
6
|
+
# wxRuby3 client data typemap definition
|
|
7
|
+
###
|
|
8
|
+
|
|
9
|
+
require_relative '../core/mapping'
|
|
10
|
+
|
|
11
|
+
module WXRuby3
|
|
12
|
+
|
|
13
|
+
module Typemap
|
|
14
|
+
|
|
15
|
+
module ClientData
|
|
16
|
+
|
|
17
|
+
include Typemap::Module
|
|
18
|
+
|
|
19
|
+
define do
|
|
20
|
+
|
|
21
|
+
map 'wxClientData *' => 'Object' do
|
|
22
|
+
add_header_code <<~__CODE
|
|
23
|
+
#include "wxruby-ClientData.h"
|
|
24
|
+
__CODE
|
|
25
|
+
map_in code: '$1 = NIL_P($input) ? nullptr : new wxRubyClientData($input);'
|
|
26
|
+
map_out code: <<~__CODE
|
|
27
|
+
$result = Qnil;
|
|
28
|
+
if ($1)
|
|
29
|
+
{
|
|
30
|
+
wxRubyClientData* rbcd = dynamic_cast<wxRubyClientData*> ($1);
|
|
31
|
+
if (rbcd) $result = rbcd->GetData();
|
|
32
|
+
}
|
|
33
|
+
__CODE
|
|
34
|
+
|
|
35
|
+
map_typecheck precedence: 'POINTER', code: '$1 = true;'
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
map 'wxObject *userData' => 'Object' do
|
|
39
|
+
add_header_code <<~__CODE
|
|
40
|
+
#include "wxruby-ClientData.h"
|
|
41
|
+
__CODE
|
|
42
|
+
map_in code: '$1 = NIL_P($input) ? nullptr : new wxRubyUserData($input);'
|
|
43
|
+
|
|
44
|
+
map_typecheck precedence: 'POINTER', code: '$1 = true;'
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# WxUserDataObject must be typedef for wxObject*
|
|
48
|
+
map 'WxUserDataObject' => 'Object' do
|
|
49
|
+
|
|
50
|
+
map_out code: <<~__CODE
|
|
51
|
+
$result = Qnil;
|
|
52
|
+
if ($1)
|
|
53
|
+
{
|
|
54
|
+
wxRubyUserData* rbud = dynamic_cast<wxRubyUserData*> ($1);
|
|
55
|
+
if (rbud) $result = rbud->GetData();
|
|
56
|
+
}
|
|
57
|
+
__CODE
|
|
58
|
+
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
end
|
|
@@ -211,7 +211,8 @@ module WXRuby3
|
|
|
211
211
|
|
|
212
212
|
map 'wxSize&' => 'Array(Integer, Integer), Wx::Size',
|
|
213
213
|
'wxPoint&' => 'Array(Integer, Integer), Wx::Point' do
|
|
214
|
-
|
|
214
|
+
add_header_code '#include <memory>'
|
|
215
|
+
map_in temp: 'std::unique_ptr<$1_basetype> tmp', code: <<~__CODE
|
|
215
216
|
if ( TYPE($input) == T_DATA )
|
|
216
217
|
{
|
|
217
218
|
void* argp$argnum;
|
|
@@ -222,8 +223,7 @@ module WXRuby3
|
|
|
222
223
|
{
|
|
223
224
|
$1 = new $1_basetype( NUM2INT( rb_ary_entry($input, 0) ),
|
|
224
225
|
NUM2INT( rb_ary_entry($input, 1) ) );
|
|
225
|
-
//
|
|
226
|
-
SWIG_NewPointerObj($1, $1_descriptor, 1);
|
|
226
|
+
tmp.reset($1); // auto destruct when method scope ends
|
|
227
227
|
}
|
|
228
228
|
else
|
|
229
229
|
{
|
|
@@ -44,6 +44,14 @@ module WXRuby3
|
|
|
44
44
|
$input = wxRuby_ConfigBase2Ruby($1);
|
|
45
45
|
__CODE
|
|
46
46
|
|
|
47
|
+
map_out code: <<~__CODE
|
|
48
|
+
$result = wxRuby_ConfigBase2Ruby($1);
|
|
49
|
+
__CODE
|
|
50
|
+
|
|
51
|
+
map_directorout code: <<~__CODE
|
|
52
|
+
$result = wxRuby_Ruby2ConfigBase($1);
|
|
53
|
+
__CODE
|
|
54
|
+
|
|
47
55
|
end
|
|
48
56
|
|
|
49
57
|
end
|
|
@@ -42,7 +42,7 @@ module WXRuby3
|
|
|
42
42
|
map_directorin code: '$input = wxRuby_wxDateTimeToRuby($1);'
|
|
43
43
|
|
|
44
44
|
map_typecheck precedence: 'SWIGOBJECT', code: <<~__CODE
|
|
45
|
-
$1 = rb_obj_is_kind_of($input, rb_cTime) || rb_respond_to($input, rb_intern ("to_time"));
|
|
45
|
+
$1 = NIL_P($input) || rb_obj_is_kind_of($input, rb_cTime) || rb_respond_to($input, rb_intern ("to_time"));
|
|
46
46
|
__CODE
|
|
47
47
|
end
|
|
48
48
|
|
|
@@ -50,7 +50,7 @@ module WXRuby3
|
|
|
50
50
|
|
|
51
51
|
map_in temp: 'wxTreeItemId tmpId', code: <<~__CODE
|
|
52
52
|
if ($input != Qnil) tmpId = _wxRuby_Unwrap_wxTreeItemId($input);
|
|
53
|
-
$1 =
|
|
53
|
+
$1 = tmpId;
|
|
54
54
|
__CODE
|
|
55
55
|
|
|
56
56
|
map_directorin code: '$input = _wxRuby_Wrap_wxTreeItemId($1);'
|
|
@@ -59,7 +59,7 @@ module WXRuby3
|
|
|
59
59
|
|
|
60
60
|
map_directorout temp: 'wxTreeItemId tmpId', code: <<~__CODE
|
|
61
61
|
if ($input != Qnil) tmpId = _wxRuby_Unwrap_wxTreeItemId($input);
|
|
62
|
-
$result =
|
|
62
|
+
$result = tmpId;
|
|
63
63
|
__CODE
|
|
64
64
|
|
|
65
65
|
map_typecheck precedence: 'POINTER', code: '$1 = _wxRuby_Is_wxTreeItemId($input);'
|