Access:

» Ultimate++

Related categories: C/C++ | Generall | Portable GUI | IDE

Miroslav Fidler, Tomas Rylek
Viewed: 13151 | Article date: 2006-01-13 15:12:02

Ultimate++ is an attempt at creating a versatile platform for developing desktop applications for Windows and POSIX/X11 systems. To this end, Ultimate++ makes extensive use of advanced C++ functionality and explores several new approaches to application development. The package consists of a number of C++ libraries and an integrated development environment called TheIDE. This article introduces the most interesting features of the Ultimate++ toolkit.

Miroslav Fidler and Tomas Rylek are members of small development team that designed and implemented Ultimate++.

Contact with authors: cxl@ntllib.org

Ultimate++ is an attempt to provide the optimal desktop application development platform for Windows and POSIX/X11 platforms. Ultimate++ is aggressively using C++ features to achieve this goal, exploiting a couple of new ideas in application development. Ultimate++ consists of a set of C++ libraries and a development environment, TheIDE. While TheIDE is closely related to Ultimate++, it provides a good environment even for non-U++ based development as well, so even when you are not interested in Ultimate++ way of programming, you still might be interested in TheIDE.

Wetting your taste

Ultimate++ promises radical reduction of code complexity of typical desktop applications. Let us start with a simple example â?? an application that displays the number of days between two dates. The number of days is refreshed as user types or edits dates into the input fields (see Figure 1).

Ultimate++

Figure 1. Days example application

The application window layout is created using Ultimate++ visual designer (see Figure 2).

Ultimate++

Figure 2. Days application layout being visually designed

The actual code for the application can be seen in Listing 1.

Listing 1. Complete source code for Days example

 
 
#include <CtrlLib/CtrlLib.h>
 
#define LAYOUTFILE <Days/Days.lay>
#include <CtrlCore/lay.h>
 
class Days : public WithDaysLayout<TopWindow> {
public:
   void Compute();
 
   typedef Days CLASSNAME;
   Days();
};
 
void Days::Compute()
{
   result = IsNull(date1) || IsNull(date2) ? "" :
         Format("There is %d day(s) between %` and %`",
               abs(Date(~date1) - Date(~date2)), ~date1, ~date2);
}
 
Days::Days()
{
   CtrlLayout(*this, "Days");
   date1 <<= THISBACK(Compute);
   date2 <<= THISBACK(Compute);
   Compute();
}
 
GUI_APP_MAIN
{
   Days().Run();
}

Page: 1 2 3 4
Buy article Buy subscription
Buy now add to cart
add to cart
Standard price: 2€/$3 Standard price: 25€/$30
Buy article for as little as (2€/$3) each allow access to individual articles. Buy a full access to our Software Developers's Journal archive portal. You will be able to read the articles from all archive issues from year 2005 and 2006. For just 25€/$30 you get unrestricted access to the entire website for the whole year.
SDJhakin9

.SDJ Users:


.:Login
.:Password

[Register]
[Forgotten your password?]

...Shopping Cart

sum: 0 €
Choose currency:

...Topics

...Advertisement

www.acunetix.com www.verifysoft.com

...Conferences




...Print Edition Archive

...Affiliate Program



 

 

Subscribe | Contact Us | Newsletter | Privacy policy | Regulations | See all issues | About SDJ
Copyright C 2006 by Software Developer's Journal. All rights reserved.