PHP 5.0.1 is a maintenance release which adds many non-critical bugfixes and new Unix and Windows installation documentation which is auto-generated from the PHP Manual. Gambas 0.97 is now compiled with gcc 3.4. A new class, Settings, allows you to manage configuration files. The divide operator now behaves exactly as in other BASIC languages; it returns the whole floating point result, and not the integer part only. FOX 1.2.9 back-ports an FXTopWindow placement patch and fixes a bug in inquireDNDTypes(). FOX 1.3.8 (development) adds an FXSplashWindow class, an FXMemMap class for memory mapped files, and some missing APIs to FXFileSelector and FXFileDialog.
I have recently written a programmers editor in Ruby using fox toolkit.. I am impressed that it more or less with only few adaptations works both on Windows, OsX, UNIX.
This is Fox 1.0.. I hope the new fox is nicer.
http://aeditor.rubyforge.org/wiki/wiki.pl?HomePage
wxwidgets is also works on many platform, but requires more modifications.
Sorry for advertising here.. but fox rocks.
—
Simon Strandgaard
Never looked at it, never mind used it before, but Fox does indeed look quite nice and looks to be implemented in a pretty sensible and sane manner. However, the trade-off, as usual, is between native look and feel/features, speed, cutting down on layers and maintenance and adequate platform independence. It’s a never-ending question with no real answer, but Qt and Fox seem to have the best answers today.
The only two toolkits available on Linux/Unix today that I have time for are Qt, and now, Fox.
It’s licencing sure looks more inviting than Qt but it still uses code that’s littered with macros for event handling. Until this changes, I’ll continue writing code with GTK.
I looked at fox – but I failed to like it too much. It wasn’t not so much about the programming style but simply by the features of the tookit itself. Painting was hardcoded in the widgets. That may be fast, but isn’t good for other looks. And the look of fox could be called functional but certainly not appealing. Apart from that its flexibility was more limited than Qt’s or Java Swing’s. Other important features like embedding a web browser were not implemented either. Maybe some things have changed since then but I guess Qt will be still far ahead (and I’m fine with either license…)
It’s licencing sure looks more inviting than Qt but it still uses code that’s littered with macros for event handling. Until this changes, I’ll continue writing code with GTK.
When you’re writing code internally that improves productivity, or writing code to sell, the license for that purpose means nothing to people.
Macros are OK within the toolkit, if handled properly, and provide a great deal of extra functionality that couldn’t be provided without writing a tonne of extra code (or not at all) and actually making it readable. As a programmer you have to be very careful about implementing such things yourself unless you get them nailed down before hand and are clear as to what any macros will be and what they will provide. It’s a question of making an intelligent decision about where macros will be used.
A toolkit like Fox or Qt is the best place to extend functionality in this way for the end programmer – all you’re doing is using them. Of course, if you want to write a lot of unreadable code….
Painting was hardcoded in the widgets. That may be fast, but isn’t good for other looks. And the look of fox could be called functional but certainly not appealing. Apart from that its flexibility was more limited than Qt’s or Java Swing’s… Maybe some things have changed since then but I guess Qt will be still far ahead (and I’m fine with either license…)
You have to put that in perspective. It is an LGPL’d toolkit that doesn’t have paid programmers working around the clock on it like Qt has – as Trolltech can afford to do with their working business model. For what it is Fox looks more promising than most free toolkits I’ve seen.
> Of course, if you want to write a lot of unreadable code….
Personally, I prefer:
g_signal_connect(G_OBJECT(canvas->widget), “expose-event”,
G_CALLBACK(neb_canvas_expose), (gpointer)canvas); g_signal_connect(G_OBJECT(canvas->widget), “button-press-event”, G_CALLBACK(neb_canvas_buttonpress), (gpointer)canvas);
Instead of:
FXDEFMAP(FXGLViewer) FXGLViewerMap[]={
FXMAPFUNC(SEL_PAINT,0,FXGLViewer::onPaint),
…
FXMAPFUNCS(SEL_UPDATE,MINKEY,MAXKEY,FXGLViewer::onUpdAll),
…
FXIMPLEMENT(FXGLViewer,FXGLCanvas,FXGLViewerMap,ARRAYNUMBER(FXGLViewer Map))
Decide for yourself which is “unreadable code”.
how about
Turtle move 400
Turtle rotate 45
Turtle move 300
but it still uses code that’s littered with macros for event handling. Until this changes, I’ll continue writing code with GTK.
Pot, meet kettle. Kettle, meet pot.
How about…!
Widget.Paint += new WidgetEventHandler(Callback);
When I am coding UI’s in C++ I switch around between fltk, fox, and QT. fltk is my favorite, simple and clean, but a somewhat limited widget selection. Fox is not too bad either. I keep trying QT, thinking I should like it, but usually end up back in fltk.