Interface

Skin

Representation type

For skins, especially the canvas, there must be an ability to include direct (propably native) drawing operations and widgets into the chrome.

Should support other environments like MacOS etc. => should be scene graph independant.

Also, may representations include (Sub-)OOUIs again?

Possible solution: Wrap native objects in Berlin interface (i.e. don't be scene graph independant). But I don't like this solution too much.

Statistics

The kit must be able to retrieve statistical data about representations. In particular: type, screen-size, costs to load(?)

Example 1: An app provides icons, but the kit is text-only. Example 2: An app provides a long help text for an entity. It makes no sense to download the text, just to find out, that it is too huge. Similar situations appear for images etc.

Stylesheet

The sad fact, we learned from HTML, is, that some creators want to control the appearance in a certain environment at any price - even if that means to violate the most basic rules and to exclude lots of other customers. For HTML, the way out of the resulting situation were stylesheets (CSS): They enabled content providers with a way to control the appearance of their content in a certain environment (e.g. 2D GUI) without compromising the rules of HTML, so other environments wasn't excluded anymore.

I think, this approach can be used for OOUIs as well. Such stylesheets would pre-define decisions usually made by the kit and could ship together with the app. However, they must not be specific to a Kit implementation, but to a target environment. They would also solve the situation, where the app vendor wants to provide a traditional UI, but the OOUI kit, if let alone, might create a different or better one.

However, it's unclear, how the interface to transfer a stylesheet to a kit should look like.

The concrete stylesheet languages are not subject of this document.