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:

Testbed application

Testbed application, dialogs

DOM explorer by Vladimir Vlasov, the Great:

DOM Explorer

TextArea class - “rich text” WYSIWYG editing widget:

TextArea class

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 )