Difference between revisions of "LavishGUI 2"
(→Topics) |
|||
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.
- Layout Engine
- Elements
- Brushes
- Fonts
- Event Handlers
- Hooks
- Input Bindings
- Skins
- Styles
- Templates
- Using LavishGUI 2 from LavishScript
- Layers