Last update March 7, 2012

Harmonia



  • Is a "Windowless" GUI Framework for D 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 cost pretty much nothing - fast and flexible. HTML allows to define and host any controls of your choice.
  • Harmonia uses capture/bubbling event propagation schema first introduced in HTML ( http://catcode.com/domcontent/events/capture.html). Such schema significantly reduces amount of UI code and 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 world for Harmonia

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.SHOWN;
}

static this() // module ctor
{
  Application.onStart = &HelloWorldStart;
}

Homepage: http://harmonia.terrainformatica.com/

Screenshots:

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

Sources are available using Subversion: svn://harmonia.dyndns.org (anonymous access)

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.)

FrontPage | News | TestPage | MessageBoard | Search | Contributors | Folders | Index | Help | Preferences | Edit

Edit text of this page (date of last change: March 7, 2012 20:30 (diff))