Cross platform RAD with Ultimate++
Introduction
Ultimate++ or UPP (Ultimate Plus Plus) is a cross-platform rapid development toolkit in C++. It consists of :
- Cross platform GUI toolkit, a set of C++ libraries that form Ultimate++ or U++ with main libraries (or called package here)
- “Core” is the core of U++
- “CtrlCore” is the base for all Controls (or Widgets)
- “CtrlLib” is the Controls
- other non visual packages
- TheIDE, as the name implied, is … the IDE !
In there we will meet:- Assist++ that will assist us along TheIDE, a powerful C++ code analyzer with code-completion, navigation, etc.
- Topic++ that help us writing document while coding (so, hopefully we documenting our codings better
) - Layout Designer, so we can visually design the dialog or form.
- Resource Editor
UPP environment is quite different with other tools, for example, Project in UPP is not the project as in other tools which is called Package in UPP.
UPP’s license allows us to develop closed application. You can find it at http://upp.sourceforge.net/app$ide$About$en-us.html
Installation
We can find distribution file at UPP’s official site which is hosted by Sourceforge at http://upp.sourceforge.net
We can download UPP packed with MinGW (gcc), download UPP only binary if we already have MinGW installed or want to use another compilers supported by UPP (Visual C++ 7.1, or 8.0, or free Visual C++ Toolkit 2003, or Visual C++ 2005 Express Edition)
Linux version also available at UPP Site, although I have not yet have chance to try it.
And, also, you can download the latest public betas at UPP Sourceforge Project at http://sourceforge.net/projects/upp
I use default setting of UPP installation (just click Next until Finish…) and it set C:upp for UPP files (there’s a warning mentioning that is not safe to put our files inside the folder), and MyApps for all projects that we will created.
Try Out
Now we try out our just installed UPP.
Launch UPP, and we will have the Opening Dialog:

As an appetizer, let’s just open a package from examples folder: Click “example” at the left box, click “Days” package, and click [OK].
You will find that UPP is optimized for coding: screen estate is efficient, only menu-bar and toolbar and I even make them in one row (Setup | Environment | IDE, check Menu and toolbar in a row)

On the top, menubar (1), and toolbar (2) set to be in one row with menubar.
Packages used are listed in the top-left box (3), if you click a package, file contained will be listed in left-box (4) below package listbox, and the biggest area is the editor.
On the file list, there’s a file with .lay extension (Days.lay) this is a layout file, if we click it the Layout editor will be shown replacing the Text editor (6)
It’s better to try it yourself
Running an example
Before we running Days application, we need to setup our compiler.

I use MinGW compiler, and set optimization to Size (left drop-down button to select Compiler, right drop-down to select optimization).
Worth to note is that UPP employed BLITZ-build technology to speedup C++ rebuild, but for the first built will need quite some times. In my system AMD Athlon 1.8/512MB it took good 10 minutes, but later on it is fast: only need time to compile our package and link. But if we change the optimization, for example to Speed and it has never been build before, you have to give some times for BLITZ to prepare the libraries.
All files are placed inside a folder named Compiler.Optimization.AppType, under Out folder, for example with default installation and compiler setting: MinGW optimized to Size:
- Core package will be in: c:uppoutCoreMINGW.Force_size.Gui
- CtrlCore package will be in: c:uppoutCtrlCoreMINGW.Force_size.Gui
- Our Days package (or project), will be in: c:uppoutDaysMINGW.Force_size.Gui.Main
- and all executables will be in c:uppoutMINGW.Force_size.Gui, so our Days.exe will be in that folder after compilation and linking.
Now we build Days application,

by pressing F5 key, or choose from Debug menu.
Build process is shown in Console box below the Editor, Build log below is shown after BLITZ process, and it is fast, as mentioned above, time needed only for compilation and linking.

And, here is our Days application, calculate days between two given dates:

To open another package (remember, in UPP it is called package while in other tools it is called project or solution), you can select it from “File | Set main package” and you will have that Opening Dialog.
Next time we will create a simple application ourselves
