fxruby 1.6.29-x86-mingw32 → 1.6.30-x86-mingw32

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 (80) hide show
  1. checksums.yaml +4 -4
  2. data/History.txt +11 -0
  3. data/Manifest.txt +5 -0
  4. data/Rakefile +8 -2
  5. data/examples/gltest.rb +0 -7
  6. data/examples/groupbox.rb +5 -3
  7. data/examples/thread.rb +55 -0
  8. data/ext/fox16_c/FXRbApp.cpp +67 -5
  9. data/ext/fox16_c/FXRuby.cpp +142 -110
  10. data/ext/fox16_c/extconf.rb +36 -28
  11. data/ext/fox16_c/gvl_wrappers.cpp +12 -0
  12. data/ext/fox16_c/include/FXRbApp.h +41 -6
  13. data/ext/fox16_c/include/FXRbBitmap.h +12 -12
  14. data/ext/fox16_c/include/FXRbCommon.h +3 -0
  15. data/ext/fox16_c/include/FXRbCursor.h +2 -2
  16. data/ext/fox16_c/include/FXRbDC.h +62 -62
  17. data/ext/fox16_c/include/FXRbDialogBox.h +2 -2
  18. data/ext/fox16_c/include/FXRbDockBar.h +3 -3
  19. data/ext/fox16_c/include/FXRbDockSite.h +4 -4
  20. data/ext/fox16_c/include/FXRbDrawable.h +1 -1
  21. data/ext/fox16_c/include/FXRbFileDict.h +3 -3
  22. data/ext/fox16_c/include/FXRbFoldingList.h +28 -28
  23. data/ext/fox16_c/include/FXRbFont.h +18 -18
  24. data/ext/fox16_c/include/FXRbGLCanvas.h +4 -4
  25. data/ext/fox16_c/include/FXRbGLObject.h +8 -8
  26. data/ext/fox16_c/include/FXRbGLShape.h +1 -1
  27. data/ext/fox16_c/include/FXRbGLViewer.h +3 -3
  28. data/ext/fox16_c/include/FXRbHeader.h +7 -7
  29. data/ext/fox16_c/include/FXRbIconList.h +28 -28
  30. data/ext/fox16_c/include/FXRbIconSource.h +12 -12
  31. data/ext/fox16_c/include/FXRbId.h +3 -3
  32. data/ext/fox16_c/include/FXRbImage.h +19 -19
  33. data/ext/fox16_c/include/FXRbList.h +21 -21
  34. data/ext/fox16_c/include/FXRbListBox.h +1 -1
  35. data/ext/fox16_c/include/FXRbMDIChild.h +4 -4
  36. data/ext/fox16_c/include/FXRbMDIClient.h +4 -4
  37. data/ext/fox16_c/include/FXRbObject.h +2 -2
  38. data/ext/fox16_c/include/FXRbPopup.h +2 -2
  39. data/ext/fox16_c/include/FXRbRealSpinner.h +1 -1
  40. data/ext/fox16_c/include/FXRbScrollArea.h +4 -4
  41. data/ext/fox16_c/include/FXRbShutter.h +1 -1
  42. data/ext/fox16_c/include/FXRbSpinner.h +1 -1
  43. data/ext/fox16_c/include/FXRbStream.h +3 -3
  44. data/ext/fox16_c/include/FXRbTabBar.h +1 -1
  45. data/ext/fox16_c/include/FXRbTable.h +53 -53
  46. data/ext/fox16_c/include/FXRbText.h +23 -23
  47. data/ext/fox16_c/include/FXRbTopWindow.h +5 -5
  48. data/ext/fox16_c/include/FXRbTranslator.h +1 -1
  49. data/ext/fox16_c/include/FXRbTreeList.h +28 -28
  50. data/ext/fox16_c/include/FXRbTreeListBox.h +1 -1
  51. data/ext/fox16_c/include/FXRbWindow.h +31 -31
  52. data/ext/fox16_c/include/FXRuby.h +200 -94
  53. data/ext/fox16_c/include/gvl_wrappers.h +594 -0
  54. data/lib/1.8/fox16_c.so +0 -0
  55. data/lib/1.9/fox16_c.so +0 -0
  56. data/lib/2.0/fox16_c.so +0 -0
  57. data/lib/2.1/fox16_c.so +0 -0
  58. data/lib/2.2/fox16_c.so +0 -0
  59. data/lib/fox16.rb +1 -0
  60. data/lib/fox16/thread.rb +51 -0
  61. data/lib/fox16/version.rb +1 -1
  62. data/lib/x86-mingw32/libFOX-1.6-0.dll +0 -0
  63. data/lib/x86-mingw32/libfxscintilla-20.dll +0 -0
  64. data/lib/x86-mingw32/libgcc_s_sjlj-1.dll +0 -0
  65. data/lib/x86-mingw32/libjpeg-8.dll +0 -0
  66. data/lib/x86-mingw32/libpng15-15.dll +0 -0
  67. data/lib/x86-mingw32/libstdc++-6.dll +0 -0
  68. data/lib/x86-mingw32/libtiff-5.dll +0 -0
  69. data/lib/x86-mingw32/libwinpthread-1.dll +0 -0
  70. data/lib/x86-mingw32/zlib1.dll +0 -0
  71. data/rdoc-sources/FXApp.rb +5 -0
  72. data/rdoc-sources/FXId.rb +5 -0
  73. data/swig-interfaces/FXApp.i +14 -78
  74. data/swig-interfaces/macros.i +56 -0
  75. data/test/TC_FXApp.rb +60 -10
  76. data/test/TC_FXJPGImage.rb +47 -0
  77. metadata +24 -103
  78. checksums.yaml.gz.sig +0 -0
  79. data.tar.gz.sig +0 -0
  80. metadata.gz.sig +0 -0
data/lib/1.8/fox16_c.so CHANGED
Binary file
data/lib/1.9/fox16_c.so CHANGED
Binary file
data/lib/2.0/fox16_c.so CHANGED
Binary file
data/lib/2.1/fox16_c.so CHANGED
Binary file
data/lib/2.2/fox16_c.so CHANGED
Binary file
data/lib/fox16.rb CHANGED
@@ -28,3 +28,4 @@ require "fox16/execute_nonmodal"
28
28
  require "fox16/version"
29
29
  require "fox16/kwargs"
30
30
  require "fox16/exceptions_for_fxerror"
31
+ require "fox16/thread"
@@ -0,0 +1,51 @@
1
+ require 'thread'
2
+
3
+ module Fox
4
+
5
+ class FXApp
6
+
7
+ alias initialize_before_thread initialize # :nodoc:
8
+
9
+ def initialize(*args, &block)
10
+ initialize_before_thread(*args, &block)
11
+ event_handler_setup
12
+ end
13
+
14
+ def runOnUiThread(&block)
15
+ @event_handler_events << block
16
+ @event_handler_pwr.write 'e' if @event_handler_pwr
17
+ end
18
+
19
+ private
20
+
21
+ def event_handler_setup
22
+ if RUBY_PLATFORM =~ /mingw|mswin/i
23
+ require 'socket'
24
+ gs = TCPServer.open('localhost', 0)
25
+ prd = TCPSocket.open('localhost', gs.addr[1])
26
+ pwr = gs.accept
27
+ gs.close
28
+ else
29
+ prd, pwr = IO.pipe
30
+ end
31
+ self.addInput(prd, Fox::INPUT_READ){ event_handler_pull(prd) }
32
+ @event_handler_pwr = pwr
33
+ @event_handler_events = Queue.new
34
+ end
35
+
36
+ def event_handler_pull(prd)
37
+ prd.read(1) if prd
38
+ while !@event_handler_events.empty?
39
+ ev = @event_handler_events.shift
40
+ ev.call
41
+ end
42
+ end
43
+
44
+ end # class FXApp
45
+
46
+ class FXId
47
+ def runOnUiThread(&block)
48
+ app.runOnUiThread(&block)
49
+ end
50
+ end
51
+ end # module Fox
data/lib/fox16/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Fox
2
2
  def Fox.fxrubyversion
3
- "1.6.29"
3
+ "1.6.30"
4
4
  end
5
5
  end
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -538,5 +538,10 @@ module Fox
538
538
 
539
539
  # Check to see if multithreaded applications are supported
540
540
  def threadsEnabled?(); end
541
+
542
+ # Runs the specified block on the UI thread.
543
+ #
544
+ # The block is posted to the event queue of the UI thread.
545
+ def runOnUiThread(&block); end
541
546
  end
542
547
  end
data/rdoc-sources/FXId.rb CHANGED
@@ -30,5 +30,10 @@ module Fox
30
30
  # Destroy resource.
31
31
  #
32
32
  def destroy(); end
33
+
34
+ # Runs the specified block on the UI thread.
35
+ #
36
+ # The block is posted to the event queue of the UI thread.
37
+ def runOnUiThread(&block); end
33
38
  end
34
39
  end
@@ -357,18 +357,13 @@ public:
357
357
  */
358
358
  bool addInput(VALUE obj,FXuint mode,FXObject *tgt,FXSelector sel){
359
359
  FXInputHandle fd;
360
- FXuint m;
361
- if(mode&INPUT_READ){
362
- m=INPUT_READ;
363
- if(mode&INPUT_EXCEPT) m|=INPUT_EXCEPT;
364
- fd=FXRbGetReadFileHandle(obj);
365
- self->addInput(fd,m,tgt,sel);
360
+ if(mode&(INPUT_READ|INPUT_EXCEPT)){
361
+ fd=FXRbGetReadFileHandle(obj, mode);
362
+ self->addInput(fd,mode,tgt,sel);
366
363
  }
367
- if(mode&INPUT_WRITE){
368
- m=INPUT_WRITE;
369
- if(mode&INPUT_EXCEPT) m|=INPUT_EXCEPT;
370
- fd=FXRbGetWriteFileHandle(obj);
371
- self->addInput(fd,m,tgt,sel);
364
+ if(mode&(INPUT_WRITE|INPUT_EXCEPT)){
365
+ fd=FXRbGetWriteFileHandle(obj, mode);
366
+ self->addInput(fd,mode,tgt,sel);
372
367
  }
373
368
  return true;
374
369
  }
@@ -379,18 +374,15 @@ public:
379
374
  */
380
375
  bool removeInput(VALUE obj,FXuint mode){
381
376
  FXInputHandle fd;
382
- FXuint m;
383
- if(mode&INPUT_READ){
384
- m=INPUT_READ;
385
- if(mode&INPUT_EXCEPT) m|=INPUT_EXCEPT;
386
- fd=FXRbGetReadFileHandle(obj);
387
- self->removeInput(fd,m);
377
+ if(mode&INPUT_READ|INPUT_EXCEPT){
378
+ fd=FXRbGetReadFileHandle(obj, mode);
379
+ self->removeInput(fd,mode);
380
+ FXRbRemoveReadFileHandle(obj, mode);
388
381
  }
389
- if(mode&INPUT_WRITE){
390
- m=INPUT_WRITE;
391
- if(mode&INPUT_EXCEPT) m|=INPUT_EXCEPT;
392
- fd=FXRbGetWriteFileHandle(obj);
393
- self->removeInput(fd,m);
382
+ if(mode&(INPUT_WRITE|INPUT_EXCEPT)){
383
+ fd=FXRbGetWriteFileHandle(obj, mode);
384
+ self->removeInput(fd,mode);
385
+ FXRbRemoveWriteFileHandle(obj, mode);
394
386
  }
395
387
  return true;
396
388
  }
@@ -402,62 +394,6 @@ public:
402
394
  /// Peek to determine if there's an event
403
395
  bool peekEvent();
404
396
 
405
- /// Perform one event dispatch; return true if event was dispatched
406
- bool runOneEvent(bool blocking=true);
407
-
408
- /**
409
- * Run the main application event loop until stop() is called,
410
- * and return the exit code passed as argument to stop().
411
- */
412
- FXint run();
413
-
414
- /**
415
- * Run an event loop till some flag becomes non-zero, and
416
- * then return.
417
- */
418
- FXint runUntil(FXuint& condition); // FIXME
419
-
420
- /**
421
- * Run event loop while events are available, non-modally.
422
- * Return when no more events, timers, or chores are outstanding.
423
- */
424
- FXint runWhileEvents();
425
-
426
- /**
427
- * Run event loop while there are events are available in the queue.
428
- * Returns 1 when all events in the queue have been handled, and 0 when
429
- * the event loop was terminated due to stop() or stopModal().
430
- * Except for the modal window and its children, user input to all windows
431
- * is blocked; if the modal window is NULL, all user input is blocked.
432
- */
433
- FXint runModalWhileEvents(FXWindow* window=NULL);
434
-
435
- /**
436
- * Run modal event loop, blocking keyboard and mouse events to all windows
437
- * until stopModal is called.
438
- */
439
- FXint runModal();
440
-
441
- /**
442
- * Run a modal event loop for the given window, until stop() or stopModal() is
443
- * called. Except for the modal window and its children, user input to all
444
- * windows is blocked; if the modal window is NULL all user input is blocked.
445
- */
446
- FXint runModalFor(FXWindow* window);
447
-
448
- /**
449
- * Run modal while window is shown, or until stop() or stopModal() is called.
450
- * Except for the modal window and its children, user input to all windows
451
- * is blocked; if the modal window is NULL all user input is blocked.
452
- */
453
- FXint runModalWhileShown(FXWindow* window);
454
-
455
- /**
456
- * Run popup menu while shown, until stop() or stopModal() is called.
457
- * Also returns when entering previous cascading popup menu.
458
- */
459
- FXint runPopup(FXWindow* owner);
460
-
461
397
  /// True if the window is modal
462
398
  bool isModal(FXWindow* window) const;
463
399
 
@@ -31,6 +31,62 @@
31
31
  /// Detach application's windows
32
32
  virtual void detach();
33
33
 
34
+ /**
35
+ * Run the main application event loop until stop() is called,
36
+ * and return the exit code passed as argument to stop().
37
+ */
38
+ FXint run();
39
+
40
+ /// Perform one event dispatch; return true if event was dispatched
41
+ bool runOneEvent(bool blocking=true);
42
+
43
+ /**
44
+ * Run an event loop till some flag becomes non-zero, and
45
+ * then return.
46
+ */
47
+ FXint runUntil(FXuint& condition); // FIXME
48
+
49
+ /**
50
+ * Run event loop while events are available, non-modally.
51
+ * Return when no more events, timers, or chores are outstanding.
52
+ */
53
+ FXint runWhileEvents();
54
+
55
+ /**
56
+ * Run event loop while there are events are available in the queue.
57
+ * Returns 1 when all events in the queue have been handled, and 0 when
58
+ * the event loop was terminated due to stop() or stopModal().
59
+ * Except for the modal window and its children, user input to all windows
60
+ * is blocked; if the modal window is NULL, all user input is blocked.
61
+ */
62
+ FXint runModalWhileEvents(FXWindow* window=NULL);
63
+
64
+ /**
65
+ * Run modal event loop, blocking keyboard and mouse events to all windows
66
+ * until stopModal is called.
67
+ */
68
+ FXint runModal();
69
+
70
+ /**
71
+ * Run a modal event loop for the given window, until stop() or stopModal() is
72
+ * called. Except for the modal window and its children, user input to all
73
+ * windows is blocked; if the modal window is NULL all user input is blocked.
74
+ */
75
+ FXint runModalFor(FXWindow* window);
76
+
77
+ /**
78
+ * Run modal while window is shown, or until stop() or stopModal() is called.
79
+ * Except for the modal window and its children, user input to all windows
80
+ * is blocked; if the modal window is NULL all user input is blocked.
81
+ */
82
+ FXint runModalWhileShown(FXWindow* window);
83
+
84
+ /**
85
+ * Run popup menu while shown, until stop() or stopModal() is called.
86
+ * Also returns when entering previous cascading popup menu.
87
+ */
88
+ FXint runPopup(FXWindow* owner);
89
+
34
90
  /**
35
91
  * Initialize application.
36
92
  * Parses and removes common command line arguments, reads the registry.
data/test/TC_FXApp.rb CHANGED
@@ -7,9 +7,6 @@ class TC_FXApp < Test::Unit::TestCase
7
7
  include Fox
8
8
 
9
9
  def test_exception_for_second_app
10
- app = FXApp.new
11
- mainWindow = FXMainWindow.new(app, "")
12
- app.create
13
10
  assert_raise RuntimeError do
14
11
  app2 = FXApp.new
15
12
  end
@@ -33,14 +30,16 @@ class TC_FXApp2 < Fox::TestCase
33
30
  app.removeInput(pipe_wr, INPUT_WRITE)
34
31
 
35
32
  app.addInput(pipe_rd, INPUT_READ, app, FXApp::ID_QUIT)
36
- data_sent = false
37
- app.addTimeout(1) do
38
- data_sent = true
39
- pipe_wr.write " "
33
+ 2.times do
34
+ data_sent = false
35
+ app.addTimeout(1) do
36
+ data_sent = true
37
+ pipe_wr.write " "
38
+ end
39
+ app.run
40
+ assert data_sent, "the read input event shouldn't fire before some data is available"
41
+ assert " ", pipe_rd.read(1)
40
42
  end
41
- app.run
42
- assert data_sent, "the read input event shouldn't fire before some data is available"
43
-
44
43
  app.removeInput(pipe_rd, INPUT_READ)
45
44
  pipe_wr.close
46
45
  pipe_rd.close unless pipe_rd.closed?
@@ -50,6 +49,22 @@ class TC_FXApp2 < Fox::TestCase
50
49
  check_events *IO.pipe
51
50
  end
52
51
 
52
+ def test_addInput_on_socket_accept
53
+ s = TCPServer.open 'localhost', 0
54
+ app.addInput(s, INPUT_READ, app, FXApp::ID_QUIT)
55
+ 2.times do
56
+ pipe_wr = nil
57
+ app.addTimeout(1) do
58
+ pipe_wr = TCPSocket.open 'localhost', s.addr[1]
59
+ end
60
+ app.run
61
+ assert pipe_wr, "the read input event shouldn't fire before client connection happens"
62
+ s.accept.close
63
+ end
64
+ app.removeInput(s, INPUT_READ)
65
+ s.close
66
+ end
67
+
53
68
  def test_addInput_on_socket
54
69
  s = TCPServer.open 'localhost', 0
55
70
  pipe_wr = TCPSocket.open 'localhost', s.addr[1]
@@ -63,4 +78,39 @@ class TC_FXApp2 < Fox::TestCase
63
78
  pipe_rdwr = IO.popen("cat", "r+")
64
79
  check_events pipe_rdwr, pipe_rdwr
65
80
  end
81
+
82
+ def test_runOnUiThread
83
+ count = 0
84
+ thread = nil
85
+ Thread.new do
86
+ 10.times do |idx|
87
+ app.runOnUiThread do
88
+ count += 1
89
+ thread = Thread.current
90
+ app.stop if idx == 9
91
+ end
92
+ sleep 0.001
93
+ end
94
+ end
95
+ app.run
96
+
97
+ assert_equal Thread.current, thread
98
+ assert_equal 10, count
99
+ end
100
+
101
+ def test_runOnUiThread_same_thread
102
+ count = 0
103
+ app.addTimeout(1) do
104
+ 10.times do |idx|
105
+ app.runOnUiThread do
106
+ count += 1
107
+ app.stop if idx == 9
108
+ end
109
+ sleep 0.001
110
+ end
111
+ end
112
+ app.run
113
+
114
+ assert_equal 10, count
115
+ end
66
116
  end
@@ -0,0 +1,47 @@
1
+ require 'fox16'
2
+ require 'test/unit'
3
+ require 'testcase'
4
+ require 'openssl'
5
+
6
+ class TC_FXJPGImage < Fox::TestCase
7
+ include Fox
8
+
9
+ def setup
10
+ super(self.class.name)
11
+ end
12
+
13
+ def test_save_with_thread
14
+ w, h = 4000, 3000
15
+ img_data = OpenSSL::Random.random_bytes(w) * h * 4
16
+
17
+ count = 0
18
+ th = Thread.new do
19
+ loop do
20
+ count += 1
21
+ end
22
+ end
23
+
24
+ img = FXJPGImage.new(app)
25
+ img.setPixels( img_data, 0, w, h )
26
+
27
+ jpeg_data = FXMemoryStream.open(FXStreamSave, nil) do |outfile|
28
+ img.savePixels(outfile)
29
+ outfile.takeBuffer
30
+ end
31
+
32
+ assert_operator(count, :>=, 1000000)
33
+ assert_operator(jpeg_data.bytesize, :>=, 1000)
34
+
35
+ count = 0
36
+ img = FXJPGImage.new(app)
37
+ FXMemoryStream.open(FXStreamLoad, jpeg_data) do |infile|
38
+ img.loadPixels(infile)
39
+ end
40
+
41
+ th.kill
42
+
43
+ assert_equal 4000, img.width
44
+ assert_equal 3000, img.height
45
+ assert_operator(count, :>=, 1000000)
46
+ end
47
+ end
metadata CHANGED
@@ -1,37 +1,30 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fxruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.29
4
+ version: 1.6.30
5
5
  platform: x86-mingw32
6
6
  authors:
7
7
  - Lyle Johnson
8
8
  - Lars Kanis
9
9
  autorequire:
10
10
  bindir: bin
11
- cert_chain:
12
- - |
13
- -----BEGIN CERTIFICATE-----
14
- MIIDLjCCAhagAwIBAgIBAjANBgkqhkiG9w0BAQUFADA9MQ4wDAYDVQQDDAVrYW5p
15
- czEXMBUGCgmSJomT8ixkARkWB2NvbWNhcmQxEjAQBgoJkiaJk/IsZAEZFgJkZTAe
16
- Fw0xNDAyMjYwOTMzMDBaFw0xNTAyMjYwOTMzMDBaMD0xDjAMBgNVBAMMBWthbmlz
17
- MRcwFQYKCZImiZPyLGQBGRYHY29tY2FyZDESMBAGCgmSJomT8ixkARkWAmRlMIIB
18
- IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApop+rNmg35bzRugZ21VMGqI6
19
- HGzPLO4VHYncWn/xmgPU/ZMcZdfj6MzIaZJ/czXyt4eHpBk1r8QOV3gBXnRXEjVW
20
- 9xi+EdVOkTV2/AVFKThcbTAQGiF/bT1n2M+B1GTybRzMg6hyhOJeGPqIhLfJEpxn
21
- lJi4+ENAVT4MpqHEAGB8yFoPC0GqiOHQsdHxQV3P3c2OZqG+yJey74QtwA2tLcLn
22
- Q53c63+VLGsOjODl1yPn/2ejyq8qWu6ahfTxiIlSar2UbwtaQGBDFdb2CXgEufXT
23
- L7oaPxlmj+Q2oLOfOnInd2Oxop59HoJCQPsg8f921J43NCQGA8VHK6paxIRDLQID
24
- AQABozkwNzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUvgTdT7fe
25
- x17ugO3IOsjEJwW7KP4wDQYJKoZIhvcNAQEFBQADggEBAFmIAhRT0awqLQN9e4Uv
26
- ZEk+jUWv4zkb+TWiKFJXlwjPyjGbZY9gVfOwAwMibYOK/t/+57ZzW3d0L12OUwvo
27
- on84NVvYtIr1/iskJFWFkMoIquAFCdi9p68stSPMQK2XcrJJuRot29fJtropsZBa
28
- 2cpaNd/sRYdK4oep2usdKifA1lI0hIkPb3r5nLfwG2lAqBH7WZsUICHcTgR0VEbG
29
- z9Ug5qQp9Uz73xC9YdGvGiuOX53LYobHAR4MWi2xxDlHI+ER8mRz0eY2FUuNu/Wj
30
- GrqF74zpLl7/KFdHC8VmzwZS18hvDjxeLVuVI2gIGnBInqnlqv05g/l4/1pISh5j
31
- dS4=
32
- -----END CERTIFICATE-----
33
- date: 2015-02-17 00:00:00.000000000 Z
11
+ cert_chain: []
12
+ date: 2015-07-07 00:00:00.000000000 Z
34
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: mini_portile
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '0.6'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '0.6'
35
28
  - !ruby/object:Gem::Dependency
36
29
  name: rdoc
37
30
  requirement: !ruby/object:Gem::Requirement
@@ -203,6 +196,7 @@ files:
203
196
  - examples/textedit/helpwindow.rb
204
197
  - examples/textedit/prefdialog.rb
205
198
  - examples/textedit/textedit.rb
199
+ - examples/thread.rb
206
200
  - examples/unicode.rb
207
201
  - ext/fox16_c/FXRbApp.cpp
208
202
  - ext/fox16_c/FXRbDataTarget.cpp
@@ -215,6 +209,7 @@ files:
215
209
  - ext/fox16_c/extconf.rb
216
210
  - ext/fox16_c/frames_wrap.cpp
217
211
  - ext/fox16_c/fx3d_wrap.cpp
212
+ - ext/fox16_c/gvl_wrappers.cpp
218
213
  - ext/fox16_c/iconlist_wrap.cpp
219
214
  - ext/fox16_c/icons_wrap.cpp
220
215
  - ext/fox16_c/image_wrap.cpp
@@ -440,6 +435,7 @@ files:
440
435
  - ext/fox16_c/include/FXRbXPMIcon.h
441
436
  - ext/fox16_c/include/FXRbXPMImage.h
442
437
  - ext/fox16_c/include/FXRuby.h
438
+ - ext/fox16_c/include/gvl_wrappers.h
443
439
  - ext/fox16_c/include/impl.h
444
440
  - ext/fox16_c/include/inlinestubs.h
445
441
  - ext/fox16_c/label_wrap.cpp
@@ -490,6 +486,7 @@ files:
490
486
  - lib/fox16/settings.rb
491
487
  - lib/fox16/signal.rb
492
488
  - lib/fox16/splashscreen.rb
489
+ - lib/fox16/thread.rb
493
490
  - lib/fox16/timeout.rb
494
491
  - lib/fox16/tkcompat.rb
495
492
  - lib/fox16/undolist.rb
@@ -966,6 +963,7 @@ files:
966
963
  - test/TC_FXIconList.rb
967
964
  - test/TC_FXId.rb
968
965
  - test/TC_FXImage.rb
966
+ - test/TC_FXJPGImage.rb
969
967
  - test/TC_FXLight.rb
970
968
  - test/TC_FXList.rb
971
969
  - test/TC_FXListBox.rb
@@ -1045,85 +1043,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1045
1043
  version: '0'
1046
1044
  requirements: []
1047
1045
  rubyforge_project:
1048
- rubygems_version: 2.4.5
1046
+ rubygems_version: 2.4.8
1049
1047
  signing_key:
1050
1048
  specification_version: 4
1051
1049
  summary: FXRuby is the Ruby binding to the FOX GUI toolkit.
1052
- test_files:
1053
- - test/TC_FXWindow.rb
1054
- - test/TC_FXArc.rb
1055
- - test/TC_FXViewport.rb
1056
- - test/TC_FXText.rb
1057
- - test/TC_FXAccelTable.rb
1058
- - test/TC_FXTreeListBox.rb
1059
- - test/TC_FXMainWindow.rb
1060
- - test/TC_FXDirList.rb
1061
- - test/TC_FXVec3f.rb
1062
- - test/TC_FXBMPImage.rb
1063
- - test/TC_FXXPMImage.rb
1064
- - test/TC_FXRegion.rb
1065
- - test/TC_FXButton.rb
1066
- - test/TC_FXGLViewer.rb
1067
- - test/TC_FXRanged.rb
1068
- - test/TC_FXRegistry.rb
1069
- - test/TC_FXMat4f.rb
1070
- - test/TC_FXListBox.rb
1071
- - test/TC_FXTopWindow.rb
1072
- - test/TC_FXTableItem.rb
1073
- - test/TC_FXFileStream.rb
1074
- - test/TC_FXComboBox.rb
1075
- - test/TC_FXApp.rb
1076
- - test/TC_FXTable.rb
1077
- - test/TC_FXRadioButton.rb
1078
- - test/TC_FXVec4f.rb
1079
- - test/TC_FXExtentd.rb
1080
- - test/TC_FXMenuCommand.rb
1081
- - test/TC_FXPoint.rb
1082
- - test/TC_FXFontDesc.rb
1083
- - test/TC_FXTreeList.rb
1084
- - test/TC_FXIconList.rb
1085
- - test/TC_FXGLShape.rb
1086
- - test/TC_FXId.rb
1087
- - test/TC_FXVec2f.rb
1088
- - test/TC_FXXBMIcon.rb
1089
- - test/TC_FXLight.rb
1090
- - test/TC_FXMaterial.rb
1091
- - test/TC_FXSegment.rb
1092
- - test/TC_FXMemoryStream.rb
1093
- - test/TC_FXScrollWindow.rb
1094
- - test/TC_FXImage.rb
1095
- - test/TC_FXUndoList.rb
1096
- - test/TC_FXXBMImage.rb
1097
- - test/TC_FXSize.rb
1098
- - test/TC_FXDC.rb
1099
- - test/TC_FXIconDict.rb
1100
- - test/TC_FXSettings.rb
1101
- - test/TC_FXBMPIcon.rb
1102
- - test/TC_FXFileAssoc.rb
1103
- - test/TC_Misc.rb
1104
- - test/TC_FXList.rb
1105
- - test/TC_FXDataTarget.rb
1106
- - test/TC_FXXPMIcon.rb
1107
- - test/TC_FXRangef.rb
1108
- - test/TC_FXHeader.rb
1109
- - test/TC_FXRectangle.rb
1110
- - test/TC_FXMessageBox.rb
1111
- - test/TC_downcast.rb
1112
- - test/TC_FXDialogBox.rb
1113
- - test/TC_FXStream.rb
1114
- - test/TC_FXQuatf.rb
1115
- - test/TC_FXVec3d.rb
1116
- - test/TC_FXHiliteStyle.rb
1117
- - test/TC_FXExtentf.rb
1118
- - test/TC_FXShell.rb
1119
- - test/TC_FXMenuCheck.rb
1120
- - test/TC_FXGradientBar.rb
1121
- - test/TC_FXMenuRadio.rb
1122
- - test/TC_FXDCWindow.rb
1123
- - test/TC_FXScrollArea.rb
1124
- - test/TC_FXFont.rb
1125
- - test/TC_FXDCPrint.rb
1126
- - test/TC_FXFoldingList.rb
1127
- - test/TC_FXCheckButton.rb
1128
- - test/TC_FXGLGroup.rb
1129
- - test/TC_FXVec2d.rb
1050
+ test_files: []