Difference between revisions of "LavishGUI 2"

From Lavish Software Wiki
Jump to navigation Jump to search
Line 22: Line 22:
  
 
The above example will execute the [[LavishScript]] method MyBindingController:IDidIt when pressing or releasing Alt+Mouse1. [[LGUI2:Event Handlers|Event Handlers]] may also opt to directly embed LavishScript code (as done with [[LavishGUI]]), but we recommend providing a controller object as best practice.
 
The above example will execute the [[LavishScript]] method MyBindingController:IDidIt when pressing or releasing Alt+Mouse1. [[LGUI2:Event Handlers|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 [[LGUI2:Layout Engine|Layout Engine]] 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 ==
 
== Topics ==
 
We're filling in the documentation and some features are not yet implemented, so please excuse the mess in the meantime.
 
We're filling in the documentation and some features are not yet implemented, so please excuse the mess in the meantime.
  
 +
* [[LGUI2:Layout Engine|Layout Engine]]
 
* [[LGUI2:Elements|Elements]]
 
* [[LGUI2:Elements|Elements]]
 
* [[LGUI2:Brushes|Brushes]]
 
* [[LGUI2:Brushes|Brushes]]

Revision as of 21:31, 4 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.

LavishGUI 2 includes a new Layout Engine 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

We're filling in the documentation and some features are not yet implemented, so please excuse the mess in the meantime.

Types of Elements