Difference between revisions of "LavishGUI 2"

From Lavish Software Wiki
Jump to navigation Jump to search
Line 30: Line 30:
 
* [[LGUI2:Fonts|Fonts]]
 
* [[LGUI2:Fonts|Fonts]]
 
* [[LGUI2:Event Handlers|Event Handlers]]
 
* [[LGUI2:Event Handlers|Event Handlers]]
 +
* [[LGUI2:Hooks|Hooks]]
 
* [[LGUI2:Input Bindings|Input Bindings]]
 
* [[LGUI2:Input Bindings|Input Bindings]]
 
* [[LGUI2:Skins|Skins]]
 
* [[LGUI2:Skins|Skins]]

Revision as of 19:41, 4 June 2018

LavishGUI 2 (LGUI2) is a work-in-progress GUI system for Inner Space (build 6269 or later) 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.

Topics

We're filling in the documentation and some features (notably the analogs to LavishGUI Templates and Skins) are not yet implemented, so please excuse the mess in the meantime.

Types of Elements