Ultimate++

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Ultimate++
Developer(s) Ultimate++ team [1]
Initial release 2004
Stable release 3211 / February 16, 2011;
12 months ago
 (2011-02-16)
Written in C++
Operating system Unix/Linux/BSD (X11), Windows
Type Widget toolkit/IDE
License BSD
Website ultimatepp.org

Ultimate++ is a C++ cross-platform development framework which aims to reduce the code complexity of typical desktop applications by extensively exploiting C++ features.

Contents

[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

Personal tools
Namespaces

Variants
Actions
Navigation
Interaction
Toolbox
Print/export
Languages