Chapter 6. To-do list
Prev | Part I. The Basics | Next

## Chapter 6. To-do list

- I haven't yet paid much attention to some of the more esoteric issues such as multithreaded applications, or interactions with other popular Ruby extensions. FXRuby seems to cooperate well with Ruby's thread scheduler on all platforms, although threading support for the mswin32 build of Ruby was broken for Ruby versions 1.6.7 and earlier. For best results, use Ruby versions 1.6.8 or later.

- More examples are always good. Instead of (or in addition to) merely cloning the C++ examples from the standard FOX distribution, it would be nice to have original example programs that demonstrate Ruby's special strengths.

- Documentation is of course a big weakness at this point. I am slowly building up a set of "pseudo-sources" with RDoc-style comments that can be used to generate API documentation but this is far from complete (see the `rdoc-sources` directory in the standard source distribution).

- Many people have expressed interest in a framework similar to Tk's `Canvas` widget that allows you to draw and drag 2-D shapes around, etc. Should be able to implement this kind of thing directly in Ruby code (i.e. no need to write it in C++ first and then "wrap" it).

- There is no native Mac OS X port of FOX, but many people are successfully building and running FOX and FXRuby applications on Mac OS X using Apple's X11 server implementation. For more information, please see the Mac OS X page at the FOX Community Wiki site.

- Need to investigate how well FXRuby-based applications work with exerb, and perhaps add a section to the documentation about how to do this.

- As of this writing, FOX doesn't provide any support for internationalization (I18N) or Unicode text and so FXRuby doesn't either. It is possible that FOX 1.2 will include some I18N support (see the FAQ at the FOX Community Wiki site), and if so, appropriate changes will be made to FXRuby at that time.

- FOX's list-like widgets (such as `FXList`) behave differently from Ruby container objects (such as `Array`) in the sense that when a list widget is destroyed, it typically destroys all of its contained items at the same time. One consequence of this behavior is that you can end up with Ruby objects that refer to dead C++ objects (a variation of the dangling pointer problem familiar to C/C++ programmers). I would like to see if this behavior can be modified for FXRuby so that it's impossible to end up with these "dangling references".

Prev | Up | Next
Chapter 5. FXRuby's Message-Target System | Home | Chapter 7. Other Sources of Information