💾 Archived View for gemini.circumlunar.space › users › kraileth › neunix › eerie › 2012 › toolkits_e… captured on 2020-11-07 at 03:22:21. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2020-10-31)

-=-=-=-=-=-=-

Here I'm republishing an old blog post of mine originally from October 2012. The article has been slightly improved.

An extraordinary toolkit example!

The previous 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 I'm 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 niche that's usually interested in such a thing!)

An unusual distribution

Our example here 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 creators, FLTK is "a cross-platform C++ GUI toolkit for UNIX/Linux, Windows and MacOS X". The uncompressed ISO of said 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 images further down 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 (why is it fullscreen and the desktop - including the menu - is gone?):

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 called 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 homepage where you can download it and see for yourself!

XFDOS is built on top of FreeDOS and comes with quite some programs pre-installed, 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 on it's own 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 web browser (DOS version!)

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

Dillo - a FLTK-based web 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 and feel on other platforms!

Interested to see for yourself?

You can explore the project’s site here:

XFDOS Project

BACK TO 2012 OVERVIEW