UIComponents
Script objects called uicomponents may be obtained from the user-interface, from code functions such as battle_manager:ui_component or script functions like find_uicomponent. They represent visible components within the UI hierarchy. 
| Loaded in Campaign | 
										 | 
								
| Loaded in Battle | 
										 | 
								
| Loaded in Frontend | 
										 | 
								
Once a handle to a uicomponent is obtained, functions may be called on it to query or modify its state in the following form.
Example - Specification:
					<object_name>:<function_name>(<args>)
				Example - Creation and Usage:
					local uic_root = core:get_ui_root()
					local x, y = uic_root:Dimensions()        -- calling a function on the object once created
					out("Screen resolution is [" .. x .. ", " .. y .. "]")
				
					Screen resolution is [1600, 900]
				- 
							
uicomponent:IsValid() - 
							Returns true if this UIComponent handle is valid (internal component ptr has NOT been deleted)
							
Returns:
is_validboolean
 
- 
							
uicomponent:Id() - 
							Returns the string name of this uicomponent.
							
Returns:
namestring
 
- 
							
uicomponent:CallbackId() - 
							Returns the callback id of this uicomponent.
							
Returns:
callback idstring
 
- 
							
uicomponent:Address() - 
							Returns the address of this uicomponent, which is used for certain other functions on this interface such as 
uicomponent:Adopt.Returns:
addressuicomponent address
 
- 
							
uicomponent:IsDragged() - 
							Returns whether this uicomponent is currently being dragged around the screen by the player left-clicking and dragging.
							
Returns:
is draggedboolean
 
- 
							
uicomponent:IsMouseOverChildren() - 
							Returns whether or not the mouse cursor is currently over this uicomponent or any of its children.
							
Returns:
cursor over childrenboolean
 
- 
							
uicomponent:SetContextObject(ccoTakes a cco to set on the component) - 
							Sets a context object on a component, to initialise any ContextCallbacks to show information for the supplied cco
							
Parameters:
1
ccoTakes a cco to set on the component
Returns:
nil
Example:
uic_example:SetContextObject(cco("CcoBattleUnit", "1001"));
 
- 
							
uicomponent:GetContextObjectId(context type idstring) - 
							Gets the context object id for the supplied type that is stored on the component, to allow you to perform queries/commands on the context with (get_context_value/call_context_command).
							
Parameters:
1
context type id
Returns:
nil
Example:
local object_id = UIComponent("building_slot").GetContextObjectId("CcoCampaignBuildingSlot")
local building_slot_tooltip = effect.get_context_value("CcoCampaignBuildingSlot", object_id, "Tooltip")
 
- 
							
uicomponent:GetContextObject(context type idstring) - 
							Gets the context object (cco lua type) for the supplied type that is stored on the component
							
Parameters:
1
context type id
Returns:
objectcontext object (cco)
Example:
local cco_building_slot = uic_example:GetContextObject("CcoCampaignBuildingSlot");
 
- 
							
uicomponent:Layout() - 
							Calls the layout function for the uicomponent, forcing it to refresh its display.
							
Returns:
nil
 
- 
							
uicomponent:StallLayouts(should stallboolean) - 
							Forces the component to call its layout function.
							
Parameters:
1
should stall
Returns:
nil
 
- 
							
uicomponent:CurrentState() - 
							Returns the name of the current state of the uicomponent.
							
Returns:
state namestring
 
- 
							
uicomponent:SetState(state namestring) - 
							Sets the state of the uicomponent to the specified state name.
							
Parameters:
1
state name
Returns:
State was successfully setboolean
 
- 
							
uicomponent:NumStates() - 
							Returns the number of states this uicomponent contains.
							
Returns:
number of statesnumber
 
- 
							
uicomponent:GetStateByIndex([state indexnumber]) - 
							Returns the name of the state at the specified index.
							
Parameters:
1
optional, default value=0
state index
Returns:
state namestring
 
- 
							
uicomponent:Width() - 
							Returns the current width of the uicomponent in pixels.
							
Returns:
widthnumber
 
- 
							
uicomponent:Height() - 
							Returns the current height of the uicomponent in pixels.
							
Returns:
heightnumber
 
- 
							
uicomponent:Dimensions() - 
							Returns the width and height of the uicomponent in pixels.
							
Returns:
 
- 
							
uicomponent:Bounds() - 
							Returns the maximum width and height of this uicomponent, including any of its children.
							
Returns:
 
- 
							
uicomponent:Position() - 
							Returns the position of the top-left corner of the uicomponent, from the top-left corner of the game window/screen.
							
Returns:
 
- 
							
uicomponent:RelativePosition() - 
							Returns the relative position of the uicomponent
							
Returns:
 
- 
							
uicomponent:MoveTo(xnumber,ynumber) - 
							Sets the uicomponent to a new screen position, measured from the top-left corner of the game window/screen.
							
Parameters:
1
X co-ordinate in pixels.
2
Y co-ordinate in pixels.
Returns:
nil
 
- 
							
uicomponent:SetMoveable(is moveableboolean) - 
							Sets this uicomponent to be moveable or not.
							
Parameters:
1
is moveable
Returns:
nil
 
- 
							
uicomponent:IsMoveable() - 
							Returns whether this uicomponent is moveable or not.
							
Returns:
is moveableboolean
 
- 
							
uicomponent:Resize(widthnumber,heightnumber, [resize childrenboolean]) - 
							Resizes the uicomponent. The uicomponent may be need to set to be resizeable before calling this - this can be done with 
uicomponent:SetCanResizeHeightanduicomponent:SetCanResizeWidth.Parameters:
1
New width of uicomponent in pixels.
2
New height of uicomponent in pixels.
3
optional, default value=true
Also resize children.
Returns:
nil
 
- 
							
uicomponent:SetCanResizeHeight([can resizeboolean]) - 
							Allows or disallows the height of this uicomponent to be changed by code or script.
							
Parameters:
1
optional, default value=true
can resize
Returns:
nil
 
- 
							
uicomponent:SetCanResizeWidth([can resizeboolean]) - 
							Allows or disallows the width of this uicomponent to be changed by code or script.
							
Parameters:
1
optional, default value=true
can resize
Returns:
nil
 
- 
							
uicomponent:ResizeTextResizingComponentToInitialSize(widthnumber,heightnumber) - 
							Many uicomponents are set to resize based on the text they are displaying. Despite this, it is sometimes desireable to resize these uicomponents (to set a different width for a text box that can grow, for example). However, any attempt by script to resize these uicomponents will be overriden by the text resizing behaviour.
This function provides a method of working around this, temporarily disabling the text-resizing behaviour so that the desired resize can be applied.Parameters:
1
Width in pixels.
2
Height in pixels.
Returns:
nil
 
- 
							
uicomponent:TextDimensions() - 
							Returns the dimensions of the text displayed on the uicomponent in its current state, if any.
							
Returns:
 
- 
							
uicomponent:TextDimensionsForText(textstring) - 
							Returns the dimensions of the some supplied text, were it to be displayed on the uicomponent in its current state.
							
Parameters:
1
text
Returns:
 
- 
							
uicomponent:WidthOfTextLine(text linestring) - 
							Returns the width of a text line on the current uicomponent.
							
Parameters:
1
text line
Returns:
width in pixelsnumber
 
- 
							
uicomponent:TextXOffset() - 
							Returns the text x offset values of the current state. This is the padding around the left and right side of any text displayed on the current state of the uicomponent. Offset values greater than 0 enforce a border around the edge of the text so that it does not run right up to the edge of the displayed component.
							
Returns:
 
- 
							
uicomponent:TextYOffset() - 
							Returns the text y offset values of the current state. This is the padding around the top and bottom of any text displayed on the current state of the uicomponent. Offset values greater than 0 enforce a border around the edge of the text so that it does not run right up to the edge of the displayed component.
							
Returns:
 
- 
							
uicomponent:SetTextXOffset(left offsetnumber,right offsetnumber) - 
							Sets the text x offset values of the current state. This is the padding around the left and right side of any text displayed on the current state of the uicomponent. Offset values greater than 0 enforce a border around the edge of the text so that it does not run right up to the edge of the displayed component.
							
Parameters:
1
left offset
2
right offset
Returns:
nil
 
- 
							
uicomponent:SetTextYOffset(top offsetnumber,bottom offsetnumber) - 
							Sets the text y offset values of the current state. This is the padding around the top and bottom of any text displayed on the current state of the uicomponent. Offset values greater than 0 enforce a border around the edge of the text so that it does not run right up to the edge of the displayed component.
							
Parameters:
1
top offset
2
bottom offset
Returns:
nil
 
- 
							
uicomponent:SetTextHAlign(horizontal text alignmentstring) - 
							Sets the horizontal text alignment setting of the current state to the supplied alignment. Valid string alignment values are 
"left","centre"and"right".Parameters:
1
horizontal text alignment
Returns:
nil
 
- 
							
uicomponent:GetTextHAlign() - 
							Returns the horizontal text alignment setting of the current state as a string. Valid alignment values are 
"left","centre"and"right".Returns:
horizontal text alignmentstring
 
- 
							
uicomponent:SetTextVAlign(vertical text alignmentstring) - 
							Sets the vertical text alignment setting of the current state to the supplied alignment. Valid string alignment values are 
"top","centre"and"bottom".Parameters:
1
vertical text alignment
Returns:
nil
 
- 
							
uicomponent:GetTextVAlign() - 
							Returns the vertical text alignment setting of the current state as a string. Valid alignment values are 
"top","centre"and"bottom".Returns:
vertical text alignmentstring
 
- 
							
uicomponent:SetSpacing(horizontal spacing in pxnumber,vertical spacing in pxnumber) - 
							Set the spacing of a component if it is a list.
							
Parameters:
1
horizontal spacing in px
2
vertical spacing in px
Returns:
nil
 
The uicomponent:DockingPoint and uicomponent:SetDockingPoint functions both express docking points as integer values. The mapping between these values and the docking points is given here.
| Docking Point | Number | 
DOCK_POINT_NONE | 0 | 
DOCK_POINT_TL | 1 | 
DOCK_POINT_TC | 2 | 
DOCK_POINT_TR | 3 | 
DOCK_POINT_CL | 4 | 
DOCK_POINT_C | 5 | 
DOCK_POINT_CR | 6 | 
DOCK_POINT_BL | 7 | 
DOCK_POINT_BC | 8 | 
DOCK_POINT_BR | 9 | 
- 
							
uicomponent:DockingPoint() - 
							Returns the docking point of this uicomponent. Valid returned values are given in the table at the top of this section.
							
Returns:
docking pointnumber
 
- 
							
uicomponent:SetDockingPoint(dock pointnumber) - 
							Sets the docking point of the uicomponent to the specified value. Valid values are given in the table at the top of this section.
							
Parameters:
1
dock point
Returns:
nil
 
- 
							
uicomponent:SetDockOffset(x offsetnumber,y offsetnumber) - 
							Sets a docking offset for this component, which offsets where the component is drawn from the docking point set.
							
Parameters:
1
X offset in pixels.
2
Y offset in pixels.
Returns:
nil
 
- 
							
uicomponent:GetDockOffset() - 
							Returns the docking offset set for this component, which offsets where the component is drawn from the docking point set.
							
Returns:
 
- 
							
uicomponent:Find(variableidentifier, [assert on failboolean]) - 
							Finds and returns a child of this uicomponent by string name or by numeric index. If a numeric index is supplied, the immediate child uicomponent corresponding to this number is returned. If a string name is supplied, a recursive search is made through all children/descendants of this uicomponent. The first that is found with a matching name is returned.
If the search target was not found thennilis returned. If it was found then it is returned as a component address, which must be cast to a uicomponent script object using theUIComponentfunction. Thefind_uicomponentfunction provided by the script libraries does this automatically, so it's recommended to use that function in place of this function.Parameters:
1
variable2
optional, default value=true
Assert if no matching uicomponent could be found.
Returns:
nil
Example - Find a descendent of uic_parent with the name child_a:
local uic_child_a = uic_parent:Find("child_a")
if uic_child_a then
uic_child_a = UIComponent(uic_child_a)
end
Example - Perform an operation on each immediate child of uic_parent:
for i = 0, uic_parent:ChildCount() - 1 do
local uic_child = UIComponent(uic_parent:Find(i))
-- do stuff
end
 
- 
							
uicomponent:SequentialFind(...identifiers) - 
							Finds and returns a child of this uicomponent by a series of string names and numeric indexes. The function will step through each argument, attempting to find the uicomponent specified, and using that as the parent from which to find the next. A numeric index argument finds an immediate child of the current search subject, whereas a string name initiates a recursive search through all children/descendants of this uicomponent.
The returned component pointer must be cast to be a usableuicomponentscript object using theUIComponentfunction before it can be used.Parameters:
1
...One or more search targets in a sequence. Each search target should be an index
numberorstringname.Returns:
addressof found component
 
- 
							
uicomponent:FindByScriptTag(script tag unique id that has been specified in the layoutstring) - 
							Finds a component that has been tagged in a layout with the ScriptTag callback using the value of the Context Function id as the unique id to match against. It is a more robust mechanism of searching that sequential find as it is independant from layout order so is less likely to break from layout changes.
The returned component pointer must be cast to be a usableuicomponentscript object using theUIComponentfunction before it can be used.Parameters:
1
script tag unique id that has been specified in the layout
Returns:
addressof found component
Example:
uic = UIComponent(root:FindByScriptTag("example_tag"))
 
- 
							
uicomponent:FindByGuid(guidstring) - 
							Finds a component via its guid (globally unique identifier). A 16 digit hex code that is guranteed to be unique across the game.
The returned component pointer must be cast to be a usableuicomponentscript object using theUIComponentfunction before it can be used.Parameters:
1
GUID that has been specified in the layout
Returns:
addressof found component
Example:
uic = UIComponent(root:FindByGuid("730A2C75-2C65-4337-BCB8189F0C65FAC2"))
 
- 
							
uicomponent:ChildCount() - 
							Returns the number of immediate children this uicomponent has. These children can be individually retrieved by using 
uicomponent:Findand supplying a numeric value.Returns:
number of childrennumber
 
- 
							
uicomponent:Parent() - 
							Returns a link to the parent of the uicomponent. This is provided as a component address that must be cast to be a usable 
uicomponentscript object using theUIComponentfunction.Returns:
addressparent address
Example:
uic_parent = UIComponent(uic_child:Parent())
 
- 
							
uicomponent:Adopt(addressuicomponent address, [insertion indexnumber]) - 
							Compels this uicomponent to adopt a supplied uicomponent, which will then become a child of this uicomponent. The supplied uicomponent is removed from its previous parent. The target uicomponent must be supplied by its address, which may be retrieved with 
uicomponent:Address.
An insertion index may optionally be supplied, which determines where in this uicomponent's list of children this new child will be inserted. This can determine the display order in certain circumstances. By default, the new child is added to the end of the list.Parameters:
1
addressuicomponent address
2
optional, default value=-1
insertion index
Returns:
nil
 
- 
							
uicomponent:Divorce(addresschild) - 
							Divorces the supplied child uicomponent from the this uicomponent. The child uicomponent should be supplied by its address, which may be retrieved with 
uicomponent:Address.
Once divorced, the child uicomponent is not destroyed but goes into an orphan list, from where it may later be adopted by another uicomponent. Orphaned uicomponents are not rendered.Parameters:
1
addresschild
Returns:
nil
 
- 
							
uicomponent:DivorceFromParent() - 
							DivorceFromParent finds the parent (if any) and calls Divorce on it.
Once divorced, the uicomponent is not destroyed but goes into an orphan list, from where it may later be adopted by another uicomponent. Orphaned uicomponents are not rendered.Returns:
nil
 
- 
							
uicomponent:SortChildrenByProperties(...varargs properties) - 
							Reorders the children of the component based on the supplied user properties. Sort by multiple levels if more than one property passed.
							
Parameters:
1
...one or more lua tables in the format {String property_key, bool is_numeric}. Keep in mind that the priority of the properties is in the reverse of the passed order due to lua stack
Returns:
nil
Example - Sort the children of the component first by locked / unlocked state and than by ui_order index:
child_component:SetProperty("ui_order", "5")
child_component:SetProperty("locked_first", is_locked and "0" or "1")
... create other children and assign the user properties
component:SortChildrenByProperties({"ui_order", true}--[[secondary--]], {"locked_first", true}--[[primary--]])
 
- 
							
uicomponent:FindParentCallbacks(callback idstring) - 
							FindParentCallbacks finds a parent of the component with a callback
							
Parameters:
1
callback id
Returns:
nil
 
- 
							
uicomponent:CreateComponent(uicomponent namestring,file pathstring) - 
							Creates a new uicomponent as the child of this uicomponent. A name for the new uicomponent must be supplied, as well as a filepath to a layout file containing a template for the new uicomponent. The address of the new uicomponent is returned - this must be cast to be a 
uicomponentusing theUIComponentfunction.Parameters:
1
uicomponent name
2
file path
Returns:
addressaddress of created uicomponent
Example - Create the scripted subtitles uicomponent as a child of the root uicomponent:
local uic_scripted_subtitles = UIComponent(ui_root:CreateComponent("scripted_subtitles", "UI/Campaign UI/scripted_subtitles"));
 
- 
							
uicomponent:CopyComponent(uicomponent namestring) - 
							Creates a copy of this uicomponent with the supplied name. The component is created as a sibling of the copied component, so they both share the same parent.
							
Parameters:
1
uicomponent name
Returns:
addressaddress of created uicomponent
Example - Create the scripted subtitles uicomponent as a child of the root uicomponent:
local uic_list_entry = UIComponent(uic_list_entry_template:CopyComponent("list_entry_1"));
 
- 
							
uicomponent:CreateFromComponent(templateuicomponent,name for the new componentstring) - 
							Creates a new uicomponent from the given temaplte as the child of the given uicomponent. A name for the new uicomponent must be supplied, as well as a parent component address and a component address for the template for the new uicomponent. The address of the new uicomponent is returned - this must be cast to be a 
uicomponentusing theUIComponentfunction.Parameters:
1
template
2
name for the new component
Returns:
addressaddress of created uicomponent
 
- 
							
uicomponent:Destroy() - 
							Destroys this uicomponent.
							
Returns:
nil
 
- 
							
uicomponent:DestroyChildren() - 
							Destroys all children of this uicomponent.
							
Returns:
nil
 
- 
							
uicomponent:SetText(localised textstring,text sourcestring) - 
							Sets the text on all available states of the uicomponent to the supplied text. Localised text must be specified - 
common.get_localised_stringcan be used to look this up from anywhere in the database.Parameters:
1
Localised text.
2
source of text in format of a stringtable key (tablename_recordname_key)
Returns:
nil
 
- 
							
uicomponent:SetStateText(localised textstring,text sourcestring) - 
							Sets the text on the current state of the uicomponent to the supplied text. Localised text must be specified - 
common.get_localised_stringcan be used to look this up from anywhere in the database.Parameters:
1
Localised text.
2
source of text in format of a stringtable key (tablename_recordname_key)
Returns:
nil
 
- 
							
uicomponent:FitTextToComponent(localised textstring,text sourcestring) - 
							Sets the text on the current state of the uicomponent to the supplied text. If the text is too large, it will replace it with ... and set it as tooltip.
							
Parameters:
1
Localised text.
2
source of text in format of a stringtable key (tablename_recordname_key)
Returns:
nil
 
- 
							
uicomponent:GetStateText() - 
							Returns the text on the current state of the uicomponent along with its dimensions. This text will be localised.
							
Returns:
 
- 
							
uicomponent:SetTooltipText(textstring,text sourcestring,set all statesboolean) - 
							Sets the tooltip text of the current state of this uicomponent. An optional flag directs the function to apply this tooltip text to all states of the uicomponent. The text specified must already be localised - effect:get_localised_string can be used to retrieve localised text from anywhere in the database.
							
Parameters:
1
Localised tooltip text.
2
source of text in format of a stringtable key (tablename_recordname_key)
3
Set all states.
Returns:
nil
 
- 
							
uicomponent:SetTooltipTextWithRLSKey(keystring, [set all statesboolean]) - 
							Sets the tooltip text of the current state of this uicomponent. An optional flag directs the function to apply this tooltip text to all states of the uicomponent. The text is specified as a key for a record in the 
random_localisation_stringstable.Parameters:
1
Key for a record in the
random_localisation_stringstable.2
optional, default value=false
Set all states.
Returns:
nil
 
- 
							
uicomponent:SetTooltipWithTitle(key for title
string,key for tooltip text
string,set all states
[boolean]
) - 
							Sets the custom tooltip of the current state of this uicomponent. 
							
Parameters:
1
Key for a record in the
random_localisation_strings,campaign_localised_stringstable.2
this can be the list of strings, which will be concatenated, or they can be list of table { text = "key", params = {n1, n2, n3} } if you want to pass some format numbers
3
optional, default value=false
Set all states.
Returns:
nil
 
- 
							
uicomponent:AppendTooltipText(key for localized tooltip text.string, [set all statesboolean]) - 
							Appends to the tooltip of the current state of this uicomponent.
							
Parameters:
1
key for localized tooltip text.
2
optional, default value=false
Set all states.
Returns:
nil
 
- 
							
uicomponent:GetTooltipText() - 
							Returns the tooltip text of the current state of the uicomponent as a localised string.
							
Returns:
 
- 
							
uicomponent:SetImageRotation(image indexnumber,rotationnumber, [pivot xnumber], [pivot ynumber]) - 
							Performs a rotation of an image associated with the uicomponent. The image is specified by a 0-based numeric index of the images associated with this uicomponent. An optional pivot point can be specified, which sets a new pivot centre for the specified image.
							
Parameters:
1
Index value of image associated with uicomponent to rotate.
2
Amount by which to rotate the image in radians.
3
optional, default value=nil
X co-ordinate in pixels of the new pivot point of the image, relative to the top-left corner of the uicomponent.
4
optional, default value=nil
Y co-ordinate in pixels of the new pivot point of the image, relative to the top-left corner of the uicomponent.
Returns:
nil
 
- 
							
uicomponent:SetImagePath(image pathstring, [imageindex]) - 
							Sets a new image path for an image associated with the uicomponent, replacing the original image with something new. Multiple images can be associated with a uicomponent - the index of the image to overwrite can be set with the second parameter or by setting a "script_icon_index" user property on the uicomponent with 
uicomponent:SetProperty. If an index value is not set with either of these methods then the first image, image 0, is swapped.
Theuicomponent:GetImagePathanduicomponent:NumImagesfunctions can be used to query images related to a uicomponent.Parameters:
1
Path of image to load, from the working data folder.
2
imageoptional, default value=0
Index of image associated with this uicomponent to overwrite the path of. This takes precedence over any set "script_icon_index" property.
Returns:
nil
 
- 
							
uicomponent:GetImagePath([imageindex]) - 
							Returns the path of an image associated with the subject uicomponent. The image is specified by a 0-based index.
							
Parameters:
1
imageoptional, default value=0
Index of image to return the path of.
Returns:
nil
 
- 
							
uicomponent:NumImages() - 
							Returns the number of images associated with the subject uicomponent.
							
Returns:
nil
 
To be drawn on a uicomponent, an image has to first be associated with that uicomponent, and then further associated with a state. Only when the uicomponent is set to that state is the image drawn. Once associated with the uicomponent that image can then be associated with multiple states, with its position, colourisation and other parameters customised for each state. The functions in the previous section allow parameters of the image's association with the uicomponent, which would affect each component state that the image is displayed with, to be queried and changed. The parameters of an image's association with a particular state may be changed using the functions in this section.
In the source code, an image's association with the uicomponent is called a ComponentImage, and a ComponentImage's association with a particular state is called a ComponentImageMetrics. The functions described in this section relate to ComponentImageMetrics, therefore.
- 
							
uicomponent:GetCurrentStateImageIndex(state image indexnumber) - 
							Returns the index of an image's association with this uicomponent, based on the index of that image's association with the current state. All indexes are 0-based.
							
Parameters:
1
The index of the image's association with the current uicomponent state.
Returns:
The index of this image on the uicomponent itself. This can be plugged intonumberuicomponent:GetImagePathand other functions.
 
- 
							
uicomponent:NumCurrentStateImages() - 
							Returns the number of images associated with the current state of this uicomponent.
							
Returns:
number of imagesnumber
 
- 
							
uicomponent:SetCurrentStateImageOpacity(state image indexnumber,opacitynumber) - 
							Sets the opacity of a specified image associated with the current state of the uicomponent.
							
Parameters:
1
The index of the image's association with the current uicomponent state.
2
Desired opacity value, from 0-255.
Returns:
nil
 
- 
							
uicomponent:GetCurrentStateImageOpacity(state image indexnumber) - 
							Returns the opacity of a specified image associated with the current state of the uicomponent. The returned value will be between 0 and 255.
							
Parameters:
1
The index of the image's association with the current uicomponent state.
Returns:
Current opacitynumber
 
- 
							
uicomponent:GetCurrentStateImageWidth(state image indexnumber) - 
							Returns the width of a specified image associated with the current state of the uicomponent.
							
Parameters:
1
The index of the image's association with the current uicomponent state.
Returns:
width, Width in pixels.number
 
- 
							
uicomponent:GetCurrentStateImageHeight(state image indexnumber) - 
							Returns the height of a specified image associated with the current state of the uicomponent.
							
Parameters:
1
The index of the image's association with the current uicomponent state.
Returns:
height, Height in pixels.number
 
- 
							
uicomponent:GetCurrentStateImageDimensions(state image indexnumber) - 
							Returns the width and height of a specified image associated with the current state of the uicomponent.
							
Parameters:
1
The index of the image's association with the current uicomponent state.
Returns:
 
- 
							
uicomponent:ResizeCurrentStateImage(state image indexnumber,widthnumber,heightnumber) - 
							Sets the width and height of a specified image associated with the current state of the uicomponent.
							
Parameters:
1
The index of the image's association with the current uicomponent state.
2
Width in pixels.
3
Height in pixels.
Returns:
nil
 
- 
							
uicomponent:CanResizeCurrentStateImageWidth(state image indexnumber) - 
							Returns whether the width can be resized of the specified image associated with the current state of the uicomponent.
							
Parameters:
1
The index of the image's association with the current uicomponent state.
Returns:
can resize widthboolean
 
- 
							
uicomponent:CanResizeCurrentStateImageHeight(state image indexnumber) - 
							Returns whether the height can be resized of the specified image associated with the current state of the uicomponent.
							
Parameters:
1
The index of the image's association with the current uicomponent state.
Returns:
can resize heightboolean
 
- 
							
uicomponent:SetCanResizeCurrentStateImageWidth(state image indexnumber,can resizeboolean) - 
							Sets whether the width can be resized of the specified image associated with the current state of the uicomponent.
							
Parameters:
1
The index of the image's association with the current uicomponent state.
2
Can resize.
Returns:
nil
 
- 
							
uicomponent:SetCanResizeCurrentStateImageHeight(state image indexnumber,can resizeboolean) - 
							Sets whether the height can be resized of the specified image associated with the current state of the uicomponent.
							
Parameters:
1
The index of the image's association with the current uicomponent state.
2
Can resize.
Returns:
nil
 
- 
							
uicomponent:SetCurrentStateImageDockingPoint(state image indexnumber,dock pointnumber) - 
							Sets the docking point of the specified image associated with the current state of the uicomponent. Valid values are given in the table in the 
Dockingsection of this documentation.Parameters:
1
The index of the image's association with the current uicomponent state.
2
Dock point.
Returns:
nil
 
- 
							
uicomponent:GetCurrentStateImageDockingPoint(state image indexnumber) - 
							Gets the docking point of the specified image associated with the current state of the uicomponent. The value is returned as a number. Valid number values are given in the table in the 
Dockingsection of this documentation.Parameters:
1
The index of the image's association with the current uicomponent state.
Returns:
dock point, Dock point.number
 
- 
							
uicomponent:SetCurrentStateImageDockOffset(state image index
number,x offset in pixels.
number,y offset in pixels.
number
) - 
							Sets the docking offset of the specified image associated with the current state of the uicomponent.
							
Parameters:
1
The index of the image's association with the current uicomponent state.
2
x offset in pixels.
3
y offset in pixels.
Returns:
nil
 
- 
							
uicomponent:GetCurrentStateImageDockOffset(state image indexnumber) - 
							Returns the docking offset set for the specified image associated with the current state of the uicomponent.
							
Parameters:
1
The index of the image's association with the current uicomponent state.
Returns:
 
- 
							
uicomponent:SetCurrentStateImageTiled(state image indexnumber,is tiledboolean) - 
							Sets whether the specified image associated with the current state of the uicomponent is tiled or not.
							
Parameters:
1
The index of the image's association with the current uicomponent state.
2
is tiled
Returns:
nil
 
- 
							
uicomponent:GetCurrentStateImageTiled(state image indexnumber) - 
							Returns whether the specified image associated with the current state of the uicomponent is tiled or not.
							
Parameters:
1
The index of the image's association with the current uicomponent state.
Returns:
is image tiled.boolean
 
- 
							
uicomponent:SetCurrentStateImageMargins(state image index
number,top margin
number,right margin
number,bottom margin
number,left margin
number
) - 
							Sets the margin values for the specified image associated with the current state of the uicomponent. This affects how the image resizes, allowing a border around the image to stay a static size while the centre portion of the image scales.
							
Parameters:
1
The index of the image's association with the current uicomponent state.
2
The size of the top margin in pixels.
3
The size of the right margin in pixels.
4
The size of the bottom margin in pixels.
5
The size of the left margin in pixels.
Returns:
nil
 
- 
							
uicomponent:GetCurrentStateImageMargins(state image indexnumber) - 
							Returns the margin values for the specified image associated with the current state of the uicomponent. The margins affect how the image resizes, allowing a border around the image to stay a static size while the centre portion of the image scales.
							
Parameters:
1
The index of the image's association with the current uicomponent state.
Returns:
 
- 
							
uicomponent:SetCurrentStateImageXFlip(state image indexnumber,flipboolean) - 
							Sets the x-flipped value for the specified image associated with the current state of the uicomponent. If set, this flips the image horizontally.
							
Parameters:
1
The index of the image's association with the current uicomponent state.
2
Image should be horizontally flipped.
Returns:
nil
 
- 
							
uicomponent:SetCurrentStateImageYFlip(state image indexnumber,flipboolean) - 
							Sets the y-flipped value for the specified image associated with the current state of the uicomponent. If set, this flips the image vertically.
							
Parameters:
1
The index of the image's association with the current uicomponent state.
2
Image should be vertically flipped.
Returns:
nil
 
- 
							
uicomponent:GetCurrentStateImageFlip(state image indexnumber) - 
							Returns the x-flipped value for the specified image associated with the current state of the uicomponent. If set, this flips the image horizontally.
							
Parameters:
1
The index of the image's association with the current uicomponent state.
Returns:
is flipped horizontally.boolean
 
- 
							
uicomponent:Visible([recursiveboolean]) - 
							Returns the visibility flag of this uicomponent. An optional argument also performs the test on all parent uicomponents up to the root, which will detect whether this uicomponent is visible but a parent is not.
							
Parameters:
1
optional, default value=false
Also test all parents up to the root.
Returns:
is visibleboolean
 
- 
							
uicomponent:VisibleFromRoot() - 
							Returns whether this uicomponent is visible, all its parents are visible, and the hierarchy is attached to the ui root. If the supplied parent (or an ancestor of it) is orphaned from the ui root this function will return 
falsewhereuicomponent:Visiblemay returntrue, as the uicomponent would not be displayed if not attached to the ui root.Returns:
is visible from rootboolean
 
- 
							
uicomponent:SetVisible(is visibleboolean) - 
							Sets the visibility state of this uicomponent.
							
Parameters:
1
is visible
Returns:
nil
 
- 
							
uicomponent:PropagateVisibility(is visibleboolean) - 
							Sets the visibility state of this uicomponent and all its children.
							
Parameters:
1
is visible
Returns:
nil
 
- 
							
uicomponent:Opacity() - 
							Returns the current opacity of the uicomponent. The returned value will be a number from 0-255.
							
Returns:
opacitynumber
 
- 
							
uicomponent:SetOpacity(opacity valuenumber, [applyto all states]) - 
							Sets the opacity of the uicomponent. This should be specified as a number between 0 (transparent) and 255 (fully opaque). An optional flag also applies the opacity setting to all states of the uicomponent, as opposed to just the current state.
							
Parameters:
1
opacity value
2
applyoptional, default value=false
to all states
Returns:
nil
 
- 
							
uicomponent:PropagateOpacity(opacity valuenumber, [applyto all states]) - 
							Sets the opacity of this uicomponent and propagates the change to all its children. The opacity value should be specified as a number between 0 (transparent) and 255 (fully opaque). An optional flag also applies the opacity setting to all states of each uicomponent, as opposed to just the current state.
							
Parameters:
1
opacity value
2
applyoptional, default value=false
to all states
Returns:
nil
 
- 
							
uicomponent:IsDisabled() - 
							Returns whether this uicomponent is disabled or not. Disabled uicomponents do not respond to mouse clicks but still respond to the mouse cursor being placed over them.
							
Returns:
is interactiveboolean
 
- 
							
uicomponent:SetDisabled(is disabledboolean) - 
							Sets this uicomponent to be disabled or not. Disabled uicomponents do not respond to mouse clicks but still respond to the mouse cursor being placed over them.
							
Parameters:
1
is disabled
Returns:
nil
 
- 
							
uicomponent:IsInteractive() - 
							Returns whether this uicomponent is interactive or not. Non-interactive uicomponents do not respond to any mouse events.
							
Returns:
is interactiveboolean
 
- 
							
uicomponent:SetInteractive(is interactiveboolean) - 
							Sets this uicomponent to be interactive or not. Non-interactive uicomponents do not respond to any mouse events.
							
Parameters:
1
is interactive
Returns:
nil
 
- 
							
uicomponent:CurrentAnimationId() - 
							Returns the string name of the animation currently playing on this uicomponent. If no animation is currently playing then a blank string is returned.
							
Returns:
animation namestring
 
- 
							
uicomponent:TriggerAnimation(animation namestring) - 
							Starts an animation on the uicomponent by name. Available animations on a given uicomponent can be seen in the ui editor.
							
Parameters:
1
animation name
Returns:
nil
 
- 
							
uicomponent:FinishCurrentAnimationInstantly() - 
							Instantly finishes the current animation the component is playing.
							
Returns:
nil
 
- 
							
uicomponent:AnimationExists(animation namestring) - 
							Returns whether the uicomponent contains an animation with the supplied name.
							
Parameters:
1
animation name
Returns:
animation existsboolean
 
- 
							
uicomponent:NumAnimations() - 
							Returns the number of animations the uicomponent contains.
							
Returns:
animationsnumber
 
- 
							
uicomponent:GetAnimationNames() - 
							Returns a table containing the names of each animation contained by the uicomponent. The table is indexed by number, but the ordering of animation names within the table is not guaranteed between different calls to this function.
							
Returns:
numerically-indexed table of animation namestable
 
- 
							
uicomponent:NumAnimationFrames(animation namestring) - 
							Returns the number of frames in an animation of the specified name. If no animation with the supplied name could be found on the uicomponent then -1 is returned.
							
Parameters:
1
animation name
Returns:
animation framesnumber
 
- 
							
uicomponent:SetAnimationFrameProperty(animation name
string,frame number
number,interpolation type
string,first value
number,second value
[number],third value
[number],fourth value
[number]
) - 
							Sets an animation frame property. Different interpolation types require different numbers of arguments. See UiEd animation menu.
							
Parameters:
1
Animation name.
2
Frame number. This number is 0-based, so a value of 1 would specify the second frame in the animation.
3
Interpolation type string. Valid values are
"colour","position","scale","shader_values","rotation","image","opacity","text","interpolation_time","font_scale"and"material_params".4
First property value.
5
optional, default value=0
Second property value.
6
optional, default value=0
Third property value.
7
optional, default value=0
Fourth property value.
Returns:
nil
 
- 
							
uicomponent:GetAnimationFrameProperty(animation name
string,frame number
number,interpolation type
string
) - 
							Gets an animation frame property. Different interpolation types return different numbers of arguments. See UiEd animation menu.
							
Parameters:
1
Animation name.
2
Frame number. This number is 0-based, so a value of 1 would specify the second frame in the animation.
3
Interpolation type string. Valid values are
"colour","position","scale","shader_values","rotation","image","opacity","text","interpolation_time","font_scale"and"material_params".Returns:
nil
 
- 
							
uicomponent:GetProperty(property namestring) - 
							Returns the value of the specified uicomponent property. The names of properties on any given uicomponent may be looked up in the ui editor.
							
Parameters:
1
property name
Returns:
variableproperty value
 
- 
							
uicomponent:SetProperty(property namestring, variableproperty value) - 
							Returns the value of the specified uicomponent property. The names of properties on any given uicomponent may be looked up in the ui editor.
							
Parameters:
1
property name
2
variableproperty value
Returns:
nil
 
- 
							
uicomponent:SetCallbackUserProperty(callback idstring,property namestring, variableproperty value) - 
							Sets a context callback user property for the supplied callback
							
Parameters:
1
callback id
2
property name
3
variableproperty value
Returns:
nil
 
Every component within the UI hierarchy has a non-negative integer priority value associated with it, with a default value of 0. This is used for a handful of things:
- Priority is used to sort the immediate children of the root component.
 - Priority is also used to sort any components set to be topmost with 
uicomponent:RegisterTopMost. - Priority is mainly used when a priority lock is activated.
 
Priority locks are activated on a target component, with a numeric lock value. When a priority lock is activated, any component within the whole UI (including the target component) with a priority value less than the priority of the lock becomes inactive and visually desaturated. This method can be used to grey out background buttons and other controls when a foreground panel is active, for example.
Priority values can be set and queried, and priority locks can be activated and deactivated, using the methods in script described below.
- 
							
uicomponent:LockPriority([prioritynumber]) - 
							Activates a priority lock on the uicomponent, replacing any existing lock that's active on this component. This disables all uicomponents with a priority value less than the priority of the lock. A priority may optionally be specified - if not, the uicomponent's own priority is used for the lock value. This will exempt this uicomponent from the lock, which is usually desired.
uicomponent:UnLockPrioritymust be called after calling this function to restore normal ui functionality.Parameters:
1
optional, default value=nil
Lock priority. If no value is specified here then the lock is activated using the component's own priority is used.
Returns:
nil
 
- 
							
uicomponent:UnLockPriority() - 
							Deactivates any active priority lock on the uicomponent.
							
Returns:
nil
 
- 
							
uicomponent:PriorityLockInfo() - 
							Returns whether a priority lock is currently active or not in the UI. If a lock is active, the priority value and a pointer to the locked component are also returned. This component pointer must be cast to be a usable 
uicomponentscript object using theUIComponentfunction before it can be used.Returns:
Example:
local active, priority, component = core:get_ui_root():IsPriorityLockActive()
if active then
local uic = UIComponent(component)
out("Priority lock with value [" .. priority .. "] is active on component with id [" .. uic:Id() .. "]")
else
out("No priority lock active")
end
 
- 
							
uicomponent:IsPriorityLocked() - 
							Returns whether this component is currently priority locked. This is 
trueif a priority lock is active on any component (including this one) with a level greater than this component's priority, orfalseotherwise. If this component is priority locked then it will (probably) be disabled and visually desaturated on the display.Returns:
is priority lockedboolean
 
- 
							
uicomponent:Priority() - 
							Returns the priority value of this uicomponent.
							
Returns:
prioritynumber
 
- 
							
uicomponent:SetPriority(prioritynumber) - 
							Sets the component priority of this uicomponent to the supplied value. The old priority of the uicomponent is returned.
							
Parameters:
1
priority
Returns:
old prioritynumber
 
- 
							
uicomponent:PropagatePriority(prioritynumber) - 
							Sets the component priority of this uicomponent and all its children to the supplied value. The old priority of the uicomponent is returned.
							
Parameters:
1
priority
Returns:
old prioritynumber
 
- 
							
uicomponent:RegisterTopMost() - 
							Registers this uicomponent to be drawn topmost. Topmost uicomponents are drawn outside of the normal hierarchy on the top of all other uicomponents. This setting is useful for uicomponents such as tooltips that must always be drawn over the top of other visible parts of the UI.
							
Returns:
nil
 
- 
							
uicomponent:RemoveTopMost() - 
							De-registers this uicomponent from being drawn topmost.
							
Returns:
nil
 
The functions in this section allow shader techniques to be applied to uicomponents and the text they display. The list of supported shaders and their related parameters is as follows:
| Shader Key | Shader Name | Shader Description | First Param | Second Param | Third Param | Fourth Param | 
normal_t0 | Normal | |||||
red_pulse_t0 | Pulsing Red | Pulsing saturation in the red channel using 1 second frequency. | Lower bound | Upper bound | Pulse frequency | |
red_and_alpha_t0 | Reddened & Faded | |||||
set_greyscale_t0 | Greyscale & Alpha | Linear interpolation of colour to greyscale. | Range: 0 to 1 | Alpha level 0 to 1. | ||
brighten_t0 | Brighten | Colour saturation or desaturation. | -unlimited to +unlimited saturation value | |||
glow_pulse_t0 | Glowing Pulse | Pulsing saturation. | 0 to unlimited, lowest intensity. | 0 to unlimited, highest intensity. | Greater than 0 to unlimited, pulse interval. | Time offset, pass in current real time to make it start from 0 intensity and blend in | 
cooldown_t0 | Cooldown | Cooldown for abilities, etc. Greys out and darkens in a clock like fashion based on percentage. | Percentage of cooldown (0-1) | |||
colourwheel_t0 | ColourWheel Spread | |||||
verticalcolourspread_t0 | Vertical Colour Spread | |||||
highlight_edge_t0 | Edge Highlight | Black/White selection edge highlight effect. Additional Requirements: Single image in state whose dimensions must match that of the image. | Image and state width. | Image and state height. | ||
drop_shadow_t0 | Drop Shadow | Places black drop shadow (made for text). | shadow x-offset | shadow y-offset | shadow alpha 0-1 | colour index (see uied wiki for list of colours to indices) | 
italic | Italic Font | Italices text | ||||
border_alpha_blend | Border Alpha Blend | Should only be used when the component has a mask image to produce an alpha blended margin. | Left margin | Top margin | Right margin | Bottom margin | 
multiply | Multiply | Multiplies by colour. | ||||
corner_clip | Corner Clip | Used to clip just the corners of an image (like on radar in warhammer). | Clip percent (0-1) | |||
distortion | Distortion | Animates with a kind of distortion similar to sinking shader (think like being under water). | Distort amount, higher the more distortion (typical value 0.04). | Speed, higher the slower (default value is 2.0 if not set) | ||
overlay_t0 | Overlay | Like the normal shader but additive blends | ||||
edge_blend | Edge blend | Used to blend out towards edges in rectangular fashion | Border start percent for blend (0-1), default is 0.01 | Border end percent for blend (0-1), default is 0.006 | ||
normal_map_t0 | Normal Map | Uses mask image as normal map | Light X pos within component (0-1) | Light Y pos within component (0-1) | Ambient light weight (defaults to 0.35) | Directional light weight (defaults to 1) | 
magic_aura_t0 | Magic Aura | Uses mask image to make a glowing border | 
- 
							
uicomponent:ShaderTechniqueSet(variableshader, [all statesboolean], [include textboolean]) - 
							Sets the active shader technique on the uicomponent, applying a custom graphical shader effect. The shader may be specified as a 
stringkey or anumber. Valid shader keys are given in the table at the top of this section.Parameters:
1
variable2
optional, default value=false
Apply the shader to all states of this uicomponent.
3
optional, default value=true
Also apply the shader to the text of the uicomponent.
Returns:
nil
 
- 
							
uicomponent:ShaderTechniqueGet() - 
							Returns the key of the shader currently active on the uicomponent.
							
Returns:
shader keystring
 
- 
							
uicomponent:ShaderVarsSet(first value
[number],second value
[number],third value
[number],fourth value
[number],all states
[boolean],include text
[boolean]
) - 
							Sets variables on the shader technique currently active on the uicomponent. What values can be set and what they do is specific to each shader - see the documented list at the top of this section. Up to four shader values can be specified, each one being a 
number.Parameters:
1
optional, default value=nil
First shader value.
2
optional, default value=nil
Second shader value.
3
optional, default value=nil
Third shader value.
4
optional, default value=nil
Fourth shader value.
5
optional, default value=false
Apply the shader to all states of this uicomponent.
6
optional, default value=true
Also apply the shader to the text of the uicomponent.
Returns:
nil
 
- 
							
uicomponent:ShaderVarsGet() - 
							Returns the variables of the shader currently active on the uicomponent.
							
Returns:
 
- 
							
uicomponent:TextShaderTechniqueSet(variableshader, [all statesboolean]) - 
							Sets the active shader technique on just the text of the uicomponent, applying a custom graphical shader effect. The shader may be specified as a 
stringkey or anumber. Valid shader keys are given in the table at the top of this section.Parameters:
1
variable2
optional, default value=false
Apply the shader to all states of this uicomponent.
Returns:
nil
 
- 
							
uicomponent:TextShaderVarsSet(first value
number,second value
number,third value
number,fourth value
number,all states
[boolean]
) - 
							Sets variables on the text shader technique currently active on the uicomponent. What values can be set and what they do is specific to each shader - see the documented list at the top of this section. Up to four shader values can be specified, each one being a 
number.Parameters:
1
First shader value.
2
Second shader value.
3
Third shader value.
4
Fourth shader value.
5
optional, default value=false
Apply the shader to all states of this uicomponent.
Returns:
nil
 
- 
							
uicomponent:TextShaderVarsGet() - 
							Returns the variables of the text shader currently active on the uicomponent.
							
Returns:
 
- 
							
uicomponent:StealShortcutKey(should stealboolean, [key typestring]) - 
							Instructs this uicomponent to steal a game shortcut key, so that keypresses of that type are redirected to this uicomponent which will handle them. If a shortcut is stolen it must be released again at some suitable later time for the default keypress behaviour to be restored.
Keyboard shortcuts are listed indata\text\default_keys.xml.Parameters:
1
If set to
true, the key must be specified as the second argument. Iffalse, all keys stolen by this uicomponent will be released so no second argument is required.2
optional, default value=nil
Key type to steal.
Returns:
successboolean
 
- 
							
uicomponent:StealInputFocus(should stealboolean) - 
							Instructs this uicomponent to steal all keyboard input. All keypresses are therefore redirected to this uicomponent which will handle them. If input focus is stolen by a uicomponent then standard keyboard behaviour will be overridden until it is released with a second call to this function.
							
Parameters:
1
should steal
Returns:
nil
 
- 
							
uicomponent:TriggerShortcut(shortcutstring) - 
							Triggers a keyboard shortcut on the uicomponent, by name. Keyboard shortcuts are listed in 
data\text\default_keys.xml.Parameters:
1
shortcut
Returns:
nil
 
- 
							
uicomponent:Highlight(should highlight
boolean,square
[boolean],priority lock
[number],focusing_highlight
[boolean]
) - 
							Highlights or unhighlights the uicomponent to the player with a flashing ring. 
							
Parameters:
1
Set to
truefalse to deactivate.2
optional, default value=false
Set to
trueto show a square highlight, orfalseto show a circular highlight.3
optional, default value=0
Activates a priority lock along with the highlight with the specified priority. While a priority lock is active, any interactive uicomponents with a priority less than the supplied lock level will be rendered non-interactive. See the
Priority and Lockingsection for more information.4
optional, default value=false
Set to
trueto start from a bigger highlight which gradually resizes to the dimensions of the componentReturns:
nil
 
- 
							
uicomponent:FullScreenHighlight([highlight textstring], [once onlyboolean]) - 
							Activates a fullscreen highlight around the subject uicomponent. This places a nearly opaque layer over the screen except for a window over the subject uicomponent, leaving it prominently displayed. Text may optionally be specified that gets displayed over the opaque layer.
							
Parameters:
1
optional, default value=nil
Text to display over the fullscreen highlight. If used, this should be set to the key of an entry from the
random_localisation_stringstable.2
optional, default value=false
Displays this fullscreen highlight once only. If this flag is set, an entry is stored in the registry when this fullscreen highlight is displayed, preventing it from ever being displayed again.
Returns:
nil
 
- 
							
uicomponent:StartPulseHighlight([pulse strengthnumber], [state namestring]) - 
							Activates a pulsing highlight effect on a particular state of the subject uicomponent. This is useful for unobtrusively highlighting components with an area such as buttons and panels, but doesn't work so well for highlighting text. The script function 
pulse_uicomponentwraps this function.Parameters:
1
optional, default value=nil
Pulse strength override. A typical value might be a number between 1 and 10.
2
optional, default value=nil
State name to apply the pulsing effect to. If this is not supplied, the effect is applied to the current state.
Returns:
nil
 
- 
							
uicomponent:StopPulseHighlight([state namestring]) - 
							Deactivates a pulsing highlight effect on a particular state of the subject uicomponent that was previously started with 
uicomponent:StartPulseHighlight.Parameters:
1
optional, default value=nil
State name to stop the pulsing effect on. If this is not supplied then the current state is used.
Returns:
nil
 
- 
							
uicomponent:InterfaceFunction(function namestring, ...varargs) - 
							Calls an interface function on the uicomponent, by string name. Interface functions are provided by some uicomponents to allow the script to activate specific functionality related to the uicomponent. Along with the string name of the interface function, multiple arguments to pass to that function may be specified.
							
Parameters:
1
Name of interface function to call.
2
...zero or more additional arguments to pass to the interface function.
Returns:
nil
 
- 
							
uicomponent:InterfaceFunctionFromCallback(callback namestring,function namestring, ...varargs) - 
							Calls an interface function on the uicomponent, by string name of the callback and the function. Interface functions are provided by some uicomponents to allow the script to activate specific functionality related to the uicomponent. Along with the string name of the callback and interface function, multiple arguments to pass to that function may be specified.
							
Parameters:
1
Name of callback that should have its function called.
2
Name of interface function to call.
3
...zero or more additional arguments to pass to the interface function.
Returns:
nil
 
- 
							
uicomponent:HasInterface() - 
							Returns whether this uicomponent provides any interface functions.
							
Returns:
has callback interfaceboolean
 
- 
							
uicomponent:SimulateLClick([xnumber], [ynumber]) - 
							Simulates a left-click on the uicomponent. Relative co-ordinates at which the click is simulated on the component may optionally be specified. Both arguments must be supplied to specify a position.
							
Parameters:
1
optional, default value=nil
X co-ordinate of click on component.
2
optional, default value=nil
Y co-ordinate of click on component.
Returns:
nil
 
- 
							
uicomponent:SimulateRClick([xnumber], [ynumber]) - 
							Simulates a right-click on the uicomponent. Relative co-ordinates at which the click is simulated on the component may optionally be specified. Both arguments must be supplied to specify a position.
							
Parameters:
1
optional, default value=nil
X co-ordinate of click on component.
2
optional, default value=nil
Y co-ordinate of click on component.
Returns:
nil
 
- 
							
uicomponent:SimulateDblLClick([xnumber], [ynumber]) - 
							Simulates a double-left-click on the uicomponent. Relative co-ordinates at which the click is simulated on the component may optionally be specified. Both arguments must be supplied to specify a position.
							
Parameters:
1
optional, default value=nil
X co-ordinate of click on component.
2
optional, default value=nil
Y co-ordinate of click on component.
Returns:
nil
 
- 
							
uicomponent:SimulateDblRClick([xnumber], [ynumber]) - 
							Simulates a double-left-click on the uicomponent. Relative co-ordinates at which the click is simulated on the component may optionally be specified. Both arguments must be supplied to specify a position.
							
Parameters:
1
optional, default value=nil
X co-ordinate of click on component.
2
optional, default value=nil
Y co-ordinate of click on component.
Returns:
nil
 
- 
							
uicomponent:SimulateMouseOn() - 
							Simulates a mouse-on event on the uicomponent. You MUST call SimulateMouseOff when done otherwise mouse on will be stuck on. Also note that you might have to wait a tick before expected functionality occurs (say a panel opening on mousing over this component), as some callbacks work by checking for mouseover each update tick and dont use OnMouseOn
							
Returns:
nil
 
- 
							
uicomponent:SimulateMouseOff() - 
							Simulates a mouse-off event on the uicomponent.
							
Returns:
nil
 
- 
							
uicomponent:SimulateMouseMove([xnumber], [ynumber]) - 
							Simulates a mouse-move event on the uicomponent. Relative co-ordinates at which the mouse move event is simulated on the component may optionally be specified. Both arguments must be supplied to specify a position.
							
Parameters:
1
optional, default value=nil
X co-ordinate of event on component.
2
optional, default value=nil
Y co-ordinate of event on component.
Returns:
nil
 
The functions in this section allow scripts to simulate keyboard events. With each, a keyboard event must be specified. Valid keyboard events are as follows:
- "ESCAPE"
 - "1"
 - "2"
 - "3"
 - "4"
 - "5"
 - "6"
 - "7"
 - "8"
 - "9"
 - "MINUS"
 - "EQUALS"
 - "BACK"
 - "TAB"
 - "Q"
 - "W"
 - "E"
 - "R"
 - "T"
 - "Y"
 - "U"
 - "I"
 - "O"
 - "P"
 - "LBRACKET"
 - "RBRACKET"
 - "RETURN"
 - "LCONTROL"
 - "A"
 - "S"
 - "D"
 - "F"
 - "G"
 - "H"
 - "J"
 - "K"
 - "L"
 - "SEMICOLON"
 - "APOSTROPHE"
 - "GRAVE"
 - "LSHIFT"
 - "BACKSLASH"
 - "Z"
 - "X"
 - "C"
 - "V"
 - "B"
 - "N"
 - "M"
 - "COMMA"
 - "PERIOD"
 - "SLASH"
 - "RSHIFT"
 - "MULTIPLY"
 - "LALT"
 - "SPACE"
 - "CAPITAL"
 - "F1"
 - "F2"
 - "F3"
 - "F4"
 - "F5"
 - "F6"
 - "F7"
 - "F8"
 - "F9"
 - "F10"
 - "NUMLOCK"
 - "SCROLL"
 - "NUMPAD7"
 - "NUMPAD8"
 - "NUMPAD9"
 - "SUBTRACT"
 - "NUMPAD4"
 - "NUMPAD5"
 - "NUMPAD6"
 - "ADD"
 - "NUMPAD1"
 - "NUMPAD2"
 - "NUMPAD3"
 - "NUMPAD0"
 - "DECIMAL"
 - "OEM_102"
 - "F11"
 - "F12"
 - "F13"
 - "F14"
 - "F15"
 - "KANA"
 - "ABNT_C1"
 - "CONVERT"
 - "NOCONVERT"
 - "YEN"
 - "ABNT_C2"
 - "NUMPADEQUALS"
 - "PREVTRACK"
 - "AT"
 - "COLON"
 - "UNDERLINE"
 - "KANJI"
 - "STOP"
 - "AX"
 - "NEXTTRACK"
 - "NUMPADENTER"
 - "RCONTROL"
 - "MUTE"
 - "CALCULATOR"
 - "PLAYPAUSE"
 - "MEDIASTOP"
 - "VOLUMEDOWN"
 - "VOLUMEUP"
 - "WEBHOME"
 - "NUMPADCOMMA"
 - "DIVIDE"
 - "SYSRQ"
 - "RALT"
 - "PAUSE"
 - "HOME"
 - "UP"
 - "PAGE_UP"
 - "LEFT"
 - "RIGHT"
 - "END"
 - "DOWN"
 - "PAGE_DOWN"
 - "INSERT"
 - "DELETE"
 - "LWIN"
 - "RWIN"
 - "APPS"
 - "POWER"
 - "SLEEP"
 - "WAKE"
 - "WEBSEARCH"
 - "WEBFAVORITES"
 - "WEBREFRESH"
 - "WEBSTOP"
 - "WEBFORWARD"
 - "WEBBACK"
 - "MYCOMPUTER"
 - "MAIL"
 - "MEDIASELECT"
 
- 
							
uicomponent:SimulateKey(key idstring) - 
							Simulates a keypress on the uicomponent. A string key id must be specified from the list documented at the top of this section.
							
Parameters:
1
key id
Returns:
nil
 
- 
							
uicomponent:SimulateKeyDown(key idstring) - 
							Simulates a keypress-down on the uicomponent. A string key id must be specified from the list documented at the top of this section.
							
Parameters:
1
key id
Returns:
nil
 
- 
							
uicomponent:SimulateKeyUp(key idstring) - 
							Simulates a keypress-up on the uicomponent. A string key id must be specified from the list documented at the top of this section.
							
Parameters:
1
key id
Returns:
nil