Chapter 10. Change History
Prev | Part I. The Basics | Next

## Chapter 10. Change History

## Changes For Version 1.2.6 (April 15, 2005)

- Some additional problems related to calling the `setTableSize` method for an `FXTable` were discovered (see RubyForge Bug #1597). This problem has been corrected. Thanks to Joel VanderWerf for reporting this problem.

- The `iconlist.rb` example program had a "Sort" pulldown menu filled with a number of commands that didn't really do anything, including sorting the items (see RubyForge Bug #1654). This pulldown menu has been removed from that example.

- The API documentation for the `FXDC` class erroneously referred to the `font` attribute as `textFont` (see RubyForge Bug #1667). This problem has been corrected. Thanks to Meinrad Recheis for reporting this problem.

- The `checked?`, `unchecked?` and `maybe?` methods for the `FXMenuCheck` class were missing (see RubyForge Bug #1677). This problem has been corrected. Thanks to Oliver Smith for reporting this problem.

- The API documentation for the `FXScrollArea` class incorrectly spelled the names of the `horizontalScrollBar` and `verticalScrollBar` methods as `horizontalScrollbar` and `verticalScrollbar` (see RubyForge Bug #1678). The documentation has been corrected. Thanks to Jannis Pohlmann for reporting this mistake.

- Some code in the `groupbox.rb` example program was calling the `getRootWindow` method, but that method has been renamed to `getRoot` (see RubyForge Bug #1692). This problem has been corrected. Thanks to Jaroslav Stika for reporting this problem.

- The `hasChar?` method for the `FXFont` class was spelled without a trailing question mark, but it seems more Ruby-like that it should, so we've added an alias for that (see RubyForge Bug #1714). This method also now accepts a string of size 1 (i.e. a single character) as its input, as an alternative to an ordinal value. Thanks to Meinrad Recheis for these suggestions.

- The API documentation for the `FXImage` class mistakenly listed `IMAGE_ALPHA` as a valid image rendering hint, but this flag is no longer needed since FOX images now always contain an alpha channel (see RubyForge Bug #1715). The documentation has been corrected. Thanks to Meinrad Recheis for reporting this mistake.

- Due to an error in the SWIG interface files, the `data` method for the `FXSettings` class was not being wrapped properly. As a result, this method was unavailable and in turn led to other dependent methods (like `each_section`) to be unavailable as well (see RubyForge Bug #1771). This error has been corrected. Thanks to Jannis Pohlmann for reporting this problem.

- The binary gem for Windows was built with FOX version 1.2.16 and FXScintilla version 1.62.

## Changes For Version 1.2.5 (March 1, 2005)

- The change made for FXRuby version 1.2.4 regarding garbage collection for table items corrected only one of the problems described in RubyForge Bug #1445; There was still a problem related to the "destructive" effects of the `setTableSize` method for the `FXTable` class. This problem has now been corrected as well. Thanks to David Peoples, Jamey Cribbs and Joel VanderWerf for their assistance in helping me to track down this problem.

- The `extractText` and `overlayText` methods for the `FXTable` class were implemented incorrectly and weren't listed in the API documentation. These problems have been corrected.

- The checks for out-of-bounds indices in the `getColumnX`, `setColumnX`, `getRowY`, `setRowY` and `updateRange` methods for the `FXTable` class were incorrect. These have been fixed.

- The `setTableSize` method for the `FXTable` class now raises `ArgError` if either the number of rows or columns passed in as arguments is less than zero.

- A typo in one of the source files was causing the build to fail when compiled against Ruby versions 1.8.1 or earlier (see RubyForge Bug #1551). This error has been corrected. Thanks to Alex McGuire for reporting this problem.

- The `selectItem` method for the `FXTable` class was removed in FOX 1.2, so we've added a convenience method for this that just calls the `selectRange` method under the hood (see RubyForge Bug #1562). Thanks to Joel VanderWerf for this suggestion.

- The binary gem for Windows was built with FOX version 1.2.13 and FXScintilla version 1.62.

## Changes For Version 1.2.4 (February 23, 2005)

- Due to a change in some of the internal Ruby C APIs, a compile-time error for FXRuby was introduced in some of the Ruby 1.8.2 preview releases (see RubyForge Bug #1039). One should not see any compile-time errors when compiling FXRuby (versions 1.2.3 or later) against the Ruby 1.8.2 final release, but I've neverthless made a change to how those internal APIs are used, to avoid any potential problems. Thanks to the many users who pointed out this problem.

- Joel VanderWerf suggested some enhancements to the `image.rb` example program in order to improve its startup time (see RubyForge Bug #1281). Those changes have been incorporated. Thanks to Joel for this suggestion.

- One change for the `FXImage` class between FOX versions 1.0 and 1.2 is the nature of the pixel buffer that's passed to the `FXImage` constructor. Previously, this pixel buffer was expected to be a string of bytes; now it's expected to be an array of FXColor values. This modification was not implemented correctly for FXRuby versions 1.2.3 and earlier (see RubyForge Bug #1427). This bug has been corrected, and the example program (`image.rb`) and test cases have been updated as well. Thanks to Oliver Smith and others for reporting this problem.

- A couple of different problems, reported by Patrick Fernie and David Peoples, exposed a flaw in how FXRuby manages the links between FOX objects and their Ruby peers when the FOX objects are destroyed (see RubyForge Bug #1445). Without going into all the gory details, let's just say that since we have no explicit control over when Ruby's garbage collector decides to "collect" those Ruby peers that point to C++ objects that have been destroyed, we need to take steps to neutralize those Ruby peer objects so that they can't cause your application to crash in the meantime; I've implemented a fix to take care of this situation. Thanks to Patrick and David for reporting these problems.

- The API documentation for FXRuby 1.2 still contained references to the old "spellings" of the `fxparseAccel` and `fxparseHotKey` method names, which were all lowercase (i.e. `fxparseaccel` and `fxparsehotkey`). (see RubyForge Bug #1470). These errors have been corrected.

- Added the `FXScrollArea#scrollCorner` method, which returns a reference to the scroll corner for any window derived from `FXScrollArea` (see RubyForge Feature Request #1226). Thanks to Brian Sheehan for this suggestion.

- Added the `FXMemoryBuffer#to_a` method, which is just an alias for the `data` accessor method that returns a copy of the data buffer as an array (see RubyForge Feature Request #1295). Thanks to Meinrad Recheis for this suggestion.

- Added the `appendRows` and `appendColumns` methods to the `FXTable` class (see RubyForge Feature Request #1295). Thanks to Brett Hallett for this suggestion.

- The binary gem for Windows was built with FOX version 1.2.13 and FXScintilla version 1.62.

## Changes For Version 1.2.3 (January 22, 2005)

- Since group boxes containing radio buttons no longer enforce the radio behavior of radio buttons (i.e. keeping only one radio button selected at a time), some of the example programs were no longer working as desired (see RubyForge Bug #751 and RubyForge Bug #1280). This problem has been corrected. Thanks to Yuri Leikind and Barry DeZonia for reporting this problem.

- Bob Sidebotham reported a little typo in the `table.rb` example program (see RubyForge Bug #990). This has been corrected.

- The API documentation for `FXList` did not reflect the changes for FOX 1.2; the `retrieveItem()` has been renamed to `getItem()` and `insertItem()` has been renamed to `setItem()` (see RubyForge Bug #1037 and RubyForge Bug #1257). This has been corrected. Thanks to Remy Drouilhet and Stephan Kamper for reporting this problem.

- The Windows installer was missing some of the documentation files (see RubyForge Bug #1139). This has been corrected. Thanks to Curt Hibbs and Mark Smith for reporting this problem.

- The `browser.rb` example program was broken (see RubyForge Bug #1146). This has been corrected. Thanks to Stefan Lang for reporting this problem.

- The attribute setter for `FXHeaderItem#justification` was defined incorrectly (see RubyForge Bug #1276). This has been corrected. Thanks to Joel VanderWerf for reporting this problem (and providing a patch to fix it).

- The `filenames` alias for the `FXFileDialog#getFilenames()` instance method was missing (see RubyForge Bug #1277). This error has been corrected. Thanks to Barry DeZonia for reporting this problem.

- The API documentation for the `FXFileDialog` class methods `getOpenFilenames()`, `getOpenDirectory()`, `getOpenFilename()` and `getSaveFilename()` was extremely inadequate (see RubyForge Bug #1279). This documentation has been improved. Thanks to Barry DeZonia for reporting this problem.

- Brett Hallett contributed a Ruby port of the "ratio" example program from the regular FOX distribution, for demonstrating the use of the new `FXSpring` layout manager (see RubyForge Bug #1282). Many thanks to Brett for this addition!

- Joel VanderWerf contributed code to simplify how programs interact with modal and non-modal dialog boxes (see RubyForge Bug #1283). See the API documentation for the new `FXDialogBox#execute_modal` and `FXDialogBox#execute_nonmodal` methods for examples of their use.

- The attribute setters for `FXRealSpinner#selBackColor` and `FXSpinner#selBackColor` were defined incorrectly (see RubyForge Bug #1297). These have been corrected. Thanks to Meinrad Recheis for reporting this problem.

- The `tooltipPause` attribute reader for the `FXApp` class was missing (see RubyForge Patch #1306). Thanks to Joel VanderWerf for reporting this omission and providing a patch to fix it.

- The API documentation for the `FXToolBarTab` class was missing (see RubyForge Bug #1322). Thanks to Joel VanderWerf for reporting this omission.

- The attribute accessors for `FXText#visibleRows` and `FXText#visibleColumns` were defined and documented incorrectly (see RubyForge Bug #1325). These have been corrected. Thanks to Karl El-Koura for reporting this problem.

- The binary gem for Windows was built with FOX version 1.2.13 and FXScintilla version 1.62.

## Changes For Version 1.2.2 (October 1, 2004)

- In order to avoid versioning problems when dealing with a mix of applications based on either FXRuby 1.0 or 1.2, the feature name for FXRuby has been changed from "fox" to "fox12". For most application developers, this means that you will need to modify the source code for applications targeted at FXRuby 1.2 to begin with the line

      require 'fox12'

  Note that no changes should be required for legacy applications targeted at FXRuby 1.0.

- Made a number of updates to the documentation, to reflect API changes for FXRuby 1.2.

- The binary gem for Windows was built with FOX version 1.2.9 and FXScintilla version 1.61.

## Changes For Version 1.2a2 (July 10, 2004)

- This is the second "alpha" release of FXRuby 1.2. This release should be compatible with any FOX library version 1.2; it is not compatible with any previous FOX library versions. As this is an alpha release, users should expect a certain amount of instability, bugs, etc.

- For this release, all of the FOX 1.2 classes are available with the exception of the `FXBitmapView` class. There is a small problem with how the `FXBitmapView` class is declared in the FOX 1.2 header files, and I'm trying to decide how best to resolve that problem. The goal is to have this problem resolved by the next alpha release of FXRuby.

- For this release, all of the RDoc-based online documentation has been brought up to date with the new APIs.

- Portions of the FXRuby User's Guide were still out of date with respect to the new APIs (see SourceForge Bug #988623). This has been fixed.

- The `mditest.rb` example program was not up to date with the new APIs. This has been fixed.

- The `glviewer.rb` example program was not up to date with the new APIs (see SourceForge Bug #986479). This has been fixed. Thanks to Remy Drouilhet for reporting this problem and suggesting the fixes.

- The `FXGLGroup#bounds` method was defined incorrectly (see SourceForge Bug #986476). This has been fixed. Thanks to Remy Drouilhet for reporting this problem and suggesting the fix.

- The `scintilla-test.rb` example program was not up to date with the new APIs (see SourceForge Bug #986172). This has been fixed. Thanks to Peter Watkins for reporting this problem and submitting a corrected version of the program.

- There was a small typo in the table.rb example program (see SourceForge Bug #988152). This has been fixed. Thanks to Jamey Cribbs for reporting this problem and suggesting the fix.

- Due to an oversight on my part, one of the overloaded constructors for the `FXRegion` class wasn't wrapped properly (see SourceForge Bug #986181). This has been fixed. Thanks to Bil Bas for reporting this problem.

- Removed some obsolete aliases for the old leading and trailing rows and columns for the `FXTable` class (see SourceForge Bug #988038). Thanks to Yuri Leikind for reporting this problem.

- Added `FXTable` instance methods `horizontalGridShown=()` and `verticalGridShown=()` to complement the already available `horizontalGridShown?` and `verticalGridShown?` methods.

- The binary gem for the 1.2a1 release on Windows didn't have PNG or JPEG image support built-in (see SourceForge Bug #986180). This has been fixed. Thanks to Bil Bas for reporting this problem.

- The binary gem for Windows was built with FOX version 1.2.7 and FXScintilla version 1.61.

## Changes For Version 1.2a1 (June 28, 2004)

- This is the first "alpha" release of FXRuby 1.2. This release should be compatible with any FOX library version 1.2; it is not compatible with any previous FOX library versions. As this is an alpha release, users should expect a certain amount of instability, bugs, etc.

  The intent of this first alpha release is twofold. The primary intent is allow application developers who have current projects based on FXRuby 1.0 to begin the process of updating their applications for compatibility with FXRuby 1.2. For this release, all of the classes that existed in FXRuby 1.0 have been updated for compatibility with FOX 1.2, and so developers should at least be able to begin to "port" their applications forward now. Note that there have been a number of changes for FOX 1.2 and FXRuby 1.2, both in terms of API changes and less obvious "behavioral" changes. For a detailed summary of these changes, please see "What's New in FOX 1.2" (also available as a PDF). Note that few, if any, of the new classes introduced in FOX 1.2 are available in this first alpha release of FXRuby 1.2. Support for those new classes should come along quickly in subsequent alpha releases of FXRuby 1.2.

  The secondary intent of this first alpha release is to introduce the new RubyGems-based packaging of FXRuby and to begin to work out the inevitable kinks in that system.

- The binary gem for Windows was built with FOX version 1.2.4 and FXScintilla version 1.57.

Prev | Up | Next
Chapter 9. Other Sources of Information | Home | Part II. Appendices