wxruby3 1.2.1 → 1.3.0

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.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/ext/wxruby3/swig/custom/director.swg +6 -20
  3. data/lib/wx/core/animation.rb +35 -14
  4. data/lib/wx/core/choicedlg.rb +7 -10
  5. data/lib/wx/core/colour.rb +10 -0
  6. data/lib/wx/core/dialog.rb +2 -2
  7. data/lib/wx/core/event.rb +7 -0
  8. data/lib/wx/core/file_dialog.rb +25 -0
  9. data/lib/wx/core/gdi_object.rb +24 -0
  10. data/lib/wx/core/object.rb +26 -11
  11. data/lib/wx/core/variant.rb +108 -51
  12. data/lib/wx/doc/colour.rb +12 -0
  13. data/lib/wx/doc/evthandler.rb +6 -0
  14. data/lib/wx/doc/functions.rb +35 -3
  15. data/lib/wx/doc/gdi_object.rb +22 -0
  16. data/lib/wx/doc/object.rb +24 -0
  17. data/lib/wx/doc/variant.rb +8 -0
  18. data/lib/wx/helpers.rb +2 -3
  19. data/lib/wx/keyword_defs.rb +7 -0
  20. data/lib/wx/version.rb +1 -1
  21. data/rakelib/lib/config.rb +1 -1
  22. data/rakelib/lib/core/include/funcall.inc +9 -24
  23. data/rakelib/lib/core/include/swigdirector.inc +29 -11
  24. data/rakelib/lib/director/animation_ctrl.rb +6 -0
  25. data/rakelib/lib/director/defs.rb +3 -0
  26. data/rakelib/lib/director/dialog.rb +15 -7
  27. data/rakelib/lib/director/file_dialog_customize_hook.rb +77 -1
  28. data/rakelib/lib/director/functions.rb +0 -12
  29. data/rakelib/lib/director/validator.rb +7 -42
  30. data/rakelib/lib/generate/doc/credential_entry_dialog.yaml +10 -0
  31. data/rakelib/lib/generate/doc/generic_about_dialog.yaml +46 -0
  32. data/rakelib/lib/specs/interfaces.rb +2 -0
  33. data/rakelib/lib/swig_runner.rb +6 -3
  34. data/rakelib/lib/util/string.rb +7 -6
  35. data/samples/animate/anitest.rb +13 -9
  36. data/tests/lib/leaked_overload_exception_test.rb +25 -0
  37. data/tests/lib/leaked_process_event_exception_test.rb +33 -0
  38. data/tests/lib/leaked_queued_event_exception_test.rb +34 -0
  39. data/tests/lib/overload_type_exception_test.rb +25 -0
  40. data/tests/test_exceptions.rb +24 -24
  41. metadata +11 -2
@@ -0,0 +1,25 @@
1
+ # Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ #
3
+ # This software is released under the MIT license.
4
+
5
+ require_relative './wxframe_runner'
6
+
7
+ class DirectorTypeExceptionTests < WxRuby::Test::GUITests
8
+
9
+ class InvalidOutputSizer < Wx::BoxSizer
10
+
11
+ def calc_min
12
+ nil #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
+ frame_win.layout
22
+ frame_win.sizer = nil
23
+ end
24
+
25
+ end
@@ -2,40 +2,40 @@
2
2
  #
3
3
  # This software is released under the MIT license.
4
4
 
5
- require_relative './lib/wxframe_runner'
5
+ require 'test/unit'
6
+ require 'plat4m'
7
+ require 'open3'
6
8
 
7
- class DirectorExceptionTests < WxRuby::Test::GUITests
9
+ class DirectorExceptionTests < Test::Unit::TestCase
8
10
 
9
- class InvalidOutputSizer < Wx::BoxSizer
11
+ # Path to the currently running Ruby program
12
+ RUBY = ENV["RUBY"] || File.join(
13
+ RbConfig::CONFIG["bindir"],
14
+ RbConfig::CONFIG["ruby_install_name"] + RbConfig::CONFIG["EXEEXT"]).
15
+ sub(/.*\s.*/m, '"\&"')
10
16
 
11
- def calc_min
12
- Wx::Point.new(1,1) # expects Wx::Size
13
- end
17
+ OPTS = {
18
+ :err => (Plat4m.current.windows? ? 'NULL' : '/dev/null'), :out => (Plat4m.current.windows? ? 'NULL' : '/dev/null'),
19
+ }
14
20
 
21
+ def test_invalid_overload_type
22
+ assert_false(Kernel.system(RUBY, File.join(__dir__, 'lib/overload_type_exception_test.rb'), **OPTS))
23
+ assert_equal(254, $?.exitstatus)
15
24
  end
16
25
 
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
26
+ def test_leaked_exception_in_overload
27
+ assert_false(Kernel.system(RUBY, File.join(__dir__, 'lib/leaked_overload_exception_test.rb'), **OPTS))
28
+ assert_equal(255, $?.exitstatus)
23
29
  end
24
30
 
25
- class ExceptionSizer < Wx::BoxSizer
26
-
27
- def calc_min
28
- raise RuntimeError, 'AnyThing'
29
- end
30
-
31
+ def test_leaked_process_event_handling_exception
32
+ assert_false(Kernel.system(RUBY, File.join(__dir__, 'lib/leaked_process_event_exception_test.rb'), **OPTS))
33
+ assert_equal(1, $?.exitstatus)
31
34
  end
32
35
 
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
36
+ def test_leaked_queued_event_handling_exception
37
+ assert_false(Kernel.system(RUBY, File.join(__dir__, 'lib/leaked_queued_event_exception_test.rb'), **OPTS))
38
+ assert_equal(1, $?.exitstatus)
39
39
  end
40
40
 
41
41
  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: 1.2.1
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Corino
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-09-29 00:00:00.000000000 Z
11
+ date: 2024-10-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -184,6 +184,7 @@ files:
184
184
  - lib/wx/core/font.rb
185
185
  - lib/wx/core/functions.rb
186
186
  - lib/wx/core/gauge.rb
187
+ - lib/wx/core/gdi_object.rb
187
188
  - lib/wx/core/generic_validator.rb
188
189
  - lib/wx/core/genericdirctrl.rb
189
190
  - lib/wx/core/geometry.rb
@@ -276,6 +277,7 @@ files:
276
277
  - lib/wx/doc/functions.rb
277
278
  - lib/wx/doc/gc_dc.rb
278
279
  - lib/wx/doc/gdi_common.rb
280
+ - lib/wx/doc/gdi_object.rb
279
281
  - lib/wx/doc/generic_validator.rb
280
282
  - lib/wx/doc/geometry.rb
281
283
  - lib/wx/doc/graphics_context.rb
@@ -294,6 +296,7 @@ files:
294
296
  - lib/wx/doc/mirror_dc.rb
295
297
  - lib/wx/doc/notebook.rb
296
298
  - lib/wx/doc/num_validator.rb
299
+ - lib/wx/doc/object.rb
297
300
  - lib/wx/doc/owner_drawn_combobox.rb
298
301
  - lib/wx/doc/pen.rb
299
302
  - lib/wx/doc/persistence_manager.rb
@@ -707,6 +710,7 @@ files:
707
710
  - rakelib/lib/generate/doc/combo_ctrl.yaml
708
711
  - rakelib/lib/generate/doc/context_help_button.yaml
709
712
  - rakelib/lib/generate/doc/control.yaml
713
+ - rakelib/lib/generate/doc/credential_entry_dialog.yaml
710
714
  - rakelib/lib/generate/doc/cursor.yaml
711
715
  - rakelib/lib/generate/doc/data_object.yaml
712
716
  - rakelib/lib/generate/doc/dc.yaml
@@ -723,6 +727,7 @@ files:
723
727
  - rakelib/lib/generate/doc/frame.yaml
724
728
  - rakelib/lib/generate/doc/fs_file.yaml
725
729
  - rakelib/lib/generate/doc/gdi_common.yaml
730
+ - rakelib/lib/generate/doc/generic_about_dialog.yaml
726
731
  - rakelib/lib/generate/doc/graphics_context.yaml
727
732
  - rakelib/lib/generate/doc/graphics_object.yaml
728
733
  - rakelib/lib/generate/doc/grid_cell_attr.yaml
@@ -1110,6 +1115,10 @@ files:
1110
1115
  - tests/art/test_art/image/wxruby.png
1111
1116
  - tests/art/test_art/sample2.xpm
1112
1117
  - tests/lib/item_container_tests.rb
1118
+ - tests/lib/leaked_overload_exception_test.rb
1119
+ - tests/lib/leaked_process_event_exception_test.rb
1120
+ - tests/lib/leaked_queued_event_exception_test.rb
1121
+ - tests/lib/overload_type_exception_test.rb
1113
1122
  - tests/lib/text_entry_tests.rb
1114
1123
  - tests/lib/wxapp_runner.rb
1115
1124
  - tests/lib/wxframe_runner.rb