Thread: [Fxruby-commits] CVS: FXRuby/doc build.html,1.21,1.22 build.xml,1.4,1.5 changes.html,1.40,1.41 chang
Status: Inactive
Brought to you by:
lyle
From: Lyle J. <ly...@us...> - 2002-03-21 19:09:20
|
Update of /cvsroot/fxruby/FXRuby/doc In directory usw-pr-cvs1:/tmp/cvs-serv27523/doc Modified Files: build.html build.xml changes.html changes.xml differences.html events.html examples.html examples.xml library.html opengl.html scintilla.html Log Message: Updated comments in the "examples" section on the "shutter.rb" example, and updated its screenshot as well. Index: build.html =================================================================== RCS file: /cvsroot/fxruby/FXRuby/doc/build.html,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** build.html 14 Mar 2002 17:03:39 -0000 1.21 --- build.html 21 Mar 2002 19:09:11 -0000 1.22 *************** *** 10,14 **** C:\ruby-1.6.7><b>nmake</b></pre></td></tr></table><p>After the compilation finished, you installed Ruby somewhere by typing, e.g.,</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">C:\ruby-1.6.7><b>nmake DESTDIR=C:\ruby install</b></pre></td></tr></table><p>Similarly, I'm assuming that you built the FOX library using the Developer Studio project files distributed with the standard FOX source code distribution. Although it's possible to build FXRuby against either the static library build of FOX (<tt>fox.lib</tt>) or the DLL build (<tt>foxdll.dll</tt>), these instructions currently cover only the static library build. Before you get started building FXRuby itself, you'll need to rename the static FOX library from its default filename (<tt>fox.lib</tt>) to <tt>foxst.lib</tt>. The reason for this rename is a charming little quirk in Microsoft's LINK utility and the fact that the eventual output name for the FXRuby DLL is also <tt>fox.so</tt>; for now, just take my word for it. So if your FOX source code distribution and build are found in the <tt>C:\fox-1.0.3</tt> directory, you'd need to rename the file:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">C:\fox-1.0.3\lib><b>rename fox.lib foxst.lib</b></pre></td></tr></table><p>Now you can configure the FXRuby build by typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">C:\FXRuby-1.0.3><b>ruby install.rb config --make-prog=nmake -- \ --with-fox-include=C:\fox-1.0.3\include \ ! --with-fox-lib=C:\fox-1.0.3\lib</b></pre></td></tr></table><p>Once the build has been configured, you can start the build by typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">$ <b>ruby install.rb setup</b></pre></td></tr></table><p>It will take quite awhile to build FXRuby, even on a fast machine, so this might be a good time to take a coffee break. Because Visual C++ is such a strict compiler (usually a good thing), you will probably run into a few problems with non-ANSI declarations in the Ruby header files. If you do run into problems during the compilation, just check the next section for a list of things that could go wrong, and workarounds for those problems. None of them are showstoppers and none require you to restart the compile from scratch (just type <b>ruby install.rb setup</b> to pick up where you left off).</p><p>Once it's finished compiling, install FXRuby by typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">$ <b>ruby install.rb install</b></pre></td></tr></table><p>As a quick sanity check, to make sure that all is well, you should probably fire up <tt>irb</tt> and try to import FXRuby:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">$ <b>irb</b> irb(main):001:0> <b><tt>require 'fox'</tt></b> true --- 10,14 ---- C:\ruby-1.6.7><b>nmake</b></pre></td></tr></table><p>After the compilation finished, you installed Ruby somewhere by typing, e.g.,</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">C:\ruby-1.6.7><b>nmake DESTDIR=C:\ruby install</b></pre></td></tr></table><p>Similarly, I'm assuming that you built the FOX library using the Developer Studio project files distributed with the standard FOX source code distribution. Although it's possible to build FXRuby against either the static library build of FOX (<tt>fox.lib</tt>) or the DLL build (<tt>foxdll.dll</tt>), these instructions currently cover only the static library build. Before you get started building FXRuby itself, you'll need to rename the static FOX library from its default filename (<tt>fox.lib</tt>) to <tt>foxst.lib</tt>. The reason for this rename is a charming little quirk in Microsoft's LINK utility and the fact that the eventual output name for the FXRuby DLL is also <tt>fox.so</tt>; for now, just take my word for it. So if your FOX source code distribution and build are found in the <tt>C:\fox-1.0.3</tt> directory, you'd need to rename the file:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">C:\fox-1.0.3\lib><b>rename fox.lib foxst.lib</b></pre></td></tr></table><p>Now you can configure the FXRuby build by typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">C:\FXRuby-1.0.3><b>ruby install.rb config --make-prog=nmake -- \ --with-fox-include=C:\fox-1.0.3\include \ ! --with-fox-lib=C:\fox-1.0.3\lib</b></pre></td></tr></table><p>Once the build has been configured, you can start the build by typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">C:\FXRuby-1.0.3> <b>ruby install.rb setup</b></pre></td></tr></table><p>It will take quite awhile to build FXRuby, even on a fast machine, so this might be a good time to take a coffee break. Because Visual C++ is such a strict compiler (usually a good thing), you will probably run into a few problems with non-ANSI declarations in the Ruby header files. If you do run into problems during the compilation, just check the next section for a list of things that could go wrong, and workarounds for those problems. None of them are showstoppers and none require you to restart the compile from scratch (just type <b>ruby install.rb setup</b> to pick up where you left off).</p><p>Once it's finished compiling, install FXRuby by typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">C:\FXRuby-1.0.3> <b>ruby install.rb install</b></pre></td></tr></table><p>As a quick sanity check, to make sure that all is well, you should probably fire up <tt>irb</tt> and try to import FXRuby:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">C:\FXRuby-1.0.3> <b>irb</b> irb(main):001:0> <b><tt>require 'fox'</tt></b> true Index: build.xml =================================================================== RCS file: /cvsroot/fxruby/FXRuby/doc/build.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** build.xml 13 Mar 2002 22:46:21 -0000 1.4 --- build.xml 21 Mar 2002 19:09:11 -0000 1.5 *************** *** 40,49 **** --with-fox-lib=C:\fox-1.0.3\lib</command></screen> <para>Once the build has been configured, you can start the build by typing:</para> ! <screen>$ <command>ruby install.rb setup</command></screen> <para>It will take quite awhile to build FXRuby, even on a fast machine, so this might be a good time to take a coffee break. Because Visual C++ is such a strict compiler (usually a good thing), you will probably run into a few problems with non-ANSI declarations in the Ruby header files. If you do run into problems during the compilation, just check the next section for a list of things that could go wrong, and workarounds for those problems. None of them are showstoppers and none require you to restart the compile from scratch (just type <command>ruby install.rb setup</command> to pick up where you left off).</para> <para>Once it's finished compiling, install FXRuby by typing:</para> ! <screen>$ <command>ruby install.rb install</command></screen> <para>As a quick sanity check, to make sure that all is well, you should probably fire up <filename>irb</filename> and try to import FXRuby:</para> ! <screen>$ <command>irb</command> irb(main):001:0> <userinput>require 'fox'</userinput> true --- 40,49 ---- --with-fox-lib=C:\fox-1.0.3\lib</command></screen> <para>Once the build has been configured, you can start the build by typing:</para> ! <screen>C:\FXRuby-1.0.3> <command>ruby install.rb setup</command></screen> <para>It will take quite awhile to build FXRuby, even on a fast machine, so this might be a good time to take a coffee break. Because Visual C++ is such a strict compiler (usually a good thing), you will probably run into a few problems with non-ANSI declarations in the Ruby header files. If you do run into problems during the compilation, just check the next section for a list of things that could go wrong, and workarounds for those problems. None of them are showstoppers and none require you to restart the compile from scratch (just type <command>ruby install.rb setup</command> to pick up where you left off).</para> <para>Once it's finished compiling, install FXRuby by typing:</para> ! <screen>C:\FXRuby-1.0.3> <command>ruby install.rb install</command></screen> <para>As a quick sanity check, to make sure that all is well, you should probably fire up <filename>irb</filename> and try to import FXRuby:</para> ! <screen>C:\FXRuby-1.0.3> <command>irb</command> irb(main):001:0> <userinput>require 'fox'</userinput> true Index: changes.html =================================================================== RCS file: /cvsroot/fxruby/FXRuby/doc/changes.html,v retrieving revision 1.40 retrieving revision 1.41 diff -C2 -d -r1.40 -r1.41 *** changes.html 20 Mar 2002 23:07:24 -0000 1.40 --- changes.html 21 Mar 2002 19:09:11 -0000 1.41 *************** *** 1,3 **** <html><head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> ! <title>Chapter 10. Change History</title><meta name="generator" content="DocBook XSL Stylesheets V1.48"><link rel="home" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="previous" href="todo.html" title="Chapter 9. To-do list"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 10. Change History</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="todo.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> </td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="changes"></a>Chapter 10. Change History</h2></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e1794"></a>Changes Since Version 0.99.189</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Upgraded to the latest version of Minero Aoki's <tt>install.rb</tt> script.</p></li><li style="list-style-type: disc"><p>Switched from using DocBook/SGML to DocBook/XML for the FXRuby documentation. This is mainly a maintenance issue; it's just much less complicated to "publish" documents using DocBook/XML as compared to DocBook/SGML. You should see few (if any) differences in the resulting HTML pages, but let me know if you notice anything squirrely.</p></li><li style="list-style-type: disc"><p>Improved support for customized sorting of list items for the <tt>FXComboBox</tt>, <tt>FXIconList</tt>, <tt>FXList</tt>, <tt>FXListBox</tt>, <tt>FXTreeList</tt> and <tt>FXTreeListBox</tt> classes. The model is different from that used in the C++ FOX library, where you set a global sorting function for each list instance. For FXRuby, you instead just override the list item's <tt><=></tt> method to compare one list item to another. Thanks to Martin Stannard for prompting me to resolve this problem.</p></li><li style="list-style-type: disc"><p>Added instructions about how to modify your <tt>/etc/ld.so.conf</tt> file (on Linux) to include the <tt>libFOX.so</tt> installation directory. Thanks to Giuseppe Cacopardo for providing this information.</p></li><li style="list-style-type: disc"><p>Updated the test cases (again) for use with Nathaniel Talbott's <a href="http://testunit.talbott.ws" target="_top">TestUnit</a>, which is apparently the successor to Lapidary.</p></li><li style="list-style-type: disc"><p>Added support for the <tt>FXCURCursor</tt>, <tt>FXRGBIcon</tt>, <tt>FXRGBImage</tt> classes.</p></li><li style="list-style-type: disc"><p>Fixed a longstanding bug related to the ownership (for garbage collection purposes) of <tt>FXGLGroup</tt> and <tt>FXGLShape</tt> instances. This is the bug that was causing the <tt>glviewer.rb</tt> example program to crash on exit.</p></li><li style="list-style-type: disc"><p>Fixed a different (but also longstanding) bug related to FXRuby's hanging on to "stale" Ruby object references after those Ruby objects had already been garbage-collected. This bug manifested itself in a number of ways, but the most common symptom would be for an object (like an <tt>FXEvent</tt> instance) to suddenly lose its mind and believe it was some other object. Oh, and your program would usually crash at that point. I think this problem is now fixed.</p></li><li style="list-style-type: disc"><p>Added some safeguards for "destructive" functions like <tt>FXList#clearItems</tt>, which can destroy the C++ objects backing-up Ruby objects in FXRuby, so that any outstanding Ruby references to those destroyed C++ objects are left in a safe state when accessed by Ruby's garbage collector.</p></li><li style="list-style-type: disc"><p>Added a new example program (<tt>raabrowser.rb</tt>) that allows you to browse the Ruby Application Archive via its SOAP interface. Requires the <a href="http://www.jin.gr.jp/~nahi/Ruby/SOAP4R" target="_top">SOAP4R</a> extension.</p></li><li style="list-style-type: disc"><p>Added a new example program (<tt>babelfish.rb</tt>) that allows you to use the Babelfish translator web service via its SOAP interface. Requires the <a href="http://www.jin.gr.jp/~nahi/Ruby/SOAP4R" target="_top">SOAP4R</a> extension.</p></li><li style="list-style-type: disc"><p>Added a new page to the documentation to briefly describe each of the example programs (including screenshots).</p></li><li style="list-style-type: disc"><p>The CVS repository for FXRuby is now hosted at the SourceForge site. For those who would like access to the latest version of FXRuby (in-between official releases) this is now an option. For more details, see the instructions at the <a href="http://sourceforge.net/cvs/?group_id=20243" target="_top">SourceForge project CVS page</a>.</p></li><li style="list-style-type: disc"><p>Updated the interfaces for compatibility with <a href="http://www.fox-toolkit.org/ftp/fox-1.0.3.tar.gz" target="_top">fox-1.0.3</a>.</p></li></ul></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e1915"></a>Changes Since Version 0.99.188</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Fixed a big bug related to the <tt>FXApp#addSignal</tt> and <tt>FXApp#removeSignal</tt> functions, which should accept a string signal name as an argument. The list of recognized signal names was not constructed properly and as a result most any call to these methods with a string signal name would fail. This has been corrected, and the methods now throw exceptions like those thrown from <tt>Process::kill</tt> when the signal name is unrecognized or the argument type is wrong.</p></li><li style="list-style-type: disc"><p>The <tt>imageviewer.rb</tt> example program now supports loading TARGA, ICO and TIFF image files.</p></li><li style="list-style-type: disc"><p>The configuration process on Windows should now detect the presence of <tt>libtiff.lib</tt> properly.</p></li><li style="list-style-type: disc"><p>Updated the interfaces for compatibility with <a href="http://www.fox-toolkit.org/ftp/fox-0.99.189.tar.gz" target="_top">fox-0.99.189</a>.</p></li></ul></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e1949"></a>Changes Since Version 0.99.181</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Removed the <tt>-fno-strict-prototype</tt> and <tt>-fpermissive</tt> flags from the <tt>CFLAGS</tt> for Linux builds, since these two flags are no longer supported for more recent versions of gcc. Thanks to Thomas Lundqvist for reporting this.</p></li><li style="list-style-type: disc"><p>Some of the source files included in the previous release had DOS-style line endings and this caused gcc to choke while compiling them; this has been fixed. Thanks to Thomas Lundqvist for reporting this.</p></li><li style="list-style-type: disc"><p>Updated the FXRuby test cases (such as they are) to use Nathaniel Talbott's <a href="http://lapidary.sourceforge.net" target="_top">Lapidary</a> unit testing framework.</p></li><li style="list-style-type: disc"><p>Migrated yet more code from the C++ extension to pure Ruby versions. Most of the code for the <tt>FXPoint</tt>, <tt>FXRectangle</tt> and <tt>FXSize</tt> classes is now implemented in Ruby.</p></li><li style="list-style-type: disc"><p>Fixed a bug in the <tt>browser.rb</tt> example. I had meant for the methods and constants lists to be sorted but had failed to use the in-place <tt>sort!</tt> method. Thanks to Robert Gustavsson for reporting this.</p></li><li style="list-style-type: disc"><p>Completed a lot of the initial work for integrating the FXScintilla widget into FXRuby. This is not usable yet, but I'm working with Rich Kilmer and others to try to make this happen.</p></li><li style="list-style-type: disc"><p>Updated the build instructions to provide more information about building the Visual C++ version of FXRuby (i.e. for use with the Visual C++ build of Ruby) on Windows. Thanks to a final tip from Martin Stannard we now have a working build for this compiler.</p></li><li style="list-style-type: disc"><p>For fun, added a new example program that downloads today's Dilbert cartoon from the <a href="http://www.dilbertzone.com" target="_top">DilbertZone</a> web site and displays it in an <tt>FXImageViewer</tt> widget. Requires the <tt>html-parser</tt> module, listed in the <a href="http://www.ruby-lang.org/en/raa.html" target="_top">Ruby Application Archive</a>.</p></li><li style="list-style-type: disc"><p>Updated the interfaces for compatibility with <a href="http://www.fox-toolkit.org/ftp/fox-0.99.188.tar.gz" target="_top">fox-0.99.188</a>.</p></li></ul></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e2022"></a>Changes Since Version 0.99.180</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Added <tt>slices</tt>, <tt>stacks</tt> and <tt>loops</tt> accessors for the <tt>FXGLCone</tt> and <tt>FXGLCylinder</tt> classes, to provide finer control over the rendering fidelity for these shapes (this was already done for <tt>FXGLSphere</tt> in the previous release).</p></li><li style="list-style-type: disc"><p>Updated the interfaces for compatibility with <a href="ftp://ftp.fox-toolkit.org/pub/fox-0.99.181.tar.gz" target="_top">fox-0.99.181</a>.</p></li></ul></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e2053"></a>Changes Since Version 0.99.174</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Moved the class definitions for <tt>FXGLPoint</tt>, <tt>FXGLLine</tt>, <tt>FXGLCube</tt>, <tt>FXGLCylinder</tt>, <tt>FXGLSphere</tt> and <tt>FXGLCone</tt> to a new library module <tt>fox/glshapes.rb</tt>. The interfaces are the same as the C++ versions of these classes, this is just a "pure Ruby" implementation of the classes instead of wrappers around the C++ classes. See <tt>examples/glviewer.rb</tt> for an example of their use.</p></li><li style="list-style-type: disc"><p>Fixed a bug related to object ownership for GL objects added to a <tt>FXGLGroup</tt>.</p></li><li style="list-style-type: disc"><p>Added support for overriding the virtual <tt>layout</tt> method in classes derived from <tt>FXWindow</tt>. This will allow developers to, for example, develop new kinds of layout managers.</p></li><li style="list-style-type: disc"><p>Replaced the previous WISE-based installer for the Windows version with an Inno Setup-based installer and reorganized things to better reflect the organization used in the standard Ruby installer.</p></li><li style="list-style-type: disc"><p>Updated the setup and build script to the latest version of Minero Aoki's scripts (version 3.0.2). The main change for FXRuby end-users is that the name of the build script is now <tt>install.rb</tt> instead of <tt>setup.rb</tt>.</p></li><li style="list-style-type: disc"><p>Added the <tt>colors.rb</tt> library file, for predefined color names in the <tt>FXColor</tt> namespace. The use of this module allows you to use symbolic names like <tt>FXColor::Red</tt> instead of an RGB constant like FXRGB(255, 0, 0). Many thanks to Jeff Heard for this suggestion and the contributed file.</p></li><li style="list-style-type: disc"><p>The <tt>FXRegion</tt> was accidentally being renamed to <tt>FX_Region</tt> (a little behind-the-scenes magic I'm doing in FXRuby) and as a result you couldn't use this class. Thanks to Steven Grady for catching this bug.</p></li><li style="list-style-type: disc"><p>The <tt>FXFileStream</tt> class now supports a Ruby-style <tt>open</tt> singleton method that provides transactional control for closing the file stream when it's done. See the <tt>image.rb</tt> and <tt>imageviewer.rb</tt> examples for how this works.</p></li><li style="list-style-type: disc"><p>After some discussions at RubyConf and follow-up discussions on the comp.lang.ruby newsgroup, the procedure for attaching events handlers to FXRuby widgets has been greatly simplified. Most of the example programs have been updated to reflect these changes, and a new documentation section has been added to describe how it works. For some of the background, please see <a href="http://www.rubygarden.org/ruby?FXRubyComments" target="_top">this page</a> on the RubyGarden Wiki.</p></li><li style="list-style-type: disc"><p>Added support for the <tt>each_row</tt> and <tt>each_column</tt> iterators for the <tt>FXTable</tt> class. These iterators yield an array of references to <tt>FXTableItem</tt> instances, one per row or column, respectively. Note that the <tt>each</tt> method is just an alias for <tt>each_row</tt>.</p></li><li style="list-style-type: disc"><p>Removed the interfaces for <tt>fxrandom</tt>, <tt>fxmalloc</tt>, <tt>fxcalloc</tt>, <tt>fxresize</tt>, <tt>fxmemdump</tt>, and <tt>fxfree</tt>. These utility functions are not relevant for FXRuby.</p></li><li style="list-style-type: disc"><p>Corrected interfaces for <tt>fxhsv_to_rgb</tt> and <tt>fxrgb_to_hsv</tt> so that they return three-element arrays of the converted color components.</p></li><li style="list-style-type: disc"><p>Corrected interfaces for <tt>FXWindow#acquireSelection</tt>, <tt>FXWindow#acquireClipboard</tt> and <tt>FXWindow#beginDrag</tt> to take an array of drag types.</p></li><li style="list-style-type: disc"><p>Corrected interfaces for <tt>fxsaveBMP</tt>, <tt>fxsaveGIF</tt>, <tt>fxsaveICO</tt>, <tt>fxsavePCX</tt>, <tt>fxsavePNG</tt>, <tt>fxsaveTIF</tt> and <tt>fxsaveXPM</tt> so that they expect a Ruby string (containing the image pixel data) as their second argument.</p></li><li style="list-style-type: disc"><p>Updated the interfaces for compatibility with <a href="ftp://ftp.fox-toolkit.org/pub/fox-0.99.180.tar.gz" target="_top">fox-0.99.180</a>.</p></li></ul></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e2246"></a>Changes Since Version 0.99.173</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Moved all of the method name aliases out of the C interface code and into a new library file (<tt>fox/aliases.rb</tt>). This file is loaded automatically so you don't need to change your code. Similarly, moved all of the iterator methods out of the C code and into a library file (<tt>fox/iterators.rb</tt>). The main purpose of these changes is to reduce the size of the C++ code (especially <tt>core_wrap.cpp</tt>) where possible. Obviously, compared to recompiling the C++ source code, it's also much more efficient to quickly patch the Ruby files and re-run when there are problems.</p></li><li style="list-style-type: disc"><p>A few errors made it into the <tt>undolist.rb</tt> library module and the <tt>textedit.rb</tt> example last time; I think these have been fixed.</p></li><li style="list-style-type: disc"><p>I meant to add support for the new <tt>FXPCXIcon</tt> and <tt>FXPCXImage</tt> classes with the last release, but somehow I overlooked those. They are now supported, along with the other new classes introduced by FOX version 0.99.174: <tt>FXTIFIcon</tt>, <tt>FXTIFImage</tt> and <tt>FXProgressDialog</tt>.</p></li><li style="list-style-type: disc"><p>Fixed a bug in the GC-related code for "marking" C++ objects. I had not accounted for the possibility that the pointer passed to my mark functions could be a <tt>NULL</tt> pointer, and as a result the code would seg fault during garbage collection, under some circumstances. Many thanks to Ralf Canis for catching this bug.</p></li><li style="list-style-type: disc"><p>Updated the source code and <tt>extconf.rb</tt> files so that FXRuby configures and builds correctly for the "mswin32" builds. Thanks very much to Lorien Dunn for prompting me to get this stuff up-to-date!</p></li><li style="list-style-type: disc"><p>Fixed things so that the <tt>FXApp#addInput</tt> and <tt>FXApp#removeInput</tt> instance methods work properly for generating input messages. The first argument to both of these methods should be an <tt>IO</tt> object of some kind (specifically, an object that implements a <tt>fileno</tt> method). For more information about how this works, see the "Timers, Chores, Signals and Input Messages" section of the FOX documentation. Also see the new <tt>inputs.rb</tt> program in the <tt>examples</tt> directory for an example of how this works. Thanks to Ralf Canis for reminding me that I left this broken!</p></li><li style="list-style-type: disc"><p>Completed the basic code changes required for <tt>FXObject#handle</tt> to properly convert its message data into something that the C++ objects recognize (see the first item in the FXRuby To-Do List for more information). A lot of message types and identifiers are now handled correctly, especially those that are common to all <tt>FXWindow</tt>s. Most of the more widget-specific messages are not handled yet, and this is going to take awhile to complete; it's just a tedious process.</p></li><li style="list-style-type: disc"><p>Updated the interfaces for compatibility with <a href="ftp://ftp.cfdrc.com/pub/FOX/fox-0.99.174.tar.gz" target="_top">fox-0.99.174</a>.</p></li></ul></div></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e2337"></a>Changes Since Version 0.99.172</h2></div></div><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>Changed the build and installation process to use Minero Aoki's <tt>setup.rb</tt> tools. Looking ahead I can see that FXRuby will probably consist of a core C++ extension module and a collection of Ruby library scripts, and so now was the right time to make that transition.</p><p>If you have previously installed FXRuby (and written programs with the same) there are a few changes that may affect you. First, <tt>setup.rb</tt> will install the shared library (<tt>fox.so</tt>) in your <tt>site_ruby</tt> directory instead of the "core" libraries directory, where it was previously installed. So you should be sure to remove the old version of <tt>fox.so</tt> before installing and using this one.</p><p>The other change to be aware of is that there is now a <tt>fox</tt> directory containing FXRuby library scripts, and the <tt>responder.rb</tt> module is the first entry for this directory. You can import this file into your Ruby scripts with the line:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="programlisting">require 'fox/responder'</pre></td></tr></table><p>and it's no longer necessary to drag copies of that file around.</p></li><li style="list-style-type: disc"><p>Aliased the <tt>getText</tt> instance method to <tt>to_s</tt> for a number of classes. This change should make things a little more convenient when inspecting the contents of widgets whose primary purpose is text entry or display. Thanks to Barry Shultz for this suggestion.</p></li><li style="list-style-type: disc"><p>Added the <tt>FXWindow#removeChild</tt> method for removing child widgets from a container window. This method doesn't exist for the C++ <tt>FXWindow</tt> class because it isn't needed; in C++ programs you simply delete the C++ object and it automatically gets removed from its parent. Note that after you call <tt>FXWindow#removeChild</tt> any outstanding references to the recently deceased child widget are invalid and should be set to <tt>nil</tt> or otherwise disposed of. Thanks to Ted Meng for noticing this omission.</p></li><li style="list-style-type: disc"><p>Modified some of the OpenGL method calls in <tt>gltest.rb</tt> for compatibility with Ruby/OpenGL 0.32. You should now be able to use Ruby/OpenGL with FXRuby unmodified.</p></li><li style="list-style-type: disc"><p>Added <tt>each()</tt> instance methods for <tt>FXComboBox</tt>, <tt>FXGLGroup</tt>, <tt>FXHeader</tt>, <tt>FXIconList</tt>, <tt>FXList</tt>, <tt>FXListBox</tt>, <tt>FXTreeItem</tt>, <tt>FXTreeList</tt> and <tt>FXTreeListBox</tt> in support of iterating over their sub-items. Also mixed the <tt>En... [truncated message content] |