= Introduction

This is a rough draft, if you will, of the FXRuby API documentation. It is
still incomplete; not all of the classes are documented, and those that _are_
documented undoubtedly have some holes in their documentation. My primary
reasons for publishing it in its current state is provide users with some
preliminary documentation and to get feedback on the current format.
If you have some constructive comments about the current format or presentation,
please do send those to me (at mailto:lyle@users.sourceforge.net).

= Page layout

The page layout is roughly the same for every class. The page begins
with a brief description of the class and is then followed by one or
more of the following sections:

[*Attributes*]
  This section lists the names of all the attributes for this widget.
  As with all Ruby object "attributes", these are actually just the names
  of instance methods for the class, but it is nevertheless natural to think
  of these as attributes (or _properties_) of the widget. Most attributes
  are both readable and writeable, but some are only read-only, so be sure
  to check the attributes listing within the main class documentation section
  to be sure.
[*Events*]
  This section lists the types for all of the messages that this widget
  might send to its message target, and the circumstances under which those
  messages are sent. When it's important, the message data associated with
  that event is also described.
[*Options*]
  Most widgets have one or more options that affect their appearance or
  behavior. These options can be passed into the class's _new_
  method when the object is first instantiated. They can usually also be
  changed after the object exists via some object-specific accessor method.
  For example, the options for an FXButton can be get or set via the
  FXButton#buttonStyle accessor methods.

= Where's the code?

One difference you may notice from documentation generated for other
Ruby extensions is that there's no source code attached to the instance
methods when you click on them (i.e. they will appear to be empty
method definitions). That's because most of these functions are in fact
implemented in C++ code (since FXRuby is itself a C++ extension to Ruby).

= TODO

A few notes and suggestions from Hugh Sasse:

* It may help to add information about what happens when block_given?()
  is true or false, i.e. does this affect the return value for a method?
* In lieu of (or in addition) to short code examples embedded in the API
  documentation, links to examples that are shipped with FXRuby might be good.
----

The HTML pages for this documentation were generated using RDoc
(http://rdoc.sourceforge.net). 
