wxruby3 0.9.1 → 0.9.2
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/ext/wxruby3/include/wxRubyApp.h +338 -0
- data/ext/wxruby3/include/wxruby-Config.h +6 -6
- data/ext/wxruby3/swig/common.i +1 -1
- 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/collapsible_pane.rb +1 -1
- data/lib/wx/core/controlwithitems.rb +8 -6
- data/lib/wx/core/menu.rb +10 -0
- data/lib/wx/core/notebook.rb +6 -2
- data/lib/wx/core/sizer.rb +11 -0
- data/lib/wx/core/task_bar_button.rb +19 -0
- data/lib/wx/core/textctrl.rb +11 -1
- data/lib/wx/core/{treectrl.rb → tree_ctrl.rb} +31 -12
- data/lib/wx/core/window.rb +10 -0
- data/lib/wx/doc/app.rb +48 -38
- data/lib/wx/doc/art_locator.rb +47 -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/controlwithitems.rb +17 -7
- data/lib/wx/doc/data_object.rb +2 -2
- data/lib/wx/doc/evthandler.rb +113 -108
- data/lib/wx/doc/font.rb +1 -0
- data/lib/wx/doc/gc_dc.rb +6 -1
- 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/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/pg/events.rb +13 -9
- 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/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 +12 -8
- 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/variant.rb +164 -160
- data/lib/wx/doc/window.rb +57 -47
- data/lib/wx/doc/window_disabler.rb +10 -6
- data/lib/wx/grid/grid.rb +27 -4
- data/lib/wx/pg/pg_property.rb +22 -0
- 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 +1 -1
- data/rakelib/lib/config/unixish.rb +1 -1
- data/rakelib/lib/config.rb +14 -4
- data/rakelib/lib/core/package.rb +14 -7
- data/rakelib/lib/core/spec.rb +6 -1
- data/rakelib/lib/director/accelerator.rb +2 -3
- data/rakelib/lib/director/accessible.rb +47 -0
- data/rakelib/lib/director/app.rb +12 -319
- data/rakelib/lib/director/app_traits.rb +10 -12
- data/rakelib/lib/director/ctrl_with_items.rb +17 -5
- data/rakelib/lib/director/data_format.rb +1 -1
- 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/event.rb +2 -2
- data/rakelib/lib/director/frame.rb +1 -3
- data/rakelib/lib/director/gdicommon.rb +8 -10
- data/rakelib/lib/director/graphics_context.rb +2 -4
- data/rakelib/lib/director/grid_ctrl.rb +34 -3
- 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/pgproperties.rb +1 -1
- data/rakelib/lib/director/pgproperty.rb +24 -1
- data/rakelib/lib/director/property_grid_interface.rb +5 -10
- 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 +15 -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/textctrl.rb +12 -1
- data/rakelib/lib/director/tool_tip.rb +1 -1
- data/rakelib/lib/director/top_level_window.rb +4 -5
- data/rakelib/lib/director/tree_ctrl.rb +5 -6
- data/rakelib/lib/director/variant.rb +1 -1
- data/rakelib/lib/director/window.rb +24 -5
- data/rakelib/lib/director.rb +4 -4
- data/rakelib/lib/extractor/function.rb +6 -6
- data/rakelib/lib/extractor.rb +34 -5
- data/rakelib/lib/generate/analyzer.rb +8 -3
- 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 +76 -14
- data/rakelib/lib/specs/interfaces.rb +161 -160
- data/rakelib/lib/typemap/common.rb +30 -1
- 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/treectrl/treectrl.rb +1 -1
- data/tests/media/beep_lo.wav +0 -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 +16 -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_window.rb +12 -0
- data/tests/testapp_noframe.rb +1 -1
- metadata +31 -3
|
@@ -38,8 +38,8 @@ module WXRuby3
|
|
|
38
38
|
wxAppTraits::IsUsingUniversalWidgets
|
|
39
39
|
wxAppTraits::ShowAssertDialog
|
|
40
40
|
wxAppTraits::SafeMessageBox
|
|
41
|
-
wxAppTraits::GetAssertStackTrace
|
|
42
41
|
], ignore_doc: false
|
|
42
|
+
spec.ignore('wxAppTraits::GetAssertStackTrace', ignore_doc: 'USE_STACKWALKER')
|
|
43
43
|
# redefine
|
|
44
44
|
spec.extend_interface 'wxAppTraits',
|
|
45
45
|
'wxString GetDesktopEnvironment() const',
|
|
@@ -48,21 +48,19 @@ module WXRuby3
|
|
|
48
48
|
'bool IsUsingUniversalWidgets() const',
|
|
49
49
|
'bool ShowAssertDialog(const wxString& msg)',
|
|
50
50
|
'bool SafeMessageBox(const wxString &text, const wxString &title)'
|
|
51
|
-
if Config.instance.features_set?('
|
|
51
|
+
if Config.instance.features_set?('USE_STACKWALKER')
|
|
52
52
|
spec.extend_interface 'wxAppTraits', 'wxString GetAssertStackTrace()'
|
|
53
53
|
end
|
|
54
54
|
spec.map_apply 'int * OUTPUT' => ['int *major', 'int *minor', 'int *micro']
|
|
55
55
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
'wxStandardPaths::GetInstallPrefix'
|
|
65
|
-
end
|
|
56
|
+
spec.ignore_unless('WXMSW',
|
|
57
|
+
'wxStandardPaths::DontIgnoreAppSubDir',
|
|
58
|
+
'wxStandardPaths::IgnoreAppSubDir',
|
|
59
|
+
'wxStandardPaths::IgnoreAppBuildSubDirs',
|
|
60
|
+
'wxStandardPaths::MSWGetShellDir')
|
|
61
|
+
spec.ignore_unless('WXGTK',
|
|
62
|
+
'wxStandardPaths::SetInstallPrefix',
|
|
63
|
+
'wxStandardPaths::GetInstallPrefix')
|
|
66
64
|
end
|
|
67
65
|
end
|
|
68
66
|
|
|
@@ -51,9 +51,11 @@ module WXRuby3
|
|
|
51
51
|
'wxItemContainer::Append(const wxArrayString &, void **)',
|
|
52
52
|
'wxItemContainer::Insert(const wxArrayString &, unsigned int, void **)',
|
|
53
53
|
'wxItemContainer::Set(const wxArrayString &, void **)'], ignore_doc: false)
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
if Config.instance.wx_version < '3.3.0'
|
|
55
|
+
# add undocumented method
|
|
56
|
+
spec.extend_interface 'wxControlWithItems',
|
|
57
|
+
'bool IsSorted() const'
|
|
58
|
+
end
|
|
57
59
|
# for doc only
|
|
58
60
|
spec.map 'void** clientData' => 'Array', swig: false do
|
|
59
61
|
map_in code: ''
|
|
@@ -62,13 +64,23 @@ module WXRuby3
|
|
|
62
64
|
# Replace the old Wx definition of this method (which segfaults)
|
|
63
65
|
# Only need the setter as we cache data in Ruby and the getter
|
|
64
66
|
# therefor can be pure Ruby
|
|
65
|
-
spec.add_extend_code
|
|
67
|
+
spec.add_extend_code 'wxControlWithItems', <<~__HEREDOC
|
|
66
68
|
VALUE set_client_data(int n, VALUE item_data) {
|
|
67
69
|
self->SetClientData(n, (void *)item_data);
|
|
68
70
|
return item_data;
|
|
69
71
|
}
|
|
72
|
+
|
|
73
|
+
VALUE each_string()
|
|
74
|
+
{
|
|
75
|
+
VALUE rc = Qnil;
|
|
76
|
+
for (unsigned int i=0; i<$self->GetCount() ;++i)
|
|
77
|
+
{
|
|
78
|
+
VALUE rb_s = WXSTR_TO_RSTR($self->GetString(i));
|
|
79
|
+
rc = rb_yield(rb_s);
|
|
80
|
+
}
|
|
81
|
+
return rc;
|
|
82
|
+
}
|
|
70
83
|
__HEREDOC
|
|
71
|
-
)
|
|
72
84
|
end
|
|
73
85
|
end
|
|
74
86
|
|
|
@@ -20,7 +20,7 @@ module WXRuby3
|
|
|
20
20
|
# The formal signature for these is NativeFormat; this is required on
|
|
21
21
|
# MSVC as otherwise an impermissible implicit cast is tried, and so
|
|
22
22
|
# doesn't compile
|
|
23
|
-
spec.ignore 'wxDataFormat::GetType'
|
|
23
|
+
spec.ignore 'wxDataFormat::GetType', ignore_doc: false
|
|
24
24
|
spec.extend_interface 'wxDataFormat',
|
|
25
25
|
'typedef unsigned short NativeFormat',
|
|
26
26
|
'wxDataFormat::NativeFormat GetType() const'
|
|
@@ -278,7 +278,7 @@ module WXRuby3
|
|
|
278
278
|
# like all DC this should best always be a temporary stack object
|
|
279
279
|
# we do not allow creation in Ruby but rather provide class
|
|
280
280
|
# methods for block execution on a temp dc
|
|
281
|
-
|
|
281
|
+
if Config.instance.features_set?('USE_PRINTING_ARCHITECTURE', Director.AnyOf(*%w[WXMSW WXOSX USE_GTKPRINT]))
|
|
282
282
|
spec.add_extend_code 'wxGCDC', <<~__HEREDOC
|
|
283
283
|
static VALUE draw_on(const wxPrinterDC& dc)
|
|
284
284
|
{
|
|
@@ -24,6 +24,7 @@ module WXRuby3
|
|
|
24
24
|
when 'wxDialog'
|
|
25
25
|
spec.items << 'wxDialogLayoutAdapter'
|
|
26
26
|
spec.gc_as_object 'wxDialogLayoutAdapter'
|
|
27
|
+
spec.suppress_warning(514, 'wxDialogLayoutAdapter')
|
|
27
28
|
spec.disown 'wxDialogLayoutAdapter* adapter'
|
|
28
29
|
spec.new_object 'wxDialog::SetLayoutAdapter'
|
|
29
30
|
spec.ignore('wxDialog::GetContentWindow',
|
|
@@ -15,9 +15,8 @@ module WXRuby3
|
|
|
15
15
|
include Typemap::TreeItemId
|
|
16
16
|
|
|
17
17
|
def setup
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
end
|
|
18
|
+
# If wxRuby ever supports WXUNIVERSAL this should change to #ignore_unless
|
|
19
|
+
spec.ignore('wxDragImage::DoDrawImage', 'wxDragImage::GetImageRect', 'wxDragImage::UpdateBackingFromWindow')
|
|
21
20
|
super
|
|
22
21
|
end
|
|
23
22
|
end # class DragImage
|
|
@@ -195,8 +195,8 @@ module WXRuby3
|
|
|
195
195
|
}
|
|
196
196
|
__HEREDOC
|
|
197
197
|
spec.ignore 'wxQueueEvent'
|
|
198
|
-
spec.
|
|
199
|
-
spec.
|
|
198
|
+
spec.ignore_unless('USE_HOTKEY', 'wxEVT_HOTKEY')
|
|
199
|
+
spec.ignore_unless('WXMSW', 'wxEVT_MOUSE_CAPTURE_CHANGED', 'wxEVT_MOUSE_CAPTURE_LOST', 'wxEVT_DISPLAY_CHANGED')
|
|
200
200
|
# make sure this event constant definition exists
|
|
201
201
|
spec.add_swig_code %Q{%constant wxEventType wxEVT_MENU_HIGHLIGHT_ALL = wxEVT_MENU_HIGHLIGHT;}
|
|
202
202
|
# add event type constant missing from interface defs
|
|
@@ -21,9 +21,7 @@ module WXRuby3
|
|
|
21
21
|
when 'wxFrame'
|
|
22
22
|
spec.ignore %w[
|
|
23
23
|
wxFrame::OnCreateStatusBar wxFrame::OnCreateToolBar]
|
|
24
|
-
|
|
25
|
-
spec.ignore('wxFrame::MSWGetTaskBarButton')
|
|
26
|
-
end
|
|
24
|
+
spec.ignore_unless(%w[WXMSW USE_TASKBARBUTTON], 'wxFrame::MSWGetTaskBarButton')
|
|
27
25
|
# this reimplemented window base method need to be properly wrapped but
|
|
28
26
|
# is missing from the XML docs
|
|
29
27
|
spec.extend_interface('wxFrame', 'virtual void OnInternalIdle()')
|
|
@@ -78,16 +78,14 @@ module WXRuby3
|
|
|
78
78
|
wxPoint::x wxPoint::y
|
|
79
79
|
wxRealPoint::x wxRealPoint::y
|
|
80
80
|
]
|
|
81
|
-
spec.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
end
|
|
90
|
-
spec.ignore('wxStockCursor.wxCURSOR_COPY_ARROW') unless Config.instance.features_set?('__WXOSX__')
|
|
81
|
+
spec.ignore_unless('WXGTK', 'wxStockCursor.wxCURSOR_DEFAULT')
|
|
82
|
+
spec.ignore_unless 'WXX11', %w{
|
|
83
|
+
wxStockCursor.wxCURSOR_CROSS_REVERSE
|
|
84
|
+
wxStockCursor.wxCURSOR_DOUBLE_ARROW
|
|
85
|
+
wxStockCursor.wxCURSOR_BASED_ARROW_UP
|
|
86
|
+
wxStockCursor.wxCURSOR_BASED_ARROW_DOWN
|
|
87
|
+
}
|
|
88
|
+
spec.ignore_unless('WXOSX', 'wxStockCursor.wxCURSOR_COPY_ARROW')
|
|
91
89
|
spec.add_extend_code 'wxRect', <<~__HEREDOC
|
|
92
90
|
wxRect add(const wxRect &rect) const {
|
|
93
91
|
return (*(const wxRect*)$self) + rect;
|
|
@@ -34,9 +34,7 @@ module WXRuby3
|
|
|
34
34
|
'wxGraphicsContext::DrawLines(size_t, const wxPoint2DDouble *, wxPolygonFillMode)',
|
|
35
35
|
'wxGraphicsContext::StrokeLines(size_t, const wxPoint2DDouble *)',
|
|
36
36
|
'wxGraphicsContext::StrokeLines (size_t, const wxPoint2DDouble *, const wxPoint2DDouble *)'
|
|
37
|
-
|
|
38
|
-
spec.ignore 'wxGraphicsContext::Create(const wxPrinterDC &)'
|
|
39
|
-
end
|
|
37
|
+
spec.ignore_unless(Config::AnyOf.new('WXMSW', 'WXOSX', 'USE_GTKPRINT'), 'wxGraphicsContext::Create(const wxPrinterDC &)')
|
|
40
38
|
spec.add_header_code <<~__HEREDOC
|
|
41
39
|
// special free funcs are needed to clean up Dashes array if it has been
|
|
42
40
|
// set; wxWidgets does not do this automatically so will leak if not
|
|
@@ -229,7 +227,7 @@ module WXRuby3
|
|
|
229
227
|
__CODE
|
|
230
228
|
end
|
|
231
229
|
# add convenience method providing efficient gc memory management
|
|
232
|
-
|
|
230
|
+
if Config.instance.features_set?('USE_PRINTING_ARCHITECTURE', Director.AnyOf(*%w[WXMSW WXOSX USE_GTKPRINT]))
|
|
233
231
|
spec.add_extend_code 'wxGraphicsContext', <<~__HEREDOC
|
|
234
232
|
static VALUE draw_on(const wxPrinterDC& dc)
|
|
235
233
|
{
|
|
@@ -87,10 +87,13 @@ module WXRuby3
|
|
|
87
87
|
__CODE
|
|
88
88
|
end
|
|
89
89
|
|
|
90
|
-
spec.ignore 'wxGrid::GetSelectedBlocks' # ignore
|
|
90
|
+
spec.ignore 'wxGrid::GetSelectedBlocks', ignore_doc: false # ignore
|
|
91
|
+
spec.map 'wxGridBlocks' => 'Array<Wx::GRID::GridBlockCoords>', swig: false do
|
|
92
|
+
map_out code: ''
|
|
93
|
+
end
|
|
91
94
|
# add rubified API (finish in pure Ruby)
|
|
92
95
|
spec.add_extend_code 'wxGrid', <<~__HEREDOC
|
|
93
|
-
VALUE
|
|
96
|
+
VALUE each_selected_block()
|
|
94
97
|
{
|
|
95
98
|
VALUE rc = Qnil;
|
|
96
99
|
if (rb_block_given_p())
|
|
@@ -103,6 +106,34 @@ module WXRuby3
|
|
|
103
106
|
}
|
|
104
107
|
return rc;
|
|
105
108
|
}
|
|
109
|
+
|
|
110
|
+
VALUE each_selected_row_block()
|
|
111
|
+
{
|
|
112
|
+
VALUE rc = Qnil;
|
|
113
|
+
if (rb_block_given_p())
|
|
114
|
+
{
|
|
115
|
+
wxGridBlockCoordsVector sel = $self->GetSelectedRowBlocks();
|
|
116
|
+
for (const wxGridBlockCoords& gbc : sel)
|
|
117
|
+
{
|
|
118
|
+
rc = rb_yield (SWIG_NewPointerObj(new wxGridBlockCoords(gbc), SWIGTYPE_p_wxGridBlockCoords, SWIG_POINTER_OWN));
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return rc;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
VALUE each_selected_col_block()
|
|
125
|
+
{
|
|
126
|
+
VALUE rc = Qnil;
|
|
127
|
+
if (rb_block_given_p())
|
|
128
|
+
{
|
|
129
|
+
wxGridBlockCoordsVector sel = $self->GetSelectedColBlocks();
|
|
130
|
+
for (const wxGridBlockCoords& gbc : sel)
|
|
131
|
+
{
|
|
132
|
+
rc = rb_yield (SWIG_NewPointerObj(new wxGridBlockCoords(gbc), SWIGTYPE_p_wxGridBlockCoords, SWIG_POINTER_OWN));
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return rc;
|
|
136
|
+
}
|
|
106
137
|
__HEREDOC
|
|
107
138
|
|
|
108
139
|
spec.ignore 'wxGrid::GetGridWindowOffset(const wxGridWindow *, int &, int &) const'
|
|
@@ -113,7 +144,7 @@ module WXRuby3
|
|
|
113
144
|
typedef wxGrid::TabBehaviour TabBehaviour;
|
|
114
145
|
__HEREDOC
|
|
115
146
|
|
|
116
|
-
spec.map 'wxGridBlockCoordsVector' => 'Array<Wx::GRID::GridBlockCoords' do
|
|
147
|
+
spec.map 'wxGridBlockCoordsVector' => 'Array<Wx::GRID::GridBlockCoords>' do
|
|
117
148
|
map_out code: <<~__CODE
|
|
118
149
|
$result = rb_ary_new();
|
|
119
150
|
for (const wxGridBlockCoords& gbc: $1)
|
|
@@ -25,9 +25,12 @@ module WXRuby3
|
|
|
25
25
|
spec.ignore('wxIcon::wxIcon(const char *const *)', 'wxIcon::wxIcon(const char[],int,int)')
|
|
26
26
|
# xml specs incorrectly list this method for MWS while it does not exist anymore
|
|
27
27
|
spec.ignore('wxIcon::ConvertToDisabled')
|
|
28
|
-
|
|
28
|
+
if Config.platform == :mingw
|
|
29
|
+
spec.ignore 'wxIconBundle::wxIconBundle(const wxString &, WXHINSTANCE)',
|
|
30
|
+
'wxIconBundle::AddIcon(const wxString&,WXHINSTANCE)',
|
|
31
|
+
'wxIcon::CreateFromHICON'
|
|
32
|
+
else
|
|
29
33
|
spec.override_inheritance_chain('wxIcon', %w[wxBitmap wxGDIObject wxObject])
|
|
30
|
-
spec.ignore 'wxIconBundle::wxIconBundle(const wxString &, WXHINSTANCE)'
|
|
31
34
|
end
|
|
32
35
|
super
|
|
33
36
|
end
|
|
@@ -55,12 +55,11 @@ module WXRuby3
|
|
|
55
55
|
(void)self->EditLabel(item);
|
|
56
56
|
}
|
|
57
57
|
__HEREDOC
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
end
|
|
58
|
+
spec.ignore_unless 'HAS_LISTCTRL_COLUMN_ORDER',
|
|
59
|
+
%w[wxListCtrl::GetColumnIndexFromOrder
|
|
60
|
+
wxListCtrl::GetColumnOrder
|
|
61
|
+
wxListCtrl::GetColumnsOrder
|
|
62
|
+
wxListCtrl::SetColumnsOrder]
|
|
64
63
|
# these are protected so ignored by default but we want them here
|
|
65
64
|
spec.regard %w[
|
|
66
65
|
wxListCtrl::OnGetItemAttr
|
|
@@ -28,9 +28,7 @@ module WXRuby3
|
|
|
28
28
|
wxLanguageInfo::DescriptionNative
|
|
29
29
|
wxLanguageInfo::LayoutDirection
|
|
30
30
|
]
|
|
31
|
-
|
|
32
|
-
spec.regard('wxLanguageInfo::WinLang', 'wxLanguageInfo::WinSublang')
|
|
33
|
-
end
|
|
31
|
+
spec.ignore_unless('WXMSW', 'wxLanguageInfo::WinLang', 'wxLanguageInfo::WinSublang')
|
|
34
32
|
end
|
|
35
33
|
end # class Locale
|
|
36
34
|
|
data/rakelib/lib/director/log.rb
CHANGED
|
@@ -14,16 +14,13 @@ module WXRuby3
|
|
|
14
14
|
|
|
15
15
|
def setup
|
|
16
16
|
spec.gc_as_object %w[wxLog wxLogChain wxLogInterposer wxLogWindow]
|
|
17
|
-
spec.items.concat(%w[wxLogBuffer wxLogChain wxLogGui wxLogStderr
|
|
17
|
+
spec.items.concat(%w[wxLogBuffer wxLogChain wxLogGui wxLogStderr wxLogTextCtrl wxLogInterposer wxLogWindow wxLogNull wxLogRecordInfo])
|
|
18
18
|
spec.no_proxy(%w[wxLogBuffer wxLogGui wxLogStderr wxLogTextCtrl wxLogWindow])
|
|
19
19
|
spec.force_proxy(%w[wxLogInterposer])
|
|
20
20
|
spec.ignore 'wxLog::SetFormatter'
|
|
21
21
|
spec.regard %w[wxLog::DoLogRecord wxLog::DoLogTextAtLevel wxLog::DoLogText]
|
|
22
22
|
spec.ignore 'wxLogBuffer::Flush'
|
|
23
23
|
spec.ignore 'wxLogGui::Flush'
|
|
24
|
-
if Config.instance.features_set?('wxUSE_STD_IOSTREAM')
|
|
25
|
-
spec.ignore 'wxLogStream'
|
|
26
|
-
end
|
|
27
24
|
# wxLogStderr
|
|
28
25
|
spec.ignore 'wxLogStderr::wxLogStderr'
|
|
29
26
|
spec.add_extend_code 'wxLogStderr', <<~__HEREDOC
|
|
@@ -16,6 +16,60 @@ module WXRuby3
|
|
|
16
16
|
|
|
17
17
|
def setup
|
|
18
18
|
super
|
|
19
|
+
spec.map 'const wxURI&' => 'URI' do
|
|
20
|
+
add_header <<~__CODE
|
|
21
|
+
static VALUE wxRuby_GetRubyURIClass()
|
|
22
|
+
{
|
|
23
|
+
static VALUE rb_cURI = Qnil;
|
|
24
|
+
if (NIL_P(rb_cURI))
|
|
25
|
+
{
|
|
26
|
+
rb_require("uri");
|
|
27
|
+
rb_cURI = rb_const_get(rb_cObject, rb_intern("URI"));
|
|
28
|
+
}
|
|
29
|
+
return rb_cURI;
|
|
30
|
+
}
|
|
31
|
+
static WxRuby_ID to_s_id("to_s");
|
|
32
|
+
__CODE
|
|
33
|
+
map_in temp: 'wxURI tmp', code: <<~__CODE
|
|
34
|
+
if (rb_obj_is_kind_of($input, wxRuby_GetRubyURIClass()))
|
|
35
|
+
{
|
|
36
|
+
VALUE s = rb_funcall($input, to_s_id(), 0);
|
|
37
|
+
tmp = wxURI(RSTR_TO_WXSTR(s));
|
|
38
|
+
$1 = &tmp;
|
|
39
|
+
}
|
|
40
|
+
else
|
|
41
|
+
{
|
|
42
|
+
rb_raise(rb_eArgError, "expected URI for %d", $argnum-1);
|
|
43
|
+
}
|
|
44
|
+
__CODE
|
|
45
|
+
map_typecheck precedence: 'POINTER', code: '$1 = rb_obj_is_kind_of($input, wxRuby_GetRubyURIClass());'
|
|
46
|
+
end
|
|
47
|
+
spec.map 'wxFileOffset' => 'Integer' do
|
|
48
|
+
# we need these inline methods here as we do not want SWIG to preprocess the code
|
|
49
|
+
# as it will do in the type mapping code sections
|
|
50
|
+
add_header_code <<~__CODE
|
|
51
|
+
inline wxFileOffset __ruby2wxFileOffset(VALUE num)
|
|
52
|
+
{
|
|
53
|
+
#ifdef wxHAS_HUGE_FILES
|
|
54
|
+
return static_cast<wxFileOffset> (NUM2LL(num));
|
|
55
|
+
#else
|
|
56
|
+
return static_cast<wxFileOffset> (NUM2LONG(num));
|
|
57
|
+
#endif
|
|
58
|
+
}
|
|
59
|
+
inline VALUE __wxFileOffset2ruby(wxFileOffset offs)
|
|
60
|
+
{
|
|
61
|
+
#ifdef wxHAS_HUGE_FILES
|
|
62
|
+
return LL2NUM(offs);
|
|
63
|
+
#else
|
|
64
|
+
return LONG2NUM(offs);
|
|
65
|
+
#endif
|
|
66
|
+
}
|
|
67
|
+
__CODE
|
|
68
|
+
|
|
69
|
+
map_in code: '$1 = __ruby2wxFileOffset($input);'
|
|
70
|
+
map_out code: '$result = __wxFileOffset2ruby($1);'
|
|
71
|
+
map_typecheck code: '$1 = TYPE($input) == T_FIXNUM;'
|
|
72
|
+
end
|
|
19
73
|
spec.do_not_generate :variables, :enums, :defines, :functions
|
|
20
74
|
end
|
|
21
75
|
end # class MediaCtrl
|
|
@@ -85,6 +85,8 @@ module WXRuby3
|
|
|
85
85
|
spec.add_swig_code <<~__HEREDOC
|
|
86
86
|
%markfunc wxMenu "mark_wxMenu";
|
|
87
87
|
__HEREDOC
|
|
88
|
+
# ignore MSW specific method
|
|
89
|
+
spec.ignore 'wxMenu::MSWCommand'
|
|
88
90
|
# fix SWIG's problems with const& return value
|
|
89
91
|
spec.ignore('wxMenu::GetTitle', ignore_doc: false) # keep doc
|
|
90
92
|
spec.add_extend_code 'wxMenu', <<~__HEREDOC
|
|
@@ -92,7 +94,20 @@ module WXRuby3
|
|
|
92
94
|
wxString const& title = $self->GetTitle();
|
|
93
95
|
return &const_cast<wxString&> (title);
|
|
94
96
|
}
|
|
95
|
-
|
|
97
|
+
|
|
98
|
+
VALUE each_item()
|
|
99
|
+
{
|
|
100
|
+
VALUE rc = Qnil;
|
|
101
|
+
for (size_t i=0; i<$self->GetMenuItemCount(); ++i)
|
|
102
|
+
{
|
|
103
|
+
wxMenuItem *wx_menu_item = $self->FindItemByPosition(i);
|
|
104
|
+
VALUE rb_menu_item = SWIG_NewPointerObj(SWIG_as_voidptr(wx_menu_item),
|
|
105
|
+
SWIGTYPE_p_wxMenuItem, 0);
|
|
106
|
+
rc = rb_yield(rb_menu_item);
|
|
107
|
+
}
|
|
108
|
+
return rc;
|
|
109
|
+
}
|
|
110
|
+
__HEREDOC
|
|
96
111
|
super
|
|
97
112
|
end
|
|
98
113
|
end # class Menu
|
|
@@ -21,11 +21,11 @@ module WXRuby3
|
|
|
21
21
|
spec.ignore(%w[wxMenuItem::GetLabel wxMenuItem::GetName wxMenuItem::GetText wxMenuItem::SetText wxMenuItem::GetLabelFromText])
|
|
22
22
|
# ignore this as there is no implementation anymore
|
|
23
23
|
spec.ignore 'wxMenuItem::GetAccelFromString'
|
|
24
|
-
spec.
|
|
24
|
+
spec.ignore_unless('USE_ACCEL', 'wxMenuItem::GetAccel')
|
|
25
25
|
spec.no_proxy 'wxMenuItem::GetAccel'
|
|
26
26
|
spec.ignore 'wxMenuItem::GetBitmap(bool)' # not portable
|
|
27
27
|
if Config.instance.wx_version >= '3.3.0'
|
|
28
|
-
spec.
|
|
28
|
+
spec.ignore_unless('WXMSW', 'wxMenuItem::SetBackgroundColour','wxMenuItem::SetFont','wxMenuItem::SetTextColour')
|
|
29
29
|
end
|
|
30
30
|
super
|
|
31
31
|
end
|
|
@@ -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
|
|
@@ -54,7 +54,30 @@ module WXRuby3
|
|
|
54
54
|
{
|
|
55
55
|
return (*self)[idx];
|
|
56
56
|
}
|
|
57
|
-
|
|
57
|
+
|
|
58
|
+
VALUE each_label()
|
|
59
|
+
{
|
|
60
|
+
VALUE rc = Qnil;
|
|
61
|
+
for (unsigned int i=0; i<$self->GetCount() ;++i)
|
|
62
|
+
{
|
|
63
|
+
VALUE rb_lbl = WXSTR_TO_RSTR($self->GetLabel(i));
|
|
64
|
+
rc = rb_yield(rb_lbl);
|
|
65
|
+
}
|
|
66
|
+
return rc;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
VALUE each_entry()
|
|
70
|
+
{
|
|
71
|
+
VALUE rc = Qnil;
|
|
72
|
+
for (unsigned int i=0; i<$self->GetCount() ;++i)
|
|
73
|
+
{
|
|
74
|
+
wxPGChoiceEntry *entry = &($self->Item(i));
|
|
75
|
+
VALUE rb_entry = SWIG_NewPointerObj(SWIG_as_voidptr(entry), SWIGTYPE_p_wxPGChoiceEntry, 0);
|
|
76
|
+
rc = rb_yield(rb_entry);
|
|
77
|
+
}
|
|
78
|
+
return rc;
|
|
79
|
+
}
|
|
80
|
+
__HEREDOC
|
|
58
81
|
# for GetIndicesForStrings
|
|
59
82
|
spec.map 'wxArrayString *unmatched' => 'Array,nil' do
|
|
60
83
|
|
|
@@ -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
|
|
@@ -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',
|
|
@@ -82,6 +82,21 @@ module WXRuby3
|
|
|
82
82
|
}
|
|
83
83
|
return false;
|
|
84
84
|
}
|
|
85
|
+
|
|
86
|
+
VALUE each_child()
|
|
87
|
+
{
|
|
88
|
+
const wxSizerItemList& child_list = self->GetChildren();
|
|
89
|
+
VALUE rc = Qnil;
|
|
90
|
+
wxSizerItemList::compatibility_iterator node = child_list.GetFirst();
|
|
91
|
+
while (node)
|
|
92
|
+
{
|
|
93
|
+
wxSizerItem *wx_si = node->GetData();
|
|
94
|
+
VALUE rb_si = SWIG_NewPointerObj(wx_si, SWIGTYPE_p_wxSizerItem, 0);
|
|
95
|
+
rc = rb_yield(rb_si);
|
|
96
|
+
node = node->GetNext();
|
|
97
|
+
}
|
|
98
|
+
return rc;
|
|
99
|
+
}
|
|
85
100
|
__HEREDOC
|
|
86
101
|
# Typemap for GetChildren - convert to array of Sizer items
|
|
87
102
|
spec.map 'wxSizerItemList&' => 'Array<Wx::SizerItem>' do
|