UFO: Alien Invasion
|
#include "../../common/common.h"
Go to the source code of this file.
Data Structures | |
union | uiTerminalActionData_s |
Defines the data of a uiAction_t leaf. It allows different kind of data without cast. More... | |
struct | uiAction_s |
Atomic element to store UI scripts The parser use this atom to translate script action into many trees of actions. One function is one tree, and when we call this function, the tree is executed. More... | |
struct | uiValue_s |
Type for uiAction_t It also contain type about type (for example EA_BINARYOPERATOR) More... | |
struct | uiCallContext_s |
Contain the context of the calling of a function. More... | |
Typedefs | |
typedef enum uiActionType_s | uiActionType_t |
Type for uiAction_t It also contain type about type (for example EA_BINARYOPERATOR) More... | |
typedef union uiTerminalActionData_s | uiTerminalActionData_t |
Defines the data of a uiAction_t leaf. It allows different kind of data without cast. More... | |
typedef struct uiAction_s | uiAction_t |
Atomic element to store UI scripts The parser use this atom to translate script action into many trees of actions. One function is one tree, and when we call this function, the tree is executed. More... | |
typedef struct uiValue_s | uiValue_t |
Type for uiAction_t It also contain type about type (for example EA_BINARYOPERATOR) More... | |
typedef struct uiCallContext_s | uiCallContext_t |
Contain the context of the calling of a function. More... | |
Enumerations | |
enum | uiActionType_s { EA_NULL = 0, EA_BINARYOPERATOR, EA_UNARYOPERATOR, EA_HIGHT_MASK = 0xFF00, EA_ACTION = 0x0100, EA_CMD = EA_ACTION + 1, EA_CALL = EA_ACTION + 2, EA_ASSIGN = EA_ACTION + 3, EA_IF = EA_ACTION + 4, EA_ELSE = EA_ACTION + 5, EA_ELIF = EA_ACTION + 6, EA_WHILE = EA_ACTION + 7, EA_DELETE = EA_ACTION + 8, EA_LISTENER = EA_ACTION + 9, EA_PUSHVARS = EA_ACTION + 10, EA_POPVARS = EA_ACTION + 11, EA_FORCHILDIN = EA_ACTION + 12, EA_BREAK = EA_ACTION + 13, EA_OPERATOR_BOOLEAN2BOOLEAN = 0x0300, EA_OPERATOR_AND = EA_OPERATOR_BOOLEAN2BOOLEAN + 1, EA_OPERATOR_OR = EA_OPERATOR_BOOLEAN2BOOLEAN + 2, EA_OPERATOR_XOR = EA_OPERATOR_BOOLEAN2BOOLEAN + 3, EA_OPERATOR_NOT = EA_OPERATOR_BOOLEAN2BOOLEAN + 4, EA_OPERATOR_FLOAT2BOOLEAN = 0x0400, EA_OPERATOR_EQ = EA_OPERATOR_FLOAT2BOOLEAN + 1, EA_OPERATOR_LE = EA_OPERATOR_FLOAT2BOOLEAN + 2, EA_OPERATOR_GE = EA_OPERATOR_FLOAT2BOOLEAN + 3, EA_OPERATOR_GT = EA_OPERATOR_FLOAT2BOOLEAN + 4, EA_OPERATOR_LT = EA_OPERATOR_FLOAT2BOOLEAN + 5, EA_OPERATOR_NE = EA_OPERATOR_FLOAT2BOOLEAN + 6, EA_OPERATOR_FLOAT2FLOAT = 0x0500, EA_OPERATOR_ADD = EA_OPERATOR_FLOAT2FLOAT + 1, EA_OPERATOR_SUB = EA_OPERATOR_FLOAT2FLOAT + 2, EA_OPERATOR_MUL = EA_OPERATOR_FLOAT2FLOAT + 3, EA_OPERATOR_DIV = EA_OPERATOR_FLOAT2FLOAT + 4, EA_OPERATOR_MOD = EA_OPERATOR_FLOAT2FLOAT + 5, EA_OPERATOR_STRING2BOOLEAN = 0x0600, EA_OPERATOR_STR_EQ = EA_OPERATOR_STRING2BOOLEAN + 1, EA_OPERATOR_STR_NE = EA_OPERATOR_STRING2BOOLEAN + 2, EA_OPERATOR_UNARY = 0x0700, EA_OPERATOR_EXISTS = EA_OPERATOR_UNARY + 1, EA_OPERATOR_PATHFROM = EA_OPERATOR_UNARY + 2, EA_OPERATOR_PATHPROPERTYFROM = EA_OPERATOR_UNARY + 3, EA_VALUE = 0x0A00, EA_VALUE_STRING = EA_VALUE + 1, EA_VALUE_STRING_WITHINJECTION = EA_VALUE + 2, EA_VALUE_FLOAT = EA_VALUE + 3, EA_VALUE_RAW = EA_VALUE + 4, EA_VALUE_CVARNAME = EA_VALUE + 5, EA_VALUE_CVARNAME_WITHINJECTION = EA_VALUE + 6, EA_VALUE_PATHNODE = EA_VALUE + 7, EA_VALUE_PATHNODE_WITHINJECTION = EA_VALUE + 8, EA_VALUE_PATHPROPERTY = EA_VALUE + 9, EA_VALUE_PATHPROPERTY_WITHINJECTION = EA_VALUE + 10, EA_VALUE_NODEPROPERTY = EA_VALUE + 11, EA_VALUE_VAR = EA_VALUE + 12, EA_VALUE_CVAR = EA_VALUE + 13, EA_VALUE_NODE = EA_VALUE + 14, EA_VALUE_PARAM = EA_VALUE + 15, EA_VALUE_PARAMCOUNT = EA_VALUE + 16, EA_VALUE_THIS = EA_VALUE + 17, EA_VALUE_WINDOW = EA_VALUE + 18, EA_VALUE_PARENT = EA_VALUE + 19, EA_VALUE_CHILD = EA_VALUE + 20 } |
Type for uiAction_t It also contain type about type (for example EA_BINARYOPERATOR) More... | |
Functions | |
void | UI_ExecuteEventActions (uiNode_t *source, const uiAction_t *firstAction) |
void | UI_ExecuteConFuncActions (uiNode_t *source, const uiAction_t *firstAction) |
allow to inject command param into cmd of confunc command More... | |
void | UI_ExecuteEventActionsEx (uiNode_t *source, const uiAction_t *firstAction, linkedList_t *params) |
bool | UI_IsInjectedString (const char *string) |
Test if a string use an injection syntax. More... | |
void | UI_FreeStringProperty (void *pointer) |
Free a string property if it is allocated into ui_dynStringPool. More... | |
const char * | UI_GenInjectedString (const char *input, bool addNewLine, const uiCallContext_t *context) |
Replace injection identifiers (e.g. <eventParam>) by a value. More... | |
int | UI_GetActionTokenType (const char *token, int group) |
return an action type from a token, and a group More... | |
uiValue_t * | UI_GetVariable (const uiCallContext_t *context, int relativeVarId) |
Return a variable from the context. More... | |
void | UI_PoolAllocAction (uiAction_t **action, int type, const void *data) |
Set a new action to a uiAction_t pointer. More... | |
uiAction_t * | UI_AllocStaticCommandAction (const char *command) |
Allocate and initialize a command action. More... | |
void | UI_InitActions (void) |
void | UI_AddListener (uiNode_t *node, const value_t *property, uiNode_t const *functionNode) |
Add a callback of a function into a node event. There can be more than on listener. More... | |
void | UI_RemoveListener (uiNode_t *node, const value_t *property, uiNode_t *functionNode) |
Remove a function callback from a node event. There can be more than on listener. More... | |
const char * | UI_GetParam (const uiCallContext_t *context, int paramID) |
int | UI_GetParamNumber (const uiCallContext_t *context) |
typedef struct uiAction_s uiAction_t |
Atomic element to store UI scripts The parser use this atom to translate script action into many trees of actions. One function is one tree, and when we call this function, the tree is executed.
An atom can be a command, an operator, or a value:
typedef enum uiActionType_s uiActionType_t |
Type for uiAction_t It also contain type about type (for example EA_BINARYOPERATOR)
typedef struct uiCallContext_s uiCallContext_t |
Contain the context of the calling of a function.
typedef union uiTerminalActionData_s uiTerminalActionData_t |
Defines the data of a uiAction_t
leaf. It allows different kind of data without cast.
Type for uiAction_t It also contain type about type (for example EA_BINARYOPERATOR)
enum uiActionType_s |
Type for uiAction_t It also contain type about type (for example EA_BINARYOPERATOR)
Definition at line 33 of file ui_actions.h.
Add a callback of a function into a node event. There can be more than on listener.
[in,out] | node | The node to add the listener to. |
[in] | property | The property of the node to add the listener to. |
[in] | functionNode | The node of the listener callback. |
Definition at line 835 of file ui_actions.cpp.
References uiAction_s::d, EA_LISTENER, Mem_PoolAllocType, Mem_PoolStrDup, uiAction_s::next, uiAction_s::nonTerminal, uiNode_t::onClick, uiAction_s::terminal, uiAction_s::type, UI_GetPath(), and ui_sysPool.
Referenced by uiConFuncNode::onWindowOpened(), and UI_AddListener_f().
uiAction_t* UI_AllocStaticCommandAction | ( | const char * | command | ) |
Allocate and initialize a command action.
[in] | command | A command for the action |
Definition at line 796 of file ui_actions.cpp.
References uiAction_s::d, EA_CMD, uiAction_s::terminal, uiAction_s::type, and UI_AllocStaticAction().
Referenced by UI_Window_SetCloseButton().
void UI_ExecuteConFuncActions | ( | uiNode_t * | source, |
const uiAction_t * | firstAction | ||
) |
allow to inject command param into cmd of confunc command
Definition at line 717 of file ui_actions.cpp.
References OBJZERO, uiCallContext_s::source, UI_ExecuteActions(), and uiCallContext_s::useCmdParam.
Referenced by UI_ConfuncCommand_f().
void UI_ExecuteEventActions | ( | uiNode_t * | source, |
const uiAction_t * | firstAction | ||
) |
Definition at line 726 of file ui_actions.cpp.
References OBJZERO, uiCallContext_s::source, UI_ExecuteActions(), and uiCallContext_s::useCmdParam.
Referenced by uiSequenceNode::draw(), uiTimerNode::draw(), uiVideoNode::drawOverWindow(), uiRadioButtonNode::onActivate(), uiNode::onActivate(), uiOptionTreeNode::onCapturedMouseMove(), uiOptionListNode::onCapturedMouseMove(), uiContainerNode::onDndFinished(), uiTextListNode::onLeftClick(), uiRadioButtonNode::onLeftClick(), uiTextNode::onLeftClick(), uiText2Node::onLeftClick(), uiTextEntryNode::onLeftClick(), uiCheckBoxNode::onLeftClick(), uiLocatedNode::onLeftClick(), uiLocatedNode::onMiddleClick(), uiMaterialEditorNode::onMouseDown(), uiBaseInventoryNode::onMouseDown(), uiContainerNode::onMouseDown(), uiLocatedNode::onMouseEnter(), uiLocatedNode::onMouseLeave(), uiTextListNode::onRightClick(), uiTextNode::onRightClick(), uiText2Node::onRightClick(), uiLocatedNode::onRightClick(), uiMessageListNode::onScroll(), uiOptionTreeNode::onScroll(), uiOptionListNode::onScroll(), uiTextNode::onScroll(), uiPanelNode::onScroll(), uiLocatedNode::onScroll(), uiWindowNode::onWindowActivate(), uiWindowNode::onWindowClosed(), uiAbstractScrollableNode::setScrollY(), uiAbstractValueNode::setValue(), UI_AbstractOption_SetCurrentValue(), UI_AbstractScrollbarNodeSet(), UI_AbstractValue_SetValueCvar(), UI_BaseInventoryNodeUpdateScroll(), UI_ClientLayout(), UI_ColumnLayout(), UI_ContainerNodeAutoPlaceItem(), UI_FinishWindowsInit(), UI_FocusExecuteActionNode(), UI_OptionListNodeUpdateScroll(), UI_OptionTree_SelectValue(), UI_OptionTreeNodeUpdateScroll(), UI_TextEntryNodeAbortEdition(), UI_TextEntryNodeValidateEdition(), UI_TextNodeSelectLine(), UI_TextScrollEnd(), UI_TopDownFlowLayout(), and UI_ZoneNodeRepeat().
void UI_ExecuteEventActionsEx | ( | uiNode_t * | source, |
const uiAction_t * | firstAction, | ||
linkedList_t * | params | ||
) |
Definition at line 735 of file ui_actions.cpp.
References LIST_Count(), OBJZERO, uiCallContext_s::paramNumber, uiCallContext_s::params, uiCallContext_s::source, UI_ExecuteActions(), and uiCallContext_s::useCmdParam.
Referenced by uiWindowNode::onWindowOpened(), and UI_CvarListenerNodeCallback().
Free a string property if it is allocated into ui_dynStringPool.
[in,out] | pointer | The pointer to the data that should be freed |
Definition at line 778 of file ui_actions.cpp.
References _Mem_AllocatedInPool(), uiGlobal_s::adata, uiGlobal_s::adataize, Mem_Free, ui_dynStringPool, and ui_global.
Referenced by UI_DeleteNode(), UI_Model_SetAnimationSource(), UI_Model_SetModelSource(), UI_Model_SetSkinSource(), UI_Model_SetTagSource(), UI_Node_SetFont(), UI_Node_SetImage(), UI_Node_SetText(), UI_Node_SetTooltip(), UI_NodeSetProperty(), UI_NodeSetPropertyFromRAW(), UI_ReleaseVariable(), UI_Sequence_SetSource(), UI_TBar_SetImage(), and UI_Video_SetSource().
const char* UI_GenInjectedString | ( | const char * | input, |
bool | addNewLine, | ||
const uiCallContext_t * | context | ||
) |
Replace injection identifiers (e.g. <eventParam>) by a value.
Definition at line 209 of file ui_actions.cpp.
References uiNode_t::behaviour, Com_Printf(), Cvar_Get(), length, uiNode_t::parent, Q_streq, Q_strstart(), uiNode_t::root, uiCallContext_s::source, cvar_s::string, UI_GenCommandReadProperty(), UI_GetParam(), UI_GetParamNumber(), UI_GetPath(), UI_GetPropertyFromBehaviour(), UI_GetStringFromNodeProperty(), UI_ReadNodePath(), and va().
Referenced by UI_ExecuteAction(), UI_ExecuteCallAction(), UI_ExecuteSetAction(), UI_GetBooleanFromExpression(), UI_GetFloatFromExpression(), UI_GetNodeFromExpression(), and UI_GetStringFromExpression().
return an action type from a token, and a group
[in] | token | Requested token |
[in] | group | Requested group, EA_ACTION, EA_BINARYOPERATOR, or EA_UNARYOPERATOR |
Definition at line 113 of file ui_actions.cpp.
References EA_NULL, lengthof, and ui_typedActionToken_s::type.
Referenced by UI_ParseActionList(), and UI_ParseExpression().
const char* UI_GetParam | ( | const uiCallContext_t * | context, |
int | paramID | ||
) |
Get a param from an execution context
[in] | context | The execution context |
[in] | paramID | The ID of the requested param (first param is integer 1) |
Definition at line 179 of file ui_actions.cpp.
References Cmd_Argv(), Com_Printf(), linkedList_t::data, linkedList_t::next, uiCallContext_s::paramNumber, uiCallContext_s::params, and uiCallContext_s::useCmdParam.
Referenced by UI_AbstractNodeCallCreateChild(), UI_AbstractNodeCallDeleteTimed(), UI_GenInjectedString(), UI_GetFloatFromExpression(), UI_GetStringFromExpression(), and UI_OptionTreeSetSelectedValue().
int UI_GetParamNumber | ( | const uiCallContext_t * | context | ) |
Get the number of param from an execution context
[in] | context | The execution context |
Definition at line 166 of file ui_actions.cpp.
References Cmd_Argc(), uiCallContext_s::paramNumber, and uiCallContext_s::useCmdParam.
Referenced by UI_AbstractNodeCallCreateChild(), UI_AbstractNodeCallDelete(), UI_AbstractNodeCallDeleteTimed(), UI_AbstractNodeCallRemovaAllChild(), UI_GenInjectedString(), UI_GetFloatFromExpression(), UI_GetStringFromExpression(), and UI_OptionTreeSetSelectedValue().
uiValue_t* UI_GetVariable | ( | const uiCallContext_t * | context, |
int | relativeVarId | ||
) |
Return a variable from the context.
context | Call context |
relativeVarId | id of the variable relative to the context |
Definition at line 517 of file ui_actions.cpp.
References ui_global, uiGlobal_s::variableStack, and uiCallContext_s::varPosition.
Referenced by UI_GetFloatFromExpression(), UI_GetNodeFromExpression(), and UI_GetStringFromExpression().
Definition at line 1034 of file ui_actions.cpp.
References Cmd_AddCommand(), UI_AddCvarListener_f(), UI_AddListener_f(), UI_CheckActionTokenTypeSanity(), UI_RemoveCvarListener_f(), and UI_RemoveListener_f().
Referenced by UI_Init().
bool UI_IsInjectedString | ( | const char * | string | ) |
Test if a string use an injection syntax.
[in] | string | The string to check for injection |
Definition at line 751 of file ui_actions.cpp.
Referenced by UI_ParseSetAction(), and UI_ParseValueExpression().
void UI_PoolAllocAction | ( | uiAction_t ** | action, |
int | type, | ||
const void * | data | ||
) |
Set a new action to a uiAction_t
pointer.
[in,out] | action | Allocated action |
[in] | type | Only EA_CMD is supported |
[in] | data | The data for this action - in case of EA_CMD this is the commandline |
ui_global.actions
array Definition at line 814 of file ui_actions.cpp.
References Com_Error(), EA_CMD, ERR_FATAL, Mem_PoolAllocType, Mem_PoolStrDup, type, and ui_sysPool.
Referenced by UI_PopupList(), and UI_SetOneButton().
Remove a function callback from a node event. There can be more than on listener.
[in,out] | node | The node to remove the listener from. |
[in] | property | The property of the node to remove the listener from. |
[in] | functionNode | The node of the listener callback. |
Definition at line 906 of file ui_actions.cpp.
References Cmd_Argv(), Com_Printf(), uiAction_s::d, EA_LISTENER, Mem_Free, uiAction_s::next, uiAction_s::nonTerminal, uiNode_t::onClick, and uiAction_s::terminal.
Referenced by uiConFuncNode::onWindowClosed(), and UI_RemoveListener_f().