An extraordinary TK example!

The last blog post was a little introduction to toolkits in general – now it’s time for a truly special case! While it doesn’t really fit completely with what we’re doing here, it’s close enough to provide a fine example. (That and I like it enough to think that it deserves some more attention outside the narrow scene that’s usually interested in such a thing!)

An unusual distribution

Our example is a graphical distribution with a tiny display server (Nano-X), a simple window manager and FLTK (Fast Light ToolKit) as GUI toolkit. According to its site, FLTK is a cross-platform C++ GUI toolkit for UNIX/Linux, Windows and MacOS X. The uncompressed iso of the distribution is just a little over 60 MB in size. Now take a look at the desktop and guess, which operating system this is based on (and don’t look at the tags of this post if you don’t want to spoil the fun)!

“A graphical distribution using Nano-X and FLTK”

Which OS?

So what do you think from what you see? It looks fairly decent if maybe a bit unoriginal. Is it Windows? No, Windows knows no X11 and thus no Nano-X – and Windows hasn’t fit in ~60 MB for ages! MacOS? To big, too and we were talking about a distribution. So again: No. Linux then? Sounds likely. But a tiny Linux distribution with graphical abilities is nothing special and even less something revolutionary!

Want to see another screenshot? Here’s a FLTK application running:
FlWriter – a simple FLTK word processor

So is it Unix? Some BSD? Or Minix perhaps? No, none of these! A rather exotic thing then? MenuetOS or V2-OS (two operating systems written entirely in assembler!)? Nope. Something completely new? No, you know it, trust me. And it’s not ReactOS or anything like that, either. It’s far easier: This is… DOS.

No, I’m serious! Really, this is Nano-X and FLTK ported to DOS by G. Potthast. The distribution we’re talking about is XFDOS! If you still don’t believe me, just scroll down to the end of this post. There’s a link to the project’s page where you can download it and see for yourself!

It comes with quite some programs, so you can really call it a distribution. There’s a word processor, a spreadsheet application, a painting program, a picture viewer, a pdf viewer and some more.

Alright, it’s still not of much value for daily use. While it even features USB support, there’s no multitasking for example and quite a few other things disqualify XFDOS as a primary OS. But that’s not what it’s meant for, anyway. It’s a great achievement and a neat example of what can actually be done. And it’s surely a huge step ahead of what a DOS GUI usually looks like! You don’t know what I mean? Heh, this gives me a good reason to set up a FreeDOS VM quickly and install OpenGEM again to show you (yes, I really worked with that before – but it’s been years…)!

OpenGEM – a DOS GUI running on FreeDOS

A toolkit in action

This exotic example now gives us the chance to compare a FLTK program running on two entirely different platforms. First take a look at the DOS port of the web browser Dillo:

Dillo – a FLTK-based browser (DOS version!)

And now compare it with Dillo running on a bare-bone Gentoo system running only X11+twm:

Dillo – a FLTK-based browser (on Gentoo)

As you can see, Dillo looks alike on such different platforms as DOS and Linux. Ok, the screenshots show quite some differences… But this is mainly the window bar which is a task of the window manager. Other than that there are a few differences thanks to the fact that XFDOS uses Dillo 3.0 and my Gentoo build is 3.0.2. Also some buttons are grayed out on the later but you can take my word for them to look alike if they both were active.

Even though in the first example the application is running in full screen while in the second it is not, it becomes clear that the application has the same style (buttons, scroll-bar, etc.) on both platforms and this is actually all I wanted to show here: GUI toolkits provide typical graphical elements so that the programmer doesn’t have to care for how they look on other platforms!

Interested in XFDOS?

You can explore the projet’s site here:

What’s next?

In the next post we’ll take a look at the various GUI toolkits available for Linux.

4 thoughts on “An extraordinary TK example!

    1. Hi, Thomas! I totally agree with you – while textmode is great for what it is, a decent GUI really makes typical everyday life much easier. And while DOS is certainly a system for the experienced user, of course we’re all used to GUIs for quite some time now.

  1. In case anyone’s interested, the Dillo port used in XFDOS is based on the D+ fork of Dillo. D+ is far more portable to other platforms besides Linux than Dillo is.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.