Trace: » start
Harmonia
- Is a “Windowless” GUI Framework for D Programming Language. It does not use OS child controls - only top level frames.
- As it is “windowless” it is fast and highly portable.
- Has a builtin HTML engine. The HTML engine is used in many places: as a layout engine, as dialog resource format, HTML tooltips, etc. It uses DOM compiled into a bytecode array so that during runtime it costs pretty much nothing yet is still flexible. HTML allows the definition and hosting of any controls of your choice.
- Harmonia uses the sinking-bubbling event propagation schema first introduced in HTML (here). This schema significantly reduces the amount of UI code and is very flexible.
- Harmonia is a “themed UI” which means that you can create multiple look-n-feel flavours and apply them in runtime. It even allows you to have multiple themes for multiple containers on the same window.
Hello harmonized world
module samples.hello1; // HTML Hello World. import harmonia.ui.application; import harmonia.ui.window; import harmonia.html.view; // HTML behavior can be attached to any container // This time to the window. alias HtmlPanelT!(Window) HtmlWindow; void HelloWorldStart() { HtmlWindow w = new HtmlWindow; w.html = "<HTML back-color='edit info' text-align=center vertical-align=middle>Hello World!</HTML>"; w.state = Window.STATE.NORMAL; } static this() // module ctor { Application.onStart = &HelloWorldStart; }
Harmonia home is: http://harmonia.terrainformatica.com/
Screenshots:
DOM explorer by Vladimir Vlasov, the Great:
TextArea class - “rich text” WYSIWYG editing widget:
Downloads
Demo to play with : http://harmonia.terrainformatica.com/HarmoniaDemo.zip (1.7 MB)
Current class map of Harmonia is here: http://harmonia.terrainformatica.com/map.htm
Latest sources are available using Subversion: svn://harmonia.dyndns.org (anonymous access)
The most recent available snapshot : http://harmonia.terrainformatica.com/Harmonia.source.119.zip (2.8 MB)
A smile.dsw file is provided there. It allows one to build and debug Harmonia and samples in MS VS 6 environment. ( It assumes that D compiler and tools located in c:/dmd and c:/dm folders respectively )



