[almostOT] Shared experience from GUI toolkit development

eles via Digitalmars-d-dwt digitalmars-d-dwt at puremagic.com
Mon Jan 12 05:54:07 PST 2015

No, not my experience, and not about DWT, but seems to be the
closest forum that allows posting this.

  From the Ultimate++ library developers:


"Who owns widgets
One of the things we discovered over our countless experiments
with C++ GUI is the fact that the GUI toolkit should not own
widget objects. GUI objects should be always owned by the client,
belonging to some scope of client code (everything belongs
somewhere). GUI toolkit just references them, it neither creates
them nor destroys them. Each widget object can play its GUI role
in some context (like being visible in some window), but at the
same time it is always a stand-alone entity with its set of
attributes that can be modified or queried regardless of its
current GUI status.
This has many serious implications. The most important is that
Ultimate++ does not require widget objects to be allocated on the
heap. [snip]"


"Dialog templates are C++ templates
Now that we have laid down the foundations, it is time to
introduce the coolest aspect of Ultimate++ GUI programming -
layout templates:
If you visually design a layout (usually, but not limited to, the
layout of a dialog box) using TheIDE's Layout designer, this
layout is in in your code reflected as a C++ template that
derives from a widget-based class and declares all widgets as its
member variables, and a matching function (InitLayout) that sets
up the widget positions and their pre-designed attribute defaults.
This approach provides radical reduction of complexity - many
annoying things that seem to be necessary to identify widgets in
client code (like widget IDs or names) are simply gone for good.
All you have to deal with in Ultimate++ are your instance

The whole page is quite interesting (see: Value and Null, Display
and Convert etc.)

PS I also made Akismet happy: "Akismet thinks your post looks 
like spam. Please solve a CAPTCHA to continue."

More information about the Digitalmars-d-dwt mailing list