wxruby3 0.9.0.pre.beta.9 → 0.9.0.pre.beta.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/ext/wxruby3/include/wxruby-ScaledDC.h +549 -0
  3. data/ext/wxruby3/swig/mark_free_impl.i +0 -34
  4. data/ext/wxruby3/swig/wx.i +1 -1
  5. data/lib/wx/core/bitmap.rb +7 -0
  6. data/lib/wx/core/choice.rb +3 -0
  7. data/lib/wx/core/combobox.rb +3 -0
  8. data/lib/wx/core/controlwithitems.rb +98 -2
  9. data/lib/wx/core/data_object.rb +74 -6
  10. data/lib/wx/core/icon.rb +7 -1
  11. data/lib/wx/core/imagelist.rb +11 -0
  12. data/lib/wx/core/listbox.rb +3 -0
  13. data/lib/wx/core/point.rb +21 -10
  14. data/lib/wx/core/real_point.rb +21 -10
  15. data/lib/wx/core/rect.rb +2 -2
  16. data/lib/wx/core/size.rb +12 -5
  17. data/lib/wx/doc/data_object.rb +104 -0
  18. data/lib/wx/doc/gdi_common.rb +33 -5
  19. data/lib/wx/doc/progress_dialog.rb +37 -0
  20. data/lib/wx/doc/scaled_dc.rb +16 -0
  21. data/lib/wx/global_const.rb +4 -3
  22. data/lib/wx/version.rb +1 -1
  23. data/rakelib/lib/config/mingw.rb +3 -0
  24. data/rakelib/lib/core/include/init.inc +2 -2
  25. data/rakelib/lib/core/package.rb +3 -3
  26. data/rakelib/lib/core/spec.rb +2 -0
  27. data/rakelib/lib/director/ctrl_with_items.rb +29 -17
  28. data/rakelib/lib/director/data_object.rb +94 -0
  29. data/rakelib/lib/director/data_object_simple_base.rb +123 -0
  30. data/rakelib/lib/director/derived_dc.rb +38 -0
  31. data/rakelib/lib/director/dialog.rb +29 -54
  32. data/rakelib/lib/director/image_list.rb +3 -1
  33. data/rakelib/lib/director/preview_frame.rb +41 -0
  34. data/rakelib/lib/director/print_data.rb +5 -7
  35. data/rakelib/lib/specs/interfaces.rb +2 -0
  36. data/rakelib/lib/typemap/data_object_data.rb +13 -4
  37. data/samples/dialogs/dialogs.rb +70 -50
  38. data/samples/drawing/maths_images.rb +1 -1
  39. data/samples/sampler/ext.rb +3 -3
  40. data/samples/sampler/stc_editor.rb +19 -19
  41. data/samples/sampler/txt_editor.rb +2 -2
  42. data/samples/treectrl/treectrl.rb +32 -30
  43. data/tests/lib/wxapp_runner.rb +64 -0
  44. data/tests/test_basic.rb +0 -5
  45. data/tests/test_clipboard.rb +114 -17
  46. data/tests/test_dialog.rb +2 -13
  47. data/tests/test_event_handling.rb +2 -13
  48. data/tests/test_events.rb +2 -6
  49. data/tests/test_geometry.rb +54 -17
  50. data/tests/test_intl.rb +2 -15
  51. data/tests/test_item_data.rb +69 -15
  52. data/tests/test_variant.rb +1 -15
  53. data/tests/testapp.rb +0 -5
  54. data/tests/testapp_noframe.rb +0 -5
  55. metadata +8 -2
@@ -1,6 +1,5 @@
1
- require 'test/unit'
2
- require 'test/unit/ui/console/testrunner'
3
- require 'wx'
1
+
2
+ require_relative './lib/wxapp_runner'
4
3
 
5
4
  class TestTextData < Test::Unit::TestCase
6
5
  # Using an in-built class
@@ -31,7 +30,7 @@ class TestTextData < Test::Unit::TestCase
31
30
  Wx::Clipboard.open do | clip |
32
31
  clip.fetch td_3
33
32
  end
34
- assert_equal("", td_3.text)
33
+ assert_equal("", td_3.get_data_here)
35
34
  end
36
35
  end
37
36
 
@@ -66,6 +65,37 @@ class TestBitmapData < Test::Unit::TestCase
66
65
  end
67
66
 
68
67
  class TestDataObjectComposite < Test::Unit::TestCase
68
+ MY_INT_ARRAY_FORMAT = Wx::DataFormat.new('application/int_array_format')
69
+
70
+ class MySimpleIntArrayObject < Wx::DataObjectSimpleBase
71
+ def initialize(arr = nil)
72
+ super(MY_INT_ARRAY_FORMAT)
73
+ self.array = arr
74
+ end
75
+
76
+ def array
77
+ @arr
78
+ end
79
+
80
+ def array=(arr)
81
+ @arr = (arr || []).collect { |e| e.to_i }
82
+ end
83
+
84
+ # The default will do in this case but otherwise something like this:
85
+ # def _get_data_size
86
+ # @arr ? @arr.pack('i*').bytesize : 0
87
+ # end
88
+
89
+ def _get_data
90
+ @arr ? @arr.pack('i*') : nil
91
+ end
92
+
93
+ def _set_data(data)
94
+ @arr = data ? data.unpack('i*') : []
95
+ true
96
+ end
97
+ end
98
+
69
99
  def test_data_object_composite
70
100
  d_obj = Wx::DataObjectComposite.new
71
101
  d_txt = Wx::TextDataObject.new
@@ -80,6 +110,9 @@ class TestDataObjectComposite < Test::Unit::TestCase
80
110
  assert_equal( 2, d_txt.get_format_count(Wx::DataObject::Direction::Get) )
81
111
  assert_equal( 3, d_obj.get_format_count(Wx::DataObject::Direction::Get) )
82
112
  end
113
+ d_txt = nil
114
+
115
+ GC.start
83
116
 
84
117
  d_bmp = Wx::BitmapDataObject.new(bmp)
85
118
  Wx::Clipboard.open do | clip |
@@ -87,6 +120,8 @@ class TestDataObjectComposite < Test::Unit::TestCase
87
120
  clip.place d_bmp
88
121
  end
89
122
 
123
+ GC.start
124
+
90
125
  Wx::Clipboard.open do | clip |
91
126
  assert !clip.supported?( Wx::DF_TEXT )
92
127
  assert clip.supported?( Wx::DF_BITMAP )
@@ -94,6 +129,8 @@ class TestDataObjectComposite < Test::Unit::TestCase
94
129
  clip.fetch d_obj
95
130
  end
96
131
 
132
+ GC.start
133
+
97
134
  if Wx::PLATFORM == 'WXMSW'
98
135
  assert_equal d_obj.received_format.get_type, Wx::DF_DIB.get_type
99
136
  d_bmp = d_obj.get_object(Wx::DF_DIB)
@@ -112,6 +149,8 @@ class TestDataObjectComposite < Test::Unit::TestCase
112
149
  clip.place d_txt
113
150
  end
114
151
 
152
+ GC.start
153
+
115
154
  d_obj_2 = Wx::DataObjectComposite.new
116
155
  d_txt = Wx::TextDataObject.new
117
156
  d_obj_2.add d_txt
@@ -125,6 +164,8 @@ class TestDataObjectComposite < Test::Unit::TestCase
125
164
  clip.fetch d_obj_2
126
165
  end
127
166
 
167
+ GC.start
168
+
128
169
  assert_equal d_obj_2.received_format.get_type, d_txt.get_preferred_format(Wx::DataObject::Direction::Set).get_type
129
170
  if Wx::PLATFORM == 'WXMSW'
130
171
  d_txt = d_obj_2.get_object(Wx::DF_UNICODETEXT)
@@ -132,11 +173,58 @@ class TestDataObjectComposite < Test::Unit::TestCase
132
173
  d_txt = d_obj_2.get_object(Wx::DF_TEXT)
133
174
  end
134
175
  assert_equal d_txt.text, 'THE TEXT'
176
+
177
+ GC.start
178
+
179
+ d_obj_2 = Wx::DataObjectComposite.new
180
+ d_obj_2.add Wx::TextDataObject.new
181
+ d_obj_2.add MySimpleIntArrayObject.new([1,2,3,4,5])
182
+ if Wx::PLATFORM == 'WXMSW'
183
+ assert_equal( 2, d_obj_2.get_format_count(Wx::DataObject::Direction::Get) )
184
+ else
185
+ assert_equal( 3, d_obj_2.get_format_count(Wx::DataObject::Direction::Get) )
186
+ end
187
+
188
+ Wx::Clipboard.open do | clip |
189
+ clip.clear
190
+ clip.place d_obj_2
191
+ end
192
+
193
+ GC.start
194
+
195
+ d_iarr = MySimpleIntArrayObject.new
196
+ Wx::Clipboard.open do | clip |
197
+ assert clip.supported?(MY_INT_ARRAY_FORMAT)
198
+ clip.fetch d_iarr
199
+ end
200
+
201
+ assert_equal([1,2,3,4,5], d_iarr.array)
135
202
  end
136
203
  end
137
204
 
138
205
  class TestDataObject < Test::Unit::TestCase
139
206
  MY_CUSTOM_FORMAT = Wx::DataFormat.new('text/custom_format')
207
+ MY_CUSTOM_TEXT = Wx::DataFormat.new('text/custom_text')
208
+
209
+ class MySimpleDataObject < Wx::DataObjectSimpleBase
210
+ def initialize
211
+ super(MY_CUSTOM_TEXT)
212
+ @data = ''
213
+ end
214
+
215
+ def _get_data_size
216
+ @data.bytesize
217
+ end
218
+
219
+ def _get_data
220
+ @data
221
+ end
222
+
223
+ def _set_data(data)
224
+ @data = data ? data : ''
225
+ true
226
+ end
227
+ end
140
228
 
141
229
  class MyBasicDataObject < Wx::DataObject
142
230
  attr_reader :my_data
@@ -187,9 +275,9 @@ class TestDataObject < Test::Unit::TestCase
187
275
  def get_data_size(format)
188
276
  case format.get_type
189
277
  when Wx::DataFormatId::DF_TEXT
190
- get_as_text.to_s.size
278
+ get_as_text.to_s.bytesize
191
279
  when MY_CUSTOM_FORMAT.get_type
192
- get_formatted.to_s.size
280
+ get_formatted.to_s.bytesize
193
281
  else
194
282
  0
195
283
  end
@@ -208,17 +296,35 @@ class TestDataObject < Test::Unit::TestCase
208
296
  end
209
297
  end
210
298
 
299
+ def test_simple_data_obj
300
+ d_obj = MySimpleDataObject.new
301
+ d_obj.set_data('Simple Data')
302
+ assert_equal( 1, d_obj.get_format_count )
303
+ assert_equal('Simple Data', d_obj.get_data_here )
304
+
305
+ Wx::Clipboard.open do | clip |
306
+ clip.place d_obj
307
+ end
308
+
309
+ d_obj2 = MySimpleDataObject.new
310
+ Wx::Clipboard.open do | clip |
311
+ assert clip.supported?( d_obj2.get_format )
312
+ clip.fetch d_obj2
313
+ end
314
+ assert_equal('Simple Data', d_obj2.get_data_here )
315
+ end
316
+
211
317
  def test_data_obj
212
318
  d_obj = MyBasicDataObject.new
213
319
  d_obj.set_data(Wx::DF_TEXT, 'HELLO')
214
- assert_equal( 2, d_obj.get_format_count(0) )
320
+ assert_equal( 2, d_obj.get_format_count(Wx::DataObject::Direction::Get) )
215
321
  assert_equal('HELLO', d_obj.get_data_here(Wx::DF_TEXT) )
216
322
  assert_equal('<b>HELLO</b>', d_obj.get_data_here(MY_CUSTOM_FORMAT) )
217
323
 
218
324
  Wx::Clipboard.open do | clip |
219
325
  clip.place d_obj
220
326
  end
221
-
327
+
222
328
  d_obj_2 = MyBasicDataObject.new
223
329
  Wx::Clipboard.open do | clip |
224
330
  assert clip.supported?( Wx::DF_TEXT )
@@ -230,12 +336,3 @@ class TestDataObject < Test::Unit::TestCase
230
336
  assert_equal('HELLO', d_obj_2.get_data_here(Wx::DF_TEXT) )
231
337
  end
232
338
  end
233
-
234
- Wx::App.run do
235
- # Must run whilst App is alive
236
- Test::Unit::UI::Console::TestRunner.run(TestTextData)
237
- Test::Unit::UI::Console::TestRunner.run(TestBitmapData)
238
- Test::Unit::UI::Console::TestRunner.run(TestDataObjectComposite)
239
- Test::Unit::UI::Console::TestRunner.run(TestDataObject)
240
- false
241
- end
data/tests/test_dialog.rb CHANGED
@@ -1,6 +1,5 @@
1
- require 'test/unit'
2
- require 'test/unit/ui/console/testrunner'
3
- require 'wx'
1
+
2
+ require_relative './lib/wxapp_runner'
4
3
 
5
4
  class DialogTests < Test::Unit::TestCase
6
5
 
@@ -16,13 +15,3 @@ class DialogTests < Test::Unit::TestCase
16
15
  assert_kind_of(Wx::Window, dlg)
17
16
  end
18
17
  end
19
-
20
- class TestApp < Wx::App
21
- def on_init
22
- Test::Unit::UI::Console::TestRunner.run(DialogTests)
23
- false
24
- end
25
- end
26
-
27
- app = TestApp.new
28
- app.run
@@ -1,6 +1,5 @@
1
- require 'test/unit'
2
- require 'test/unit/ui/console/testrunner'
3
- require 'wx'
1
+
2
+ require_relative './lib/wxapp_runner'
4
3
 
5
4
  class EventHandlingTests < Test::Unit::TestCase
6
5
 
@@ -91,13 +90,3 @@ class EventHandlingTests < Test::Unit::TestCase
91
90
  assert_boolean(!win.child.test_cmd_event)
92
91
  end
93
92
  end
94
-
95
- class TestApp < Wx::App
96
- def on_init
97
- Test::Unit::UI::Console::TestRunner.run(EventHandlingTests)
98
- false
99
- end
100
- end
101
-
102
- app = TestApp.new
103
- app.run
data/tests/test_events.rb CHANGED
@@ -1,6 +1,5 @@
1
- require 'test/unit'
2
- require 'test/unit/ui/console/testrunner'
3
- require 'wx'
1
+
2
+ require_relative './lib/wxapp_runner'
4
3
 
5
4
  class EventTests < Test::Unit::TestCase
6
5
 
@@ -40,6 +39,3 @@ class TestApp < Wx::App
40
39
  false
41
40
  end
42
41
  end
43
-
44
- app = TestApp.new
45
- app.run
@@ -12,9 +12,9 @@ class GeometryTests < Test::Unit::TestCase
12
12
  assert_equal(10, w)
13
13
  assert_equal(20, h)
14
14
 
15
- assert(sz == Wx::Size.new(w,h))
16
- assert(sz == [w,h])
17
- assert_raise(TypeError) { sz == '10, 20' }
15
+ assert_equal(sz, Wx::Size.new(w,h))
16
+ assert_equal(sz, [w,h])
17
+ assert_not_equal(sz,'10, 20' )
18
18
 
19
19
  assert(sz.eql? Wx::Size.new(w,h))
20
20
  refute(sz.eql?([w,h]))
@@ -30,6 +30,20 @@ class GeometryTests < Test::Unit::TestCase
30
30
  assert(Wx::Size.new(12,22).eql?(sz + 2))
31
31
  assert(Wx::Size.new(12,23).eql?(sz + Wx::Size.new(2,3)))
32
32
  assert(Wx::Size.new(12,23).eql?(sz + [2,3]))
33
+
34
+ small_sz = Wx::Size.new(10, 10)
35
+ medium_sz = Wx::Size.new(20, 20)
36
+ large_sz = Wx::Size.new(30, 30)
37
+ a = [large_sz, small_sz, medium_sz]
38
+ a.sort!
39
+ assert_equal(a[0], small_sz)
40
+ assert_equal(a[1], medium_sz)
41
+ assert_equal(a[2], large_sz)
42
+
43
+ h = {large_sz => 'Large', small_sz => 'Small', medium_sz => 'Medium'}
44
+ assert_equal(h[Wx::Size.new(10, 10)], 'Small')
45
+ assert_equal(h[Wx::Size.new(20, 20)], 'Medium')
46
+ assert_equal(h[Wx::Size.new(30, 30)], 'Large')
33
47
  end
34
48
 
35
49
  def test_point
@@ -41,9 +55,9 @@ class GeometryTests < Test::Unit::TestCase
41
55
  assert_equal(10, x)
42
56
  assert_equal(20, y)
43
57
 
44
- assert(pt == Wx::Point.new(x,y))
45
- assert(pt == [x,y])
46
- assert_raise(TypeError) { pt == '10, 20' }
58
+ assert_equal(pt, Wx::Point.new(x,y))
59
+ assert_equal(pt, [x,y])
60
+ assert_not_equal(pt, '10, 20')
47
61
 
48
62
  assert(pt.eql? Wx::Point.new(x,y))
49
63
  refute(pt.eql?([x,y]))
@@ -61,6 +75,20 @@ class GeometryTests < Test::Unit::TestCase
61
75
  assert(Wx::Point.new(12,23).eql?(pt + Wx::Point.new(2,3)))
62
76
  assert(Wx::Point.new(12,23).eql?(pt + Wx::Size.new(2,3)))
63
77
  assert(Wx::Point.new(12,23).eql?(pt + [2,3]))
78
+
79
+ nearest_pt = Wx::Point.new(10, 10)
80
+ mid_pt = Wx::Point.new(10, 20)
81
+ furthest_pt = Wx::Point.new(10, 30)
82
+ a = [furthest_pt, nearest_pt, mid_pt]
83
+ a.sort!
84
+ assert_equal(a[0], nearest_pt)
85
+ assert_equal(a[1], mid_pt)
86
+ assert_equal(a[2], furthest_pt)
87
+
88
+ h = {furthest_pt => 'Far', nearest_pt => 'Near', mid_pt => 'Mid'}
89
+ assert_equal(h[Wx::Point.new(10, 10)], 'Near')
90
+ assert_equal(h[Wx::Point.new(10, 20)], 'Mid')
91
+ assert_equal(h[Wx::Point.new(10, 30)], 'Far')
64
92
  end
65
93
 
66
94
  def test_real_point
@@ -72,9 +100,9 @@ class GeometryTests < Test::Unit::TestCase
72
100
  assert_equal(10.0, x)
73
101
  assert_equal(20.0, y)
74
102
 
75
- assert(pt == Wx::RealPoint.new(x,y))
76
- assert(pt == [x,y])
77
- assert_raise(TypeError) { pt == '10.0, 20.0' }
103
+ assert_equal(pt, Wx::RealPoint.new(x,y))
104
+ assert_equal(pt, [x,y])
105
+ assert_not_equal(pt, '10.0, 20.0')
78
106
 
79
107
  assert(pt.eql? Wx::RealPoint.new(x,y))
80
108
  refute(pt.eql?([x,y]))
@@ -94,6 +122,20 @@ class GeometryTests < Test::Unit::TestCase
94
122
  assert(Wx::RealPoint.new(12.0,23.0).eql?(pt + Wx::Point.new(2,3)))
95
123
  assert(Wx::RealPoint.new(12.0,23.0).eql?(pt + Wx::Size.new(2,3)))
96
124
  assert(Wx::RealPoint.new(12.0,23.0).eql?(pt + [2,3]))
125
+
126
+ nearest_pt = Wx::RealPoint.new(10, 10)
127
+ mid_pt = Wx::RealPoint.new(10, 20)
128
+ furthest_pt = Wx::RealPoint.new(10, 30)
129
+ a = [furthest_pt, nearest_pt, mid_pt]
130
+ a.sort!
131
+ assert_equal(a[0], nearest_pt)
132
+ assert_equal(a[1], mid_pt)
133
+ assert_equal(a[2], furthest_pt)
134
+
135
+ h = {furthest_pt => 'Far', nearest_pt => 'Near', mid_pt => 'Mid'}
136
+ assert_equal(h[Wx::RealPoint.new(10, 10)], 'Near')
137
+ assert_equal(h[Wx::RealPoint.new(10, 20)], 'Mid')
138
+ assert_equal(h[Wx::RealPoint.new(10, 30)], 'Far')
97
139
  end
98
140
 
99
141
  def test_rect
@@ -113,9 +155,9 @@ class GeometryTests < Test::Unit::TestCase
113
155
  assert_equal(100, w)
114
156
  assert_equal(300, h)
115
157
 
116
- assert(rect == Wx::Rect.new(x,y,w,h))
117
- assert(rect == [x,y,w,h])
118
- assert_raise(TypeError) { rect == '10,0,20,0' }
158
+ assert_equal(rect, Wx::Rect.new(x,y,w,h))
159
+ assert_equal(rect, [x,y,w,h])
160
+ assert_not_equal(rect, '10,0,20,0')
119
161
 
120
162
  assert(rect.eql? Wx::Rect.new(x,y,w,h))
121
163
  refute(rect.eql?([x,y,w,h]))
@@ -134,8 +176,3 @@ class GeometryTests < Test::Unit::TestCase
134
176
  end
135
177
 
136
178
  end
137
-
138
- if $0 == __FILE__
139
- require 'test/unit/ui/console/testrunner'
140
- Test::Unit::UI::Console::TestRunner.run(GeometryTests)
141
- end
data/tests/test_intl.rb CHANGED
@@ -1,14 +1,5 @@
1
- require 'test/unit'
2
- require 'test/unit/ui/console/testrunner'
3
- require 'wx'
4
-
5
- class TestApp < Wx::App
6
- attr_accessor :test_class
7
- def on_init
8
- Test::Unit::UI::Console::TestRunner.run(self.test_class)
9
- false # exit after tests
10
- end
11
- end
1
+
2
+ require_relative './lib/wxapp_runner'
12
3
 
13
4
  class TestInternationalisation < Test::Unit::TestCase
14
5
  def test_encodings
@@ -101,7 +92,3 @@ class TestInternationalisation < Test::Unit::TestCase
101
92
  locale = Wx::Locale.new(Wx::LANGUAGE_DEFAULT)
102
93
  end
103
94
  end
104
-
105
- app = TestApp.new
106
- app.test_class = TestInternationalisation
107
- app.run
@@ -1,14 +1,5 @@
1
- require 'test/unit'
2
- require 'test/unit/ui/console/testrunner'
3
- require 'wx'
4
-
5
- class TestApp < Wx::App
6
- attr_accessor :test_class
7
- def on_init
8
- Test::Unit::UI::Console::TestRunner.run(self.test_class)
9
- false
10
- end
11
- end
1
+
2
+ require_relative './lib/wxapp_runner'
12
3
 
13
4
  class CtrlContainerFrame < Wx::Frame
14
5
  attr_accessor :control
@@ -31,6 +22,73 @@ class TestItemData < Test::Unit::TestCase
31
22
  assert_retrievable_data(f.control, 0, { 'b' => 'B' })
32
23
  assert_retrievable_data(f.control, 1, 'string item data')
33
24
  assert_retrievable_data(f.control, 2, 42.3)
25
+
26
+ GC.start
27
+
28
+ # single item append; no data
29
+ f.control.append('integer')
30
+ assert_equal(4, f.control.count)
31
+ assert_equal('integer', f.control.get_string(3))
32
+ assert_equal(nil, f.control.get_item_data(3))
33
+
34
+ # single item append; with data
35
+ f.control.append('array', 110)
36
+ assert_equal(5, f.control.count)
37
+ assert_equal('array', f.control.get_string(4))
38
+ assert_equal(110, f.control.get_item_data(4))
39
+
40
+ # array item append; no data
41
+ f.control.append(%w[set tree bag])
42
+ assert_equal(8, f.control.count)
43
+ assert_equal(nil, f.control.get_item_data(5))
44
+ assert_equal(nil, f.control.get_item_data(7))
45
+
46
+ # array item append; with data
47
+ f.control.append(%w[object module class], ['O', 'M', 'C'])
48
+ assert_equal(11, f.control.count)
49
+ assert_equal('O', f.control.get_item_data(8))
50
+ assert_equal('C', f.control.get_item_data(10))
51
+
52
+ GC.start
53
+
54
+ # single item insert; no data
55
+ f.control.insert('integer2', 3)
56
+ assert_equal(12, f.control.count)
57
+ assert_equal('integer2', f.control.get_string(3))
58
+ assert_equal(nil, f.control.get_item_data(3))
59
+
60
+ # single item insert; with data
61
+ f.control.insert('array2', 4, 110)
62
+ assert_equal(13, f.control.count)
63
+ assert_equal('array2', f.control.get_string(4))
64
+ assert_equal(110, f.control.get_item_data(4))
65
+
66
+ # array item insert; no data
67
+ f.control.insert(%w[set2 tree2 bag2], 5)
68
+ assert_equal(16, f.control.count)
69
+ assert_equal(nil, f.control.get_item_data(5))
70
+ assert_equal(nil, f.control.get_item_data(7))
71
+
72
+ # array item insert; with data
73
+ f.control.insert(%w[object2 module2 class2], 8, ['O', 'M', 'C'])
74
+ assert_equal(19, f.control.count)
75
+ assert_equal('O', f.control.get_item_data(8))
76
+ assert_equal('C', f.control.get_item_data(10))
77
+
78
+ GC.start
79
+
80
+ # item delete
81
+ f.control.delete(8)
82
+ assert_equal(18, f.control.count)
83
+ assert_equal('M', f.control.get_item_data(8))
84
+
85
+ GC.start
86
+
87
+ # clear all
88
+ f.control.clear
89
+ assert_equal(0, f.control.count)
90
+
91
+ GC.start
34
92
  end
35
93
 
36
94
  def test_treectrl_itemdata
@@ -114,7 +172,3 @@ class TestItemData < Test::Unit::TestCase
114
172
  f.close(true)
115
173
  end
116
174
  end
117
-
118
- app = TestApp.new
119
- app.test_class = TestItemData
120
- app.run
@@ -1,15 +1,5 @@
1
- require 'test/unit'
2
- require 'test/unit/ui/console/testrunner'
3
- require 'wx'
4
1
 
5
- class TestApp < Wx::App
6
- attr_accessor :test_class
7
- def on_init
8
- Test::Unit::UI::Console::TestRunner.run(self.test_class)
9
- GC.start
10
- false # exit after tests
11
- end
12
- end
2
+ require_relative './lib/wxapp_runner'
13
3
 
14
4
  class TestVariant < Test::Unit::TestCase
15
5
 
@@ -145,7 +135,3 @@ class TestVariant < Test::Unit::TestCase
145
135
  end
146
136
 
147
137
  end
148
-
149
- app = TestApp.new
150
- app.test_class = TestVariant
151
- app.run
data/tests/testapp.rb CHANGED
@@ -33,8 +33,3 @@ class TestApp < Test::Unit::TestCase
33
33
  assert(o.did_call_on_exit, "didn't call on_exit?")
34
34
  end
35
35
  end
36
-
37
- if $0 == __FILE__
38
- require 'test/unit/ui/console/testrunner'
39
- Test::Unit::UI::Console::TestRunner.run(TestApp)
40
- end
@@ -21,8 +21,3 @@ class TestApp < Test::Unit::TestCase
21
21
  end
22
22
 
23
23
  end
24
-
25
- if $0 == __FILE__
26
- require 'test/unit/ui/console/testrunner'
27
- Test::Unit::UI::Console::TestRunner.run(TestApp)
28
- 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.0.pre.beta.9
4
+ version: 0.9.0.pre.beta.11
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-04-28 00:00:00.000000000 Z
11
+ date: 2023-05-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -81,6 +81,7 @@ files:
81
81
  - README.md
82
82
  - bin/wxruby
83
83
  - ext/mkrf_conf_srcgem.rb
84
+ - ext/wxruby3/include/wxruby-ScaledDC.h
84
85
  - ext/wxruby3/include/wxruby-runtime.h
85
86
  - ext/wxruby3/swig/RubyStockObjects.i
86
87
  - ext/wxruby3/swig/common.i
@@ -167,6 +168,7 @@ files:
167
168
  - lib/wx/doc/aui/auinotebook.rb
168
169
  - lib/wx/doc/colour_dialog.rb
169
170
  - lib/wx/doc/core.rb
171
+ - lib/wx/doc/data_object.rb
170
172
  - lib/wx/doc/dc.rb
171
173
  - lib/wx/doc/enum.rb
172
174
  - lib/wx/doc/evthandler.rb
@@ -190,6 +192,7 @@ files:
190
192
  - lib/wx/doc/pg/pgeditor.rb
191
193
  - lib/wx/doc/pg/property_grid.rb
192
194
  - lib/wx/doc/pg/property_grid_interface.rb
195
+ - lib/wx/doc/progress_dialog.rb
193
196
  - lib/wx/doc/prt/page_setup_dialog.rb
194
197
  - lib/wx/doc/prt/print_data.rb
195
198
  - lib/wx/doc/prt/print_dialog.rb
@@ -199,6 +202,7 @@ files:
199
202
  - lib/wx/doc/rbn/ribbon_gallery.rb
200
203
  - lib/wx/doc/rbn/ribbon_tool_bar.rb
201
204
  - lib/wx/doc/rtc/richtext_printing.rb
205
+ - lib/wx/doc/scaled_dc.rb
202
206
  - lib/wx/doc/screen_dc.rb
203
207
  - lib/wx/doc/stock_objects.rb
204
208
  - lib/wx/doc/stream.rb
@@ -324,6 +328,7 @@ files:
324
328
  - rakelib/lib/director/cursor.rb
325
329
  - rakelib/lib/director/data_format.rb
326
330
  - rakelib/lib/director/data_object.rb
331
+ - rakelib/lib/director/data_object_simple_base.rb
327
332
  - rakelib/lib/director/date_event.rb
328
333
  - rakelib/lib/director/date_picker_ctrl.rb
329
334
  - rakelib/lib/director/dc.rb
@@ -816,6 +821,7 @@ files:
816
821
  - samples/xrc/samples.xrc
817
822
  - samples/xrc/tn_xrc_sample.png
818
823
  - samples/xrc/xrc_sample.rb
824
+ - tests/lib/wxapp_runner.rb
819
825
  - tests/test_basic.rb
820
826
  - tests/test_clipboard.rb
821
827
  - tests/test_dialog.rb