Newer
Older
<?xml version="1.0" encoding="UTF-8"?>
<chapter id="changes">
<title>Change History</title>
<simplesect>
<title>Changes For Version 1.6.19 (February 28, 2009)</title>
<itemizedlist mark="bullet">
<listitem>
<para>The previous release of FXRuby couldn't be built from source against Ruby 1.9.1 final
due to a change in some of the file-related utility libraries
(see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=23786&group_id=300&atid=1223">RubyForge
Bug #23786</ulink>). This problem has been corrected.</para>
</listitem>
<listitem>
<para>The previous release of FXRuby couldn't be built from source against Ruby versions 1.8.5 or
earlier (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=23967&group_id=300&atid=1223">RubyForge
Bug #23967</ulink>). This problem has been corrected.</para>
</listitem>
<listitem>
<para>The <methodname>addAccel</methodname> method for the <classname>FXAccelTable</classname> class
now accepts lambda functions (or any other objects that respond to <methodname>call</methodname>). See
the <ulink url="http://www.fxruby.org/doc/api/classes/Fox/FXAccelTable.html">API documentation</ulink>
for <classname>FXAccelTable</classname> for examples of how this works.</para>
</listitem>
</itemizedlist>
</simplesect>
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
<simplesect>
<title>Changes For Version 1.6.18 (December 29, 2008)</title>
<itemizedlist mark="bullet">
<listitem>
<para>Some users were having trouble building FXRuby on 64-bit operating systems
(see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=23375&group_id=300&atid=1223">RubyForge
Bug #23375</ulink>). This problem has been corrected.</para>
</listitem>
</itemizedlist>
</simplesect>
<simplesect>
<title>Changes For Version 1.6.17 (December 24, 2008)</title>
<itemizedlist mark="bullet">
<listitem>
<para>The Ruby interpreter was generating a large number of warning messages about redefined methods
in the <filename>kwargs.rb</filename> library
(see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=19231&group_id=300&atid=1223">RubyForge
Bug #19231</ulink> and elsewhere). This problem has been corrected.</para>
</listitem>
<listitem>
Due to recent changes in Ruby's garbage collection algorithm, FXRuby applications could under some circumstances
crash for large numbers of table items
(see RubyForge bugs <ulink url="http://rubyforge.org/tracker/index.php?func=detail&aid=21983&group_id=300&atid=1223">21983</ulink> and <ulink url="http://rubyforge.org/tracker/index.php?func=detail&aid=23188&group_id=300&atid=1223">23188</ulink>).
This bug has been fixed.
</listitem>
<listitem>
<para>The documentation for the <classname>FXTable</classname> class referred to the non-existent <methodname>setColumnX</methodname>
and <methodname>setRowY</methodname> instance methods
(see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=21987&group_id=300&atid=1223">RubyForge
Bug #21987</ulink>). These entries have been removed from the documentation.</para>
</listitem>
<listitem>
<para>A number of instance methods for the <classname>FXTable</classname> class could crash an application if they
were passed out-of-bounds index arguments
(see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=21987&group_id=300&atid=1223">RubyForge
Bug #21987</ulink>). These methods now raise <classname>IndexError</classname> when they're passed out-of-bounds
indexes.</para>
</listitem>
<listitem>
<para>Due to a change in the URL scheme for the Dilbert web site, the <filename>dilbert.rb</filename> example
program was no longer working properly
(see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=21538&group_id=300&atid=1223">RubyForge
Bug #21538</ulink>). This has been fixed.</para>
</listitem>
<listitem>
<para>The <methodname>lower</methodname> method for the <classname>FXRangef</classname> was returning
<constant>self</constant> instead of an <classname>FXVec3f</classname> instance for the range's low
bound
(see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=22488&group_id=300&atid=1223">RubyForge
Bug #22488</ulink>). This has been fixed.</para>
</listitem>
<listitem>
<para>Made a number of minor fixes for compatibility with Ruby 1.9.1.</para>
</listitem>
</itemizedlist>
</simplesect>
<simplesect>
<title>Changes For Version 1.6.16 (July 3, 2008)</title>
<itemizedlist mark="bullet">
<listitem>
<para>Historically, if you called <methodname>create</methodname> on a
window before its parent window was created, your application would
crash (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=20702&group_id=300&atid=1223">RubyForge
Bug #20702</ulink> and elsewhere). Now, the code should raise a
<constant>RuntimeError</constant> with a message indicating the
problem.</para>
</listitem>
<listitem>
<para>The message data that the <classname>FXPicker</classname> widget
sends along with its <constant>SEL_CHANGED</constant> and
<constant>SEL_COMMAND</constant> messages wasn't being handled
properly, and as a result, applications using this widget could crash
(see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=20780&group_id=300&atid=1223">RubyForge
Bug #20780</ulink>). This problem has been fixed.</para>
</listitem>
</itemizedlist>
</simplesect>
<simplesect>
<title>Changes For Version 1.6.15 (June 4, 2008)</title>
<itemizedlist mark="bullet">
<listitem>
<para>FXRuby applications could crash (with a segmentation fault) if
<constant>nil</constant> was passed in as the first argument to
<methodname>FXDialogBox.new</methodname> or
<methodname>FXMainWindow.new</methodname> (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=14642&group_id=300&atid=1223">RubyForge
Bug #14642</ulink>). These methods now raise an
<constant>ArgumentError</constant> if <constant>nil</constant> is
passed as the first argument.</para>
</listitem>
<listitem>
<para>You should only ever construct one <classname>FXApp</classname>
object per application, but there was no protection against doing so
in the code (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=16275&group_id=300&atid=1223">RubyForge
Bug #16275</ulink>). Now, <methodname>FXApp.new</methodname> will
raise a <classname>RuntimeException</classname> if an
<classname>FXApp</classname> object already exists.</para>
</listitem>
<listitem>
<para>The <filename>babelfish.rb</filename> example program, which
previously depended on an external web service to perform translation
between languages, was broken since that web service no longer exists
(see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=16962&group_id=300&atid=1223">RubyForge
Bug #16962</ulink>). The example has now been updated to use Dr. Nic's
<ulink url="http://tranexp.rubyforge.org/">Tranexp</ulink> library
instead.</para>
</listitem>
<listitem>
<para>The value of the <constant>MBOX_SAVE_CANCEL_DONTSAVE</constant>
option (for the <classname>FXMessageBox</classname> class) wasn't
wrapped properly and was unusable (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=17094&group_id=300&atid=1223">RubyForge
Bug #17094</ulink>). There was also no constant corresponding to the
<constant>MBOX_CLICKED_DONTSAVE</constant> return value. Both of these
problems have been fixed.</para>
</listitem>
<listitem>
<para>The fields for new <classname>FXHiliteStyle</classname> objects
were uninitialized and as a result sometimes gave unpredictable
results (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=19637&group_id=300&atid=1223">RubyForge
Bug #19637</ulink>). This has been fixed.</para>
</listitem>
<listitem>
<para>The <methodname>columnHeaderFont</methodname> and
<methodname>rowHeaderFont</methodname> attributes for
<classname>FXTable</classname> weren't implemented properly (see
<ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=20142&group_id=300&atid=1223">RubyForge
Bug #20142</ulink>). This has been fixed.</para>
</listitem>
<listitem>
<para>Ruby 1.8.7 adds a new <methodname>first</methodname> method to
the <classname>Enumerable</classname> module, and this conflicts with
the existing <methodname>first</methodname> method defined in the
<classname>FXWindow</classname> base class for a number of FXRuby
classes which mix in <classname>Enumerable</classname> (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=20418&group_id=300&atid=1223">RubyForge
Bug #20418</ulink>). This problem has been resolved.</para>
</listitem>
<listitem>
<para>Due to a bug in the <filename>extconf.rb</filename> script, the
build was failing for Ruby 1.9.0 (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=20426&group_id=300&atid=1223">RubyForge
Bug #20426</ulink>). This has been fixed.</para>
</listitem>
</itemizedlist>
</simplesect>
<simplesect>
<title>Changes For Version 1.6.14 (March 29, 2008)</title>
<itemizedlist mark="bullet">
<listitem>
<para>Updated the documentation for the <classname>FXImage</classname>
class to indicate which methods call <methodname>render</methodname>
after they're finished, and which ones do not.</para>
</listitem>
<listitem>
<para>Corrected a little typo in the
<filename>gembrowser.rb</filename> example program.</para>
</listitem>
<listitem>
<para>Updated the <filename>dilbert.rb</filename> example program to
use the more popular-and-likely-to-be-installed <ulink
url="http://code.whytheluckystiff.net/hpricot/">Hpricot</ulink> HTML
parser library instead of <ulink
url="http://www.crummy.com/software/RubyfulSoup/">Rubyful
Soup</ulink>.</para>
</listitem>
<listitem>
<para>Re-added the documentation for the
<constant>TOGGLEBUTTON_KEEPSTATE</constant> option, which had
mysteriously disappeared (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=2286&group_id=300&atid=1223">RubyForge
Bug #2286</ulink>).</para>
</listitem>
<listitem>
<para>Made a number of minor fixes to support building FXRuby against
Ruby 1.9.</para>
</listitem>
<listitem>
<para>Added a binary gem for OS X. This works with the Ruby that's
included with OS X (Leopard).</para>
</listitem>
<listitem>
<para>The binary gem for Windows was built with FOX version 1.6.32 and
FXScintilla version 1.71.</para>
</listitem>
</itemizedlist>
</simplesect>
<simplesect>
<title>Changes For Version 1.6.13 (November 9, 2007)</title>
<itemizedlist mark="bullet">
<listitem>
<para>Calls to the <methodname>extractText</methodname> method for the
<classname>FXTable</classname> class were causing various
memory-related errors on certain platforms (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=15444group_id=300&atid=1223">RubyForge
Bug #15444</ulink>). This problem has been fixed.</para>
</listitem>
<listitem>
<para>The binary gem for Windows was built with FOX version 1.6.28 and
FXScintilla version 1.71.</para>
</listitem>
</itemizedlist>
</simplesect>
<simplesect>
<title>Changes For Version 1.6.12 (October 19, 2007)</title>
<itemizedlist mark="bullet">
<listitem>
<para>The API documentation for <classname>FXMDIClient</classname>
referred to the non-existent instance method
<methodname>activeChild=</methodname> (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=10259&group_id=300&atid=1223">RubyForge
Bug #10259</ulink>). This method has been added.</para>
</listitem>
<listitem>
<para>The API documentation for <classname>FXMDIClient</classname>
also referred to the non-existent instance methods
<methodname>getMDIChildFirst</methodname> and
<methodname>getMDIChildLast</methodname>. These entries have been
removed.</para>
</listitem>
<listitem>
<para>The API documentation for <classname>FXMDIChild</classname>
referred to non-existent instance methods
<methodname>getMDINext</methodname> and
<methodname>getMDIPrev</methodname> (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=10436&group_id=300&atid=1223">RubyForge
Bug #10436</ulink>). The documentation has been corrected.</para>
</listitem>
<listitem>
<para>Added the <parameter>:repeat</parameter> parameter for the
<methodname>addChore</methodname> and
<methodname>addTimeout</methodname> methods. See the documentation for
more details, and <filename>gltest.rb</filename> for an example of its
use.</para>
</listitem>
<listitem>
<para>Corrected a number of minor typos in the API
documentation.</para>
</listitem>
<listitem>
<para>Corrected a typo in the <filename>imageviewer.rb</filename>
example.</para>
</listitem>
<listitem>
<para>Modified the <filename>inputs.rb</filename> example program to
use <methodname>Pipe.read_nonblock()</methodname> instead of
<methodname>Pipe.read()</methodname>.</para>
</listitem>
<listitem>
<para>Fixed a bug in the implementation of the
<methodname>findText</methodname> method for the
<classname>FXText</classname> class, when used with the
<constant>SEARCH_REGEX</constant> option.</para>
</listitem>
<listitem>
<para>The binary gem for Windows was built with FOX version 1.6.28 and
FXScintilla version 1.71.</para>
</listitem>
</itemizedlist>
</simplesect>
<simplesect>
<title>Changes For Version 1.6.11 (April 18, 2007)</title>
<itemizedlist mark="bullet">
<listitem>
<para>Added <methodname>editable</methodname> as an alias for
<methodname>FXTextField#editable?</methodname>.</para>
</listitem>
<listitem>
<para>Added <methodname>each_child_recursive</methodname> instance
method for the <classname>FXWindow</classname> class. This method
performs a depth-first traversal of the widget tree starting at the
receiver window.</para>
</listitem>
<listitem>
<para>Corrected some errors in the keyword arguments support for the
<classname>FXVec2d</classname>, <classname>FXVec2f</classname>,
<classname>FXVec3d</classname>, <classname>FVec3f</classname>,
<classname>FXVec4d</classname> and <classname>FXVec4f</classname>
classes.</para>
</listitem>
<listitem>
<para>Corrected an error in the keyword arguments support for the
<classname>FXIconDict</classname> class.</para>
</listitem>
<listitem>
<para>Modified the gem specification so that the RDoc generated during
a gem install is consistent with that generated by other methods (see
<ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=10035&group_id=300&atid=1223">RubyForge
Bug #10035</ulink>).</para>
</listitem>
<listitem>
<para>Changes to the <filename>iterators</filename> library in version
1.6.6 introduced a bug in the <methodname>each</methodname> method for
the <classname>FXFoldingList</classname>,
<classname>FXTreeList</classname> and
<classname>FXTreeListBox</classname> classes (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=10175&group_id=300&atid=1223">RubyForge
Bug #10175</ulink>). This problem has been fixed.</para>
</listitem>
<listitem>
<para>Applied submitted patches for building FXRuby against Ruby 1.9
(see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=10181&group_id=300&atid=1223">RubyForge
Bug #10181</ulink>). Please note that building FXRuby against the Ruby
1.9 code base is still officially unsupported; however, I'm glad to
accept patches that will help make this possible.</para>
</listitem>
<listitem>
<para>The binary gem for Windows was built with FOX version 1.6.25 and
FXScintilla version 1.71.</para>
</listitem>
</itemizedlist>
</simplesect>
<simplesect>
<title>Changes For Version 1.6.9 (April 8, 2007)</title>
<itemizedlist mark="bullet">
<listitem>
<para>A bug was discovered in the keyword arguments library support
for the <classname>FXMenuBar</classname> class (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=9927&group_id=300&atid=1223">RubyForge
Bug #9927</ulink>). This problem has been fixed.</para>
</listitem>
<listitem>
<para>The binary gem for Windows was built with FOX version 1.6.25 and
FXScintilla version 1.71.</para>
</listitem>
</itemizedlist>
</simplesect>
<simplesect>
<title>Changes For Version 1.6.8 (April 5, 2007)</title>
<itemizedlist mark="bullet">
<listitem>
<para>Due to an internal bookkeeping error, applications like the
<filename>glviewer.rb</filename> example program which create multiple
<classname>FXGLViewer</classname> instances could cause an assertion
to fail. When this assertion fails on Windows, the program simply
crashes (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=9775&group_id=300&atid=1223">RubyForge
Bug #9775</ulink>). This problem has been fixed.</para>
</listitem>
<listitem>
<para>The keyword arguments library, introduced in version 1.6.5, is
now included automatically when you load FXRuby; it is no longer
necessary to explicitly require it.</para>
</listitem>
<listitem>
<para>The binary gem for Windows was built with FOX version 1.6.25 and
FXScintilla version 1.71.</para>
</listitem>
</itemizedlist>
</simplesect>
<simplesect>
<title>Changes For Version 1.6.7 (March 31, 2007)</title>
<itemizedlist mark="bullet">
<listitem>
<para>The binary gem for Windows was built with FOX version 1.6.25 and
FXScintilla version 1.71.</para>
</listitem>
</itemizedlist>
</simplesect>
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<simplesect>
<title>Changes For Version 1.6.6 (February 10, 2007)</title>
<itemizedlist mark="bullet">
<listitem>
<para>Somewhere along the way, the RAA browser example program got
broken due to changes in the SOAP interface to RAA (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=7977&group_id=300&atid=1223">RubyForge
Bug #7977</ulink>). This has been fixed.</para>
</listitem>
<listitem>
<para>Some debugging code that was meant to detect errors in FXRuby
message data conversion was inadvertently causing some user
applications to crash when running under Windows (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=8049&group_id=300&atid=1223">RubyForge
Bug #8049</ulink>). This debugging code has been changed to avoid the
problem.</para>
</listitem>
<listitem>
<para>Modified the implementations of the each iterator methods for
<classname>FXFoldingList</classname>,
<classname>FXFoldingItem</classname>,
<classname>FXTreeItem</classname>, <classname>FXTreeList</classname>
and <classname>FXTreeListBox</classname> (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=8090&group_id=300&atid=1223">RubyForge
Bug #8090</ulink>). The new implementation is a bit more robust in
terms of modifications (such as deletion) of the iterated-over
elements.</para>
</listitem>
<listitem>
<para>A bug in the new keyword arguments library (introduced in
version 1.6.5) caused the <methodname>initialize</methodname> method
for the <classname>FXDCWindow</classname> class to do the wrong thing
(see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=8441&group_id=300&atid=1223">RubyForge
Bug #8441</ulink>). This has been corrected.</para>
</listitem>
<listitem>
<para>A different bug in the keyword arguments library caused the
<methodname>initialize</methodname> method for the
<classname>FXFont</classname> class to do the wrong thing (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=8517&group_id=300&atid=1223">RubyForge
Bug #8517</ulink>). This also has been corrected.</para>
</listitem>
<listitem>
<para>Yet another bug in the keyword arguments library broke the part
of the code that used to yield <constant>self</constant> to an
optional block attached to the call to <methodname>new</methodname>
(see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=8518&group_id=300&atid=1223">RubyForge
Bug #8518</ulink>). This has been corrected.</para>
</listitem>
<listitem>
<para>Most of the FXRuby example programs have been updated to use the
keyword arguments library.</para>
</listitem>
<listitem>
<para>Added a new "virtual" keyword argument
<constant>:padding</constant> that can be used in place of (or in
addition to) the <constant>:padLeft</constant>,
<constant>:padRight</constant>, <constant>:padTop</constant> and
<constant>:padBottom</constant> arguments for a constructor. When a
<constant>:padding</constant> value is passed in to the arguments
hash, that value will be used for any of the four regular padding
values that aren't otherwise specified. See the example programs for,
you know, examples.</para>
</listitem>
<listitem>
<para>The binary gem for Windows was built with FOX version 1.6.20 and
FXScintilla version 1.71.</para>
</listitem>
</itemizedlist>
</simplesect>
<simplesect>
<title>Changes For Version 1.6.5 (January 20, 2007)</title>
<itemizedlist mark="bullet">
<listitem>
<para>Clicking outside of the visible cells for an
<classname>FXTable</classname> when there was no current selection
caused the code to raise an exception (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=5907&group_id=300&atid=1223">RubyForge
Bug #5907</ulink>). This problem has been fixed.</para>
</listitem>
<listitem>
<para>The <methodname>hasTimeout?</methodname> method for the
<classname>FXApp</classname> class was implemented incorrectly (see
<ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=7564&group_id=300&atid=1223">RubyForge
Bug #7564</ulink>). This problem has been fixed.</para>
</listitem>
<listitem>
<para>The <classname>FXFoldingList</classname> and
<classname>FXFoldingItem</classname> classes did not have each
iterator methods like most of the other list-based widgets (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=7978&group_id=300&atid=1225">RubyForge
Patch #7978</ulink>). These have been added.</para>
</listitem>
<listitem>
<para>The API documentation for <classname>FXMDIClient</classname>
claimed that <classname>FXScrollArea</classname> was its base class
(see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=7979&group_id=300&atid=1223">RubyForge
Bug #7979</ulink>). This has been corrected; the base class for
<classname>FXMDIClient</classname> is
<classname>FXComposite</classname>.</para>
</listitem>
<listitem>
<para>There was a small typo in the documentation for the
<classname>FXFoldingList</classname> class options (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=7981&group_id=300&atid=1223">RubyForge
Bug #7981</ulink>). This has been fixed.</para>
</listitem>
<listitem>
<para>Added preliminary support for keyword-style arguments, as
described in the <ulink
url="http://www.fxruby.org/doc/differences.html">"Differences Between
FOX and FXRuby"</ulink> section of the <ulink
url="http://www.fxruby.org/doc/book.html">FXRuby User's
Guide</ulink>.</para>
</listitem>
<listitem>
<para>The binary gem for Windows was built with FOX version 1.6.20 and
FXScintilla version 1.71.</para>
</listitem>
</itemizedlist>
</simplesect>
<simplesect>
<title>Changes For Version 1.6.4 (November 30, 2006)</title>
<itemizedlist mark="bullet">
<listitem>
<para>A change made in Ruby 1.8.5 for cyclic requires led to a problem
that caused the Ruby interpreter to emit a large number of warnings
(see <ulink
url="http://rubyforge.org/tracker/?func=detail&aid=5633&group_id=300&atid=1223">RubyForge
Bug #5633</ulink>). This problem has been fixed.</para>
</listitem>
<listitem>
<para>The binary gem for Windows was built with FOX version 1.6.16 and
FXScintilla version 1.71.</para>
</listitem>
</itemizedlist>
</simplesect>
<simplesect>
<title>Changes For Version 1.6.3 (October 27, 2006)</title>
<itemizedlist mark="bullet">
<listitem>
<para>Widgets of some classes (namely
<classname>FXTopWindow</classname> and
<classname>FXMDIChild</classname>) weren't properly sending a
<constant>SEL_CLOSE</constant> message to their message targets (see
<ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=5498&group_id=300&atid=1223">RubyForge
Bug #5498</ulink>). Thanks to a change in FOX version 1.6.16, this
problem has been fixed.</para>
</listitem>
<listitem>
<para>The <methodname>getControlFor</methodname> method for the
<classname>FXComboTableItem</classname> class was coded incorrectly
(see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=5906&group_id=300&atid=1223">RubyForge
Bug #5906</ulink>). This has been fixed.</para>
</listitem>
<listitem>
<para>There was a minor typo in the API documentation for the
<application><classname>FXTriStateButton</classname></application>
class (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=5962&group_id=300&atid=1223">RubyForge
Bug #5962</ulink>). This has been fixed.</para>
</listitem>
<listitem>
<para>The <methodname>each_row</methodname> and
<methodname>each_column</methodname> iterator methods for the
<classname>FXTable</classname> class were incorrectly coded (see
<ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=6036&group_id=300&atid=1223">RubyForge
Bug #6036</ulink>). This has been fixed.</para>
</listitem>
<listitem>
<para>The <methodname>new</methodname> class methods for
<classname>FXColorItem</classname>, <classname>FXDirItem</classname>,
<classname>FXFileItem</classname>,
<classname>FXFoldingItem</classname>,
<classname>FXHeaderItem</classname>,
<classname>FXIconItem</classname>, <classname>FXListItem</classname>
and <classname>FXTreeItem</classname> were all raising exceptions when
a non-<constant>nil</constant> value was passed in for the last
argument (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=6197&group_id=300&atid=1223">RubyForge
Bug #6197</ulink>). A similar problem was present for various instance
methods in the <classname>FXColorList</classname>,
<classname>FXListBox</classname> and
<classname>FXMDIClient</classname> classes. These problems have been
fixed.</para>
</listitem>
<listitem>
<para>A few problems were discovered for the
<filename>inputs.rb</filename> example program (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=6209&group_id=300&atid=1223">RubyForge
Bug #6209</ulink>). These problems have been fixed.</para>
</listitem>
<listitem>
<para>Several instance methods for the <classname>FXTable</classname>
class were not actually present under their documented names (see
<ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=6211&group_id=300&atid=1223">RubyForge
Bug #6211</ulink>). This has been fixed.</para>
</listitem>
<listitem>
<para>The build script was not compatible with changes made in the
recently-released FXScintilla 1.71 (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=6313&group_id=300&atid=1223">RubyForge
Bug #6313</ulink>). This has been fixed.</para>
</listitem>
<listitem>
<para>The binary gem for Windows was built with FOX version 1.6.16 and
FXScintilla version 1.71.</para>
</listitem>
</itemizedlist>
</simplesect>
<simplesect>
<title>Changes For Version 1.6.2 (September 13, 2006)</title>
<itemizedlist mark="bullet">
<listitem>
<para>The <methodname>expandTree()</methodname> and
<methodname>collapseTree()</methodname> methods for the
<classname>FXFoldingList</classname> class were incorrectly identified
as <methodname>expandFolding()</methodname> and
<methodname>collapseFolding()</methodname> in the API documentation
(see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=5354&group_id=300&atid=1223">RubyForge
Bug #5354</ulink>). This has been fixed.</para>
</listitem>
<listitem>
<para>The <classname>FXDockTitle</classname> class was not supported
(see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=5632&group_id=300&atid=1223">RubyForge
Bug #5632</ulink>). This has been fixed.</para>
</listitem>
<listitem>
<para>The API documentation for the <classname>FXGLCanvas</classname>
class claimed it had a <methodname>shared?</methodname> method, but it
didn't (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=5591&group_id=300&atid=1223">RubyForge
Bug #5591</ulink>). Now it does.</para>
</listitem>
<listitem>
<para>The <classname>FXGradientBar</classname> class was not supported
(see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=5746&group_id=300&atid=1223">RubyForge
Bug #5746</ulink>). This has been fixed.</para>
</listitem>
<listitem>
<para>The binary gem for Windows was built with FOX version 1.6.14 and
FXScintilla version 1.67 (from CVS).</para>
</listitem>
</itemizedlist>
</simplesect>
<simplesect>
<title>Changes For Version 1.4.7 (September 13, 2006)</title>
<itemizedlist mark="bullet">
<listitem>
<para>The <methodname>children</methodname> instance method for the
<classname>FXWindow</classname> class always returned an array of
<classname>FXWindow</classname> instances, even if the actual types
should have been instances of subclasses of
<classname>FXWindow</classname> (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=4342&group_id=300&atid=1223">RubyForge
Bug #4342</ulink>). This has been fixed.</para>
</listitem>
<listitem>
<para>The <filename>dilbert.rb</filename> example program was broken
due to a change in the Dilbert.com web site structure (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=4597&group_id=300&atid=1223">RubyForge
Bug #4597</ulink>). This has been fixed.</para>
</listitem>
<listitem>
<para>The <methodname>expandTree()</methodname> and
<methodname>collapseTree()</methodname> methods for the
<classname>FXFoldingList</classname> class were incorrectly identified
as <methodname>expandFolding()</methodname> and
<methodname>collapseFolding()</methodname> in the API documentation
(see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=5354&group_id=300&atid=1223">RubyForge
Bug #5354</ulink>). This has been fixed.</para>
</listitem>
<listitem>
<para>The <classname>FXDockTitle</classname> class was not supported
(see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=5632&group_id=300&atid=1223">RubyForge
Bug #5632</ulink>). This has been fixed.</para>
</listitem>
<listitem>
<para>The API documentation for the <classname>FXGLCanvas</classname>
class claimed it had a <methodname>shared?</methodname> method, but it
didn't (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=5591&group_id=300&atid=1223">RubyForge
Bug #5591</ulink>). Now it does.</para>
</listitem>
<listitem>
<para>The <classname>FXGradientBar</classname> class was not supported
(see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=5746&group_id=300&atid=1223">RubyForge
Bug #5746</ulink>). This has been fixed.</para>
</listitem>
<listitem>
<para>The binary gem for Windows was built with FOX version 1.4.34 and
FXScintilla version 1.63.</para>
</listitem>
</itemizedlist>
</simplesect>
<simplesect>
<title>Changes For Version 1.6.1 (July 21, 2006)</title>
<itemizedlist mark="bullet">
<listitem>
<para>The message data sent along for the
<constant>SEL_INSERTED</constant>, <constant>SEL_DELETED</constant>
and <constant>SEL_REPLACED</constant> messages from an a
<classname>FXText</classname> widget to its target was not being
converted properly (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=4666&group_id=300&atid=1223">RubyForge
Bug #4666</ulink>). This has been fixed.</para>
</listitem>
<listitem>
<para>The code related to the localization of application messages in
FOX wasn't implemented properly in FXRuby, and as a result,
constructing certain dialogs (like the color dialog) could cause a
program to crash (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=5000&group_id=300&atid=1223">RubyForge
Bug #5000</ulink>). This has been fixed.</para>
</listitem>
<listitem>
<para>The "Stop Spin" button in the gltest.rb example program didn't
stop the cubes from spinning after either the "Spin Timer" or "Spin
Chore" option was selected (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=5001&group_id=300&atid=1223">RubyForge
Bug #5001</ulink>). This was actually a symptom of a larger problem,
that FXRuby wasn't properly handling timers and chores. These problems
have been fixed.</para>
</listitem>
<listitem>
<para>Setting the current item for an
<classname>FXComboBox</classname> to -1 (to indicate that there's no
current item) would cause FXRuby to erroneously raise an
<classname>IndexError</classname> (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=5007&group_id=300&atid=1223">RubyForge
Bug #5007</ulink>). This has been fixed.</para>
</listitem>
<listitem>
<para>The documentation for the <methodname>reparent</methodname>
instance method for the <classname>FXWindow</classname> class was
incorrect (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=5035&group_id=300&atid=1223">RubyForge
Bug #5035</ulink>). This has been fixed.</para>
</listitem>
<listitem>
<para>The <filename>textedit.rb</filename> example program was not up
to date with some of the changes for FOX 1.6. This example has been
updated.</para>
</listitem>
<listitem>
<para>The new <methodname>font</methodname> method for the
<classname>FXFont</classname> class was not documented. This has been
fixed.</para>
</listitem>
<listitem>
<para>The <filename>dilbert.rb</filename> example program has been
modified to use the RubyfulSoup HTML library instead of the
html-parser library.</para>
</listitem>
<listitem>
<para>As discussed in various forums (see for example <ulink
url="http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/182827">this
post</ulink>), the <methodname>autorequire</methodname> directive for
RubyGems specifications is now deprecated. As a result, this has been
removed from the FXRuby gem specification. This change will break any
code that was using a statement like:<programlisting>require_gem 'fxruby'</programlisting>as
the sole means for loading FXRuby. Such programs should instead
use:<programlisting>require 'fox16'</programlisting>which will work
for either gem based or non-gem based installations.</para>
</listitem>
<listitem>
<para>The binary gem for Windows was built with FOX version 1.6.8 and
FXScintilla version 1.67 (from CVS).</para>
</listitem>
</itemizedlist>
</simplesect>
<simplesect>
<title>Changes For Version 1.6.0 (May 29, 2006)</title>
<itemizedlist mark="bullet">
<listitem>
<para>This is the first release of FXRuby compatible with FOX version
1.6. One of the most signficant changes for FOX 1.6 has been the
addition of Unicode support; all FOX widgets and internal string
processing routines are now Unicode aware. For a comprehensive
overview of the changes made to FOX since version 1.4 (including those
made in the FOX 1.5 development series), please refer to the <ulink
url="http://www.fox-toolkit.com/news.html">News archives</ulink> at
the FOX web site.</para>
</listitem>
<listitem>
<para>Added the <methodname>allowSide</methodname>,
<methodname>disallowSide</methodname> and
<methodname>allowedSide?</methodname> methods for the
<classname>FXDockBar</classname> class, as complements to the
<methodname>allowedSides</methodname> accessor methods (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=2307&group_id=300&atid=1226">RubyForge
Feature Request #2307</ulink>).</para>
</listitem>
<listitem>
<para>Added the <methodname>visible=</methodname> and
<methodname>visible?</methodname> accessor methods for the
<classname>FXWindow</classname> class, as complements to the
<methodname>show</methodname>, <methodname>hide</methodname> and
<methodname>shown?</methodname> methods (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=3579&group_id=300&atid=1226">RubyForge
Feature Request #3579</ulink>).</para>
</listitem>
<listitem>
<para>The <filename>browser.rb</filename> example was making use of a
deprecated API (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=4325&group_id=300&atid=1223">RubyForge
Bug #4325</ulink>). This has been fixed.</para>
</listitem>
<listitem>
<para>The <methodname>children</methodname> instance method for the
<classname>FXWindow</classname> class always returned an array of
<classname>FXWindow</classname> instances, even if the actual types
should have been instances of subclasses of
<classname>FXWindow</classname> (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=4342&group_id=300&atid=1223">RubyForge
Bug #4342</ulink>). This has been fixed.</para>
</listitem>
<listitem>
<para>The <filename>dilbert.rb</filename> example program was broken
due to a change in the Dilbert.com web site structure (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=4597&group_id=300&atid=1223">RubyForge
Bug #4597</ulink>). This has been fixed.</para>
</listitem>
<listitem>
<para>The binary gem for Windows was built with FOX version 1.6.5 and
FXScintilla version 1.67 (from CVS).</para>
</listitem>
</itemizedlist>
</simplesect>
<simplesect>
<title>Changes For Version 1.4.6 (April 26, 2006)</title>
<itemizedlist mark="bullet">
<listitem>
<para>FXRuby would not compile properly on some x86-64 systems (see
<ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=3729&group_id=300&atid=1223">RubyForge
Bug #3729</ulink>). This error has been corrected. Thanks to Javier
Goizueta for initially reporting this problem, and especially to
Tobias Peters for providing a patch.</para>
</listitem>
<listitem>
<para>The <classname>FXIconDict</classname> widget was accidentally
"lost" in the transition between FXRuby versions 1.2 and 1.4 (see
<ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=4117&group_id=300&atid=1223">RubyForge
Bug #4117</ulink>). This error has been corrected. Thanks to Manfred
Usselmann for reporting this problem.</para>
</listitem>
<listitem>
<para>The <classname>FXSwitcher</classname> widget was not sending the
appropriate message data to its message target for the
<constant>SEL_COMMAND</constant> message type (see <ulink
url="http://rubyforge.org/tracker/index.php?func=detail&aid=4157&group_id=300&atid=1223">RubyForge
Bug #4157</ulink>). This error has been corrected. Thanks to Manfred
Usselmann for reporting this problem.</para>