wxruby3 0.9.2 → 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/INSTALL.md +35 -29
- data/README.md +24 -15
- data/ext/wxruby3/include/wxruby-ClientData.h +48 -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/lib/wx/core/bitmap_combobox.rb +17 -21
- data/lib/wx/core/combobox.rb +13 -3
- 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/owner_drawn_combobox.rb +45 -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/validator.rb +70 -5
- data/lib/wx/core/window.rb +3 -7
- data/lib/wx/doc/art_locator.rb +1 -0
- data/lib/wx/doc/comboctrl.rb +18 -0
- 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/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/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/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/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 +17 -2
- data/rakelib/lib/core/parameter.rb +1 -1
- data/rakelib/lib/core/spec_helper.rb +7 -1
- 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/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_handler.rb +3 -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 +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/header_ctrl.rb +6 -1
- data/rakelib/lib/director/html_listbox.rb +96 -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/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 +28 -0
- data/rakelib/lib/director/text_entry.rb +4 -0
- 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 +1 -1
- data/rakelib/lib/generate/doc.rb +10 -4
- data/rakelib/lib/specs/interfaces.rb +2 -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/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 +1233 -0
- data/samples/xrc/custom_xrc_sample.rb +47 -41
- data/samples/xrc/xrc_sample.rb +53 -47
- 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_sizer.rb +44 -1
- data/tests/test_validators.rb +805 -0
- metadata +92 -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
data/lib/wx/doc/window.rb
CHANGED
|
@@ -9,6 +9,36 @@ module Wx
|
|
|
9
9
|
|
|
10
10
|
class Window
|
|
11
11
|
|
|
12
|
+
# Lowers the window to the bottom of the window hierarchy (Z-order).
|
|
13
|
+
# This method has been renamed in wxRuby to be consistent with the renamed #raise_window method.
|
|
14
|
+
#
|
|
15
|
+
# <div class="wxrb-remark">
|
|
16
|
+
# <b>Remark:</b>
|
|
17
|
+
# <p>This function only works for {Wx::TopLevelWindow}-derived classes.
|
|
18
|
+
# </p>
|
|
19
|
+
# </div>
|
|
20
|
+
# @see Wx::Window#raise_window
|
|
21
|
+
# @return [void]
|
|
22
|
+
def lower_window; end
|
|
23
|
+
alias :send_to_back :lower_window
|
|
24
|
+
|
|
25
|
+
# Raises the window to the top of the window hierarchy (Z-order).
|
|
26
|
+
# This method has been renamed in wxRuby to avoid clashing with the standard Kernel#raise method.
|
|
27
|
+
#
|
|
28
|
+
# Notice that this function only requests the window manager to raise this window to the top of Z-order. Depending
|
|
29
|
+
# on its configuration, the window manager may raise the window, not do it at all or indicate that a window
|
|
30
|
+
# requested to be raised in some other way, e.g. by flashing its icon if it is minimized.
|
|
31
|
+
#
|
|
32
|
+
# <div class="wxrb-remark">
|
|
33
|
+
# <b>Remark:</b>
|
|
34
|
+
# <p>This function only works for {Wx::TopLevelWindow}-derived classes.
|
|
35
|
+
# </p>
|
|
36
|
+
# </div>
|
|
37
|
+
# @see Wx::Window#lower_window
|
|
38
|
+
# @return [void]
|
|
39
|
+
def raise_window; end
|
|
40
|
+
alias :bring_to_front :raise_window
|
|
41
|
+
|
|
12
42
|
# Creates an appropriate (temporary) DC to paint on and
|
|
13
43
|
# passes that to the given block. Deletes the DC when the block returns.
|
|
14
44
|
# Creates a Wx::PaintDC when called from an evt_paint handler and a
|
|
@@ -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
|
|
@@ -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/version.rb
CHANGED
data/rakelib/lib/config/mingw.rb
CHANGED
|
@@ -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
|
|
@@ -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
|
@@ -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
|
|
@@ -361,6 +362,9 @@ module WXRuby3
|
|
|
361
362
|
Config.instance.features.each do |feature, val|
|
|
362
363
|
fsrc.puts %Q{rb_define_const(mWxSetup, "#{feature}", Q#{val});}
|
|
363
364
|
end
|
|
365
|
+
fsrc.puts
|
|
366
|
+
# install wxRubyClientData marker
|
|
367
|
+
fsrc.puts %Q{wxRuby_AppendMarker(wxRuby_GC_mark_ClientData);}
|
|
364
368
|
else
|
|
365
369
|
fsrc.puts %Q{#{module_variable} = rb_define_module_under(wxRuby_Core(), "#{name}");}
|
|
366
370
|
# record package submodule in main module's list
|
|
@@ -408,7 +412,11 @@ module WXRuby3
|
|
|
408
412
|
item.event_types.each do |evt_hnd, evt_type, evt_arity, evt_klass, _|
|
|
409
413
|
evh_name = evt_hnd.downcase
|
|
410
414
|
unless evts_handled.include?(evh_name)
|
|
411
|
-
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
|
|
412
420
|
fout.puts ' '+<<~__HEREDOC.split("\n").join("\n ")
|
|
413
421
|
self.register_event_type EventType[
|
|
414
422
|
'#{evh_name}', #{evt_arity},
|
|
@@ -421,6 +429,13 @@ module WXRuby3
|
|
|
421
429
|
end
|
|
422
430
|
end
|
|
423
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
|
+
|
|
424
439
|
def generate_event_list
|
|
425
440
|
# determine Ruby library events root for package
|
|
426
441
|
rbevt_root = File.join(ruby_classes_path, 'events')
|
|
@@ -436,7 +451,7 @@ module WXRuby3
|
|
|
436
451
|
|
|
437
452
|
class Wx::EvtHandler
|
|
438
453
|
__HEREDOC
|
|
439
|
-
evts_handled =
|
|
454
|
+
evts_handled = self.class.generated_events
|
|
440
455
|
# first iterate all event classes
|
|
441
456
|
command_event = nil # special case
|
|
442
457
|
included_directors.each do |dir|
|
|
@@ -12,7 +12,7 @@ module WXRuby3
|
|
|
12
12
|
|
|
13
13
|
# represents a basic parameter definition
|
|
14
14
|
class ParameterBase
|
|
15
|
-
PTR_RE = /\A(
|
|
15
|
+
PTR_RE = /\A([\*&]+)\s*([_a-zA-Z]\w*)?\Z/
|
|
16
16
|
CONST_RE = /(\A|\W)const(\W|\Z)/
|
|
17
17
|
MULTI_WORD_TYPES = %w[char short int long]
|
|
18
18
|
def initialize(param)
|
|
@@ -382,7 +382,13 @@ module WXRuby3
|
|
|
382
382
|
|
|
383
383
|
def interface_code
|
|
384
384
|
if ifspec.interface_code && !ifspec.interface_code.empty?
|
|
385
|
-
|
|
385
|
+
if warn_filters.empty?
|
|
386
|
+
''
|
|
387
|
+
else
|
|
388
|
+
"\n" + warn_filters.collect do |warn, decls|
|
|
389
|
+
decls.collect { |decl| "%warnfilter(#{warn}) #{decl};" }
|
|
390
|
+
end.flatten.join("\n")
|
|
391
|
+
end + ifspec.interface_code.join("\n")
|
|
386
392
|
else
|
|
387
393
|
%Q{%include "#{interface_include}"\n}
|
|
388
394
|
end
|
data/rakelib/lib/director/app.rb
CHANGED
|
@@ -189,6 +189,24 @@ module WXRuby3
|
|
|
189
189
|
__HEREDOC
|
|
190
190
|
super
|
|
191
191
|
end
|
|
192
|
+
|
|
193
|
+
def process(gendoc: false)
|
|
194
|
+
defmod = super
|
|
195
|
+
# fix documentation errors for generic dirctrl events
|
|
196
|
+
def_item = defmod.find_item('wxApp')
|
|
197
|
+
if def_item
|
|
198
|
+
def_item.event_types.each do |evt_spec|
|
|
199
|
+
case evt_spec.first
|
|
200
|
+
when 'EVT_DIALUP_CONNECTED', 'EVT_DIALUP_DISCONNECTED'
|
|
201
|
+
if evt_spec[3].nil?
|
|
202
|
+
evt_spec[3] = 'wxDialUpEvent' # missing from docs
|
|
203
|
+
end
|
|
204
|
+
end
|
|
205
|
+
end
|
|
206
|
+
end
|
|
207
|
+
defmod
|
|
208
|
+
end
|
|
209
|
+
|
|
192
210
|
end
|
|
193
211
|
|
|
194
212
|
end # class Director
|
|
@@ -15,7 +15,9 @@ module WXRuby3
|
|
|
15
15
|
def setup
|
|
16
16
|
super
|
|
17
17
|
spec.items << 'wxStandardPaths'
|
|
18
|
-
spec.gc_as_object 'wxAppTraits'
|
|
18
|
+
spec.gc_as_object 'wxAppTraits'
|
|
19
|
+
# stack based global; tracking unwanted
|
|
20
|
+
spec.gc_as_untracked 'wxStandardPaths'
|
|
19
21
|
spec.no_proxy 'wxAppTraits', 'wxStandardPaths'
|
|
20
22
|
spec.make_abstract 'wxAppTraits'
|
|
21
23
|
|
|
@@ -24,8 +24,8 @@ module WXRuby3
|
|
|
24
24
|
wxWindow
|
|
25
25
|
wxEvtHandler
|
|
26
26
|
wxObject])
|
|
27
|
-
spec.ignore 'wxBitmapComboBox::Insert(const wxString &, const wxBitmap &, unsigned int,
|
|
28
|
-
'wxBitmapComboBox::Append(const wxString &, const wxBitmap &,
|
|
27
|
+
spec.ignore 'wxBitmapComboBox::Insert(const wxString &, const wxBitmap &, unsigned int, void *)',
|
|
28
|
+
'wxBitmapComboBox::Append(const wxString &, const wxBitmap &, void *)'
|
|
29
29
|
spec.map_apply 'long * OUTPUT' => [ 'long *from', 'long *to' ]
|
|
30
30
|
end
|
|
31
31
|
|
|
@@ -29,6 +29,28 @@ module WXRuby3
|
|
|
29
29
|
spec.rename_for_ruby(
|
|
30
30
|
'SetTextSelectionRange' => 'wxComboBox::SetSelection(long, long)',
|
|
31
31
|
'GetTextSelectionRange' => 'wxComboBox::GetSelection(long *, long *) const')
|
|
32
|
+
spec.ignore 'wxComboBox::SetSelection(long, long)',
|
|
33
|
+
'wxComboBox::GetSelection(long *, long *) const',
|
|
34
|
+
ignore_doc: false
|
|
35
|
+
# workaround because renaming and alias definitions clash
|
|
36
|
+
spec.add_extend_code 'wxComboBox', <<~__HEREDOC
|
|
37
|
+
void SetTextSelectionRange(long from, long to)
|
|
38
|
+
{
|
|
39
|
+
$self->SetSelection(from, to);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
void GetTextSelectionRange(long *from, long *to)
|
|
43
|
+
{
|
|
44
|
+
$self->GetSelection(from, to);
|
|
45
|
+
}
|
|
46
|
+
__HEREDOC
|
|
47
|
+
# fix override of TextEntry#clear; to be finished in pure Ruby
|
|
48
|
+
spec.add_extend_code 'wxComboBox', <<~__HEREDOC
|
|
49
|
+
void ClearItems()
|
|
50
|
+
{
|
|
51
|
+
$self->Clear();
|
|
52
|
+
}
|
|
53
|
+
__HEREDOC
|
|
32
54
|
spec.map_apply 'long * OUTPUT' => [ 'long *from', 'long *to' ]
|
|
33
55
|
end
|
|
34
56
|
|
|
@@ -16,7 +16,7 @@ module WXRuby3
|
|
|
16
16
|
|
|
17
17
|
def setup
|
|
18
18
|
super
|
|
19
|
-
spec.items << 'wxComboPopup'
|
|
19
|
+
spec.items << 'wxComboPopup'
|
|
20
20
|
# mixin TextEntry
|
|
21
21
|
spec.include_mixin 'wxComboCtrl', { 'Wx::TextEntry' => 'wxTextEntryBase' }
|
|
22
22
|
spec.override_inheritance_chain('wxComboCtrl',
|
|
@@ -31,60 +31,6 @@ module WXRuby3
|
|
|
31
31
|
]
|
|
32
32
|
# turn wxComboPopup into a mixin module
|
|
33
33
|
spec.make_mixin 'wxComboPopup'
|
|
34
|
-
# override inheritance chain
|
|
35
|
-
spec.override_inheritance_chain('wxOwnerDrawnComboBox', %w[wxComboCtrl wxControl wxWindow wxEvtHandler wxObject])
|
|
36
|
-
spec.fold_bases('wxOwnerDrawnComboBox' => %w[wxItemContainer])
|
|
37
|
-
spec.regard %w[
|
|
38
|
-
wxOwnerDrawnComboBox::OnDrawBackground
|
|
39
|
-
wxOwnerDrawnComboBox::OnDrawItem
|
|
40
|
-
wxOwnerDrawnComboBox::OnMeasureItem
|
|
41
|
-
wxOwnerDrawnComboBox::OnMeasureItemWidth
|
|
42
|
-
]
|
|
43
|
-
# unuseful overloads
|
|
44
|
-
spec.ignore 'wxOwnerDrawnComboBox::wxOwnerDrawnComboBox(wxWindow *, wxWindowID, const wxString &, const wxPoint &, const wxSize &, int, const wxString [], long, const wxValidator &, const wxString &)',
|
|
45
|
-
'wxOwnerDrawnComboBox::Create(wxWindow *, wxWindowID, const wxString &, const wxPoint &, const wxSize &, int, const wxString [], long, const wxValidator &, const wxString &)'
|
|
46
|
-
spec.ignore('wxItemContainer::Append(const wxString &, wxClientData *)',
|
|
47
|
-
'wxItemContainer::Append(const std::vector< wxString > &)',
|
|
48
|
-
'wxItemContainer::Append(const wxArrayString &, wxClientData **)',
|
|
49
|
-
'wxItemContainer::Append(unsigned int, const wxString *)',
|
|
50
|
-
'wxItemContainer::Append(unsigned int, const wxString *, void **)',
|
|
51
|
-
'wxItemContainer::Append(unsigned int, const wxString *, wxClientData **)',
|
|
52
|
-
'wxItemContainer::Insert(const wxString &, unsigned int, wxClientData *)',
|
|
53
|
-
'wxItemContainer::Insert(const std::vector< wxString > &)',
|
|
54
|
-
'wxItemContainer::Insert(const wxArrayString &, unsigned int, wxClientData **)',
|
|
55
|
-
'wxItemContainer::Insert(unsigned int, const wxString *, unsigned int)',
|
|
56
|
-
'wxItemContainer::Insert(unsigned int, const wxString *, unsigned int, void **)',
|
|
57
|
-
'wxItemContainer::Insert(unsigned int, const wxString *, unsigned int, wxClientData **)',
|
|
58
|
-
'wxItemContainer::Set(const std::vector< wxString > &)',
|
|
59
|
-
'wxItemContainer::Set(const wxArrayString &, wxClientData **)',
|
|
60
|
-
'wxItemContainer::Set(unsigned int, const wxString *)',
|
|
61
|
-
'wxItemContainer::Set(unsigned int, const wxString *, void **)',
|
|
62
|
-
'wxItemContainer::Set(unsigned int, const wxString *, wxClientData **)',
|
|
63
|
-
'wxItemContainer::DetachClientObject',
|
|
64
|
-
'wxItemContainer::HasClientObjectData',
|
|
65
|
-
'wxItemContainer::GetClientObject',
|
|
66
|
-
'wxItemContainer::SetClientObject',
|
|
67
|
-
'wxItemContainer::HasClientUntypedData',
|
|
68
|
-
'wxItemContainer::Clear')
|
|
69
|
-
spec.ignore('wxItemContainer::Append(const wxArrayString &, void **)',
|
|
70
|
-
'wxItemContainer::Insert(const wxArrayString &, unsigned int, void **)',
|
|
71
|
-
'wxItemContainer::Set(const wxArrayString &, void **)', ignore_doc: false)
|
|
72
|
-
# ambiguous
|
|
73
|
-
spec.ignore 'wxOwnerDrawnComboBox::IsEmpty', ignore_doc: false
|
|
74
|
-
# for doc only
|
|
75
|
-
spec.map 'void** clientData' => 'Array', swig: false do
|
|
76
|
-
map_in code: ''
|
|
77
|
-
end
|
|
78
|
-
spec.ignore(%w[wxItemContainer::GetClientData wxItemContainer::SetClientData], ignore_doc: false) # keep docs
|
|
79
|
-
# Replace the old Wx definition of this method (which segfaults)
|
|
80
|
-
# Only need the setter as we cache data in Ruby and the getter
|
|
81
|
-
# therefor can be pure Ruby
|
|
82
|
-
spec.add_extend_code 'wxOwnerDrawnComboBox', <<~__HEREDOC
|
|
83
|
-
VALUE set_client_data(int n, VALUE item_data) {
|
|
84
|
-
self->SetClientData(n, (void *)item_data);
|
|
85
|
-
return item_data;
|
|
86
|
-
}
|
|
87
|
-
__HEREDOC
|
|
88
34
|
end
|
|
89
35
|
|
|
90
36
|
end # class ComboCtrl
|