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 builtin HTML engine. HTML engine used in many places: as a layout engine, as dialog resource format, HTML tooltips, etc.HTML engine uses DOM compiled in bytecode array so in runtime it costs pretty much nothing and yet fast and flexible. HTML allows to define and host any controls of your choice.
- Harmonia uses sinking-bubbling event propagation schema first introduced in HTML (here). Such schema significantly reduces 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 )



