LavishGUI 2

From Lavish Software Wiki
Jump to navigation Jump to search

LavishGUI 2 (LGUI2) is a GUI system for Inner Space which supports DirectX and OpenGL renderers. LavishGUI 2 effectively replaces LavishGUI, although both systems will be active in Inner Space.

LavishGUI 2 interfaces are designed in JSON format, and are scriptable with LavishScript.

Here is a very simple (and completely valid) "Hello World!" example for LavishGUI 2
{  
      "type":"textblock",
      "text":"Hello World!"
}

LavishGUI 2 also implements an input bindings system which includes support for axis (thumbsticks, triggers, etc) and directional pad (D-pad) controls. Input bindings are also designed in JSON format.

Here is an example Input Bindings list that can be loaded into LavishGUI 2
[
	{
		"name":"I did it!",
		"controls":"VK_LBUTTON",
		"modifiers":"alt",
		"eventHandler":["method","MyBindingController","IDidIt"]
	}
]

The above example will execute the LavishScript method MyBindingController:IDidIt when pressing or releasing Alt+Mouse1. Event Handlers may also opt to directly embed LavishScript code (as done with LavishGUI), but we recommend providing a controller object as best practice.

LavishGUI 2 includes a new Composition system with fairly standard Box Model mechanics. LavishGUI 2 also uses Unicode UTF-16 encoding across the board for international language support -- additionally enabling us to eliminate the use of custom images in favor of Unicode glyphs that have been standardized for user interfaces (such as ☰ for a drop-down menu).

Topics

LavishGUI 2 Topics

Types of Elements

LavishGUI 2 Element Types

LavishGUI 2 LavishScript Object Types

Core API (see Using LavishGUI 2 from LavishScript)
lgui2 - lgui2animateargs - lgui2animationtype - lgui2elementref - lgui2eventargs - lgui2eventhandler - lgui2elementtype - lgui2itemviewgeneratorargs - lgui2inputbinding - lgui2layer - lgui2skin - lgui2trigger
Enums
elgui2animationframestate - elgui2dpad - elgui2edge - elgui2fontflags - elgui2horizontalalignment - elgui2imageorientation - elgui2progresstext - elgui2scrollbar - elgui2sizetocontent - elgui2verticalignment - elgui2visibility
Element Components
lgui2animation - lgui2brush - lgui2fontstyle - lgui2margins - lgui2item - lgui2property - lgui2radialitem - lgui2radialgaugeneedle
Element Base Types
lgui2element - lgui2bordered - lgui2contentbase - lgui2headeredcontentbase - lgui2itemlist
Elements