#include "../../common/common.h"
Go to the source code of this file.
Data Structures | |
union | uiTerminalActionData_t |
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). | |
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. | |
typedef struct uiValue_s | uiValue_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. | |
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_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 } |
Type for uiAction_t It also contain type about type (for example EA_BINARYOPERATOR). More... | |
Functions | |
void | UI_ExecuteEventActions (struct uiNode_s *source, const uiAction_t *firstAction) |
void | UI_ExecuteConFuncActions (struct uiNode_s *source, const uiAction_t *firstAction) |
allow to inject command param into cmd of confunc command | |
qboolean | UI_IsInjectedString (const char *string) |
Test if a string use an injection syntax. | |
void | UI_FreeStringProperty (void *pointer) |
Free a string property if it is allocated into mn_dynStringPool. | |
const char * | UI_GenInjectedString (const char *input, qboolean addNewLine, const uiCallContext_t *context) |
Replace injection identifiers (e.g. <eventParam>) by a value. | |
int | UI_GetActionTokenType (const char *token, int group) |
return an action type from a token, and a group | |
uiValue_t * | UI_GetVariable (const uiCallContext_t *context, int relativeVarId) |
void | UI_PoolAllocAction (uiAction_t **action, int type, const void *data) |
Set a new action to a uiAction_t pointer. | |
uiAction_t * | UI_AllocStaticCommandAction (char *command) |
Allocate and initialize a command action. | |
void | UI_InitActions (void) |
void | UI_AddListener (struct uiNode_s *node, const value_t *property, struct uiNode_s *functionNode) |
Add a callback of a function into a node event. There can be more than on listener. | |
void | UI_RemoveListener (struct uiNode_s *node, const value_t *property, struct uiNode_s *functionNode) |
Remove a function callback from a node event. There can be more than on listener. | |
const char * | UI_GetParam (const uiCallContext_t *context, int paramID) |
int | UI_GetParamNumber (const uiCallContext_t *context) |
Definition in file ui_actions.h.
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:
Merge terminal and nonTerminal, this way is finally stupid. Left can be terminal and right can be non terminal, then the structure make non sens and can create hidden bugs.
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.
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 34 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 759 of file ui_actions.c.
References Com_Printf(), uiAction_s::d, uiNode_s::dynamic, EA_LISTENER, Mem_PoolAlloc, Mem_PoolStrDup, uiAction_s::next, uiAction_s::nonTerminal, uiNode_s::onClick, uiAction_s::terminal, uiAction_s::type, UI_GetPath(), and ui_sysPool.
Referenced by UI_AddListener_f(), and UI_ConFuncNodeInit().
uiAction_t* UI_AllocStaticCommandAction | ( | char * | command | ) |
Allocate and initialize a command action.
[in] | command | A command for the action |
Definition at line 720 of file ui_actions.c.
References uiAction_s::d, EA_CMD, uiAction_s::terminal, uiAction_s::type, and UI_AllocStaticAction().
Referenced by UI_WindowNodeLoaded().
void UI_ExecuteConFuncActions | ( | struct uiNode_s * | source, | |
const uiAction_t * | firstAction | |||
) |
allow to inject command param into cmd of confunc command
Definition at line 652 of file ui_actions.c.
References qtrue, uiCallContext_s::source, UI_ExecuteActions(), and uiCallContext_s::useCmdParam.
Referenced by UI_ConfuncCommand_f().
void UI_ExecuteEventActions | ( | struct uiNode_s * | source, | |
const uiAction_t * | firstAction | |||
) |
Definition at line 661 of file ui_actions.c.
References qfalse, uiCallContext_s::source, UI_ExecuteActions(), and uiCallContext_s::useCmdParam.
Referenced by UI_AbstractNodeActivate(), UI_AbstractOptionSetCurrentValue(), UI_AbstractScrollableNodeSetY(), UI_BarNodeCapturedMouseMove(), UI_BaseInventoryNodeMouseDown(), UI_BaseInventoryNodeUpdateScroll(), UI_ButtonNodeClick(), UI_CheckBoxNodeActivate(), UI_CheckBoxNodeClick(), UI_ClientLayout(), UI_ColumnLayout(), UI_ContainerNodeAutoPlace(), UI_ContainerNodeDNDFinished(), UI_ContainerNodeMouseDown(), UI_ContainerNodeUpdateScroll(), UI_FireInit_f(), UI_FocusExecuteActionNode(), UI_KeyBindingNodeClick(), UI_KeyBindingNodeKeyPressed(), UI_LeftClick(), UI_MaterialEditorMouseDown(), UI_MessageListNodeMouseWheel(), UI_MiddleClick(), UI_MouseMove(), UI_MouseWheel(), UI_OptionListNodeMouseWheel(), UI_OptionListNodeUpdateScroll(), UI_OptionTreeNodeMouseWheel(), UI_OptionTreeNodeUpdateScroll(), UI_OptionTreeSetSelectedValue(), UI_RadioButtonNodeActivate(), UI_RadioButtonNodeClick(), UI_RightClick(), UI_SpinnerNodeStep(), UI_TextEntryNodeAbortEdition(), UI_TextEntryNodeClick(), UI_TextEntryNodeValidateEdition(), UI_TextListNodeClick(), UI_TextListNodeMouseWheel(), UI_TextListNodeRightClick(), UI_TextNodeClick(), UI_TextNodeMouseWheel(), UI_TextNodeRightClick(), UI_TextNodeSelectLine(), UI_TextScrollEnd(), UI_VScrollbarNodeSet(), UI_WindowNodeClose(), UI_WindowNodeDraw(), UI_WindowNodeInit(), and UI_ZoneNodeRepeat().
void UI_FreeStringProperty | ( | void * | pointer | ) |
Free a string property if it is allocated into mn_dynStringPool.
[in,out] | pointer | The pointer to the data that should be freed |
Definition at line 702 of file ui_actions.c.
References _Mem_AllocatedInPool(), uiGlobal_s::adata, uiGlobal_s::adataize, Mem_Free, ui_dynStringPool, and ui_global.
Referenced by UI_DeleteNode(), UI_NodeSetProperty(), UI_NodeSetPropertyFromRAW(), and UI_ReleaseVariable().
const char* UI_GenInjectedString | ( | const char * | input, | |
qboolean | addNewLine, | |||
const uiCallContext_t * | context | |||
) |
Replace injection identifiers (e.g. <eventParam>) by a value.
cmd "set someCvar <min>/<max>"
Definition at line 206 of file ui_actions.c.
References uiNode_s::behaviour, Com_Printf(), Cvar_Get(), MAX_VAR, next, uiNode_s::parent, uiNode_s::root, uiCallContext_s::source, string, 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().
int UI_GetActionTokenType | ( | const char * | token, | |
int | group | |||
) |
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 110 of file ui_actions.c.
References EA_NULL, lengthof, and ui_typedActionToken_t::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 176 of file ui_actions.c.
References Cmd_Argv(), Com_Printf(), linkedList_s::data, linkedList_s::next, uiCallContext_s::paramNumber, uiCallContext_s::params, and uiCallContext_s::useCmdParam.
Referenced by UI_AbstractNodeCallCreateChild(), 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 163 of file ui_actions.c.
References Cmd_Argc(), uiCallContext_s::paramNumber, and uiCallContext_s::useCmdParam.
Referenced by UI_AbstractNodeCallCreateChild(), UI_AbstractNodeCallDelete(), 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 505 of file ui_actions.c.
References ui_global, uiGlobal_s::variableStack, and uiCallContext_s::varPosition.
Referenced by UI_GetFloatFromExpression(), UI_GetNodeFromExpression(), and UI_GetStringFromExpression().
void UI_InitActions | ( | void | ) |
Definition at line 904 of file ui_actions.c.
References Cmd_AddCommand(), UI_AddListener_f(), UI_CheckActionTokenTypeSanity(), and UI_RemoveListener_f().
Referenced by UI_Init().
qboolean UI_IsInjectedString | ( | const char * | string | ) |
Test if a string use an injection syntax.
[in] | string | The string to check for injection |
Definition at line 675 of file ui_actions.c.
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 738 of file ui_actions.c.
References Com_Error(), EA_CMD, ERR_FATAL, Mem_PoolAlloc, Mem_PoolStrDup, 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 834 of file ui_actions.c.
References Cmd_Argv(), Com_Printf(), uiAction_s::d, data, EA_LISTENER, Mem_Free, uiAction_s::next, uiAction_s::nonTerminal, value_s::ofs, uiNode_s::onClick, uiAction_s::terminal, and uiAction_s::type.
Referenced by UI_ConFuncNodeClose(), and UI_RemoveListener_f().