Search:
|
Access:
» Ultimate++Related categories: C/C++ | Generall | Portable GUI | IDE Miroslav Fidler, Tomas RylekViewed: 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 tasteUltimate++ 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).
Figure 1. Days example application The application window layout is created using Ultimate++ visual designer (see Figure 2). 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(); }
|
|
Copyright C 2006 by Software Developer's Journal. All rights reserved.







SDJ Users:
Shopping Cart









