Content is scrollable

Manlug meeting June 2003

21st June 2003

Leo - an outliner with support for programmers

Richard Jarvis


Leo is a useful outliner which can be used to arrange a tree of headings and associate some text with each node in the tree. The resulting file can be saved in an XML format. Of course, there are many programs that do this. However, leo provides additional support for programmers who wish to import source code into the outline - automatic generation of source files from the outline and coloured code being two of the most obvious. This makes leo a useful way to examine unfamiliar code and maybe even create new code.

Cross-Platform GUI Development with WxWindows

Smylers (Simon Myers)


Graphical user interfaces are used in many programs. The command line certainly has its power, but there are some tasks - and some users - for whom a GUI is all but essential. Windows has a GUI. Linux has many GUIs. But all these GUIs are incompatible, both programmatically and in what users encounter on their screens. This is a problem for developers who wish to make applications available on multiple platforms, or who merely have a hankering that they may wish to do so at some point in the future.

WxWindows is an attempt to resolve these issues. It provides a consistent programmatic interface to incompatible GUIs, enabling an application developer to describe its user interface in neutral terms then have it deployed with a Windows, GTK, or Mac GUI, looking just like a native application on each platform. You can consider WxWindows to be some sort of 'meta GUI'.

This talk shows what WxWindows does and how it can be used. It is compared with alternative technologies, discussing advantages and disadvantages. For example 'Mozilla' attempts to solve the cross-platform problem with XUL, which has the advantage that 'Mozilla' looks pretty much the same on all platforms, but the disadvantage that on any platform 'Mozilla' sticks out decidedly from that platform's other apps. A WxWindows program, on the other hand, will look different in each environment, in its chameleon-like attempt to fit in with its surroundings.

As a Linux developer WxWindows allows you to develop GUI apps that will run under Windows while you remain in your comfortable Linux surroundings. Or you can write a program for use on Windows now, safe in the knowledge that it can be used on Linux later if needed. Features include advanced widgets such as checklist boxes, status bars providing menu help text, and even non-graphical tasks such as forking, performed in a cross-platform way. One of its major advantages is the comprehensive documentation, with all of the many, many classes and methods explained in readable terms, as well as a smattering of sample programs.

WxWindows can be used from C++, Perl, and Python. There are a small plethora of graphical tools available which can be used for building WxWindows user interfaces (for those that like that sort of thing, anyway -- the author avoids GUIs where possible and sticks to writing WxWindows code in 'Vim').