fxruby 1.6.6 → 1.6.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,6 @@
1
1
  <html><head>
2
2
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
3
- <title>Chapter&nbsp;4.&nbsp;Working With the Clipboard</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.68.1"><link rel="start" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="pt01.html" title="Part&nbsp;I.&nbsp;The Basics"><link rel="prev" href="ch03s05.html" title="Adding an icon"><link rel="next" href="ch04s02.html" title="Acquiring the Clipboard"></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&nbsp;4.&nbsp;Working With the Clipboard</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s05.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part&nbsp;I.&nbsp;The Basics</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch04s02.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="clipboardtut"></a>Chapter&nbsp;4.&nbsp;Working With the Clipboard</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="clipboardtut.html#d0e986">Basic Application</a></span></dt><dt><span class="section"><a href="ch04s02.html">Acquiring the Clipboard</a></span></dt><dt><span class="section"><a href="ch04s03.html">Sending Data to the Clipboard</a></span></dt><dt><span class="section"><a href="ch04s04.html">Pasting Data from the Clipboard</a></span></dt></dl></div><p>Two of the standard FOX widgets, <code class="classname">FXText</code> and
3
+ <title>Chapter&nbsp;4.&nbsp;Working With the Clipboard</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook v5 XSL Stylesheets V1.72.0"><link rel="start" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="pt01.html" title="Part&nbsp;I.&nbsp;The Basics"><link rel="prev" href="ch03s05.html" title="Adding an icon"><link rel="next" href="ch04s02.html" title="Acquiring the Clipboard"></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&nbsp;4.&nbsp;Working With the Clipboard</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s05.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part&nbsp;I.&nbsp;The Basics</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch04s02.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="clipboardtut"></a>Chapter&nbsp;4.&nbsp;Working With the Clipboard</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="clipboardtut.html#d0e986">Basic Application</a></span></dt><dt><span class="section"><a href="ch04s02.html">Acquiring the Clipboard</a></span></dt><dt><span class="section"><a href="ch04s03.html">Sending Data to the Clipboard</a></span></dt><dt><span class="section"><a href="ch04s04.html">Pasting Data from the Clipboard</a></span></dt></dl></div><p>Two of the standard FOX widgets, <code class="classname">FXText</code> and
4
4
  <code class="classname">FXTextField</code>, provide clipboard support out of the
5
5
  box. For example, you can select some text in an
6
6
  <code class="classname">FXTextField</code> and then press Ctrl+C to copy that text
data/doc/differences.html CHANGED
@@ -1,6 +1,6 @@
1
1
  <html><head>
2
2
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
3
- <title>Appendix&nbsp;C.&nbsp;Differences between FOX and FXRuby</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.68.1"><link rel="start" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="pt02.html" title="Part&nbsp;II.&nbsp;Appendices"><link rel="prev" href="scintilla.html" title="Appendix&nbsp;B.&nbsp;Using Scintilla with FXRuby"><link rel="next" href="library.html" title="Appendix&nbsp;D.&nbsp;The FXRuby Standard Library"></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">Appendix&nbsp;C.&nbsp;Differences between FOX and FXRuby</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="scintilla.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part&nbsp;II.&nbsp;Appendices</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="library.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="differences"></a>Appendix&nbsp;C.&nbsp;Differences between FOX and FXRuby</h2></div></div></div><p>The FXRuby API follows the FOX API very closely and for the most part,
3
+ <title>Appendix&nbsp;C.&nbsp;Differences between FOX and FXRuby</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook v5 XSL Stylesheets V1.72.0"><link rel="start" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="pt02.html" title="Part&nbsp;II.&nbsp;Appendices"><link rel="prev" href="scintilla.html" title="Appendix&nbsp;B.&nbsp;Using Scintilla with FXRuby"><link rel="next" href="library.html" title="Appendix&nbsp;D.&nbsp;The FXRuby Standard Library"></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">Appendix&nbsp;C.&nbsp;Differences between FOX and FXRuby</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="scintilla.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part&nbsp;II.&nbsp;Appendices</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="library.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="differences"></a>Appendix&nbsp;C.&nbsp;Differences between FOX and FXRuby</h2></div></div></div><p>The FXRuby API follows the FOX API very closely and for the most part,
4
4
  you should be able to use the standard FOX class documentation as a
5
5
  reference. In some cases, however, fundamental differences between Ruby and
6
6
  C++ necessitated slight changes in the API. For some other cases, FOX
@@ -12,14 +12,14 @@
12
12
  Similarly, functions that would return an <span class="type">FXString</span> will instead
13
13
  return a Ruby string. For functions that would normally accept a
14
14
  <code class="constant">NULL</code> or empty string argument, just pass
15
- <code class="constant">nil</code> or an empty string ("").</p><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e4475"></a>Functions that expect arrays of objects</h2></div></div></div><p>One common pattern in FOX member function argument lists is to
15
+ <code class="constant">nil</code> or an empty string ("").</p><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e4482"></a>Functions that expect arrays of objects</h2></div></div></div><p>One common pattern in FOX member function argument lists is to
16
16
  expect a pointer to an array of values, followed by an integer indicating
17
17
  the number of values in the array. This of course isn't necessary in Ruby,
18
18
  where <code class="classname">Array</code> objects "know" their lengths. As a
19
19
  result, functions such as
20
20
  <code class="methodname">FXWindow::acquireClipboard()</code>, whose C++
21
21
  declaration looks like this:</p><pre class="programlisting">FXbool acquireClipboard(const FXDragType *types, FXuint numTypes);</pre><p>are called from Ruby code by passing in a single
22
- <code class="classname">Array</code> argument, e.g.</p><pre class="programlisting">myWindow.acquireClipboard(typesArray)</pre></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e4495"></a>Functions that return values by reference</h2></div></div></div><p>Many FOX methods take advantage of the C++ language feature of
22
+ <code class="classname">Array</code> argument, e.g.</p><pre class="programlisting">myWindow.acquireClipboard(typesArray)</pre></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e4502"></a>Functions that return values by reference</h2></div></div></div><p>Many FOX methods take advantage of the C++ language feature of
23
23
  returning values by reference. For example, the
24
24
  <code class="methodname">getCursorPos()</code> member function for class
25
25
  <code class="classname">FXWindow</code> has the declaration:</p><pre class="programlisting">FXint getCursorPos(FXint&amp; x, FXint&amp; y, FXint&amp; buttons) const;</pre><p>which indicates that the function takes references to three integers
@@ -65,7 +65,7 @@ if (window-&gt;getCursorPosition(x, y, buttons))
65
65
  y)</code></td><td>Returns the translated coordinates as an array [x,
66
66
  y]</td></tr><tr><td><code class="methodname">FXWindow#translateCoordinatesTo(window, x,
67
67
  y)</code></td><td>Returns the translated coordinates as an array [x,
68
- y]</td></tr></tbody></table></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e4785"></a>Iterators</h2></div></div></div><p>Several classes have been extended with an
68
+ y]</td></tr></tbody></table></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e4792"></a>Iterators</h2></div></div></div><p>Several classes have been extended with an
69
69
  <code class="methodname">each</code> method to provide Ruby-style iterators.
70
70
  These classes include <code class="classname">FXComboBox</code>,
71
71
  <code class="classname">FXGLGroup</code>, <code class="classname">FXHeader</code>,
@@ -83,7 +83,7 @@ if (window-&gt;getCursorPosition(x, y, buttons))
83
83
  puts "text for this item = #{itemText}"
84
84
  }</pre><p>The following table shows the block parameters for each of these
85
85
  classes' iterators:</p><div class="informaltable"><table border="1"><colgroup><col><col></colgroup><thead><tr><th align="center">Class</th><th align="center">Block Parameters</th></tr></thead><tbody><tr><td><code class="classname">FXComboBox</code></td><td>the item text (a string) and user data</td></tr><tr><td><code class="classname">FXGLGroup</code></td><td>an <code class="classname">FXGLObject</code> instance</td></tr><tr><td><code class="classname">FXHeader</code></td><td>an <code class="classname">FXHeaderItem</code> instance</td></tr><tr><td><code class="classname">FXIconList</code></td><td>an <code class="classname">FXIconItem</code> instance</td></tr><tr><td><code class="classname">FXList</code></td><td>an <code class="classname">FXListItem</code> instance</td></tr><tr><td><code class="classname">FXListBox</code></td><td>the item text (a string), icon (an
86
- <code class="classname">FXIcon</code> instance) and user data</td></tr><tr><td><code class="classname">FXTreeItem</code></td><td>an <code class="classname">FXTreeItem</code> instance</td></tr><tr><td><code class="classname">FXTreeList</code></td><td>an <code class="classname">FXTreeItem</code> instance</td></tr><tr><td><code class="classname">FXTreeListBox</code></td><td>an <code class="classname">FXTreeItem</code> instance</td></tr></tbody></table></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e4929"></a>Attribute Accessors</h2></div></div></div><p>FOX strictly handles access to all object attributes through member
86
+ <code class="classname">FXIcon</code> instance) and user data</td></tr><tr><td><code class="classname">FXTreeItem</code></td><td>an <code class="classname">FXTreeItem</code> instance</td></tr><tr><td><code class="classname">FXTreeList</code></td><td>an <code class="classname">FXTreeItem</code> instance</td></tr><tr><td><code class="classname">FXTreeListBox</code></td><td>an <code class="classname">FXTreeItem</code> instance</td></tr></tbody></table></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e4936"></a>Attribute Accessors</h2></div></div></div><p>FOX strictly handles access to all object attributes through member
87
87
  functions, e.g. <code class="methodname">setBackgroundColor</code> and
88
88
  <code class="methodname">getBackgroundColor</code> or
89
89
  <code class="methodname">setText</code> and <code class="methodname">getText</code>.
@@ -96,7 +96,7 @@ if (window-&gt;getCursorPosition(x, y, buttons))
96
96
  <code class="methodname">backgroundColor</code>, respectively.</p><p>In many cases these aliases allow you to write more compact and
97
97
  legible code. For example, consider this code snippet:</p><pre class="programlisting">aLabel.setText(aLabel.getText() + " (modified)")</pre><p>Now consider a different code snippet, using the aliased accessor
98
98
  method names:</p><pre class="programlisting">aLabel.text += " (modified)"</pre><p>While these two are functionally equivalent, the latter is a bit
99
- easier to read and understand at first glance.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e4968"></a>Message Passing</h2></div></div></div><p>FOX message maps are implemented as static C++ class members. With
99
+ easier to read and understand at first glance.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e4975"></a>Message Passing</h2></div></div></div><p>FOX message maps are implemented as static C++ class members. With
100
100
  FXRuby, you just associate messages with message handlers in the class
101
101
  <code class="methodname">initialize</code> method using the
102
102
  <code class="methodname">FXMAPFUNC()</code>,
@@ -121,14 +121,14 @@ if (window-&gt;getCursorPosition(x, y, buttons))
121
121
  well's <code class="methodname">getRGBA()</code> member function to retrieve its
122
122
  color. Similarly, if you get a <code class="constant">SEL_COMMAND</code> message
123
123
  from a tree list, call its <code class="methodname">getCurrentItem()</code>
124
- method to find out which item was selected.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e5017"></a>Catching Operating System Signals</h2></div></div></div><p>The <code class="methodname">FXApp#addSignal</code> and
124
+ method to find out which item was selected.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e5024"></a>Catching Operating System Signals</h2></div></div></div><p>The <code class="methodname">FXApp#addSignal</code> and
125
125
  <code class="methodname">FXApp#removeSignal</code> methods have been enhanced to
126
126
  accept either a string or integer as their first argument. If it's a
127
127
  string (e.g. "SIGINT" or just "INT") the code will determine the
128
128
  corresponding signal number for you (similar to the standard Ruby
129
129
  library's <code class="methodname">Process.kill</code> module method). For
130
130
  examples of how to use this, see the <code class="filename">datatarget.rb</code> or
131
- <code class="filename">imageviewer.rb</code> example programs.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e5037"></a>Support for Multithreaded Applications</h2></div></div></div><p>There is some support for multithreaded FXRuby applications, but
131
+ <code class="filename">imageviewer.rb</code> example programs.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e5044"></a>Support for Multithreaded Applications</h2></div></div></div><p>There is some support for multithreaded FXRuby applications, but
132
132
  it's not wonderful. The current implementation does what is also done in
133
133
  Ruby/GTK; it turns over some idle processing time to the Ruby thread
134
134
  scheduler to let other threads do their thing. As I learn more about
@@ -145,7 +145,7 @@ if (window-&gt;getCursorPosition(x, y, buttons))
145
145
  also disable the threads support completely by calling
146
146
  <code class="methodname">FXApp#threadsEnabled=false</code> (and subsequently
147
147
  re-enable it with
148
- <code class="methodname">FXApp#threadsEnabled=true</code>).</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e5062"></a>Keyword-Style Arguments</h2></div></div></div><p>FXRuby 1.6.5 introduced preliminary, experimental support for using
148
+ <code class="methodname">FXApp#threadsEnabled=true</code>).</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e5069"></a>Keyword-Style Arguments</h2></div></div></div><p>FXRuby 1.6.5 introduced preliminary, experimental support for using
149
149
  keyword-style arguments in FXRuby method calls. The current implementation
150
150
  of this feature only works for class constructors (i.e. the "new" class
151
151
  methods), but the intent is to gradually extend this feature so that it
@@ -163,7 +163,7 @@ if (window-&gt;getCursorPosition(x, y, buttons))
163
163
  afterwards.</p><p>Now consider how this method call could be written using the new
164
164
  keyword arguments support. First, the programmer would need to require the
165
165
  keyword arguments library:</p><pre class="programlisting">require 'fox16/kwargs'</pre><p>Then she would look up the API documentation for the
166
- <code class="methodname">FXMainWindow#initialize</code> method (e.g. <a href="http://www.fxruby.org/doc/api/classes/Fox/FXMainWindow.html" target="_top">here</a>)
166
+ <code class="methodname">FXMainWindow#initialize</code> method (e.g. <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.fxruby.org/doc/api/classes/Fox/FXMainWindow.html" target="_top">here</a>)
167
167
  and see that the names of the width and height arguments are, in fact,
168
168
  "width" and "height". Armed with that information, she would be able to
169
169
  rewrite the previous code as:</p><pre class="programlisting">main = FXMainWindow.new(app, "Title Goes Here", :width =&gt; 800, :height =&gt; 600)</pre><p>Here, the programmer has omitted the intermediate optional arguments
@@ -181,7 +181,7 @@ if (window-&gt;getCursorPosition(x, y, buttons))
181
181
  arguments scheme (or it's intended to be, at any rate). What that means is
182
182
  that you can immediately start making use of this feature in your existing
183
183
  code, even if you don't have time to update all of the method calls to use
184
- keyword arguments.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e5103"></a>Debugging Tricks</h2></div></div></div><p>As a debugging tool, you can optionally catch exceptions raised in
184
+ keyword arguments.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e5110"></a>Debugging Tricks</h2></div></div></div><p>As a debugging tool, you can optionally catch exceptions raised in
185
185
  message handlers. To turn on this feature, call the
186
186
  <code class="methodname">setIgnoreExceptions(true)</code> module method. When
187
187
  this is enabled, any exceptions raised in message handler functions will
data/doc/dragdroptut.html CHANGED
@@ -1,8 +1,8 @@
1
1
  <html><head>
2
2
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
3
- <title>Chapter&nbsp;5.&nbsp;Drag and Drop</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.68.1"><link rel="start" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="pt01.html" title="Part&nbsp;I.&nbsp;The Basics"><link rel="prev" href="ch04s04.html" title="Pasting Data from the Clipboard"><link rel="next" href="ch05s02.html" title="Drag Sources"></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&nbsp;5.&nbsp;Drag and Drop</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch04s04.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part&nbsp;I.&nbsp;The Basics</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch05s02.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="dragdroptut"></a>Chapter&nbsp;5.&nbsp;Drag and Drop</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="dragdroptut.html#d0e1201">Drop Sites</a></span></dt><dt><span class="section"><a href="ch05s02.html">Drag Sources</a></span></dt><dt><span class="section"><a href="ch05s03.html">Putting It All Together</a></span></dt></dl></div><p>One of the more powerful features available to FOX applications is
3
+ <title>Chapter&nbsp;5.&nbsp;Drag and Drop</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook v5 XSL Stylesheets V1.72.0"><link rel="start" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="pt01.html" title="Part&nbsp;I.&nbsp;The Basics"><link rel="prev" href="ch04s04.html" title="Pasting Data from the Clipboard"><link rel="next" href="ch05s02.html" title="Drag Sources"></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&nbsp;5.&nbsp;Drag and Drop</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch04s04.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part&nbsp;I.&nbsp;The Basics</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch05s02.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="dragdroptut"></a>Chapter&nbsp;5.&nbsp;Drag and Drop</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="dragdroptut.html#d0e1201">Drop Sites</a></span></dt><dt><span class="section"><a href="ch05s02.html">Drag Sources</a></span></dt><dt><span class="section"><a href="ch05s03.html">Putting It All Together</a></span></dt></dl></div><p>One of the more powerful features available to FOX applications is
4
4
  drag-and-drop. It's also one of the more complicated to understand. For more
5
- background, see the standard FOX documentation on <a href="http://www.fox-toolkit.com/draganddrop.html" target="_top">Drag and
5
+ background, see the standard FOX documentation on <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.fox-toolkit.com/draganddrop.html" target="_top">Drag and
6
6
  Drop</a>.</p><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1201"></a>Drop Sites</h2></div></div></div><p>We're going to start by presenting a skeleton application consisting
7
7
  of a main window widget (a <code class="classname">DropSite</code> instance) that
8
8
  parents an <code class="classname">FXCanvas</code> widget:</p><pre class="programlisting">require 'rubygems'
data/doc/events.html CHANGED
@@ -1,6 +1,6 @@
1
1
  <html><head>
2
2
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
3
- <title>Chapter&nbsp;8.&nbsp;FXRuby's Message-Target System</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.68.1"><link rel="start" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="pt01.html" title="Part&nbsp;I.&nbsp;The Basics"><link rel="prev" href="examples.html" title="Chapter&nbsp;7.&nbsp;Examples"><link rel="next" href="todo.html" title="Chapter&nbsp;9.&nbsp;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&nbsp;8.&nbsp;FXRuby's Message-Target System</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="examples.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part&nbsp;I.&nbsp;The Basics</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="todo.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="events"></a>Chapter&nbsp;8.&nbsp;FXRuby's Message-Target System</h2></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e2075"></a>Background</h2></div></div></div><p>One of the biggest flaws with earlier releases of FXRuby was its strict reproduction of FOX's process for mapping GUI events (messages) to instance methods (handlers). That process involved four distinct steps:</p><div class="orderedlist"><ol type="1" compact><li><p>Initializing a <span class="emphasis"><em>message identifier</em></span>, an integer that helps to disambiguate the sender of the message and/or its purpose.</p></li><li><p>Mapping a specific message type and identifier to an instance method for the message target object.</p></li><li><p>Implementing the actual handler method in the message target.</p></li><li><p>Registering the message target and message identifier with the widget that's going to send the messages.</p></li></ol></div><p>So, for example, let's say you wanted to create a button widget that, when pressed, prints the string "Ouch!" to the terminal. In the old scheme of things, you'd need to identify some object to act as the target for any messages generated by this button. To keep things simple, let's say that the application's main window (<span class="emphasis"><em>mainWindow</em></span>) is designated as the target for the button. We'll need to generate a unique identifier associated with the button:</p><pre class="programlisting">class MyMainWindow &lt; FXMainWindow
3
+ <title>Chapter&nbsp;8.&nbsp;FXRuby's Message-Target System</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook v5 XSL Stylesheets V1.72.0"><link rel="start" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="pt01.html" title="Part&nbsp;I.&nbsp;The Basics"><link rel="prev" href="examples.html" title="Chapter&nbsp;7.&nbsp;Examples"><link rel="next" href="todo.html" title="Chapter&nbsp;9.&nbsp;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&nbsp;8.&nbsp;FXRuby's Message-Target System</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="examples.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part&nbsp;I.&nbsp;The Basics</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="todo.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="events"></a>Chapter&nbsp;8.&nbsp;FXRuby's Message-Target System</h2></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e2075"></a>Background</h2></div></div></div><p>One of the biggest flaws with earlier releases of FXRuby was its strict reproduction of FOX's process for mapping GUI events (messages) to instance methods (handlers). That process involved four distinct steps:</p><div class="orderedlist"><ol type="1" compact><li><p>Initializing a <span class="emphasis"><em>message identifier</em></span>, an integer that helps to disambiguate the sender of the message and/or its purpose.</p></li><li><p>Mapping a specific message type and identifier to an instance method for the message target object.</p></li><li><p>Implementing the actual handler method in the message target.</p></li><li><p>Registering the message target and message identifier with the widget that's going to send the messages.</p></li></ol></div><p>So, for example, let's say you wanted to create a button widget that, when pressed, prints the string "Ouch!" to the terminal. In the old scheme of things, you'd need to identify some object to act as the target for any messages generated by this button. To keep things simple, let's say that the application's main window (<span class="emphasis"><em>mainWindow</em></span>) is designated as the target for the button. We'll need to generate a unique identifier associated with the button:</p><pre class="programlisting">class MyMainWindow &lt; FXMainWindow
4
4
 
5
5
  include Responder
6
6
 
data/doc/examples.html CHANGED
@@ -1,12 +1,12 @@
1
1
  <html><head>
2
2
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
3
- <title>Chapter&nbsp;7.&nbsp;Examples</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.68.1"><link rel="start" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="pt01.html" title="Part&nbsp;I.&nbsp;The Basics"><link rel="prev" href="unicode.html" title="Chapter&nbsp;6.&nbsp;Unicode and FXRuby"><link rel="next" href="events.html" title="Chapter&nbsp;8.&nbsp;FXRuby's Message-Target System"></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&nbsp;7.&nbsp;Examples</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="unicode.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part&nbsp;I.&nbsp;The Basics</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="events.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="examples"></a>Chapter&nbsp;7.&nbsp;Examples</h2></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1648"></a>hello</h2></div></div></div><p>The <a href="../examples/hello.rb" target="_top"><code class="filename">hello.rb</code></a>
3
+ <title>Chapter&nbsp;7.&nbsp;Examples</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook v5 XSL Stylesheets V1.72.0"><link rel="start" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="pt01.html" title="Part&nbsp;I.&nbsp;The Basics"><link rel="prev" href="unicode.html" title="Chapter&nbsp;6.&nbsp;Unicode and FXRuby"><link rel="next" href="events.html" title="Chapter&nbsp;8.&nbsp;FXRuby's Message-Target System"></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&nbsp;7.&nbsp;Examples</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="unicode.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part&nbsp;I.&nbsp;The Basics</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="events.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="examples"></a>Chapter&nbsp;7.&nbsp;Examples</h2></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1648"></a>hello</h2></div></div></div><p>The <a xmlns:xlink="http://www.w3.org/1999/xlink" href="../examples/hello.rb" target="_top"><code class="filename">hello.rb</code></a>
4
4
  example program is about as short as it gets for a working FXRuby program.
5
5
  Use this as a starting point for understanding the basic elements of an
6
6
  FXRuby program, especially if you're new to GUI programming in
7
- general.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/hello.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1661"></a>hello2</h2></div></div></div><p>The <a href="../examples/hello2.rb" target="_top"><code class="filename">hello2.rb</code></a>
7
+ general.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/hello.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1661"></a>hello2</h2></div></div></div><p>The <a xmlns:xlink="http://www.w3.org/1999/xlink" href="../examples/hello2.rb" target="_top"><code class="filename">hello2.rb</code></a>
8
8
  example kicks it up a notch by adding an icon and tooltip to the button
9
- from the <code class="filename">hello.rb</code> example.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/hello2.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1677"></a>scribble</h2></div></div></div><p>The <a href="../examples/scribble.rb" target="_top"><code class="filename">scribble.rb</code></a>
9
+ from the <code class="filename">hello.rb</code> example.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/hello2.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1677"></a>scribble</h2></div></div></div><p>The <a xmlns:xlink="http://www.w3.org/1999/xlink" href="../examples/scribble.rb" target="_top"><code class="filename">scribble.rb</code></a>
10
10
  example is a good demonstration of how to obtain a device context for a
11
11
  window (in this case, an <code class="classname">FXCanvas</code>) and draw into
12
12
  that window. It also provides a basic demonstration of how FOX's GUI
@@ -14,9 +14,9 @@
14
14
  widgets based on the application's state. Observe the "Clear"
15
15
  button becoming enabled and disabled (greyed-out) depending on whether the
16
16
  canvas is currently "dirty" or "clean", and then see how
17
- this updating is actually handled in the code.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/scribble.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1693"></a>button</h2></div></div></div><p>The <a href="../examples/button.rb" target="_top"><code class="filename">button.rb</code></a>
17
+ this updating is actually handled in the code.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/scribble.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1693"></a>button</h2></div></div></div><p>The <a xmlns:xlink="http://www.w3.org/1999/xlink" href="../examples/button.rb" target="_top"><code class="filename">button.rb</code></a>
18
18
  example program shows off the various options (or button styles) for
19
- <code class="classname">FXButton</code> widgets.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/button.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1709"></a>datatarget</h2></div></div></div><p>The <a href="../examples/datatarget.rb" target="_top"><code class="filename">datatarget.rb</code></a>
19
+ <code class="classname">FXButton</code> widgets.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/button.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1709"></a>datatarget</h2></div></div></div><p>The <a xmlns:xlink="http://www.w3.org/1999/xlink" href="../examples/datatarget.rb" target="_top"><code class="filename">datatarget.rb</code></a>
20
20
  example program demonstrates most or all of the widgets that can work with
21
21
  FOX data targets (that is, instances of class <code class="classname">FXDataTarget</code>).
22
22
  Data targets are special objects that have a a string, float or integer
@@ -28,63 +28,63 @@
28
28
  target's value is changed, the text field will update its setting.
29
29
  Since a single data targets can be attached to multiple widgets, this can
30
30
  be a useful way to keep multiple controls for the same logical value in
31
- sync with each other.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/datatarget.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1725"></a>dialog</h2></div></div></div><p>The <a href="../examples/dialog.rb" target="_top"><code class="filename">dialog.rb</code></a>
31
+ sync with each other.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/datatarget.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1725"></a>dialog</h2></div></div></div><p>The <a xmlns:xlink="http://www.w3.org/1999/xlink" href="../examples/dialog.rb" target="_top"><code class="filename">dialog.rb</code></a>
32
32
  example is a simple program demonstrating how to construct and display
33
- modal and non-modal dialog boxes.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/dialog.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1738"></a>dirlist</h2></div></div></div><p>The <a href="../examples/dirlist.rb" target="_top"><code class="filename">dirlist.rb</code></a>
33
+ modal and non-modal dialog boxes.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/dialog.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1738"></a>dirlist</h2></div></div></div><p>The <a xmlns:xlink="http://www.w3.org/1999/xlink" href="../examples/dirlist.rb" target="_top"><code class="filename">dirlist.rb</code></a>
34
34
  example program demonstrates the <code class="classname">FXDirList</code> widget.
35
35
  The directory list is a special kind of tree list, where each tree item
36
- represents a directory (or folder) in the file system.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/dirlist.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1754"></a>iconlist</h2></div></div></div><p>The <a href="../examples/iconlist.rb" target="_top"><code class="filename">iconlist.rb</code></a>
36
+ represents a directory (or folder) in the file system.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/dirlist.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1754"></a>iconlist</h2></div></div></div><p>The <a xmlns:xlink="http://www.w3.org/1999/xlink" href="../examples/iconlist.rb" target="_top"><code class="filename">iconlist.rb</code></a>
37
37
  example program demonstrates the <code class="classname">FXIconList</code> widget.
38
38
  An icon list is a special kind of list widget that can display its
39
39
  contents in one of three basic modes (details mode, small icons mode or
40
40
  large icons mode). The first screenshot below shows an icon list in
41
41
  details mode, while the second shows the same icon list in "big
42
- icons" mode.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/iconlist-details.png" align="middle"></div></div><div class="screenshot"><div class="mediaobject" align="center"><img src="images/iconlist-bigicons.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1774"></a>mditest</h2></div></div></div><p>The <a href="../examples/mditest.rb" target="_top"><code class="filename">mditest.rb</code></a>
42
+ icons" mode.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/iconlist-details.png" align="middle"></div></div><div class="screenshot"><div class="mediaobject" align="center"><img src="images/iconlist-bigicons.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1774"></a>mditest</h2></div></div></div><p>The <a xmlns:xlink="http://www.w3.org/1999/xlink" href="../examples/mditest.rb" target="_top"><code class="filename">mditest.rb</code></a>
43
43
  example program demonstrates FOX's Multiple Document Interface (MDI)
44
44
  capabilities, specifically the <code class="classname">FXMDIClient</code> and
45
- <code class="classname">FXMDIChild</code> classes.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/mditest.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1793"></a>groupbox</h2></div></div></div><p>The <a href="../examples/groupbox.rb" target="_top"><code class="filename">groupbox.rb</code></a>
45
+ <code class="classname">FXMDIChild</code> classes.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/mditest.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1793"></a>groupbox</h2></div></div></div><p>The <a xmlns:xlink="http://www.w3.org/1999/xlink" href="../examples/groupbox.rb" target="_top"><code class="filename">groupbox.rb</code></a>
46
46
  example program is a kind of "periodic table of widgets"
47
47
  demonstration, FOX-style. It shows off a lot of the FOX widgets as well as
48
- providing a good exercise of FOX's layout managers.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/groupbox.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1806"></a>header</h2></div></div></div><p>The <a href="../examples/header.rb" target="_top"><code class="filename">header.rb</code></a>
48
+ providing a good exercise of FOX's layout managers.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/groupbox.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1806"></a>header</h2></div></div></div><p>The <a xmlns:xlink="http://www.w3.org/1999/xlink" href="../examples/header.rb" target="_top"><code class="filename">header.rb</code></a>
49
49
  example program mainly demonstrates the <code class="classname">FXHeader</code>
50
- widget and the <code class="classname">FXSplitter</code> layout manager.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/header.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1825"></a>image</h2></div></div></div><p>The <a href="../examples/image.rb" target="_top"><code class="filename">image.rb</code></a>
50
+ widget and the <code class="classname">FXSplitter</code> layout manager.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/header.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1825"></a>image</h2></div></div></div><p>The <a xmlns:xlink="http://www.w3.org/1999/xlink" href="../examples/image.rb" target="_top"><code class="filename">image.rb</code></a>
51
51
  example demonstrates how to draw directly into an <code class="classname">FXImage</code>
52
- object and then "draw" that image into a canvas.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/image.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1841"></a>splitter</h2></div></div></div><p>The <a href="../examples/splitter.rb" target="_top"><code class="filename">splitter.rb</code></a>
52
+ object and then "draw" that image into a canvas.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/image.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1841"></a>splitter</h2></div></div></div><p>The <a xmlns:xlink="http://www.w3.org/1999/xlink" href="../examples/splitter.rb" target="_top"><code class="filename">splitter.rb</code></a>
53
53
  example demonstrates the <code class="classname">FXSplitter</code> layout manager.
54
54
  It also provides an example of the <code class="classname">FXTreeList</code>
55
55
  widget (on the left side of the split) and the <code class="classname">FXMatrix</code>
56
- layout manager (in the middle pane).</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/splitter.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1863"></a>foursplit</h2></div></div></div><p>The <a href="../examples/foursplit.rb" target="_top"><code class="filename">foursplit.rb</code></a>
56
+ layout manager (in the middle pane).</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/splitter.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1863"></a>foursplit</h2></div></div></div><p>The <a xmlns:xlink="http://www.w3.org/1999/xlink" href="../examples/foursplit.rb" target="_top"><code class="filename">foursplit.rb</code></a>
57
57
  example program demonstrates the <code class="classname">FX4Splitter</code> layout
58
58
  manager. This four-way split is especially useful for CAD-type programs
59
59
  where it's necessary to show multiple views of the model
60
- simultaneously.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/foursplit.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1879"></a>shutter</h2></div></div></div><p>The <a href="../examples/shutter.rb" target="_top"><code class="filename">shutter.rb</code></a>
60
+ simultaneously.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/foursplit.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1879"></a>shutter</h2></div></div></div><p>The <a xmlns:xlink="http://www.w3.org/1999/xlink" href="../examples/shutter.rb" target="_top"><code class="filename">shutter.rb</code></a>
61
61
  example provides a simple demonstration of the <code class="classname">FXShutter</code>
62
62
  widget, with the skeleton of a PIM-type application. The very nice icons
63
- used for this program are courtesy of <a href="http://www.forrestwalter.com/icons" target="_top">Gort's Icons</a>.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/shutter.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1898"></a>tabbook</h2></div></div></div><p>The <a href="../examples/tabbook.rb" target="_top"><code class="filename">tabbook.rb</code></a>
63
+ used for this program are courtesy of <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.forrestwalter.com/icons" target="_top">Gort's Icons</a>.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/shutter.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1898"></a>tabbook</h2></div></div></div><p>The <a xmlns:xlink="http://www.w3.org/1999/xlink" href="../examples/tabbook.rb" target="_top"><code class="filename">tabbook.rb</code></a>
64
64
  example exists mainly to demonstrate the <code class="classname">FXTabBook</code>
65
- widget, but shows off a few other features in the process.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/tabbook.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1914"></a>table</h2></div></div></div><p>The <a href="../examples/table.rb" target="_top"><code class="filename">table.rb</code></a>
65
+ widget, but shows off a few other features in the process.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/tabbook.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1914"></a>table</h2></div></div></div><p>The <a xmlns:xlink="http://www.w3.org/1999/xlink" href="../examples/table.rb" target="_top"><code class="filename">table.rb</code></a>
66
66
  example features the <code class="classname">FXTable</code> widget, sometimes
67
67
  known as a "grid" or "spreadsheet" widget in other
68
- toolkits.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/table.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1930"></a>gltest</h2></div></div></div><p>The <a href="../examples/gltest.rb" target="_top"><code class="filename">gltest.rb</code></a>
68
+ toolkits.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/table.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1930"></a>gltest</h2></div></div></div><p>The <a xmlns:xlink="http://www.w3.org/1999/xlink" href="../examples/gltest.rb" target="_top"><code class="filename">gltest.rb</code></a>
69
69
  example program demonstrates how to create a basic OpenGL canvas (i.e. an
70
70
  instance of the <code class="classname">FXGLCanvas</code> widget) and draw into
71
71
  it. It also demonstrates how to use timers and chores. This example
72
72
  requires the Ruby/OpenGL extension, available from the Ruby Application
73
- Archive.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/gltest.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1946"></a>glviewer</h2></div></div></div><p>The <a href="../examples/glviewer.rb" target="_top"><code class="filename">glviewer.rb</code></a>
73
+ Archive.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/gltest.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1946"></a>glviewer</h2></div></div></div><p>The <a xmlns:xlink="http://www.w3.org/1999/xlink" href="../examples/glviewer.rb" target="_top"><code class="filename">glviewer.rb</code></a>
74
74
  example program demonstrates how to use the <code class="classname">FXGLViewer</code>
75
75
  widget and draw various kinds of GL objects into it. It can also be used
76
76
  as model for a fairly complicated FXRuby application, since it includes a
77
- lot of typical features (like a menu bar, toolbar, status line, etc.).</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/glviewer.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1962"></a>imageviewer</h2></div></div></div><p>Like the <a href="../examples/glviewer.rb" target="_top"><code class="filename">glviewer.rb</code></a>
78
- example, the <a href="../examples/imageviewer.rb" target="_top"><code class="filename">imageviewer.rb</code></a>
77
+ lot of typical features (like a menu bar, toolbar, status line, etc.).</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/glviewer.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1962"></a>imageviewer</h2></div></div></div><p>Like the <a xmlns:xlink="http://www.w3.org/1999/xlink" href="../examples/glviewer.rb" target="_top"><code class="filename">glviewer.rb</code></a>
78
+ example, the <a xmlns:xlink="http://www.w3.org/1999/xlink" href="../examples/imageviewer.rb" target="_top"><code class="filename">imageviewer.rb</code></a>
79
79
  can be used as a model for a typical full-featured GUI application, with a
80
80
  menu bar, toolbar, and so forth. It also features the
81
- <code class="classname">FXImageView</code> widget.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/imageviewer.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1982"></a>dilbert</h2></div></div></div><p>The <a href="../examples/dilbert.rb" target="_top"><code class="filename">dilbert.rb</code></a>
81
+ <code class="classname">FXImageView</code> widget.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/imageviewer.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1982"></a>dilbert</h2></div></div></div><p>The <a xmlns:xlink="http://www.w3.org/1999/xlink" href="../examples/dilbert.rb" target="_top"><code class="filename">dilbert.rb</code></a>
82
82
  example fetches the "Daily Dilbert" cartoon and displays it in a
83
83
  window. This was just a fun little exercise for me, but it does provide a
84
84
  more bare-bones example of the <code class="classname">FXImageView</code> widget
85
85
  than that provided by the (more complicated) <code class="filename">imageviewer.rb</code>
86
86
  example.</p><p>This example program requires the html-parser extension, available
87
- from the Ruby Application Archive.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/dilbert.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e2003"></a>raabrowser</h2></div></div></div><p>The <a href="../examples/raabrowser.rb" target="_top"><code class="filename">raabrowser.rb</code></a>
87
+ from the Ruby Application Archive.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/dilbert.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e2003"></a>raabrowser</h2></div></div></div><p>The <a xmlns:xlink="http://www.w3.org/1999/xlink" href="../examples/raabrowser.rb" target="_top"><code class="filename">raabrowser.rb</code></a>
88
88
  example program shows a treelist view of the current Ruby Application
89
89
  Archive (RAA) contents, and product-specific information for the currently
90
90
  selected product in the panel on the right. This is a good demonstration
@@ -95,10 +95,10 @@
95
95
  the tree) try resizing the split.</p></li><li style="list-style-type: disc"><p>the <code class="classname">FXTreeList</code> widget, used to display
96
96
  the RAA contents.</p></li><li style="list-style-type: disc"><p>data targets (i.e. instances of class <code class="classname">FXDataTarget</code>),
97
97
  which are used for the contents of the fields in the information
98
- panel.</p></li></ul></div><p>This example program requires the <a href="http://www.jin.gr.jp/~nahi/Ruby/SOAP4R" target="_top">SOAP4R</a> extension.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/raabrowser.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e2040"></a>babelfish</h2></div></div></div><p>The <a href="../examples/babelfish.rb" target="_top"><code class="filename">babelfish.rb</code></a>
98
+ panel.</p></li></ul></div><p>This example program requires the <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.jin.gr.jp/~nahi/Ruby/SOAP4R" target="_top">SOAP4R</a> extension.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/raabrowser.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e2040"></a>babelfish</h2></div></div></div><p>The <a xmlns:xlink="http://www.w3.org/1999/xlink" href="../examples/babelfish.rb" target="_top"><code class="filename">babelfish.rb</code></a>
99
99
  example program, like the <code class="filename">raabrowser.rb</code> example,
100
- depends on the <a href="http://www.jin.gr.jp/~nahi/Ruby/SOAP4R" target="_top">SOAP4R</a>
101
- extension. Other than that it doesn't bring anything new to the table.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/babelfish.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e2059"></a>browser</h2></div></div></div><p>The <a href="../examples/browser.rb" target="_top"><code class="filename">browser.rb</code></a>
100
+ depends on the <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.jin.gr.jp/~nahi/Ruby/SOAP4R" target="_top">SOAP4R</a>
101
+ extension. Other than that it doesn't bring anything new to the table.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/babelfish.png" align="middle"></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e2059"></a>browser</h2></div></div></div><p>The <a xmlns:xlink="http://www.w3.org/1999/xlink" href="../examples/browser.rb" target="_top"><code class="filename">browser.rb</code></a>
102
102
  example program is mainly a "me too" for the class browser
103
103
  distributed with Ruby/GTK. It's hard for me to get excited about it,
104
104
  but here it is.</p><div class="screenshot"><div class="mediaobject" align="center"><img src="images/browser.png" align="middle"></div></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="unicode.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="pt01.html">Up</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="events.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;6.&nbsp;Unicode and FXRuby&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="book.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Chapter&nbsp;8.&nbsp;FXRuby's Message-Target System</td></tr></table></div></body></html>
data/doc/gems.html CHANGED
@@ -1,6 +1,6 @@
1
1
  <html><head>
2
2
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
3
- <title>Chapter&nbsp;2.&nbsp;Installing from Gems</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.68.1"><link rel="start" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="pt01.html" title="Part&nbsp;I.&nbsp;The Basics"><link rel="prev" href="build.html" title="Chapter&nbsp;1.&nbsp;Building from Source Code"><link rel="next" href="tutorial1.html" title="Chapter&nbsp;3.&nbsp;Hello, World!"></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&nbsp;2.&nbsp;Installing from Gems</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="build.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part&nbsp;I.&nbsp;The Basics</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="tutorial1.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="gems"></a>Chapter&nbsp;2.&nbsp;Installing from Gems</h2></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e413"></a>Introduction</h2></div></div></div><p>Starting with FXRuby version 1.2, FXRuby uses <a href="http://rubygems.rubyforge.org" target="_top">RubyGems</a> as its packaging and
3
+ <title>Chapter&nbsp;2.&nbsp;Installing from Gems</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook v5 XSL Stylesheets V1.72.0"><link rel="start" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="pt01.html" title="Part&nbsp;I.&nbsp;The Basics"><link rel="prev" href="build.html" title="Chapter&nbsp;1.&nbsp;Building from Source Code"><link rel="next" href="tutorial1.html" title="Chapter&nbsp;3.&nbsp;Hello, World!"></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&nbsp;2.&nbsp;Installing from Gems</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="build.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part&nbsp;I.&nbsp;The Basics</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="tutorial1.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="gems"></a>Chapter&nbsp;2.&nbsp;Installing from Gems</h2></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e413"></a>Introduction</h2></div></div></div><p>Starting with FXRuby version 1.2, FXRuby uses <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://rubygems.rubyforge.org" target="_top">RubyGems</a> as its packaging and
4
4
  distribution method. The code is available both as</p><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>a "source" gem, which contains source code that must be compiled
5
5
  on your computer before it's installed; and,</p></li><li style="list-style-type: disc"><p>a "binary" gem, which contains a precompiled version of the code
6
6
  for a specific operating system (such as Windows).</p></li></ul></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e428"></a>Installing from a Source Gem</h2></div></div></div><p>If you've already downloaded the source gem, you can install it by
data/doc/goals.html CHANGED
@@ -1,8 +1,8 @@
1
1
  <html><head>
2
2
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
3
- <title>History and Goals</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.68.1"><link rel="start" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="pt01.html" title="Part&nbsp;I.&nbsp;The Basics"><link rel="prev" href="pt01.html" title="Part&nbsp;I.&nbsp;The Basics"><link rel="next" href="build.html" title="Chapter&nbsp;1.&nbsp;Building from Source Code"></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">History and Goals</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="pt01.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part&nbsp;I.&nbsp;The Basics</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="build.html">Next</a></td></tr></table><hr></div><div class="preface" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="goals"></a>History and Goals</h2></div></div></div><p>The primary goal of this project was (and is) to provide a complete
4
- interface to <a href="http://www.fox-toolkit.com" target="_top">FOX</a> from
5
- <a href="http://www.ruby-lang.org" target="_top">Ruby</a>. Ruby programs should
3
+ <title>History and Goals</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook v5 XSL Stylesheets V1.72.0"><link rel="start" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="pt01.html" title="Part&nbsp;I.&nbsp;The Basics"><link rel="prev" href="pt01.html" title="Part&nbsp;I.&nbsp;The Basics"><link rel="next" href="build.html" title="Chapter&nbsp;1.&nbsp;Building from Source Code"></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">History and Goals</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="pt01.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part&nbsp;I.&nbsp;The Basics</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="build.html">Next</a></td></tr></table><hr></div><div class="preface" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="goals"></a>History and Goals</h2></div></div></div><p>The primary goal of this project was (and is) to provide a complete
4
+ interface to <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.fox-toolkit.com" target="_top">FOX</a> from
5
+ <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.ruby-lang.org" target="_top">Ruby</a>. Ruby programs should
6
6
  be able to access FOX classes transparently; this includes deriving new
7
7
  Ruby classes from FOX classes and overriding their virtual functions. This
8
8
  goal has been met pretty well at this point although there are undoubtedly
@@ -21,12 +21,12 @@
21
21
  version that often lags far behind the standard Linux/Unix version. There
22
22
  is clearly a need for a modern, open-source, cross-platform GUI for Ruby,
23
23
  and FOX fills that need.</p><p>Since its first public release in January 2001, FXRuby has become one
24
- of the most popular GUI options for Ruby:</p><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>In a <a href="http://www.rubygarden.org/pollBooth.php?op=results&amp;pollID=4" target="_top">
24
+ of the most popular GUI options for Ruby:</p><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>In a <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.rubygarden.org/pollBooth.php?op=results&amp;pollID=4" target="_top">
25
25
  Ruby Garden poll</a> held in July 2001, FXRuby edged out Ruby/GTK as the
26
26
  most-preferred GUI writing toolkit for Ruby.</p></li><li style="list-style-type: disc"><p>In August 2001, FXRuby was added to the Pragmatic Programmers'
27
- <a href="http://rubyinstaller.sourceforge.net" target="_top">
27
+ <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://rubyinstaller.sourceforge.net" target="_top">
28
28
  Windows installer for Ruby</a>.</p></li><li style="list-style-type: disc"><p>In October 2001, Lyle gave a presentation on
29
- <a href="http://www.rubyconf.org/2001/talks/lyle/lylefox.htm" target="_top">
29
+ <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.rubyconf.org/2001/talks/lyle/lylefox.htm" target="_top">
30
30
  "Developing GUIs with FOX and Ruby"</a> at the first annual Ruby
31
31
  Conference in Tampa, Florida.</p></li><li style="list-style-type: disc"><p>Although the lack of documentation has been a sore spot for
32
32
  some time, several Ruby books (such as the <em class="citetitle">
@@ -34,6 +34,6 @@
34
34
  Way</em>) feature FXRuby as a Ruby GUI development option.</p></li></ul></div><p>Most recently, work has focused on keeping FXRuby up-to-date with the
35
35
  still evolving FOX library while looking for new ways to make Ruby GUI
36
36
  development fun. For example, FXRuby is under consideration for use as a
37
- GUI front-end to the fledgling <a href="http://freeride.rubyforge.org/wiki/wiki.pl" target="_top">
37
+ GUI front-end to the fledgling <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://freeride.rubyforge.org/wiki/wiki.pl" target="_top">
38
38
  FreeRIDE</a> project. If you have suggestions about where you'd like to
39
39
  see things go, feel free to drop me an e-mail.</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="pt01.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="pt01.html">Up</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="build.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part&nbsp;I.&nbsp;The Basics&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="book.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Chapter&nbsp;1.&nbsp;Building from Source Code</td></tr></table></div></body></html>
@@ -1,14 +1,14 @@
1
1
  <html><head>
2
2
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
3
- <title>Appendix&nbsp;E.&nbsp;Implementation</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.68.1"><link rel="start" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="pt02.html" title="Part&nbsp;II.&nbsp;Appendices"><link rel="prev" href="library.html" title="Appendix&nbsp;D.&nbsp;The FXRuby Standard Library"><link rel="next" href="apes02.html" title="Object Life Cycles and Garbage Collection"></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">Appendix&nbsp;E.&nbsp;Implementation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="library.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part&nbsp;II.&nbsp;Appendices</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="apes02.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="implementation"></a>Appendix&nbsp;E.&nbsp;Implementation</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="implementation.html#d0e5254">Code Generation</a></span></dt><dt><span class="section"><a href="apes02.html">Object Life Cycles and Garbage Collection</a></span></dt><dd><dl><dt><span class="section"><a href="apes02.html#d0e5292">GL Objects</a></span></dt></dl></dd><dt><span class="section"><a href="apes03.html">Virtual Functions</a></span></dt></dl></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e5254"></a>Code Generation</h2></div></div></div><p>The development and maintenance of FXRuby would be almost impossible
3
+ <title>Appendix&nbsp;E.&nbsp;Implementation</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook v5 XSL Stylesheets V1.72.0"><link rel="start" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="pt02.html" title="Part&nbsp;II.&nbsp;Appendices"><link rel="prev" href="library.html" title="Appendix&nbsp;D.&nbsp;The FXRuby Standard Library"><link rel="next" href="apes02.html" title="Object Life Cycles and Garbage Collection"></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">Appendix&nbsp;E.&nbsp;Implementation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="library.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part&nbsp;II.&nbsp;Appendices</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="apes02.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="implementation"></a>Appendix&nbsp;E.&nbsp;Implementation</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="implementation.html#d0e5261">Code Generation</a></span></dt><dt><span class="section"><a href="apes02.html">Object Life Cycles and Garbage Collection</a></span></dt><dd><dl><dt><span class="section"><a href="apes02.html#d0e5299">GL Objects</a></span></dt></dl></dd><dt><span class="section"><a href="apes03.html">Virtual Functions</a></span></dt></dl></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e5261"></a>Code Generation</h2></div></div></div><p>The development and maintenance of FXRuby would be almost impossible
4
4
  without the help of Dave Beazley's excellent
5
- <a href="http://www.swig.org" target="_top">SWIG</a>. The complete set of SWIG
5
+ <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.swig.org" target="_top">SWIG</a>. The complete set of SWIG
6
6
  interface files used to generate FXRuby is included in the standard
7
7
  FXRuby source code distribution, and if you'd like you can even
8
8
  regenerate the FXRuby sources using SWIG. Because FXRuby relies on
9
9
  functionality in the latest development version of SWIG, you will need
10
10
  to check out that version from the SWIG CVS repository. For instructions
11
- on how to do so, please see <a href="http://www.swig.org/cvs.html" target="_top">
11
+ on how to do so, please see <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.swig.org/cvs.html" target="_top">
12
12
  this page</a>.</p><p>To regenerate the FXRuby sources from the SWIG interface files,
13
13
  change directories to the <code class="filename">swig-interfaces
14
14
  </code> subdirectory of the FXRuby source tree and type <span><strong class="command">make
data/doc/infosources.html CHANGED
@@ -1,33 +1,33 @@
1
1
  <html><head>
2
2
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
3
- <title>Chapter&nbsp;10.&nbsp;Other Sources of Information</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.68.1"><link rel="start" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="pt01.html" title="Part&nbsp;I.&nbsp;The Basics"><link rel="prev" href="todo.html" title="Chapter&nbsp;9.&nbsp;To-do list"><link rel="next" href="changes.html" title="Chapter&nbsp;11.&nbsp;Change History"></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&nbsp;10.&nbsp;Other Sources of Information</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="todo.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part&nbsp;I.&nbsp;The Basics</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="changes.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="infosources"></a>Chapter&nbsp;10.&nbsp;Other Sources of Information</h2></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e2357"></a>Books</h2></div></div></div><p>There are no books entirely dedicated to programming with FXRuby,
3
+ <title>Chapter&nbsp;10.&nbsp;Other Sources of Information</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook v5 XSL Stylesheets V1.72.0"><link rel="start" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="pt01.html" title="Part&nbsp;I.&nbsp;The Basics"><link rel="prev" href="todo.html" title="Chapter&nbsp;9.&nbsp;To-do list"><link rel="next" href="changes.html" title="Chapter&nbsp;11.&nbsp;Change History"></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&nbsp;10.&nbsp;Other Sources of Information</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="todo.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part&nbsp;I.&nbsp;The Basics</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="changes.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="infosources"></a>Chapter&nbsp;10.&nbsp;Other Sources of Information</h2></div></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e2357"></a>Books</h2></div></div></div><p>There are no books entirely dedicated to programming with FXRuby,
4
4
  but the following Ruby books contain sections on FXRuby:</p><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p><em class="citetitle">The Ruby Way</em>, by Hal
5
5
  Fulton.</p></li><li style="list-style-type: disc"><p><em class="citetitle">Ruby Developer's Guide</em>,
6
- by Michael Neumann, Robert Feldt and Lyle Johnson.</p></li></ul></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e2373"></a>Reference Documentation</h2></div></div></div><p>The current <a href="http://www.fxruby.org/doc/api" target="_top">FXRuby API
6
+ by Michael Neumann, Robert Feldt and Lyle Johnson.</p></li></ul></div></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e2373"></a>Reference Documentation</h2></div></div></div><p>The current <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.fxruby.org/doc/api" target="_top">FXRuby API
7
7
  Reference Documentation</a> is a work in progress, but serves as a
8
8
  pretty good guide to the available methods and attributes for the
9
- different classes. The regular <a href="http://www.fox-toolkit.org" target="_top">FOX</a> API
9
+ different classes. The regular <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.fox-toolkit.org" target="_top">FOX</a> API
10
10
  Reference Documentation can be used as a fallback source of
11
- information, although it is intended for users of the C++ library.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e2384"></a>Web Sites</h2></div></div></div><p>The <a href="http://www.fox-toolkit.com" target="_top">FOX toolkit home page</a>
11
+ information, although it is intended for users of the C++ library.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e2384"></a>Web Sites</h2></div></div></div><p>The <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.fox-toolkit.com" target="_top">FOX toolkit home page</a>
12
12
  is still one of the best places to find information about GUI programming
13
13
  with FOX. This is the site maintained by Jeroen van der Zijp, the creator
14
14
  and primary developer of FOX, and serves as the official download site for
15
15
  the FOX library. In addition to a number of articles about programming
16
16
  with FOX, you'll find links to projects using FOX. A newer web site,
17
- the <a href="http://www.fox-toolkit.net" target="_top">FOX Community Wiki</a>, is
17
+ the <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.fox-toolkit.net" target="_top">FOX Community Wiki</a>, is
18
18
  maintained by Sander Jansen. Like most Wiki sites, the information here is
19
19
  a little more scattered but tends to be more up-to-date than some
20
20
  information on the main FOX site. This site includes a number of tutorial
21
21
  articles, as well as "cookbook" and "how-to" pages on many
22
22
  topics.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e2395"></a>Mailing Lists</h2></div></div></div><p>One or more of the following mailing lists may be of interest:</p><div class="itemizedlist"><ul type="bullet"><li style="list-style-type: disc"><p>The fxruby-announce@rubyforge.org mailing list is a very
23
23
  low-volume list for FXRuby-related announcements. To subscribe to this
24
- list, follow the instructions at <a href="http://rubyforge.org/mailman/listinfo/fxruby-announce" target="_top">http://rubyforge.org/mailman/listinfo/fxruby-announce</a></p></li><li style="list-style-type: disc"><p>The fxruby-users@rubyforge.org mailing list is a
24
+ list, follow the instructions at <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://rubyforge.org/mailman/listinfo/fxruby-announce" target="_top">http://rubyforge.org/mailman/listinfo/fxruby-announce</a></p></li><li style="list-style-type: disc"><p>The fxruby-users@rubyforge.org mailing list is a
25
25
  higher-volume list for FXRuby-related discussions. To subscribe to
26
- this list, follow the instructions at <a href="http://rubyforge.org/mailman/listinfo/fxruby-announce" target="_top">http://rubyforge.org/mailman/listinfo/fxruby-announce</a></p></li><li style="list-style-type: disc"><p>The foxgui-announce@lists.sourceforge.net mailing list is a very
26
+ this list, follow the instructions at <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://rubyforge.org/mailman/listinfo/fxruby-announce" target="_top">http://rubyforge.org/mailman/listinfo/fxruby-announce</a></p></li><li style="list-style-type: disc"><p>The foxgui-announce@lists.sourceforge.net mailing list is a very
27
27
  low-volume list for FOX-related announcements. To subscribe to this
28
- list, follow the instructions at <a href="http://lists.sourceforge.net/lists/listinfo/foxgui-announce" target="_top">http://lists.sourceforge.net/lists/listinfo/foxgui-announce</a></p></li><li style="list-style-type: disc"><p>The foxgui-users@lists.sourceforge.net mailing list is a
28
+ list, follow the instructions at <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://lists.sourceforge.net/lists/listinfo/foxgui-announce" target="_top">http://lists.sourceforge.net/lists/listinfo/foxgui-announce</a></p></li><li style="list-style-type: disc"><p>The foxgui-users@lists.sourceforge.net mailing list is a
29
29
  higher-volume list for FOX-related discussions. To subscribe to this
30
- list, follow the instructions at <a href="http://lists.sourceforge.net/lists/listinfo/foxgui-users" target="_top">http://lists.sourceforge.net/lists/listinfo/foxgui-users</a></p></li><li style="list-style-type: disc"><p>The ruby-talk@ruby-lang.org mailing list (or its mirror, the
30
+ list, follow the instructions at <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://lists.sourceforge.net/lists/listinfo/foxgui-users" target="_top">http://lists.sourceforge.net/lists/listinfo/foxgui-users</a></p></li><li style="list-style-type: disc"><p>The ruby-talk@ruby-lang.org mailing list (or its mirror, the
31
31
  comp.lang.ruby newsgroup) is a high-volume list for Ruby-related
32
32
  discussions. To subscribe to this list, follow the instructions at
33
- <a href="http://www.ruby-lang.org/en/ml.html" target="_top">http://www.ruby-lang.org/en/ml.html</a></p></li></ul></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="todo.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="pt01.html">Up</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="changes.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;9.&nbsp;To-do list&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="book.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Chapter&nbsp;11.&nbsp;Change History</td></tr></table></div></body></html>
33
+ <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.ruby-lang.org/en/ml.html" target="_top">http://www.ruby-lang.org/en/ml.html</a></p></li></ul></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="todo.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="pt01.html">Up</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="changes.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;9.&nbsp;To-do list&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="book.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Chapter&nbsp;11.&nbsp;Change History</td></tr></table></div></body></html>
data/doc/library.html CHANGED
@@ -1,18 +1,18 @@
1
1
  <html><head>
2
2
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
3
- <title>Appendix&nbsp;D.&nbsp;The FXRuby Standard Library</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.68.1"><link rel="start" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="pt02.html" title="Part&nbsp;II.&nbsp;Appendices"><link rel="prev" href="differences.html" title="Appendix&nbsp;C.&nbsp;Differences between FOX and FXRuby"><link rel="next" href="implementation.html" title="Appendix&nbsp;E.&nbsp;Implementation"></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">Appendix&nbsp;D.&nbsp;The FXRuby Standard Library</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="differences.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part&nbsp;II.&nbsp;Appendices</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="implementation.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="library"></a>Appendix&nbsp;D.&nbsp;The FXRuby Standard Library</h2></div></div></div><p>While the majority of FXRuby is in fact implemented by an extension module, some parts are provided instead by "pure Ruby" code. This section describes the classes and modules available in the FXRuby standard library.</p><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e5116"></a>Undoable Commands</h2></div></div></div><p>The <code class="filename">fox16/undolist.rb</code> file provides the <code class="classname">FXCommand</code> and <code class="classname">FXUndoList</code> classes. These serve the same purpose as the <code class="classname">FXCommand</code> and <code class="classname">FXUndoList</code> classes from the standard FOX distribution, but they're implemented entirely in Ruby.</p><p>For a complete description of these classes and how to use them, see the RD documentation in <code class="filename">fox16/undolist.rb</code>.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e5141"></a>Aliases</h2></div></div></div><p>The <code class="filename">fox16/aliases.rb</code> implements most of the accessor-style aliases for methods. This file is loaded automatically when you </p><pre class="programlisting">require 'fox16'</pre><p> and so you should never need to load it directly.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e5152"></a>Color Names</h2></div></div></div><p>The <code class="filename">fox16/colors.rb</code> file, contributed by Jeff
3
+ <title>Appendix&nbsp;D.&nbsp;The FXRuby Standard Library</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook v5 XSL Stylesheets V1.72.0"><link rel="start" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="pt02.html" title="Part&nbsp;II.&nbsp;Appendices"><link rel="prev" href="differences.html" title="Appendix&nbsp;C.&nbsp;Differences between FOX and FXRuby"><link rel="next" href="implementation.html" title="Appendix&nbsp;E.&nbsp;Implementation"></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">Appendix&nbsp;D.&nbsp;The FXRuby Standard Library</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="differences.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part&nbsp;II.&nbsp;Appendices</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="implementation.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="library"></a>Appendix&nbsp;D.&nbsp;The FXRuby Standard Library</h2></div></div></div><p>While the majority of FXRuby is in fact implemented by an extension module, some parts are provided instead by "pure Ruby" code. This section describes the classes and modules available in the FXRuby standard library.</p><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e5123"></a>Undoable Commands</h2></div></div></div><p>The <code class="filename">fox16/undolist.rb</code> file provides the <code class="classname">FXCommand</code> and <code class="classname">FXUndoList</code> classes. These serve the same purpose as the <code class="classname">FXCommand</code> and <code class="classname">FXUndoList</code> classes from the standard FOX distribution, but they're implemented entirely in Ruby.</p><p>For a complete description of these classes and how to use them, see the RD documentation in <code class="filename">fox16/undolist.rb</code>.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e5148"></a>Aliases</h2></div></div></div><p>The <code class="filename">fox16/aliases.rb</code> implements most of the accessor-style aliases for methods. This file is loaded automatically when you </p><pre class="programlisting">require 'fox16'</pre><p> and so you should never need to load it directly.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e5159"></a>Color Names</h2></div></div></div><p>The <code class="filename">fox16/colors.rb</code> file, contributed by Jeff
4
4
  Heard, provides a bunch of predefined color values (based on the standard
5
5
  X11 color names). You can use these color constants anywhere that FOX
6
6
  expects an RGB color value, e.g.</p><pre class="programlisting">dc = FXDCWindow.new(drawable, ev)
7
7
  dc.foreground = FXColor::MistyRose # instead of FXRGB(255, 228, 225)
8
- dc.background = FXColor::MidnightBlue # instead of FXRGB( 25, 25, 112)</pre></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e5162"></a>OpenGL Shapes</h2></div></div></div><p>The <code class="filename">fox16/glshapes.rb</code> library provides Ruby
8
+ dc.background = FXColor::MidnightBlue # instead of FXRGB( 25, 25, 112)</pre></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e5169"></a>OpenGL Shapes</h2></div></div></div><p>The <code class="filename">fox16/glshapes.rb</code> library provides Ruby
9
9
  implementations of a number of basic 3-D shapes (all derived from the
10
10
  built-in <code class="classname">FXGLShape</code> class) that can be used with
11
11
  the <code class="classname">FXGLViewer</code>. Several of these shapes are used
12
12
  in the <code class="filename">glviewer.rb</code> example program. These shapes
13
13
  were originally implemented in C++ and wrapped using SWIG, but they are
14
14
  straightforward enough to implement in Ruby so they were moved out to
15
- this library instead.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e5179"></a>Iterators</h2></div></div></div><p>The <code class="filename">fox16/iterators.rb</code> library just adds an
15
+ this library instead.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e5186"></a>Iterators</h2></div></div></div><p>The <code class="filename">fox16/iterators.rb</code> library just adds an
16
16
  <code class="methodname">each</code> instance method for the <code class="classname">
17
17
  FXComboBox</code>, <code class="classname">FXGLGroup</code>, <code class="classname">
18
18
  FXHeader</code>, <code class="classname">FXIconList</code>, <code class="classname">
@@ -21,10 +21,10 @@ dc.background = FXColor::MidnightBlue # instead of FXRGB( 25, 25, 112)</pre><
21
21
  FXTreeList</code> and <code class="classname">FXTreeListBox</code> classes,
22
22
  so that you can iterate over their members in a Ruby-friendly way. It
23
23
  also mixes the <code class="classname">Enumerable</code> module into each of
24
- these classes.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e5223"></a>Key Codes</h2></div></div></div><p>The <code class="filename">fox16/keys.rb</code> library file defines all of the
24
+ these classes.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e5230"></a>Key Codes</h2></div></div></div><p>The <code class="filename">fox16/keys.rb</code> library file defines all of the
25
25
  key codes (e.g. <code class="constant">KEY_space</code>) that might show up in the
26
26
  code field of an <code class="classname">FXEvent</code> instance. This file is
27
27
  loaded automatically when you
28
28
  </p><pre class="programlisting">require 'fox16'</pre><p> and
29
29
  so you should never need to load it
30
- directly.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e5240"></a>Calendar Widget</h2></div></div></div><p>The <code class="filename">fox16/calendar.rb</code> library file provides the <code class="classname">FXCalendar</code> widget, contributed by David Naseby.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="differences.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="pt02.html">Up</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="implementation.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Appendix&nbsp;C.&nbsp;Differences between FOX and FXRuby&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="book.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Appendix&nbsp;E.&nbsp;Implementation</td></tr></table></div></body></html>
30
+ directly.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e5247"></a>Calendar Widget</h2></div></div></div><p>The <code class="filename">fox16/calendar.rb</code> library file provides the <code class="classname">FXCalendar</code> widget, contributed by David Naseby.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="differences.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="pt02.html">Up</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="implementation.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Appendix&nbsp;C.&nbsp;Differences between FOX and FXRuby&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="book.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Appendix&nbsp;E.&nbsp;Implementation</td></tr></table></div></body></html>
data/doc/opengl.html CHANGED
@@ -1,18 +1,18 @@
1
1
  <html><head>
2
2
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
3
- <title>Appendix&nbsp;A.&nbsp;Using OpenGL with FXRuby</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.68.1"><link rel="start" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="pt02.html" title="Part&nbsp;II.&nbsp;Appendices"><link rel="prev" href="pt02.html" title="Part&nbsp;II.&nbsp;Appendices"><link rel="next" href="scintilla.html" title="Appendix&nbsp;B.&nbsp;Using Scintilla with FXRuby"></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">Appendix&nbsp;A.&nbsp;Using OpenGL with FXRuby</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="pt02.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part&nbsp;II.&nbsp;Appendices</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="scintilla.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="opengl"></a>Appendix&nbsp;A.&nbsp;Using OpenGL with FXRuby</h2></div></div></div><div class="abstract"><p class="title"><b>Abstract</b></p><p>FOX provides extensive support for OpenGL through its
3
+ <title>Appendix&nbsp;A.&nbsp;Using OpenGL with FXRuby</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook v5 XSL Stylesheets V1.72.0"><link rel="start" href="book.html" title="Developing Graphical User Interfaces with FXRuby"><link rel="up" href="pt02.html" title="Part&nbsp;II.&nbsp;Appendices"><link rel="prev" href="pt02.html" title="Part&nbsp;II.&nbsp;Appendices"><link rel="next" href="scintilla.html" title="Appendix&nbsp;B.&nbsp;Using Scintilla with FXRuby"></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">Appendix&nbsp;A.&nbsp;Using OpenGL with FXRuby</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="pt02.html">Prev</a>&nbsp;</td><th width="60%" align="center">Part&nbsp;II.&nbsp;Appendices</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="scintilla.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="opengl"></a>Appendix&nbsp;A.&nbsp;Using OpenGL with FXRuby</h2></div></div></div><div class="abstract"><p class="title"><b>Abstract</b></p><p>FOX provides extensive support for OpenGL through its
4
4
  <code class="classname">FXGLCanvas</code> and <code class="classname">FXGLViewer</code>
5
5
  widgets, and FXRuby in turn provides interfaces to those classes. By
6
6
  combining FXRuby with the OpenGL interface for Ruby (described below) you
7
7
  can develop very powerful 3-D graphics applications. This chapter gives
8
- you the information you'll need to get started.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e4218"></a>What is OpenGL?</h2></div></div></div><p>OpenGL is a platform-independent API for 2D and 3D graphics. The
9
- home page is <a href="http://www.opengl.org" target="_top">http://www.opengl.org</a>. Because it's a
8
+ you the information you'll need to get started.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e4225"></a>What is OpenGL?</h2></div></div></div><p>OpenGL is a platform-independent API for 2D and 3D graphics. The
9
+ home page is <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.opengl.org" target="_top">http://www.opengl.org</a>. Because it's a
10
10
  fairly open standard, highly optimized OpenGL drivers are available for
11
- most operating systems (including Windows and Linux).</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e4226"></a>OpenGL Extensions for Ruby</h2></div></div></div><p>This extension module, developed by Yoshiyuki Kusano, provides
11
+ most operating systems (including Windows and Linux).</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e4233"></a>OpenGL Extensions for Ruby</h2></div></div></div><p>This extension module, developed by Yoshiyuki Kusano, provides
12
12
  interfaces to not only the basic OpenGL API, but also the GLU and GLUT
13
13
  APIs. As of this writing, the currently released version is 0.32d and is
14
- available for download from <a href="http://www2.giganet.net/~yoshi/rbogl-0.32b.tgz" target="_top">http://www2.giganet.net/~yoshi/rbogl-0.32d.tgz</a>.
15
- Be sure to check the <a href="http://www.ruby-lang.org/en/raa.html" target="_top">Ruby Application
14
+ available for download from <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www2.giganet.net/~yoshi/rbogl-0.32b.tgz" target="_top">http://www2.giganet.net/~yoshi/rbogl-0.32d.tgz</a>.
15
+ Be sure to check the <a xmlns:xlink="http://www.w3.org/1999/xlink" href="http://www.ruby-lang.org/en/raa.html" target="_top">Ruby Application
16
16
  Archive</a> for the latest version of this extension as it is still
17
17
  under development.</p><p>Once you've downloaded the tarball, you should extract its contents
18
18
  to the working directory of your choice by typing:</p><pre class="screen">$ <span><strong class="command">tar xzf rbogl-0.32d.tgz</strong></span></pre><p>After executing this command you should have a new <code class="filename">opengl</code> (<span class="emphasis"><em>not</em></span> <code class="filename">rbogl-0.32b</code>) subdirectory. Change to this
@@ -25,7 +25,7 @@
25
25
  extensions by typing:</p><pre class="screen">$ <span><strong class="command">make site-install</strong></span></pre><p>Please note that I'm not the maintainer of this particular Ruby
26
26
  extension, so I can't really accept bug fixes for it. But if you're having
27
27
  trouble integrating Ruby/OpenGL with FXRuby, let me know and we'll see
28
- what we can do.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e4281"></a>The FXGLVisual Class</h2></div></div></div><p>An <code class="classname">FXGLVisual</code> object describes the
28
+ what we can do.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e4288"></a>The FXGLVisual Class</h2></div></div></div><p>An <code class="classname">FXGLVisual</code> object describes the
29
29
  capabilities of an <code class="classname">FXGLCanvas</code> or
30
30
  <code class="classname">FXGLViewer</code> window. Typically, an X server supports
31
31
  many different visuals with varying capabilities, but the ones with
@@ -58,13 +58,13 @@ end</pre><p>Some <code class="classname">FXGLVisual</code> object must be associ
58
58
  separate <code class="classname">FXGLVisual</code> object for each window. For
59
59
  most applications, you can just construct a single
60
60
  <code class="classname">FXGLVisual</code> object that's shared among all the
61
- OpenGL windows.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e4340"></a>The FXGLCanvas Class</h2></div></div></div><p>The <code class="classname">FXGLCanvas</code> widget provides a very simple
61
+ OpenGL windows.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e4347"></a>The FXGLCanvas Class</h2></div></div></div><p>The <code class="classname">FXGLCanvas</code> widget provides a very simple
62
62
  OpenGL-capable window with minimal functionality. To construct an
63
63
  <code class="classname">FXGLCanvas</code>, call
64
64
  <code class="methodname">FXGLCanvas.new</code>:</p><pre class="programlisting">glCanvas = FXGLCanvas.new(parent, vis)</pre><p>The first argument to <code class="methodname">FXGLCanvas.new</code> is the
65
65
  parent (container) widget and the second argument is the
66
66
  <code class="classname">FXGLVisual</code> that should be used for this
67
- window.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e4364"></a>OpenGL objects and the FXGLViewer</h2></div></div></div><p>The <code class="classname">FXGLViewer</code> widget provides a higher-level
67
+ window.</p></div><div class="simplesect" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e4371"></a>OpenGL objects and the FXGLViewer</h2></div></div></div><p>The <code class="classname">FXGLViewer</code> widget provides a higher-level
68
68
  OpenGL-capable window with a lot of built-in functionality. To construct
69
69
  an <code class="classname">FXGLViewer</code>, call
70
70
  <code class="methodname">FXGLViewer.new</code>:</p><pre class="programlisting">glViewer = FXGLViewer.new(parent, vis)</pre><p>The first argument to <code class="methodname">FXGLViewer.new</code> is the
data/doc/pt01.html CHANGED
@@ -1,3 +1,3 @@
1
1
  <html><head>
2
2
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
3
- <title>Part&nbsp;I.&nbsp;The Basics</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.68.1"><link rel="start" 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="prev" 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">Part&nbsp;I.&nbsp;The Basics</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="book.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="goals.html">Next</a></td></tr></table><hr></div><div class="part" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="d0e17"></a>The Basics</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="preface"><a href="goals.html">History and Goals</a></span></dt><dt><span class="chapter"><a href="build.html">1. Building from Source Code</a></span></dt><dt><span class="chapter"><a href="gems.html">2. Installing from Gems</a></span></dt><dt><span class="chapter"><a href="tutorial1.html">3. Hello, World!</a></span></dt><dd><dl><dt><span class="section"><a href="tutorial1.html#d0e597">First Things First</a></span></dt><dt><span class="section"><a href="ch03s02.html">Better living through buttons</a></span></dt><dt><span class="section"><a href="ch03s03.html">Messages</a></span></dt><dt><span class="section"><a href="ch03s04.html">Adding a tool tip</a></span></dt><dt><span class="section"><a href="ch03s05.html">Adding an icon</a></span></dt></dl></dd><dt><span class="chapter"><a href="clipboardtut.html">4. Working With the Clipboard</a></span></dt><dd><dl><dt><span class="section"><a href="clipboardtut.html#d0e986">Basic Application</a></span></dt><dt><span class="section"><a href="ch04s02.html">Acquiring the Clipboard</a></span></dt><dt><span class="section"><a href="ch04s03.html">Sending Data to the Clipboard</a></span></dt><dt><span class="section"><a href="ch04s04.html">Pasting Data from the Clipboard</a></span></dt></dl></dd><dt><span class="chapter"><a href="dragdroptut.html">5. Drag and Drop</a></span></dt><dd><dl><dt><span class="section"><a href="dragdroptut.html#d0e1201">Drop Sites</a></span></dt><dt><span class="section"><a href="ch05s02.html">Drag Sources</a></span></dt><dt><span class="section"><a href="ch05s03.html">Putting It All Together</a></span></dt></dl></dd><dt><span class="chapter"><a href="unicode.html">6. Unicode and FXRuby</a></span></dt><dd><dl><dt><span class="section"><a href="unicode.html#d0e1608">Basic Application</a></span></dt></dl></dd><dt><span class="chapter"><a href="examples.html">7. Examples</a></span></dt><dt><span class="chapter"><a href="events.html">8. FXRuby's Message-Target System</a></span></dt><dt><span class="chapter"><a href="todo.html">9. To-do list</a></span></dt><dt><span class="chapter"><a href="infosources.html">10. Other Sources of Information</a></span></dt><dt><span class="chapter"><a href="changes.html">11. Change History</a></span></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="book.html">Prev</a>&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="goals.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Developing Graphical User Interfaces with FXRuby&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="book.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;History and Goals</td></tr></table></div></body></html>
3
+ <title>Part&nbsp;I.&nbsp;The Basics</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook v5 XSL Stylesheets V1.72.0"><link rel="start" 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="prev" 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">Part&nbsp;I.&nbsp;The Basics</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="book.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="goals.html">Next</a></td></tr></table><hr></div><div class="part" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="d0e17"></a>Part&nbsp;I.&nbsp;The Basics</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="preface"><a href="goals.html">History and Goals</a></span></dt><dt><span class="chapter"><a href="build.html">1. Building from Source Code</a></span></dt><dt><span class="chapter"><a href="gems.html">2. Installing from Gems</a></span></dt><dt><span class="chapter"><a href="tutorial1.html">3. Hello, World!</a></span></dt><dd><dl><dt><span class="section"><a href="tutorial1.html#d0e597">First Things First</a></span></dt><dt><span class="section"><a href="ch03s02.html">Better living through buttons</a></span></dt><dt><span class="section"><a href="ch03s03.html">Messages</a></span></dt><dt><span class="section"><a href="ch03s04.html">Adding a tool tip</a></span></dt><dt><span class="section"><a href="ch03s05.html">Adding an icon</a></span></dt></dl></dd><dt><span class="chapter"><a href="clipboardtut.html">4. Working With the Clipboard</a></span></dt><dd><dl><dt><span class="section"><a href="clipboardtut.html#d0e986">Basic Application</a></span></dt><dt><span class="section"><a href="ch04s02.html">Acquiring the Clipboard</a></span></dt><dt><span class="section"><a href="ch04s03.html">Sending Data to the Clipboard</a></span></dt><dt><span class="section"><a href="ch04s04.html">Pasting Data from the Clipboard</a></span></dt></dl></dd><dt><span class="chapter"><a href="dragdroptut.html">5. Drag and Drop</a></span></dt><dd><dl><dt><span class="section"><a href="dragdroptut.html#d0e1201">Drop Sites</a></span></dt><dt><span class="section"><a href="ch05s02.html">Drag Sources</a></span></dt><dt><span class="section"><a href="ch05s03.html">Putting It All Together</a></span></dt></dl></dd><dt><span class="chapter"><a href="unicode.html">6. Unicode and FXRuby</a></span></dt><dd><dl><dt><span class="section"><a href="unicode.html#d0e1608">Basic Application</a></span></dt></dl></dd><dt><span class="chapter"><a href="examples.html">7. Examples</a></span></dt><dt><span class="chapter"><a href="events.html">8. FXRuby's Message-Target System</a></span></dt><dt><span class="chapter"><a href="todo.html">9. To-do list</a></span></dt><dt><span class="chapter"><a href="infosources.html">10. Other Sources of Information</a></span></dt><dt><span class="chapter"><a href="changes.html">11. Change History</a></span></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="book.html">Prev</a>&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="goals.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Developing Graphical User Interfaces with FXRuby&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="book.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;History and Goals</td></tr></table></div></body></html>
data/doc/pt02.html CHANGED
@@ -1,3 +1,3 @@
1
1
  <html><head>
2
2
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
3
- <title>Part&nbsp;II.&nbsp;Appendices</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.68.1"><link rel="start" 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="prev" href="changes.html" title="Chapter&nbsp;11.&nbsp;Change History"><link rel="next" href="opengl.html" title="Appendix&nbsp;A.&nbsp;Using OpenGL with FXRuby"></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">Part&nbsp;II.&nbsp;Appendices</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="changes.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="opengl.html">Next</a></td></tr></table><hr></div><div class="part" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="d0e4203"></a>Appendices</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="appendix"><a href="opengl.html">A. Using OpenGL with FXRuby</a></span></dt><dt><span class="appendix"><a href="scintilla.html">B. Using Scintilla with FXRuby</a></span></dt><dt><span class="appendix"><a href="differences.html">C. Differences between FOX and FXRuby</a></span></dt><dt><span class="appendix"><a href="library.html">D. The FXRuby Standard Library</a></span></dt><dt><span class="appendix"><a href="implementation.html">E. Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="implementation.html#d0e5254">Code Generation</a></span></dt><dt><span class="section"><a href="apes02.html">Object Life Cycles and Garbage Collection</a></span></dt><dd><dl><dt><span class="section"><a href="apes02.html#d0e5292">GL Objects</a></span></dt></dl></dd><dt><span class="section"><a href="apes03.html">Virtual Functions</a></span></dt></dl></dd><dt><span class="appendix"><a href="subversion.html">F. Getting the Sources from Subversion</a></span></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="changes.html">Prev</a>&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="opengl.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;11.&nbsp;Change History&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="book.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Appendix&nbsp;A.&nbsp;Using OpenGL with FXRuby</td></tr></table></div></body></html>
3
+ <title>Part&nbsp;II.&nbsp;Appendices</title><link rel="stylesheet" href="style.css" type="text/css"><meta name="generator" content="DocBook v5 XSL Stylesheets V1.72.0"><link rel="start" 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="prev" href="changes.html" title="Chapter&nbsp;11.&nbsp;Change History"><link rel="next" href="opengl.html" title="Appendix&nbsp;A.&nbsp;Using OpenGL with FXRuby"></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">Part&nbsp;II.&nbsp;Appendices</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="changes.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="opengl.html">Next</a></td></tr></table><hr></div><div class="part" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="d0e4210"></a>Part&nbsp;II.&nbsp;Appendices</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="appendix"><a href="opengl.html">A. Using OpenGL with FXRuby</a></span></dt><dt><span class="appendix"><a href="scintilla.html">B. Using Scintilla with FXRuby</a></span></dt><dt><span class="appendix"><a href="differences.html">C. Differences between FOX and FXRuby</a></span></dt><dt><span class="appendix"><a href="library.html">D. The FXRuby Standard Library</a></span></dt><dt><span class="appendix"><a href="implementation.html">E. Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="implementation.html#d0e5261">Code Generation</a></span></dt><dt><span class="section"><a href="apes02.html">Object Life Cycles and Garbage Collection</a></span></dt><dd><dl><dt><span class="section"><a href="apes02.html#d0e5299">GL Objects</a></span></dt></dl></dd><dt><span class="section"><a href="apes03.html">Virtual Functions</a></span></dt></dl></dd><dt><span class="appendix"><a href="subversion.html">F. Getting the Sources from Subversion</a></span></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="changes.html">Prev</a>&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="opengl.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;11.&nbsp;Change History&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="book.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Appendix&nbsp;A.&nbsp;Using OpenGL with FXRuby</td></tr></table></div></body></html>