Ultimate++
From Wikipedia, the free encyclopedia
Ultimate++ is a C++ cross-platform development framework which aims to reduce the code complexity of typical desktop applications by extensively exploiting C++ features.
[edit] Features
[edit] Hello World
The following example creates a U++ application with "Hello world!" button:
#include <CtrlLib/CtrlLib.h>
using namespace Upp;
class MyApp : public TopWindow {
Button button;
void Click() {
if(PromptYesNo("Button was clicked. Do you want to quit?"))
Break();
}
typedef MyApp CLASSNAME;
public:
MyApp() {
Title("Hello world");
button.SetLabel("Hello world!");
button <<= THISBACK(Click);
Add(button.HSizePos(100, 100).VSizePos(100, 100));
}
};
GUI_APP_MAIN
{
MyApp().Run();
}
[edit] Criticism
- it doesn't use the Standard Template Library (STL)
- NTL template system semantics are difficult to understand at first since assignment operator in reality gets overloaded to perform a move [5] operation and not a copy. This is done for performance reasons and to overcome some STL limitations, but new C++0x standard should enable even STL users to perform move operations with classes by introducing rvalue-references.
- since many C++ operators are overloaded to perform common tasks such as assigning callbacks, understanding the code can be a difficult at first
- there are no layouts handlers for widgets, although Ultimate++ has a system of logic coordinates to maintain relative coordinates of objects when resizing windows. Having three buttons properly aligned and resized on a row without layout managers still remains difficult, though.
- Ultimate++ IDE support for languages other than C++ is very limited. It provides some syntax coloring for SQL and little else.
[edit] Software built on Ultimate++
[edit] See also
[edit] References
[edit] External links
|
|
|
| Low-level |
|
|
| High-level |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Cross-platform,
by language
|
|
|
|
|
|
XML
|
|
|
|
|
|
|
|
|
|
|
|
C or C++
|
|
|
|
Common Lisp
|
|
|
|
Object Pascal
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|