[Fxruby-commits] CVS: FXRuby/doc custom.xsl,1.1,1.2 implementation.html,1.1,1.2 implementation.xml,1
Status: Inactive
Brought to you by:
lyle
Update of /cvsroot/fxruby/FXRuby/doc In directory usw-pr-cvs1:/tmp/cvs-serv26972/doc Modified Files: Makefile book.html book.xml build.html build.xml changes.html changes.xml differences.html differences.xml events.html examples.html goals.html goals.xml library.html library.xml opengl.html scintilla.html scintilla.xml todo.html todo.xml tutorial1.html tutorial1.xml Added Files: custom.xsl implementation.html implementation.xml Removed Files: tutorial1.png Log Message: Merged changes from the release10 branch back onto the main trunk. Index: Makefile =================================================================== RCS file: /cvsroot/fxruby/FXRuby/doc/Makefile,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Makefile 22 Mar 2002 01:53:30 -0000 1.7 --- Makefile 11 Jul 2002 13:32:54 -0000 1.8 *************** *** 5,10 **** ######################################################################## ! SAXON = java -jar C:\saxon-6.5.1\saxon.jar ! DOCBOOK_XSL = C:\docbook\docbook-xsl-customized\html\chunk.xsl all: xml --- 5,11 ---- ######################################################################## ! SAXON = java -jar /home/jlj/saxon-6.5.2/saxon.jar ! #DOCBOOK_XSL = /home/jlj/docbook/docbook-xsl-1.50.0/html/chunk.xsl ! DOCBOOK_XSL = custom.xsl all: xml *************** *** 12,16 **** xml: $(SAXON) book.xml $(DOCBOOK_XSL) - move /y index.html book.html clean: --- 13,16 ---- Index: book.html =================================================================== RCS file: /cvsroot/fxruby/FXRuby/doc/book.html,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** book.html 22 Mar 2002 01:53:30 -0000 1.35 --- book.html 11 Jul 2002 13:32:54 -0000 1.36 *************** *** 1,3 **** <html><head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> ! <title>Developing Graphical User Interfaces with FXRuby</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="next" href="goals.html" title="History and Goals"></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">Developing Graphical User Interfaces with FXRuby</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="goals.html">Next</a></td></tr></table><hr></div><div class="book"><div class="titlepage"><div><h1 class="title"><a name="book"></a>Developing Graphical User Interfaces with FXRuby</h1></div><div><div class="author"><h3 class="author">Lyle Johnson</h3></div></div><div><p class="copyright">Copyright © 2001 J. Lyle Johnson</p></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="goals.html">History and Goals</a></dt><dt>1. <a href="build.html">Building from Source Code</a></dt><dt>2. <a href="examples.html">Examples</a></dt><dt>3. <a href="tutorial1.html">Hello, World!</a></dt><dt>4. <a href="opengl.html">Using OpenGL with FXRuby</a></dt><dt>5. <a href="scintilla.html">Using Scintilla with FXRuby</a></dt><dt>6. <a href="differences.html">Differences between FOX and FXRuby</a></dt><dt>7. <a href="events.html">FXRuby's Message-Target System</a></dt><dt>8. <a href="library.html">The FXRuby Standard Library</a></dt><dt>9. <a href="todo.html">To-do list</a></dt><dt>10. <a href="changes.html">Change History</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="goals.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> History and Goals</td></tr></table></div></body></html> \ No newline at end of file --- 1,3 ---- <html><head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> ! <title>Developing Graphical User Interfaces with FXRuby</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="next" href="goals.html" title="History and Goals"></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">Developing Graphical User Interfaces with FXRuby</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="goals.html">Next</a></td></tr></table><hr></div><div class="book"><div class="titlepage"><div><h1 class="title"><a name="book"></a>Developing Graphical User Interfaces with FXRuby</h1></div><div><div class="author"><h3 class="author">Lyle Johnson</h3></div></div><div><p class="copyright">Copyright © 2001 J. Lyle Johnson</p></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="goals.html">History and Goals</a></dt><dt>1. <a href="build.html">Building from Source Code</a></dt><dt>2. <a href="examples.html">Examples</a></dt><dt>3. <a href="tutorial1.html">Hello, World!</a></dt><dt>4. <a href="opengl.html">Using OpenGL with FXRuby</a></dt><dt>5. <a href="scintilla.html">Using Scintilla with FXRuby</a></dt><dt>6. <a href="differences.html">Differences between FOX and FXRuby</a></dt><dt>7. <a href="events.html">FXRuby's Message-Target System</a></dt><dt>8. <a href="library.html">The FXRuby Standard Library</a></dt><dt>9. <a href="implementation.html">Implementation</a></dt><dt>10. <a href="todo.html">To-do list</a></dt><dt>11. <a href="changes.html">Change History</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="goals.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> History and Goals</td></tr></table></div></body></html> \ No newline at end of file Index: book.xml =================================================================== RCS file: /cvsroot/fxruby/FXRuby/doc/book.xml,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** book.xml 14 Mar 2002 17:03:39 -0000 1.7 --- book.xml 11 Jul 2002 13:32:54 -0000 1.8 *************** *** 10,13 **** --- 10,14 ---- <!ENTITY events.xml SYSTEM "events.xml"> <!ENTITY goals.xml SYSTEM "goals.xml"> + <!ENTITY implementation.xml SYSTEM "implementation.xml"> <!ENTITY library.xml SYSTEM "library.xml"> <!ENTITY opengl.xml SYSTEM "opengl.xml"> *************** *** 27,30 **** --- 28,32 ---- &events.xml; &library.xml; + &implementation.xml; &todo.xml; &changes.xml; Index: build.html =================================================================== RCS file: /cvsroot/fxruby/FXRuby/doc/build.html,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** build.html 22 Mar 2002 01:53:30 -0000 1.23 --- build.html 11 Jul 2002 13:32:54 -0000 1.24 *************** *** 1,14 **** <html><head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> ! <title>Chapter 1. Building from Source Code</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><link rel="home" href="index.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="index.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="previous" href="goals.html" title="History and Goals"><link rel="next" href="examples.html" title="Chapter 2. Examples"></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 1. Building from Source Code</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="goals.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="examples.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="build"></a>Chapter 1. Building from Source Code</h2></div></div><p>If you're planning to use FXRuby on Windows, with the Pragmatic Programmers' Ruby installer for Windows, you may wish to just download the pre-compiled FXRuby binaries. Otherwise, you will need to compile the shared library for FXRuby from the source code.</p><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e59"></a>The Basics</h2></div></div><p>These instructions assume that you've already downloaded, compiled and installed FOX. Next, you'll need to download the FXRuby source code tarball and unpack it by typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">$ <b>tar xzf FXRuby-1.0.3.tar.gz</b></pre></td></tr></table><p>This will create a new directory called <tt>FXRuby-1.0.3</tt>. Change to the top-level directory and configure the build by typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">$ <b>ruby install.rb config</b></pre></td></tr></table><p>By default, the <tt>install.rb</tt> script will look for the FOX include files and library in the standard <tt>/usr/local/include/fox</tt> and <tt>/usr/local/lib</tt> directories, respectively. You can override these locations by passing a few additional arguments to <tt>install.rb</tt> during this step, e.g.</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">$ <b>ruby install.rb config -- \ ! --with-fox-include=/home/lyle/fox-1.0.3/include \ ! --with-fox-lib=/home/lyle/fox-1.0.3/src/.libs</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. If you run into problems during the compilation, please check the <a href="build.html#tragedies" title="Things That Can Go Wrong">list of things that can go wrong</a> for workarounds for those problems.</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 ! irb(main):002:0></pre></td></tr></table><p>If the import failed (usually with a message along the lines of "Cannot load library"), check the <a href="build.html#tragedies" title="Things That Can Go Wrong">list of things that can go wrong</a> for known problems. If that still doesn't solve your problem, drop me an e-mail or ask around on the Ruby newsgroup or mailing list; it's quite likely that someone else has run into this problem too. Once you do have a working FXRuby installation, you're ready to check out the example programs.</p></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e130"></a>Building with Visual C++</h2></div></div><p>This section describes how to compile FXRuby using Microsoft Visual C++, for use with a Ruby that was also compiled using Visual C++.</p><p>This discussion assumes that you've built Ruby using the instructions and build files distributed with the standard Ruby source code. To review, you should have started by unpacking the source code tarball, changing into the top-level source code directory (e.g. <tt>C:\ruby-1.6.7</tt>) and then typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">C:\ruby-1.6.7><b>win32\configure</b> type 'nmake' to make ruby for mswin32. ! 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 --- 1,18 ---- <html><head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> ! <title>Chapter 1. Building from Source Code</title><meta name="generator" content="DocBook XSL Stylesheets V1.50.0"><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="goals.html" title="History and Goals"><link rel="next" href="examples.html" title="Chapter 2. Examples"></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 1. Building from Source Code</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="goals.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="examples.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="build"></a>Chapter 1. Building from Source Code</h2></div></div><p>If you're planning to use FXRuby on Windows, with the Pragmatic ! Programmers' Ruby installer for Windows, you may wish to just download the ! pre-compiled FXRuby binaries. Linux RPMs are also available for download. ! Otherwise, you will need to compile the shared library for FXRuby from the ! source code.</p><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e62"></a>The Basics</h2></div></div><p>These instructions assume that you've already downloaded, compiled and installed FOX. Next, you'll need to download the FXRuby source code tarball and unpack it by typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">$ <b>tar xzf FXRuby-1.0.11.tar.gz</b></pre></td></tr></table><p>This will create a new directory called <tt>FXRuby-1.0.11</tt>. Change to the top-level directory and configure the build by typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">$ <b>ruby install.rb config</b></pre></td></tr></table><p>By default, the <tt>install.rb</tt> script will look for the FOX include files and library in the standard <tt>/usr/local/include/fox</tt> and <tt>/usr/local/lib</tt> directories, respectively. You can override these locations by passing a few additional arguments to <tt>install.rb</tt> during this step, e.g.</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">$ <b>ruby install.rb config -- \ ! --with-fox-include=/home/lyle/fox-1.0.11/include \ ! --with-fox-lib=/home/lyle/fox-1.0.11/src/.libs</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. If you run into problems during the compilation, please check the <a href="build.html#tragedies" title="Things That Can Go Wrong">list of things that can go wrong</a> for workarounds for those problems.</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 ! irb(main):002:0></pre></td></tr></table><p>If the import failed (usually with a message along the lines of "Cannot load library"), check the <a href="build.html#tragedies" title="Things That Can Go Wrong">list of things that can go wrong</a> for known problems. If that still doesn't solve your problem, drop me an e-mail or ask around on the Ruby newsgroup or mailing list; it's quite likely that someone else has run into this problem too. Once you do have a working FXRuby installation, you're ready to check out the example programs.</p></div><div class="simplesect"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e133"></a>Building with Visual C++</h2></div></div><p>This section describes how to compile FXRuby using Microsoft Visual C++, for use with a Ruby that was also compiled using Visual C++.</p><p>This discussion assumes that you've built Ruby using the instructions and build files distributed with the standard Ruby source code. To review, you should have started by unpacking the source code tarball, changing into the top-level source code directory (e.g. <tt>C:\ruby-1.6.7</tt>) and then typing:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">C:\ruby-1.6.7><b>win32\configure</b> type 'nmake' to make ruby for mswin32. ! 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.11</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.11\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.11><b>ruby install.rb config --make-prog=nmake -- \ ! --with-fox-include=C:\fox-1.0.11\include \ ! --with-fox-lib=C:\fox-1.0.11\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.11> <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.11> <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.11> <b>irb</b> irb(main):001:0> <b><tt>require 'fox'</tt></b> true *************** *** 18,22 **** make: *** [FXRbApp.o] Error 1</pre></td></tr></table><p>while the error message from Microsoft's Visual C++ compiler looks something like this:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">FXRbApp.cpp(109): error C2660: 'rb_thread_wait_for' : function does not take 1 parameters NMAKE : fatal error U1077: 'cl' : return code '0x2' ! Stop.</pre></td></tr></table><p>This problem with the Ruby header files appears to have been corrected for Ruby 1.7, but for the time being you should probably do one of two things to work around the problem:</p><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>If you're using gcc version 2.95 or earlier, try modifying the compiler flags (<tt>CFLAGS</tt>) in the FXRuby <tt>Makefile</tt> to include the <tt>-fno-strict-prototype</tt> option; this should instruct the compiler to allow these kinds of discrepancies. Unfortunately, this flag is not supported in more recent versions of gcc (most notably, the questionable "2.96" version shipped with some popular Linux distributions).</p></li><li style="list-style-type: disc"><p>A more direct approach is to just fix the offending declarations in the Ruby include file(s), i.e. change the declaration for <tt>rb_thread_wait_for()</tt> in <tt>intern.h</tt> to read:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="programlisting">void rb_thread_wait_for(struct timeval);</pre></td></tr></table><p>and change the declaration for <tt>rb_gc_mark()</tt> in <tt>intern.h</tt> to read:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="programlisting">void rb_gc_mark(VALUE);</pre></td></tr></table></li></ul></div><p><span class="emphasis"><em>"Virtual Memory Exhausted"</em></span></p><p>For FXRuby releases earlier than version 0.99.173 it was common for the compiler to run out of memory trying to compile <tt>core_wrap.cpp</tt>, with an error message like:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">core_wrap.cpp: In function 'void Init_core()': core_wrap.cpp:108596: virtual memory exhausted</pre></td></tr></table><p>This failure was due to the use of optimizations by the compiler; the FXRuby source code makes heavy use of C++ templates and some versions of gcc require a lot of memory to process these. Starting with FXRuby version 0.99.173, the <tt>extconf.rb</tt> script <span class="emphasis"><em>should</em></span> disable compiler optimizations when it generates the FXRuby <tt>Makefile</tt>. If you suspect that it's not disabling optimizations (or can see this by watching the compile command lines), try modifying the compiler flags (<tt>CFLAGS</tt>) in the <tt>Makefile</tt> by hand to do so.</p><p><span class="emphasis"><em>"Cannot load library"</em></span></p><p>On Linux and other Unix systems that support shared libraries, FOX is typically installed as a shared library named <tt>libFOX.so</tt>. After all of the source files for FXRuby are compiled, the last step is to link all of the FXRuby object files together with the FOX library (and possibly other system libraries) to produce a new shared library, named <tt>fox.so</tt>, that Ruby can import as an extension module.</p><p>There are a few things that can go wrong when you try to import this extension into Ruby. A common problem is that the operating system cannot locate the FOX shared library (<tt>libFOX.so</tt>) when it tries to dynamically load the FXRuby extension module; when this happens, the error message will look something like:</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> --- 22,26 ---- make: *** [FXRbApp.o] Error 1</pre></td></tr></table><p>while the error message from Microsoft's Visual C++ compiler looks something like this:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">FXRbApp.cpp(109): error C2660: 'rb_thread_wait_for' : function does not take 1 parameters NMAKE : fatal error U1077: 'cl' : return code '0x2' ! Stop.</pre></td></tr></table><p>This problem with the Ruby header files appears to have been corrected for Ruby 1.7, but for the time being you should probably do one of two things to work around the problem:</p><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>If you're using gcc version 2.95 or earlier, try modifying the compiler flags (<tt>CFLAGS</tt>) in the FXRuby <tt>Makefile</tt> to include the <tt>-fno-strict-prototype</tt> option; this should instruct the compiler to allow these kinds of discrepancies. Unfortunately, this flag is not supported in more recent versions of gcc (most notably, the questionable "2.96" version shipped with some popular Linux distributions).</p></li><li style="list-style-type: disc"><p>A more direct approach is to just fix the offending declarations in the Ruby include file(s), i.e. change the declaration for <tt>rb_thread_wait_for()</tt> in <tt>intern.h</tt> to read:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="programlisting">void rb_thread_wait_for(struct timeval);</pre></td></tr></table><p>and change the declaration for <tt>rb_gc_mark()</tt> in <tt>intern.h</tt> to read:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="programlisting">void rb_gc_mark(void *);</pre></td></tr></table></li></ul></div><p><span class="emphasis"><em>"Virtual Memory Exhausted"</em></span></p><p>For FXRuby releases earlier than version 0.99.173 it was common for the compiler to run out of memory trying to compile <tt>core_wrap.cpp</tt>, with an error message like:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">core_wrap.cpp: In function 'void Init_core()': core_wrap.cpp:108596: virtual memory exhausted</pre></td></tr></table><p>This failure was due to the use of optimizations by the compiler; the FXRuby source code makes heavy use of C++ templates and some versions of gcc require a lot of memory to process these. Starting with FXRuby version 0.99.173, the <tt>extconf.rb</tt> script <span class="emphasis"><em>should</em></span> disable compiler optimizations when it generates the FXRuby <tt>Makefile</tt>. If you suspect that it's not disabling optimizations (or can see this by watching the compile command lines), try modifying the compiler flags (<tt>CFLAGS</tt>) in the <tt>Makefile</tt> by hand to do so.</p><p><span class="emphasis"><em>"Cannot load library"</em></span></p><p>On Linux and other Unix systems that support shared libraries, FOX is typically installed as a shared library named <tt>libFOX.so</tt>. After all of the source files for FXRuby are compiled, the last step is to link all of the FXRuby object files together with the FOX library (and possibly other system libraries) to produce a new shared library, named <tt>fox.so</tt>, that Ruby can import as an extension module.</p><p>There are a few things that can go wrong when you try to import this extension into Ruby. A common problem is that the operating system cannot locate the FOX shared library (<tt>libFOX.so</tt>) when it tries to dynamically load the FXRuby extension module; when this happens, the error message will look something like:</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> *************** *** 27,29 **** $ <b>irb</b> irb(main):001:0> <b><tt>require 'fox'</tt></b> ! </pre></td></tr></table><p>If this works, you can of course permanently add the <tt>LD_LIBRARY_PATH</tt> setting to your login file(s) so that you don't have to remember to type it each time. Another approach that should work for Linux is to modify your <tt>/etc/ld.so.conf</tt> file to include the installation directory (e.g. <tt>/usr/local/lib</tt>). If you'd like to do this instead, you'll need to (as root):</p><div class="orderedlist"><ol type="1" compact=""><li><p>Edit your <tt>/etc/ld.so.conf</tt> file and add the directory where <tt>libFOX.so</tt> is installed; and,</p></li><li><p>At the shell prompt, type <b>ldconfig</b> to reload the linker configuration.</p></li></ol></div><p>Another problem that has been reported by users of both Debian GNU/Linux and NetBSD 1.5 is an error message along the lines of:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">/usr/lib/libstdc++.so.2: Undefined symbol "__vt_9exception"...</pre></td></tr></table><p>The fix for this problem is reported to be to modify the FXRuby <tt>Makefile</tt> and add <tt>-lgcc</tt> to the <tt>LIBS</tt> line.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="goals.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="examples.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">History and Goals </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 2. Examples</td></tr></table></div></body></html> \ No newline at end of file --- 31,33 ---- $ <b>irb</b> irb(main):001:0> <b><tt>require 'fox'</tt></b> ! </pre></td></tr></table><p>If this works, you can of course permanently add the <tt>LD_LIBRARY_PATH</tt> setting to your login file(s) so that you don't have to remember to type it each time. Another approach that should work for Linux is to modify your <tt>/etc/ld.so.conf</tt> file to include the installation directory (e.g. <tt>/usr/local/lib</tt>). If you'd like to do this instead, you'll need to (as root):</p><div class="orderedlist"><ol type="1" compact=""><li><p>Edit your <tt>/etc/ld.so.conf</tt> file and add the directory where <tt>libFOX.so</tt> is installed; and,</p></li><li><p>At the shell prompt, type <b>ldconfig</b> to reload the linker configuration.</p></li></ol></div><p>Another problem that has been reported by users of both Debian GNU/Linux and NetBSD 1.5 is an error message along the lines of:</p><table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><pre class="screen">/usr/lib/libstdc++.so.2: Undefined symbol "__vt_9exception"...</pre></td></tr></table><p>The fix for this problem is reported to be to modify the FXRuby <tt>Makefile</tt> and add <tt>-lgcc</tt> to the <tt>LIBS</tt> line.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="goals.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="book.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="examples.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">History and Goals </td><td width="20%" align="center"><a accesskey="h" href="book.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 2. Examples</td></tr></table></div></body></html> \ No newline at end of file Index: build.xml =================================================================== RCS file: /cvsroot/fxruby/FXRuby/doc/build.xml,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** build.xml 21 Mar 2002 19:09:11 -0000 1.5 --- build.xml 11 Jul 2002 13:32:55 -0000 1.6 *************** *** 1,15 **** <chapter id="build"> <title>Building from Source Code</title> ! <para>If you're planning to use FXRuby on Windows, with the Pragmatic Programmers' Ruby installer for Windows, you may wish to just download the pre-compiled FXRuby binaries. Otherwise, you will need to compile the shared library for FXRuby from the source code.</para> <simplesect> <title>The Basics</title> <para>These instructions assume that you've already downloaded, compiled and installed FOX. Next, you'll need to download the FXRuby source code tarball and unpack it by typing:</para> ! <screen>$ <command>tar xzf FXRuby-1.0.3.tar.gz</command></screen> ! <para>This will create a new directory called <filename class="directory">FXRuby-1.0.3</filename>. Change to the top-level directory and configure the build by typing:</para> <screen>$ <command>ruby install.rb config</command></screen> <para>By default, the <filename>install.rb</filename> script will look for the FOX include files and library in the standard <filename class="directory">/usr/local/include/fox</filename> and <filename class="directory">/usr/local/lib</filename> directories, respectively. You can override these locations by passing a few additional arguments to <filename>install.rb</filename> during this step, e.g.</para> <screen>$ <command>ruby install.rb config -- \ ! --with-fox-include=/home/lyle/fox-1.0.3/include \ ! --with-fox-lib=/home/lyle/fox-1.0.3/src/.libs</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> --- 1,19 ---- <chapter id="build"> <title>Building from Source Code</title> ! <para>If you're planning to use FXRuby on Windows, with the Pragmatic ! Programmers' Ruby installer for Windows, you may wish to just download the ! pre-compiled FXRuby binaries. Linux RPMs are also available for download. ! Otherwise, you will need to compile the shared library for FXRuby from the ! source code.</para> <simplesect> <title>The Basics</title> <para>These instructions assume that you've already downloaded, compiled and installed FOX. Next, you'll need to download the FXRuby source code tarball and unpack it by typing:</para> ! <screen>$ <command>tar xzf FXRuby-1.0.11.tar.gz</command></screen> ! <para>This will create a new directory called <filename class="directory">FXRuby-1.0.11</filename>. Change to the top-level directory and configure the build by typing:</para> <screen>$ <command>ruby install.rb config</command></screen> <para>By default, the <filename>install.rb</filename> script will look for the FOX include files and library in the standard <filename class="directory">/usr/local/include/fox</filename> and <filename class="directory">/usr/local/lib</filename> directories, respectively. You can override these locations by passing a few additional arguments to <filename>install.rb</filename> during this step, e.g.</para> <screen>$ <command>ruby install.rb config -- \ ! --with-fox-include=/home/lyle/fox-1.0.11/include \ ! --with-fox-lib=/home/lyle/fox-1.0.11/src/.libs</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> *************** *** 33,49 **** <para>After the compilation finished, you installed Ruby somewhere by typing, e.g.,</para> <screen>C:\ruby-1.6.7><command>nmake DESTDIR=C:\ruby install</command></screen> ! <para>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 (<filename>fox.lib</filename>) or the DLL build (<filename>foxdll.dll</filename>), 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 (<filename>fox.lib</filename>) to <filename>foxst.lib</filename>. 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 <filename>fox.so</filename>; for now, just take my word for it. So if your FOX source code distribution and build are found in the <filename class="directory">C:\fox-1.0.3</filename> directory, you'd need to rename the file:</para> ! <screen>C:\fox-1.0.3\lib><command>rename fox.lib foxst.lib</command></screen> <para>Now you can configure the FXRuby build by typing:</para> ! <screen>C:\FXRuby-1.0.3><command>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</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 --- 37,53 ---- <para>After the compilation finished, you installed Ruby somewhere by typing, e.g.,</para> <screen>C:\ruby-1.6.7><command>nmake DESTDIR=C:\ruby install</command></screen> ! <para>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 (<filename>fox.lib</filename>) or the DLL build (<filename>foxdll.dll</filename>), 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 (<filename>fox.lib</filename>) to <filename>foxst.lib</filename>. 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 <filename>fox.so</filename>; for now, just take my word for it. So if your FOX source code distribution and build are found in the <filename class="directory">C:\fox-1.0.11</filename> directory, you'd need to rename the file:</para> ! <screen>C:\fox-1.0.11\lib><command>rename fox.lib foxst.lib</command></screen> <para>Now you can configure the FXRuby build by typing:</para> ! <screen>C:\FXRuby-1.0.11><command>ruby install.rb config --make-prog=nmake -- \ ! --with-fox-include=C:\fox-1.0.11\include \ ! --with-fox-lib=C:\fox-1.0.11\lib</command></screen> <para>Once the build has been configured, you can start the build by typing:</para> ! <screen>C:\FXRuby-1.0.11> <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.11> <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.11> <command>irb</command> irb(main):001:0> <userinput>require 'fox'</userinput> true *************** *** 72,76 **** <programlisting format="linespecific">void rb_thread_wait_for(struct timeval);</programlisting> <para>and change the declaration for <function>rb_gc_mark()</function> in <filename>intern.h</filename> to read:</para> ! <programlisting format="linespecific">void rb_gc_mark(VALUE);</programlisting> </listitem> </itemizedlist> --- 76,80 ---- <programlisting format="linespecific">void rb_thread_wait_for(struct timeval);</programlisting> <para>and change the declaration for <function>rb_gc_mark()</function> in <filename>intern.h</filename> to read:</para> ! <programlisting format="linespecific">void rb_gc_mark(void *);</programlisting> </listitem> </itemizedlist> Index: changes.html =================================================================== RCS file: /cvsroot/fxruby/FXRuby/doc/changes.html,v retrieving revision 1.42 retrieving revision 1.43 diff -C2 -d -r1.42 -r1.43 *** changes.html 22 Mar 2002 01:53:30 -0000 1.42 --- changes.html 11 Jul 2002 13:32:55 -0000 1.43 *************** *** 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.50.0"><link rel="home" href="index.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="index.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="d0e1798"></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>Performed a major overhaul on the <tt>shutter.rb</tt> example program, which still demonstrates the <tt>FXShutter</tt> widget but otherwise doesn't resemble its previous incarnation at all.</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="d0e1928"></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="d0e1962"></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 FXScint illa 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="d0e2035"></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="d0e2066"></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="d0e2259"></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 fi... [truncated message content] |