wxruby3 0.9.0 → 0.9.1
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/ext/wxruby3/include/wxruby-runtime.h +3 -0
- data/ext/wxruby3/swig/common.i +22 -0
- data/ext/wxruby3/swig/custom/director.swg +296 -0
- data/ext/wxruby3/swig/custom/rubyapi.swg +19 -0
- data/ext/wxruby3/swig/custom/rubyerrors.swg +45 -0
- data/ext/wxruby3/swig/custom/rubyhead.swg +192 -0
- data/ext/wxruby3/swig/custom/rubyrun.swg +187 -0
- data/ext/wxruby3/swig/custom/swigrun.swg +363 -0
- data/ext/wxruby3/swig/custom/typemaps/swigtypemaps.swg +173 -0
- data/ext/wxruby3/swig/wx.i +50 -30
- data/lib/wx/core/const.rb +83 -0
- data/lib/wx/doc/const.rb +66 -66
- data/lib/wx/doc/event.rb +0 -6
- data/lib/wx/doc/functions.rb +9 -9
- data/lib/wx/doc/window.rb +5 -0
- data/lib/wx/keyword_defs.rb +43 -6
- data/lib/wx/version.rb +1 -1
- data/rakelib/lib/config/macosx.rb +1 -1
- data/rakelib/lib/core/include/funcall.inc +33 -14
- data/rakelib/lib/core/include/swigdirector.inc +384 -0
- data/rakelib/lib/core/include/swigrubyerrors.inc +161 -0
- data/{ext/wxruby3/swig/custom/swig4/rubyrun.swg → rakelib/lib/core/include/swigrubyrun.inc} +245 -120
- data/rakelib/lib/core/include/swigrun.inc +700 -0
- data/rakelib/lib/core/package.rb +5 -2
- data/rakelib/lib/core/parameter.rb +3 -0
- data/rakelib/lib/director/accelerator.rb +1 -1
- data/rakelib/lib/director/animation.rb +1 -1
- data/rakelib/lib/director/animation_ctrl.rb +20 -0
- data/rakelib/lib/director/app.rb +23 -5
- data/rakelib/lib/director/art_provider.rb +1 -1
- data/rakelib/lib/director/data_object_simple_base.rb +1 -2
- data/rakelib/lib/director/dialog.rb +5 -0
- data/rakelib/lib/director/dialup_event.rb +44 -0
- data/rakelib/lib/director/dialup_manager.rb +45 -0
- data/rakelib/lib/director/event.rb +20 -2
- data/rakelib/lib/director/file_ctrl.rb +35 -0
- data/rakelib/lib/director/file_ctrl_event.rb +26 -0
- data/rakelib/lib/director/gdicommon.rb +19 -1
- data/rakelib/lib/director/grid_cell_editor.rb +6 -6
- data/rakelib/lib/director/help_controller.rb +1 -1
- data/rakelib/lib/director/pgarray_editor_dialog.rb +0 -6
- data/rakelib/lib/director/pgeditor.rb +2 -2
- data/rakelib/lib/director/pgproperties.rb +2 -2
- data/rakelib/lib/director/richtext_buffer.rb +1 -1
- data/rakelib/lib/director/richtext_ctrl.rb +1 -1
- data/rakelib/lib/director/sash_event.rb +42 -0
- data/rakelib/lib/director/sizer.rb +64 -1
- data/rakelib/lib/director/sizer_item.rb +22 -0
- data/rakelib/lib/director/task_bar_icon.rb +1 -1
- data/rakelib/lib/director/tree_ctrl.rb +19 -44
- data/rakelib/lib/generate/doc/animation_ctrl.yaml +15 -0
- data/rakelib/lib/generate/doc/events.yaml +10 -4
- data/rakelib/lib/generate/doc/static_box.yaml +8 -0
- data/rakelib/lib/generate/doc/xml_resource.yaml +3 -0
- data/rakelib/lib/generate/doc.rb +14 -3
- data/rakelib/lib/generate/interface.rb +4 -3
- data/rakelib/lib/specs/interfaces.rb +5 -1
- data/rakelib/lib/swig_runner.rb +4 -50
- data/rakelib/lib/typemap/common.rb +24 -9
- data/rakelib/lib/typemap/data_format.rb +1 -1
- data/rakelib/lib/typemap/data_object_data.rb +2 -2
- data/rakelib/lib/typemap/pgprop_arg.rb +7 -2
- data/rakelib/lib/typemap/points_list.rb +5 -7
- data/rakelib/lib/util/string.rb +10 -8
- data/samples/text/richtext.rb +0 -30
- data/tests/test_app_exit_exception.rb +36 -0
- data/tests/test_app_init_exception.rb +20 -0
- data/tests/test_book_controls.rb +29 -0
- data/tests/test_exceptions.rb +41 -0
- data/tests/test_sizer.rb +43 -0
- data/tests/test_std_controls.rb +36 -0
- metadata +25 -4
- data/ext/wxruby3/swig/custom/swig3/rubyrun.swg +0 -456
@@ -0,0 +1,29 @@
|
|
1
|
+
# Copyright (c) 2023 M.J.N. Corino, The Netherlands
|
2
|
+
#
|
3
|
+
# This software is released under the MIT license.
|
4
|
+
|
5
|
+
require_relative './lib/wxframe_runner'
|
6
|
+
|
7
|
+
class BookCtrlTests < WxRuby::Test::GUITests
|
8
|
+
|
9
|
+
def setup
|
10
|
+
super
|
11
|
+
@book = Wx::Choicebook.new(frame_win, name: 'ChoiceBook')
|
12
|
+
end
|
13
|
+
|
14
|
+
def cleanup
|
15
|
+
@book.destroy
|
16
|
+
super
|
17
|
+
GC.start
|
18
|
+
end
|
19
|
+
|
20
|
+
attr_reader :book
|
21
|
+
|
22
|
+
def test_control_sizer
|
23
|
+
btn = Wx::Button.new(book, Wx::ID_ANY, 'First')
|
24
|
+
# issue #199 : returning the control sizer should not cause it to be owned by Ruby
|
25
|
+
# because that would cause double deletes
|
26
|
+
book.get_control_sizer.add(btn, Wx::SizerFlags.new.expand.border(Wx::ALL))
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# Copyright (c) 2023 M.J.N. Corino, The Netherlands
|
2
|
+
#
|
3
|
+
# This software is released under the MIT license.
|
4
|
+
|
5
|
+
require_relative './lib/wxframe_runner'
|
6
|
+
|
7
|
+
class DirectorExceptionTests < WxRuby::Test::GUITests
|
8
|
+
|
9
|
+
class InvalidOutputSizer < Wx::BoxSizer
|
10
|
+
|
11
|
+
def calc_min
|
12
|
+
Wx::Point.new(1,1) # expects Wx::Size
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_invalid_output
|
18
|
+
szr = InvalidOutputSizer.new(Wx::Orientation::VERTICAL)
|
19
|
+
szr.add(Wx::Button.new(frame_win, name: 'button'), Wx::Direction::TOP)
|
20
|
+
frame_win.sizer = szr
|
21
|
+
assert_raise_kind_of(TypeError) { frame_win.layout }
|
22
|
+
frame_win.sizer = nil
|
23
|
+
end
|
24
|
+
|
25
|
+
class ExceptionSizer < Wx::BoxSizer
|
26
|
+
|
27
|
+
def calc_min
|
28
|
+
raise RuntimeError, 'AnyThing'
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_exception_in_overload
|
34
|
+
szr = ExceptionSizer.new(Wx::Orientation::VERTICAL)
|
35
|
+
szr.add(Wx::Button.new(frame_win, name: 'button'), Wx::Direction::TOP)
|
36
|
+
frame_win.sizer = szr
|
37
|
+
assert_raise_kind_of(RuntimeError) { frame_win.layout }
|
38
|
+
frame_win.sizer = nil
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
data/tests/test_sizer.rb
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
# Copyright (c) 2023 M.J.N. Corino, The Netherlands
|
2
|
+
#
|
3
|
+
# This software is released under the MIT license.
|
4
|
+
|
5
|
+
require_relative './lib/wxframe_runner'
|
6
|
+
|
7
|
+
class SizerTests < WxRuby::Test::GUITests
|
8
|
+
|
9
|
+
def setup
|
10
|
+
super
|
11
|
+
frame_win.set_sizer(Wx::VBoxSizer.new)
|
12
|
+
end
|
13
|
+
|
14
|
+
def cleanup
|
15
|
+
super
|
16
|
+
GC.start
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_detach
|
20
|
+
frame_win.get_sizer.add(Wx::HBoxSizer.new)
|
21
|
+
frame_win.get_sizer.add_spacer(5)
|
22
|
+
# detaches HBoxSizer transferring ownership to Ruby; should not cause segfaults at GC
|
23
|
+
frame_win.get_sizer.detach(0)
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_sizer_item_detach_and_re_attach
|
27
|
+
frame_win.get_sizer.add(Wx::HBoxSizer.new)
|
28
|
+
frame_win.get_sizer.add_spacer(5)
|
29
|
+
# get and detach
|
30
|
+
szr_itm = frame_win.get_sizer.get_item(0)
|
31
|
+
assert_not_nil(szr_itm)
|
32
|
+
assert_true(szr_itm.is_sizer)
|
33
|
+
szr = szr_itm.get_sizer
|
34
|
+
assert_not_nil(szr)
|
35
|
+
szr_itm.detach_sizer
|
36
|
+
assert_nil(szr_itm.get_sizer)
|
37
|
+
# remove sizer item
|
38
|
+
assert_true(frame_win.get_sizer.remove(0))
|
39
|
+
# re-attach detached sizer (should not cause segfaults at close due to incorrect ownership transfers)
|
40
|
+
assert_not_nil(frame_win.get_sizer.prepend(szr))
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
data/tests/test_std_controls.rb
CHANGED
@@ -439,3 +439,39 @@ class GaugeTests < WxRuby::Test::GUITests
|
|
439
439
|
assert_equal(100, gauge.value)
|
440
440
|
end
|
441
441
|
end
|
442
|
+
|
443
|
+
class StaticBoxTests < WxRuby::Test::GUITests
|
444
|
+
|
445
|
+
def setup
|
446
|
+
super
|
447
|
+
@box = nil
|
448
|
+
end
|
449
|
+
|
450
|
+
def cleanup
|
451
|
+
@box.destroy if @box
|
452
|
+
super
|
453
|
+
end
|
454
|
+
|
455
|
+
attr_reader :box
|
456
|
+
|
457
|
+
def test_basic
|
458
|
+
@box = Wx::StaticBox.new(frame_win, label: 'Box')
|
459
|
+
|
460
|
+
txt = Wx::StaticText.new(box, Wx::ID_ANY, "This window is a child of the staticbox")
|
461
|
+
assert_equal(box, txt.parent)
|
462
|
+
end
|
463
|
+
|
464
|
+
unless Wx::PLATFORM == 'WXOSX'
|
465
|
+
|
466
|
+
def test_label_window
|
467
|
+
check = Wx::CheckBox.new(frame_win, Wx::ID_ANY, 'Enable')
|
468
|
+
@box = Wx::StaticBox.new(frame_win, label: check)
|
469
|
+
|
470
|
+
button = Wx::Button.new(box, label: 'Button')
|
471
|
+
box.enable(false)
|
472
|
+
assert_false(button.is_enabled)
|
473
|
+
end
|
474
|
+
|
475
|
+
end
|
476
|
+
|
477
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wxruby3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Corino
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-10-
|
11
|
+
date: 2023-10-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -102,10 +102,15 @@ files:
|
|
102
102
|
- ext/wxruby3/include/wxruby-runtime.h
|
103
103
|
- ext/wxruby3/swig/RubyStockObjects.i
|
104
104
|
- ext/wxruby3/swig/common.i
|
105
|
+
- ext/wxruby3/swig/custom/director.swg
|
106
|
+
- ext/wxruby3/swig/custom/rubyapi.swg
|
107
|
+
- ext/wxruby3/swig/custom/rubyerrors.swg
|
108
|
+
- ext/wxruby3/swig/custom/rubyhead.swg
|
105
109
|
- ext/wxruby3/swig/custom/rubyprimtypes.swg
|
110
|
+
- ext/wxruby3/swig/custom/rubyrun.swg
|
106
111
|
- ext/wxruby3/swig/custom/rubytracking.swg
|
107
|
-
- ext/wxruby3/swig/custom/
|
108
|
-
- ext/wxruby3/swig/custom/
|
112
|
+
- ext/wxruby3/swig/custom/swigrun.swg
|
113
|
+
- ext/wxruby3/swig/custom/typemaps/swigtypemaps.swg
|
109
114
|
- ext/wxruby3/swig/mark_free_impl.i
|
110
115
|
- ext/wxruby3/swig/memory_management.i
|
111
116
|
- ext/wxruby3/swig/typedefs.i
|
@@ -139,6 +144,7 @@ files:
|
|
139
144
|
- lib/wx/core/combo_ctrl.rb
|
140
145
|
- lib/wx/core/combobox.rb
|
141
146
|
- lib/wx/core/config.rb
|
147
|
+
- lib/wx/core/const.rb
|
142
148
|
- lib/wx/core/controlwithitems.rb
|
143
149
|
- lib/wx/core/cursor.rb
|
144
150
|
- lib/wx/core/data_object.rb
|
@@ -365,6 +371,10 @@ files:
|
|
365
371
|
- rakelib/lib/core/include/enum.inc
|
366
372
|
- rakelib/lib/core/include/funcall.inc
|
367
373
|
- rakelib/lib/core/include/init.inc
|
374
|
+
- rakelib/lib/core/include/swigdirector.inc
|
375
|
+
- rakelib/lib/core/include/swigrubyerrors.inc
|
376
|
+
- rakelib/lib/core/include/swigrubyrun.inc
|
377
|
+
- rakelib/lib/core/include/swigrun.inc
|
368
378
|
- rakelib/lib/core/mapping.rb
|
369
379
|
- rakelib/lib/core/package.rb
|
370
380
|
- rakelib/lib/core/parameter.rb
|
@@ -428,6 +438,8 @@ files:
|
|
428
438
|
- rakelib/lib/director/defs.rb
|
429
439
|
- rakelib/lib/director/derived_dc.rb
|
430
440
|
- rakelib/lib/director/dialog.rb
|
441
|
+
- rakelib/lib/director/dialup_event.rb
|
442
|
+
- rakelib/lib/director/dialup_manager.rb
|
431
443
|
- rakelib/lib/director/dir_filterlist_ctrl.rb
|
432
444
|
- rakelib/lib/director/dir_picker_ctrl.rb
|
433
445
|
- rakelib/lib/director/drag_image.rb
|
@@ -439,6 +451,8 @@ files:
|
|
439
451
|
- rakelib/lib/director/event_handler.rb
|
440
452
|
- rakelib/lib/director/event_loop.rb
|
441
453
|
- rakelib/lib/director/events.rb
|
454
|
+
- rakelib/lib/director/file_ctrl.rb
|
455
|
+
- rakelib/lib/director/file_ctrl_event.rb
|
442
456
|
- rakelib/lib/director/file_dialog_custom_control.rb
|
443
457
|
- rakelib/lib/director/file_dialog_customize_hook.rb
|
444
458
|
- rakelib/lib/director/file_picker_ctrl.rb
|
@@ -549,6 +563,7 @@ files:
|
|
549
563
|
- rakelib/lib/director/richtext_printing.rb
|
550
564
|
- rakelib/lib/director/richtext_style_listbox.rb
|
551
565
|
- rakelib/lib/director/richtext_style_organiser_dialog.rb
|
566
|
+
- rakelib/lib/director/sash_event.rb
|
552
567
|
- rakelib/lib/director/sash_layout_event.rb
|
553
568
|
- rakelib/lib/director/sash_layout_window.rb
|
554
569
|
- rakelib/lib/director/sash_window.rb
|
@@ -606,6 +621,7 @@ files:
|
|
606
621
|
- rakelib/lib/generate/doc.rb
|
607
622
|
- rakelib/lib/generate/doc/about_dialog_info.yaml
|
608
623
|
- rakelib/lib/generate/doc/accelerator.yaml
|
624
|
+
- rakelib/lib/generate/doc/animation_ctrl.yaml
|
609
625
|
- rakelib/lib/generate/doc/art_provider.yaml
|
610
626
|
- rakelib/lib/generate/doc/aui_manager.yaml
|
611
627
|
- rakelib/lib/generate/doc/bitmap.yaml
|
@@ -1070,11 +1086,14 @@ files:
|
|
1070
1086
|
- tests/lib/wxapp_runner.rb
|
1071
1087
|
- tests/lib/wxframe_runner.rb
|
1072
1088
|
- tests/test_app_event_filter.rb
|
1089
|
+
- tests/test_app_exit_exception.rb
|
1090
|
+
- tests/test_app_init_exception.rb
|
1073
1091
|
- tests/test_app_traits.rb
|
1074
1092
|
- tests/test_art.rb
|
1075
1093
|
- tests/test_art_provider.rb
|
1076
1094
|
- tests/test_aui.rb
|
1077
1095
|
- tests/test_basic.rb
|
1096
|
+
- tests/test_book_controls.rb
|
1078
1097
|
- tests/test_box_sizer.rb
|
1079
1098
|
- tests/test_clipboard.rb
|
1080
1099
|
- tests/test_config.rb
|
@@ -1082,6 +1101,7 @@ files:
|
|
1082
1101
|
- tests/test_dialog.rb
|
1083
1102
|
- tests/test_event_handling.rb
|
1084
1103
|
- tests/test_events.rb
|
1104
|
+
- tests/test_exceptions.rb
|
1085
1105
|
- tests/test_ext_controls.rb
|
1086
1106
|
- tests/test_file_dialog.rb
|
1087
1107
|
- tests/test_font.rb
|
@@ -1094,6 +1114,7 @@ files:
|
|
1094
1114
|
- tests/test_log.rb
|
1095
1115
|
- tests/test_proof_check.rb
|
1096
1116
|
- tests/test_richtext.rb
|
1117
|
+
- tests/test_sizer.rb
|
1097
1118
|
- tests/test_std_controls.rb
|
1098
1119
|
- tests/test_timer.rb
|
1099
1120
|
- tests/test_variant.rb
|