Difference between revisions of "LavishGUI 2"
Line 43: | Line 43: | ||
== Types of Elements == | == Types of Elements == | ||
− | + | {{LGUI2:ElementTypes}} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
[[Category:LavishGUI 2|LavishGUI 2]] | [[Category:LavishGUI 2|LavishGUI 2]] |
Revision as of 14:19, 5 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
Types of Elements
LavishGUI 2 Element Types
- Base Element Types: Element - Content Container - Headered Content Container - Item List
- Layout: anchor - border - dockpanel - dragger - expander - hud - map - page - pagecontrol -panel - popup - radialpanel - screen - scrollviewer - stackpanel - tab - tabcontrol - table - treepanel - window - wrappanel
- Display: canvas - imagebox - progressbar - radialgauge - textblock
- Interaction: button - checkbox - combobox - contextmenu - dragin - filepicker - itemview - knob - listbox - mapitemview - objectview - propertyview - scrollbar - sensitivebutton - slider - textbox