Difference between revisions of "LGUI2:LS1:lgui2element"

From Lavish Software Wiki
Jump to navigation Jump to search
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{ObjectType-Vitals|lgui2element|[[LavishGUI 2]]|none|lgui2element|none|no|ILGUI2Element *}}
 
{{ObjectType-Vitals|lgui2element|[[LavishGUI 2]]|none|lgui2element|none|no|ILGUI2Element *}}
 
lgui2element provides LavishScript access to [[LGUI2:Elements|Elements]]
 
lgui2element provides LavishScript access to [[LGUI2:Elements|Elements]]
 +
 +
In most cases, Members listed as returning a lgui2element actually return the Object Type that is specific to the Element Type (e.g. the '''ElementType''' Member)
 +
  
 
== Members ==
 
== Members ==
 +
* [[ObjectType:uint|uint]] '''ID''': The unique ID number of this element
 
* [[ObjectType:unistring|unistring]] '''Name''': The specified Name (if any) of this element
 
* [[ObjectType:unistring|unistring]] '''Name''': The specified Name (if any) of this element
* [[ObjectType:jsonobject|jsonobject]] '''Metadata''': The JSON object containing any Metadata associated with this element
+
* [[ObjectType:jsonobject|jsonobject]] '''Metadata''': The JSON object (if any) containing any Metadata associated with this element
* [[LGUI2:LS1:lgui2element|lgui2element]] '''Locate['''elementName''','''elementType''','''flags''']''':  
+
* [[ObjectType:jsonobject|jsonobject]] '''Metadata[TRUE]''': The JSON object (automatically created if needed) containing any Metadata associated with this element
 +
* [[LGUI2:LS1:lgui2element|lgui2element]] '''Locate['''elementName''','''elementType''','''flags''']''': [[LGUI2:Locate|Locates]] an element
 
* [[LGUI2:LS1:lgui2elementtype|lgui2elementtype]] '''ElementType''': The type of Element (e.g. "window")
 
* [[LGUI2:LS1:lgui2elementtype|lgui2elementtype]] '''ElementType''': The type of Element (e.g. "window")
 
* [[ObjectType:float|float]] '''X''': X offset for this element
 
* [[ObjectType:float|float]] '''X''': X offset for this element
 
* [[ObjectType:float|float]] '''Y''': Y offset for this element
 
* [[ObjectType:float|float]] '''Y''': Y offset for this element
 +
* [[ObjectType:float|float]] '''XFactor''': X factor for this element
 +
* [[ObjectType:float|float]] '''YFactor''': Y factor for this element
 
* [[ObjectType:float|float]] '''Width''': Width for this element (does not include Margins)
 
* [[ObjectType:float|float]] '''Width''': Width for this element (does not include Margins)
 
* [[ObjectType:float|float]] '''Height''': Height for this element (does not include Margins)
 
* [[ObjectType:float|float]] '''Height''': Height for this element (does not include Margins)
 +
* [[ObjectType:float|float]] '''WidthFactor''': Width factor for this element (does not include Margins)
 +
* [[ObjectType:float|float]] '''HeightFactor''': Height factor for this element (does not include Margins)
 
* [[ObjectType:float|float]] '''ActualX''': Actual X position for this element
 
* [[ObjectType:float|float]] '''ActualX''': Actual X position for this element
 
* [[ObjectType:float|float]] '''ActualY''': Actual Y position for this element
 
* [[ObjectType:float|float]] '''ActualY''': Actual Y position for this element
Line 18: Line 27:
 
* [[LGUI2:LS1:lgui2margins|lgui2margins]] '''Padding''': Padding surrounding this element's contents (inside its bounds, and border if applicable)
 
* [[LGUI2:LS1:lgui2margins|lgui2margins]] '''Padding''': Padding surrounding this element's contents (inside its bounds, and border if applicable)
 
* [[ObjectType:bool|bool]] '''AcceptsKeyboardFocus''': TRUE if the element accepts keyboard focus, allowing non-mouse input events to route to this element
 
* [[ObjectType:bool|bool]] '''AcceptsKeyboardFocus''': TRUE if the element accepts keyboard focus, allowing non-mouse input events to route to this element
 +
* [[ObjectType:bool|bool]] '''AcceptsMouseFocus''': TRUE if the element accepts mouse focus
 
* [[LGUI2:LS1:lgui2layer|lgui2layer]] '''Layer''': [[LGUI2:Layer|Layer]] containing the element
 
* [[LGUI2:LS1:lgui2layer|lgui2layer]] '''Layer''': [[LGUI2:Layer|Layer]] containing the element
 
* [[LGUI2:LS1:lgui2element|lgui2element]] '''ContextMenu''': The [[LGUI2:contextmenu|contextmenu]] (if any) for this element
 
* [[LGUI2:LS1:lgui2element|lgui2element]] '''ContextMenu''': The [[LGUI2:contextmenu|contextmenu]] (if any) for this element
 
* [[LGUI2:LS1:elgui2horizontalalignment|elgui2horizontalalignment]] '''HorizontalAlignment''':  
 
* [[LGUI2:LS1:elgui2horizontalalignment|elgui2horizontalalignment]] '''HorizontalAlignment''':  
 
* [[LGUI2:LS1:elgui2verticalalignment|elgui2verticalalignment]] '''VerticalAlignment''':  
 
* [[LGUI2:LS1:elgui2verticalalignment|elgui2verticalalignment]] '''VerticalAlignment''':  
 +
* [[LGUI2:LS1:lgui2element|lgui2element]] '''Parent''': The visual parent, if any, of this element
 +
* [[LGUI2:LS1:lgui2element|lgui2element]] '''FirstChild''': The first visual child, if any, of this element
 +
* [[LGUI2:LS1:lgui2element|lgui2element]] '''LastChild''': The last visual child, if any, of this element
 +
* [[LGUI2:LS1:lgui2element|lgui2element]] '''PreviousSibling''': The previous visual sibling, if any, from this element
 +
* [[LGUI2:LS1:lgui2element|lgui2element]] '''NextSibling''': The next visual sibling, if any, from this element
 +
* [[ObjectType:int|int]] '''Color''': The foreground color value for this element (for convenience, try using '''Color.Hex''')
 +
* [[ObjectType:float|float]] '''Opacity''': Opacity value for the element (usually between 0.0 and 1.0, with 1.0 being 100% opaque and 0.0 being fully transparent)
 +
* [[LGUI2:LS1:lgui2fontstyle|lgui2fontstyle]] '''Font''': The [[LGUI2:Font|Font]] used for this element
 +
* [[ObjectType:bool|bool]] '''IsKeyboardFocused''': TRUE if the element is Keyboard Focused (relating to '''AcceptsKeyboardFocus''')
 +
* [[ObjectType:bool|bool]] '''IsMouseFocused''': TRUE if the element is the current Mouse Focus element for the '''Layer'''
 +
* [[ObjectType:bool|bool]] '''IsMouseOver''': TRUE if the element is the current MouseOver element for the '''Layer'''
 +
* [[ObjectType:bool|bool]] '''IsMouseCaptured''': TRUE if the element has captured mouse input, allowing mouse input events to route to this element regardless of MouseOver state
 +
* [[ObjectType:jsonvalue|jsonvalue]] '''Style['''name''']''': Retrieves a [[LGUI2:Style|Style]] by name
 +
* [[LGUI2:LS1:lgui2animation|lgui2animation]] '''Animation['''name''']''': Retrieves a loaded [[LGUI2:Animation|Animation]] by name
 +
* [[LGUI2:LS1:lgui2trigger|lgui2trigger]] '''Trigger['''name''']''': Retrieves a [[LGUI2:Trigger|Trigger]] by name
 +
* [[ObjectType:float|float]] '''Strata''': A value essentially indicating the visual "priority" of the element, which affects the order of placement and rendering of the element within its parent. In most cases, this affects element Z-Order. 0.0 is considered the normal "bottom" and 1.0 is considered the normal "top", but the range is not specifically limited.
 +
* [[ObjectType:jsonobject|jsonobject]] '''StorePlacement''': Retrieves a [[LGUI2:Style|Style]] generated with the element's current placement information, including sizing and positioning
 +
* [[LGUI2:LS1:elgui2visibility|elgui2visibility]] '''Visibility''':
  
 
== Methods ==
 
== Methods ==
 
* '''SetName['''value''']''': Assigns a new value to the Name
 
* '''SetName['''value''']''': Assigns a new value to the Name
 +
* '''Destroy''': A shortcut for :Clear followed by :Detach
 +
* '''Clear''': Clears/frees element resources, and detaches all children from this element
 
* '''ClearChildren''': Detaches all children from this element
 
* '''ClearChildren''': Detaches all children from this element
 
* '''Detach''': Detaches this element from its parent (typically for "unloading")
 
* '''Detach''': Detaches this element from its parent (typically for "unloading")
Line 38: Line 68:
 
* '''AddHook['''eventName''','''json''']''':  
 
* '''AddHook['''eventName''','''json''']''':  
 
* '''SetContextMenu['''json''']''': Sets a new ContextMenu
 
* '''SetContextMenu['''json''']''': Sets a new ContextMenu
 +
* '''Focus''': Attempts to set Focus to this element (relating to '''AcceptsKeyboardFocus''')
 +
* '''CaptureMouse''': Attempts to Capture mouse input, allowing mouse input events to route to this element regardless of MouseOver state
 +
* '''ReleaseMouse''': Releases the Captured mouse input, restoring the previous state
 +
* '''SetSize['''#'''','''#'''']: Adjusts the requested size of the element (does not include Margins) to the provided Width and Height
 +
* '''SetSizeFactor['''#'''','''#'''']: Adjusts the requested size factor of the element (does not include Margins) to the provided Width and Height
 +
* '''SetLocation['''#'''','''#'''']: Adjusts the requested location of the element to the provided X and Y
 +
* '''SetLocationFactor['''#'''','''#'''']: Adjusts the requested location factor of the element to the provided X and Y
 +
* '''SetAcceptsKeyboardFocus['''bool''']''': Sets whether the element accepts keyboard focus, allowing non-mouse input events to route to this element
 +
* '''SetAcceptsMouseFocus['''bool''']''': Sets whether the element accepts mouse focus
 +
* '''ApplyStyle['''name''']''': Applies a [[LGUI2:Style|Style]] by name
 +
* '''ApplyStyle['''json''']''': Applies a [[LGUI2:Style|Style]] defined by the provided json
 +
* '''SetStyle['''name''','''json''']''': Adds a [[LGUI2:Style|Style]] with the provided name to the element
 +
* '''RemoveStyle['''name''']''': Removes a [[LGUI2:Style|Style]] by name
 +
* '''Animate['''json''']''': Applies a new [[LGUI2:Animation|Animation]] defined by the provided json
 +
* '''SetOpacity['''#''']''': Sets the Opacity value for the element, with 1.0 being opaque and 0.0 being transparent
 +
* '''SetStrata['''#''']''': Sets the Strata value for the element
 +
* '''FireEventHandler['''name''']''': Fires a specified Event Handler for the element, with no parameters
 +
* '''FireEventHandler['''name''','''json''']''': Fires a specified Event Handler for the element, passing the given JSON Object
 +
* '''FireEventHandler['''name''','''json''','''source element id''']''': Fires a specified Event Handler for the element, passing the given JSON Object, as from a specified source element
 +
* '''BubbleToTop''': Bubbles the element to the top of Z-order. This element will be moved over the top of other elements where Strata is less than or equal to its own, and the process will repeat with the element's visual ancestors
 +
* '''SetVisibility['''[[LGUI2:LS1:elgui2visibility|elgui2visibility]]''']''':
 +
* '''AddTrigger['''json''']''': Adds a [[LGUI2:Trigger|Trigger]] defined by the provided json
 +
 +
== Remarks ==
 +
* To unload an element, use '''lgui2element:Destroy''', such as <tt>LGUI2.Element[myElement]:Destroy</tt>
 +
  
 
{{LGUI2:ObjectType}}
 
{{LGUI2:ObjectType}}

Latest revision as of 14:22, 1 September 2019

Object Type Vitals
lgui2element
Defined By LavishGUI 2
Inherits none
Reduces To lgui2element
Variable Object Type none
Uses Sub-Types no
C/C++ Type ILGUI2Element *

lgui2element provides LavishScript access to Elements

In most cases, Members listed as returning a lgui2element actually return the Object Type that is specific to the Element Type (e.g. the ElementType Member)


Members

  • uint ID: The unique ID number of this element
  • unistring Name: The specified Name (if any) of this element
  • jsonobject Metadata: The JSON object (if any) containing any Metadata associated with this element
  • jsonobject Metadata[TRUE]: The JSON object (automatically created if needed) containing any Metadata associated with this element
  • lgui2element Locate[elementName,elementType,flags]: Locates an element
  • lgui2elementtype ElementType: The type of Element (e.g. "window")
  • float X: X offset for this element
  • float Y: Y offset for this element
  • float XFactor: X factor for this element
  • float YFactor: Y factor for this element
  • float Width: Width for this element (does not include Margins)
  • float Height: Height for this element (does not include Margins)
  • float WidthFactor: Width factor for this element (does not include Margins)
  • float HeightFactor: Height factor for this element (does not include Margins)
  • float ActualX: Actual X position for this element
  • float ActualY: Actual Y position for this element
  • float ActualWidth: Actual width of this element (does not include Margins)
  • float ActualHeight: Actual height of this element (does not include Margins)
  • lgui2margins Margins: Margins surrounding this element (outside its bounds)
  • lgui2margins Padding: Padding surrounding this element's contents (inside its bounds, and border if applicable)
  • bool AcceptsKeyboardFocus: TRUE if the element accepts keyboard focus, allowing non-mouse input events to route to this element
  • bool AcceptsMouseFocus: TRUE if the element accepts mouse focus
  • lgui2layer Layer: Layer containing the element
  • lgui2element ContextMenu: The contextmenu (if any) for this element
  • elgui2horizontalalignment HorizontalAlignment:
  • elgui2verticalalignment VerticalAlignment:
  • lgui2element Parent: The visual parent, if any, of this element
  • lgui2element FirstChild: The first visual child, if any, of this element
  • lgui2element LastChild: The last visual child, if any, of this element
  • lgui2element PreviousSibling: The previous visual sibling, if any, from this element
  • lgui2element NextSibling: The next visual sibling, if any, from this element
  • int Color: The foreground color value for this element (for convenience, try using Color.Hex)
  • float Opacity: Opacity value for the element (usually between 0.0 and 1.0, with 1.0 being 100% opaque and 0.0 being fully transparent)
  • lgui2fontstyle Font: The Font used for this element
  • bool IsKeyboardFocused: TRUE if the element is Keyboard Focused (relating to AcceptsKeyboardFocus)
  • bool IsMouseFocused: TRUE if the element is the current Mouse Focus element for the Layer
  • bool IsMouseOver: TRUE if the element is the current MouseOver element for the Layer
  • bool IsMouseCaptured: TRUE if the element has captured mouse input, allowing mouse input events to route to this element regardless of MouseOver state
  • jsonvalue Style[name]: Retrieves a Style by name
  • lgui2animation Animation[name]: Retrieves a loaded Animation by name
  • lgui2trigger Trigger[name]: Retrieves a Trigger by name
  • float Strata: A value essentially indicating the visual "priority" of the element, which affects the order of placement and rendering of the element within its parent. In most cases, this affects element Z-Order. 0.0 is considered the normal "bottom" and 1.0 is considered the normal "top", but the range is not specifically limited.
  • jsonobject StorePlacement: Retrieves a Style generated with the element's current placement information, including sizing and positioning
  • elgui2visibility Visibility:

Methods

  • SetName[value]: Assigns a new value to the Name
  • Destroy: A shortcut for :Clear followed by :Detach
  • Clear: Clears/frees element resources, and detaches all children from this element
  • ClearChildren: Detaches all children from this element
  • Detach: Detaches this element from its parent (typically for "unloading")
  • SetMargins[#]: Sets all of this element's margin values to this #
  • SetMargins[#,#]: Sets Left/Right and Top/Bottom margin values to these #'s (in that order)
  • SetMargins[#,#,#,#]: Sets Left, Top, Right, Bottom margin values to these #'s (in that order)
  • SetPadding[#]: Sets all of this element's padding values to this #
  • SetPadding[#,#]: Sets Left/Right and Top/Bottom padding values to these #'s (in that order)
  • SetPadding[#,#,#,#]: Sets Left, Top, Right, Bottom padding values to these #'s (in that order)
  • SetHorizontalAlignment[elgui2horizontalalignment]:
  • SetVerticalAlignment[elgui2verticalalignment]:
  • SetEventHandler[eventName,json]:
  • AddHook[eventName,json]:
  • SetContextMenu[json]: Sets a new ContextMenu
  • Focus: Attempts to set Focus to this element (relating to AcceptsKeyboardFocus)
  • CaptureMouse: Attempts to Capture mouse input, allowing mouse input events to route to this element regardless of MouseOver state
  • ReleaseMouse: Releases the Captured mouse input, restoring the previous state
  • SetSize[#',#']: Adjusts the requested size of the element (does not include Margins) to the provided Width and Height
  • SetSizeFactor[#',#']: Adjusts the requested size factor of the element (does not include Margins) to the provided Width and Height
  • SetLocation[#',#']: Adjusts the requested location of the element to the provided X and Y
  • SetLocationFactor[#',#']: Adjusts the requested location factor of the element to the provided X and Y
  • SetAcceptsKeyboardFocus[bool]: Sets whether the element accepts keyboard focus, allowing non-mouse input events to route to this element
  • SetAcceptsMouseFocus[bool]: Sets whether the element accepts mouse focus
  • ApplyStyle[name]: Applies a Style by name
  • ApplyStyle[json]: Applies a Style defined by the provided json
  • SetStyle[name,json]: Adds a Style with the provided name to the element
  • RemoveStyle[name]: Removes a Style by name
  • Animate[json]: Applies a new Animation defined by the provided json
  • SetOpacity[#]: Sets the Opacity value for the element, with 1.0 being opaque and 0.0 being transparent
  • SetStrata[#]: Sets the Strata value for the element
  • FireEventHandler[name]: Fires a specified Event Handler for the element, with no parameters
  • FireEventHandler[name,json]: Fires a specified Event Handler for the element, passing the given JSON Object
  • FireEventHandler[name,json,source element id]: Fires a specified Event Handler for the element, passing the given JSON Object, as from a specified source element
  • BubbleToTop: Bubbles the element to the top of Z-order. This element will be moved over the top of other elements where Strata is less than or equal to its own, and the process will repeat with the element's visual ancestors
  • SetVisibility[elgui2visibility]:
  • AddTrigger[json]: Adds a Trigger defined by the provided json

Remarks

  • To unload an element, use lgui2element:Destroy, such as LGUI2.Element[myElement]:Destroy


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