Harmonia GUI Framework.
Package tree:
Package content:
| Package | Module | Class/struct/type declaration | Description |
| gx package | |||
| harmonia.gx. | graphics | ISurface | interface |
| Graphics | class | ||
| color | typedef uint | ||
| geometry | size | struct | |
| point | struct | ||
| range | struct | ||
| rect | struct | ||
| images | Image | class | |
| ImageEx : Image | class, expandable Image | ||
| ImageList : Image | class, collection of images - icons | ||
| Icon | class, representation of image list element | ||
| ui package | |||
| harmonia.ui. | application | Application | static class, a.k.a. singleton |
| Application.ActionQueue | class, member of Application. Asynchronous actions queue | ||
| widget | Widget | class, rectangular area on window capable to receive and handle events. Root class of all other widgets. | |
| widgets | Widgets : Widget | class, widget - container | |
| Scrollable(W) : W | template, scrollable container template. W is widget class derived from the Widgets class | ||
| window | Window : Widgets, ISurface | class, window - top level frame of underlying OS. Types: FRAME, POPUP, TOOL, DIALOG | |
| events | Event | abstract class, root of all other events | |
| EventPointer : Event | class, pointer event: mouse, stylus and other pointing devices | ||
| EventKey : Event | class, keyboard events | ||
| EventWidget : Event | class, focus & co. events | ||
| EventCommand : Event | class, command events, synthesized actions like EditCommand.Cut, EditCommand.Copy, etc. | ||
| EventControl : Event | class, control events: CHANGED, CHANGING, UICHANGED | ||
| KEY | enum, standard keyboard codes. | ||
| commands | Command | class, UI command. Has name, description, icon fields. | |
| EditCommand | static class, standard commands, members: Cut, Copy, Undo, Redo, etc. Command instances. | ||
| FileCommand | static class, standard commands, members: New, Open, Save, SaveAs, etc. Command instances. | ||
| frame | Frame : Window | class, main window of application. Has menu, view, status, toolbarBand fields. | |
| dialog | Dialog : Window | class, dialog window parametrized by HTML text. | |
| tooltip | TooltipWindow : Window | class, tooltip window implementation. | |
| menu | MenuItem : Widget, ITooltip | class, Command menu item. | |
| Menu : MenuItem | class, collection of MenuItem(s). Has Menu.Popup : Window implementation inside. | ||
| MenuBar : Widgets | |||
| definitions | IInline, IBlock | interfaces, used by html engine to replace <input> elements | |
| IValue | interface, value getter setter, used in Dialog implementation. | ||
| ITooltip | interface, tooltipText plain or HTML text source. Any widget must implement this in order to have tooltips | ||
| IProperties | interface, controls meta info, used by HTML engine and interactive UI builders. | ||
| IPropertiesEnum | interface, controls meta info, used by interactive UI builders. | ||
| IParameters | interface, controls meta info, collection of items of collection alike controls (e.g. ListBox), used by HTML engine and interactive UI builders. | ||
| harmonia.ui.containers. | splitter | Splitter : Widgets | class, container of two elements with splitter between them. |
| tabs | Tabs : Widgets | class, container, stack of widgets-tabs. | |
| toolbar(70%) | Toolbar : Widgets | class, toolbar (*) | |
| ToolbarBand : Widgets | class, container for toolbars and menubars (*) | ||
| status(30%) | Statusbar : Widgets | class, statusbar (*) | |
| harmonia.ui.exchange. | clipboard | Clipboard | static class, system clipboard wrapper. |
| harmonia.ui.controls. | alist | AList | abstract class, root of all list alike controls. |
| listbox |
ListBoxT(VALUE)
: AList, IProperties, IParameters |
template, implementation of list box parametrized by VALUE - type of list item value. | |
| ListBox | Is just an alias of ListBoxT(uint) | ||
|
class ComboBoxT(VALUE)
: Widgets, IValue, IInline, IProperties, IParameters |
template, implementation of drop down list box with optional editor field (LineEditor) | ||
| ComboBox | Is just an alias of ComboBoxT(uint) | ||
| scrollbar | ScrollBar : Widget, IValue | class, Scrollbar implementation | |
| buttons |
Button
: Widget, IInline, IProperties, ITooltip |
class, universal Button which could be a command button, radio, check or just text button. | |
| editbox | EditBox : Widget, IValue, IInline, IProperties |
class, single line edit box. Has LineEditor bahavior. | |
| behaviors | LineEditor | class, pluggable (into any widget) single line editor. | |
| tree (70%) | TreeT(VALUE) : AList | template, tree view (*) | |
| grid (0%) | GridT(MODEL) : Scrollable!(Widgets) | template, grid view (*) | |
| text (50%) | TextArea : Scrollable!(Widgets) | class, rich text editor, a.k.a. styled text editor (*) | |
| html package | |||
| harmonia.html. | html | various HTML definitions and types. | |
| document | Doc | class, "compiled HTML document", has single member: ushort[] data. | |
| IDocHost | interface, HTML document viewer interface | ||
| measure, parser, render, scanner, style, tableengine |
html internals. | ||
| view | HtmlPanel : Widgets, IDocHost | class, simple non-scrollable HTML panel-container | |
| HtmlView : Scrollable!(HtmlPanel) | class, scrollable HTML document viewer / container. | ||
| io package | |||
| harmonia.io. | mmfile | MmFile | class, redesigned phobos.MMFile without exceptions. |
| imageio | DecodeImage, EncodeImage | two functions, bridge to PNG and JPEG libraries bundled into imageio.lib (C code). | |
| tool package | |||
| harmonia.tool. | string | string, and other string primitives |
alias wchar[] string, all strings in Harmonia are UTF16. Collection of string primitives mimics std.string but for wchars. |
| Tokenizer | tokenizer class, command line and the like parsers. | ||
| dictionary | Dictionary(KEY, VALUE) | template, uint[KEY] and VALUE[] bundle. | |
| types | various auxiliary types and primitives. | ||
| native package, platform dependent code, only this needs to be ported. | |||
| harmonia.ui.native | win32application | main message pump loop, WinMain, etc. | |
| win32window | HWND wrapper. | ||
| win32graphics | HDC and HFONT wrappers. | ||
| win32exchange | Clipboard wrapper. | ||
(*) items marked by red color are under construction.