Difference between revisions of "LavishGUI 2"

From Lavish Software Wiki
Jump to navigation Jump to search
Line 37: Line 37:
 
* [[LGUI2:Templates|Templates]]
 
* [[LGUI2:Templates|Templates]]
 
* [[LGUI2:LavishScript|Using LavishGUI 2 from LavishScript]]
 
* [[LGUI2:LavishScript|Using LavishGUI 2 from LavishScript]]
 +
* [[LGUI2:Layers|Layers]]
  
 
== Types of Elements ==
 
== Types of Elements ==

Revision as of 05:14, 3 July 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 are not yet implemented, so please excuse the mess in the meantime.

Types of Elements