Difference between revisions of "LavishGUI 2"

From Lavish Software Wiki
Jump to navigation Jump to search
(5 intermediate revisions by the same user not shown)
Line 23: Line 23:
 
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).
+
LavishGUI 2 includes a new [[LGUI2:Composition|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 ==
 
== Topics ==
We're filling in the documentation and some features are not yet implemented, so please excuse the mess in the meantime.
+
{{LGUI2:Topics}}
 
 
* [[LGUI2:Layout Engine|Layout Engine]]
 
* [[LGUI2:Elements|Elements]]
 
* [[LGUI2:Brushes|Brushes]]
 
** [[LGUI2:Pixel Shaders|Pixel Shaders]]
 
* [[LGUI2:Fonts|Fonts]]
 
* [[LGUI2:Event Handlers|Event Handlers]]
 
* [[LGUI2:Hooks|Hooks]]
 
* [[LGUI2:Input Bindings|Input Bindings]]
 
* [[LGUI2:Skins|Skins]]
 
* [[LGUI2:Styles|Styles]]
 
* [[LGUI2:Templates|Templates]]
 
* [[LGUI2:LavishScript|Using LavishGUI 2 from LavishScript]]
 
* [[LGUI2:Layers|Layers]]
 
  
 
== Types of Elements ==
 
== Types of Elements ==
 
{{LGUI2:ElementTypes}}
 
{{LGUI2:ElementTypes}}
 +
{{LGUI2:LS1:ObjectTypes}}
  
 
[[Category:LavishGUI 2|LavishGUI 2]]
 
[[Category:LavishGUI 2|LavishGUI 2]]

Revision as of 23:38, 15 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 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