Welcome to EverybodyWiki ! Sign in or sign up to improve or create : an article, a company page or a bio (yours ?)...

HTMLayout

From EverybodyWiki Bios & Wiki
Jump to: navigation, search



HTMLayout is an unsupported ("please use Sciter instead"[1]) embeddable layout engine for HTML. Produced by Terra Informatica, it is given away free of charge (for both non-commercial and commercial use), but it is not free software and has some licence requirements.

The main purpose of HTMLayout is to support a so-called Web UI in desktop applications and yet to be embeddable.

History[edit | edit source]

HTMLayout is a plain C wrapper of the h-smile layout engine used in other Terra Informatica projects, like Sciter and moSciter. It was released on September 4, 2003 and has been under permanent development since.

Design goals[edit | edit source]

HTMLayout is unique among other layout engines by its design goal – a completely embeddable HTML/CSS engine. "Embeddability" of the engine implies following:

  • Simplicity and transparency of embedding; e.g., on Windows to embed HTMLayout is a simple matter of three lines of code;
  • It operates in windowed and windowless modes;
  • Downloading of any external resource from the Internet happens after notification of the host application. The host application may allow or discard any external request.
  • An application is allowed to extend the HTML vocabulary by adding new types of elements and/or to define behaviors of such elements - to define how DOM elements react on UI events and even how these elements are rendered (painted).

Standards compliance[edit | edit source]

HTMLayout supports a dialect of HTML. It has some problems with rendering certain non-compliant HTML markup (such as LI tags outside of lists), which could be seen as a negative, albeit minor. Its purpose is not to be a full-featured web browser, but to be a small embeddable engine, which it does adequately. This means:

  • The set of standard input elements in HTMLayout is significantly extended by specialized versions for
    • Integers numbers with spin buttons;
    • Floating numbers with spin buttons;
    • Currencies with special formatting like number group separators;
    • Dates;[2]
    • Hierarchical lists;[3]
    • Horizontal and vertical sliders
  • Each DOM element can be extended by the host application by supplying so called behavior - named set of event handlers implemented in code of the application. The behavior may define how DOM element is reacting on mouse, keyboard, focus, paint events or even custom events raised by other behaviors. Behaviors are assigned to DOM elements declaratively - by using the behavior CSS attribute.
  • CSS in HTMLayout is extended to support such features of modern UI as:
    • Flex length units in CSS that allow to define flexible layouts with flexibility in horizontal and vertical dimensions.
    • Animation, e.g., some <img> element may have transition:blend defined in CSS to present blend animation between two states;
    • Drag-n-drop, e.g., CSS definition div {accept-drop: selector(ul.cart>li);} declares that the DIV element accepts drops of LI elements residing in ul.cart containers only.
    • Implementation of CSS selectors is much more complete than in usual web browsers.

Platforms[edit | edit source]

HTMLayout is available for Windows NT/XP/Vista, including 64-bit variants, and also Windows CE and Windows Mobile. Linux support is planned, but not yet available.

SDKs and bindings[edit | edit source]

Terra Informatica officially supports a C SDK with a reference C++ wrapper implementation. SDK contains examples of MFC and WTL host applications, examples of HTML markups, and brief documentation.

Third-party bindings include:

  • Ruby binding HTMR by Victor Shepelev (not under development)
  • .NET 1.1/Managed C++ binding[4][not in citation given] (not under development)
  • .NET 2.0-3.5/C# binding by Roman Akopov as a part of general purpose Nabu Library, Nabu.Forms.Html project. Supports all platforms, however mobile is known to be beta (end-of-life due to lack of interest).
  • Java binding is under development.

Also, there is the third-party HTMLayoutSpy tool available for the Windows x86 platform. This tool does the same job as the well-known Microsoft Spy++, but for HTMLayout windows.

Support[edit | edit source]

Free support includes forums in English and Russian. For large-scale development, the company offers support contracts for a fee (per developer). A competent programmer can most likely manage with the accompanying documentation, which is sufficient to most tasks.

References[edit | edit source]

External links[edit | edit source]


This article "HTMLayout" is from Wikipedia. The list of its authors can be seen in its historical and/or its subpage HTMLayout/edithistory. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.