What next for Saturn and Titan   Leave a comment

Now that version 3.0.0 of Saturn and Titan has been released thoughts turns turn to the next release (barring bug fix releases). The provisional list is:

  • Three modes for zooming and centring, the existing mode (Quick), a mode providing more control in determining the precise area of zoom or position of new centre (Controlled) and off (None), when the mode is off zooming and centring will be available by editing the centre and width fields in the location tab of the settings window.
  • Reordering of the colour components of the selected colour maps(s), there are three values per colour representing red, green and blue in that order i.e. rgb, the reassignment of the values will be possible so that the colour represented by a value can be changed, for example, grb would swap the red and green values. This effectively increases the number of colour maps available without increasing the number of colour map definitions.
  • More fractals types – to be determined.
  • More … – to be determined.

It had always been my intention to make Saturn and Titan available on Linux, Windows and OS X, with that in mind I chose the Gtkmm toolkit based on Gtk+ and proceeded to develop on Linux as Saturn and Titan were based on two previous programs called Mars and Phobos bath developed using Gtkmm. Gtkmm was supposedly available for Linux, Windows and OS X, this was certainly true of Windows, for OS X it’s a different story there was a choice between building with X windows or using the version that uses native OS X widgets. Although Saturn and Titan build and run on OS X using X windows they don’t have the look and feel of OS X applications, so the Gtkmm specifically for OS X would have been preferred. I’ve had several attempts at trying to build Saturn and Titan with the Gtkmm specifically for OS X, all of which ended in failure. The latest attempts failed due confusion between the X Windows and the OS X versions of the toolkit, so an attempt was made with a fresh install of OS X so that only the OS X version would be present, this version of the toolkit is installed by downloading a script which builds something called jhbuild which is subsequently used to download the source code of Gtkmm and its dependencies, currently jhbuild doesn’t build so Gtkmm can’t be built. I don’t want release Saturn and Titan based on X windows for OS X and the OS X native version can’t be built which why there isn’t an OS X release.

I’m using the version 2 branch of Gtkmm at the moment which was the basis for Gnome 2 and MATE. The the version 3 branch of Gtkmm has been available for some time as is the basis for Gnome 3. There was quite a bit of reworking required to get Saturn to build with the version 3 branch, the initial results were not encouraging, the initial run displayed a grey rectangle for the splash window and the fractal image wasn’t updated. In addition I don’t like the way the Gtk+ 3 widgets look and it made a mess of the layout of the fractal setting window:

Gtkmm 2

Gtkmm 2

Gtkmm 3

Gtkmm 3


I’m sure with time these problems can be solved. One reason for moving to Gtkmm 3 is the difficulty of finding version 2 documentation, there are however reasons for not going with Gtkmm 3 or indeed staying with Gtkmm 2, there is no official Gtkmm 3 installer for Windows and it certainly isn’t available for OS X.

So, for me to add an OS X version of Saturn a different cross platform toolkit is required, wxWidgets is out as the only version that will build on my version of OS X is the unstable development branch and yes, it is indeed unstable, which leaves Qt.

Qt downloads and installs without problems on Linux, Windows and OS X. To determine the feasibility of using Qt instead of Gtkmm I produced a prototype reproducing the user interface of Titan and built it on Linux, Windows and importantly on OS X. This is what they look like:

Linux Qt Prototype

Linux Qt Prototype

OS X Qt Prototype

OS X Qt Prototype

Windows Qt Prototype

Windows Qt Prototype

One thing to note is that the OS X version of Qt does not display any text on the progress bar, strangely the Windows version displays the percentage value separately at the end. The percentage value is an integer and the Gtkmm version of Titan displays the percentage progress to two decimal places, the easiest way to get consistent behaviour is to display percentage value above the progress bar and to disable progress text. The layout of the Windows version isn’t quite right but can be solved by using layouts instead of placing the widgets at precise positions in the window, I had the same problem with the OS X version but that has had its positions adjusted.

To convert Saturn and Titan to Qt is a lot work and it doesn’t add any functionality. I’ve started on converting Titan as it is much simpler than Saturn and a lot of the code is shared with Saturn so conversion of Titan will contribute significantly towards the conversion of Saturn. Depending on how that progresses will determine whether I continue and complete conversion of both Saturn and Titan before adding the proposed new features for the next version.

I need to make a decision whether to include conversion Qt with the next feature release, if I do it will be version 4.0.0 rather than 3.1.0.


Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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 )

Google+ photo

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

Connecting to %s

%d bloggers like this: