Ultimate++
From Seo Wiki - Search Engine Optimization and Programming Languages
Jump to navigationJump to search
Ultimate++[1][2][3][4][5][6][7] is a C++ cross-platform development framework which aims to reduce the code complexity of typical desktop applications by extensively exploiting C++ features.
Features
- currently supports Microsoft Windows, Linux/X11 and BSD/X11.
- includes an IDE and a GUI designer.
- uses the free BSD license.
- uses heavily RAII and auto pointers-like mechanisms to avoid manual memory management and even to limit the use of pointers in the code [8]
- can emulate[9] native widgets look and feel. On X11 systems, Ultimate++ supports gtk widgets look and feel.
- numerous reference examples are provided.
- standard distribution comes with ultimate++ sources included, even the IDE ones.
- uses NTL[10] as template system instead of STL
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();
}
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 [11]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 the operator &&.
- 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.
Software built on Ultimate++
- AWS Truewind openWind - an open-source wind farm design software
- Gastronomie Kontroll System, a point of sale system for restaurants
- WebMap, GIS application
See also
- Widget toolkit
- List of widget toolkits
- Qt (toolkit) - toolkit used by KDE applications
- GTK+ - The GIMP toolkit, a widget toolkit used by GNOME applications
- FLTK - A light, cross platform, non-native widget toolkit
- FOX toolkit - A fast, open source, cross-platform widget toolkit
- wxWidgets
References
- ↑ ultimatepp.org, Ultimate++ site.
- ↑ http://www.programmez.com/magazine_articles.php?id_article=981 Programmez! issue 104
- ↑ http://www.programmez.com/magazine_articles.php?id_article=1150 Programmez! issue 114
- ↑ Gouvernelle, Vincent (2009). C++: L'essentiel du code et des commandes. Pearson Education France. ISBN 2744022810.
- ↑ http://sdjournal.org/magazine/article/8 Software Developers Journal, issue 2005-11
- ↑ Getting started with Ultimate++ CodeProject article
- ↑ Widget toolkit comparison page
- ↑ U++ Overview
- ↑ Chameleon examples
- ↑ Guide to Ultimate++ containers
- ↑ Pick transfer semantics
|
If you like SEOmastering Site, you can support it by - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 and more...
→ Explore the cs2 skins gambling site on besoccer.com for skins and free bonuses . Seamlessly update content with digital signage monitor.
Categories:
- Pages using deprecated source tags
- Pages with syntax highlighting errors
- Pages using duplicate arguments in template calls
- Pages with broken file links
- Widget toolkits
- Application programming interfaces
- Free development toolkits and libraries
- X-based libraries
- Cross-platform software
- Open source integrated development environments
- Linux integrated development environments