|
Stardew Engine
|
#include "ObjectPool.h"#include "HandleDefs.h"#include <stdbool.h>#include "DynArray.h"#include "Geometry.h"

Go to the source code of this file.
Data Structures | |
| struct | WidgetPadding |
| struct | WidgetScale |
| struct | WidgetDim |
| struct | LuaWidgetCallback |
| struct | CWidgetMouseCallback |
| this isn't some "hungarian notation" shit - the name refers to widget callbacks defined as C functions! More... | |
| struct | CWidgetCallbacks |
| struct | LuaWidgetCallbacks |
| struct | WidgetPropertyBinding |
| struct | WidgetMouseInfo |
| struct | UIWidget |
Macros | |
| #define | LUA_CALLBACK_MAX_NAME_LEN 64 |
| #define | NUM_BUTTONS 3 |
| #define | MAX_PROPERTY_NAME_LEN 32 |
| #define | MAX_NUM_BINDINGS 16 |
Typedefs | |
| typedef int(* | PrintfFn) (const char *restrict fmt,...) |
| typedef struct Vert2DColourTexture | WidgetVertex |
| typedef struct Vert2DColourTextureQuad | WidgetQuad |
| typedef float(* | GetUIWidgetDimensionFn) (struct UIWidget *pWidget, struct UIWidget *pParent) |
| typedef void(* | LayoutChildrenFn) (struct UIWidget *pWidget, struct UIWidget *pParent) |
| typedef void(* | OnDestroyWidgetFn) (struct UIWidget *pWidget) |
| typedef void *(* | OutputWidgetVerticesFn) (struct UIWidget *pThisWidget, VECTOR(WidgetVertex) pOutVerts) |
| typedef void(* | OnWidgetInitFn) (struct UIWidget *pWidget) |
| typedef void(* | OnBoundPropertyChangedFn) (struct UIWidget *pThisWidget, struct WidgetPropertyBinding *pBinding) |
| typedef struct WidgetDim *(* | WidgetDimGetterFn) (struct UIWidget *pWidget) |
| typedef void(* | FocusedWidgetRecieveKeystrokeFn) (struct UIWidget *pWidget, int keystroke) |
| typedef void(* | OnChildrenChangedFn) (struct UIWidget *pWidget) |
| typedef enum WidgetHorizontalAlignment | WidgetHorizontalAlignment |
| typedef enum WidgetVerticalAlignment | WidgetVerticalAlignment |
| typedef enum WidgetDockPoint | WidgetDockPoint |
| typedef void(* | WidgetMousePosCallbackFn) (struct UIWidget *pWidget, float x, float y) |
| typedef void(* | WidgetMouseBtnCallbackFn) (struct UIWidget *pWidget, float x, float y, int btn) |
| typedef void(* | WidgetFocusChangeCallbackFn) (struct UIWidget *pWidget) |
Enumerations | |
| enum | WidgetDimType { WD_Auto , WD_Stretch , WD_Pixels , WD_StretchFraction , WD_Percentage } |
| some are relative to their parent. In which case these should be relative to THEIR parent, fixed, or the top level window. More... | |
| enum | WidgetHorizontalAlignment { WHA_Left , WHA_Middle , WHA_Right } |
| enum | WidgetVerticalAlignment { WVA_Top , WVA_Middle , WVA_Bottom } |
| enum | WidgetDockPoint { WDP_TopLeft , WDP_TopMiddle , WDP_TopRight , WDP_MiddleRight , WDP_BottomRight , WDP_BottomMiddle , WDP_BottomLeft , WDP_MiddleLeft , WDP_Centre } |
| enum | WidgetCallbackTypes { WC_OnMouseEnter , WC_OnMouseLeave , WC_OnMouseMove , WC_OnMouseDown , WC_OnMouseUp , WC_OnGainFocus , WC_OnLeaveFocus , WC_NUM } |
| enum | WidgetPropertyBindingType { WBT_Int , WBT_Float , WBT_String , WBT_Bool , WBT_WidgetTree } |
Functions | |
| struct WidgetDim * | GetWidgetWidthDim (struct UIWidget *pWidget) |
| struct WidgetDim * | GetWidgetHeightDim (struct UIWidget *pWidget) |
| void | UI_Init () |
| void | UI_DestroyWidget (HWidget widget) |
| HWidget | UI_GetScratchWiget () |
| HWidget | UI_NewBlankWidget () |
| size_t | UI_CountWidgetChildrenPtr (struct UIWidget *pWidget) |
| size_t | UI_CountWidgetChildren (HWidget pWidget) |
| struct UIWidget * | UI_GetWidget (HWidget hWidget) |
| struct UIWidget * | UI_FirstChild (HWidget hWidget) |
| void | UI_AddChild (HWidget hParent, HWidget hChild) |
| float | UI_ResolveWidthDimPxls (struct UIWidget *pWidget, const struct WidgetDim *dim) |
| float | UI_ResolveHeightDimPxls (struct UIWidget *pWidget, const struct WidgetDim *dim) |
| void | UI_WidgetCommonInit (struct DataNode *pInNode, struct UIWidget *outWidget) |
| Init common attributes that all widgets can have. | |
| void | UI_DebugPrintCommonWidgetInfo (const struct UIWidget *inWidget, PrintfFn pPrintfFn) |
| print a text representation of the widget tree. Falls appart if a widget fails to implement its debug print hook correctly. Shit. DON'T USE | |
| void * | UI_Helper_OnOutputVerts (struct UIWidget *pWidget, VECTOR(WidgetVertex) pOutVerts) |
| void | UI_Helper_OnLayoutChildren (struct UIWidget *pWidget, struct UIWidget *pParent) |
| void | UI_GetWidgetSize (HWidget hWidget, float *pOutW, float *pOutH) |
| void | UI_GetWidgetTopLeft (HWidget hWidget, float *pOutLeft, float *pOutTop) |
| get top left BEFORE padding is applied (the raw top left) | |
| void | UI_GetWidgetPadding (HWidget hWidget, float *pOutPaddingTop, float *pOutPaddingBottom, float *pOutPaddingLeft, float *pOutPaddingRight) |
| void | UI_SendWidgetMouseEvent (struct UIWidget *pWidget, enum WidgetCallbackTypes type, struct WidgetMouseInfo *pMouseInfo) |
| send a mouse event to the widget that will be handled either by either or both a lua function and a c function. If both the C function is called first | |
| void | UI_GetHitBox (GeomRect outRect, HWidget hWidget) |
| Get the AABB of the widget, excluding padding. | |
| bool | UI_IsAttributeStringABindingExpression (const char *attributeValue) |
| void | UI_AddStringPropertyBinding (struct UIWidget *pWidget, char *inBoundPropertyName, char *inBindingExpression, char **pOutData, int viewmodelTableIndex) |
| Add a bound string property entry to the widget and initialise a value by calling the binding getter function. | |
| void | UI_AddIntPropertyBinding (struct UIWidget *pWidget, char *inBoundPropertyName, char *inBindingExpression, int *pOutData, int viewmodelTableIndex) |
| void | UI_AddFloatPropertyBinding (struct UIWidget *pWidget, char *inBoundPropertyName, char *inBindingExpression, float *pOutData, int viewmodelTableIndex) |
| char * | UI_MakeBindingGetterFunctionName (const char *inBindingName) |
| USER MUST FREE RETURNED PTR append Get_ to the start of the string. | |
| char * | UI_MakeBindingSetterFunctionName (const char *inBindingName) |
| struct WidgetPropertyBinding * | UI_FindBinding (struct UIWidget *pWidget, const char *bindingName) |
| void | UI_DefaultOnChildrenChanged (struct UIWidget *outWidget) |
| #define LUA_CALLBACK_MAX_NAME_LEN 64 |
| #define MAX_NUM_BINDINGS 16 |
| #define MAX_PROPERTY_NAME_LEN 32 |
| #define NUM_BUTTONS 3 |
| typedef void(* FocusedWidgetRecieveKeystrokeFn) (struct UIWidget *pWidget, int keystroke) |
| typedef void(* OnBoundPropertyChangedFn) (struct UIWidget *pThisWidget, struct WidgetPropertyBinding *pBinding) |
| typedef void(* OnChildrenChangedFn) (struct UIWidget *pWidget) |
| typedef void(* OnDestroyWidgetFn) (struct UIWidget *pWidget) |
| typedef void(* OnWidgetInitFn) (struct UIWidget *pWidget) |
| typedef void *(* OutputWidgetVerticesFn) (struct UIWidget *pThisWidget, VECTOR(WidgetVertex) pOutVerts) |
| typedef int(* PrintfFn) (const char *restrict fmt,...) |
| typedef enum WidgetDockPoint WidgetDockPoint |
| typedef void(* WidgetFocusChangeCallbackFn) (struct UIWidget *pWidget) |
| typedef enum WidgetHorizontalAlignment WidgetHorizontalAlignment |
| typedef void(* WidgetMouseBtnCallbackFn) (struct UIWidget *pWidget, float x, float y, int btn) |
| typedef void(* WidgetMousePosCallbackFn) (struct UIWidget *pWidget, float x, float y) |
| typedef struct Vert2DColourTextureQuad WidgetQuad |
| typedef struct Vert2DColourTexture WidgetVertex |
| typedef enum WidgetVerticalAlignment WidgetVerticalAlignment |
| enum WidgetCallbackTypes |
| enum WidgetDimType |
some are relative to their parent. In which case these should be relative to THEIR parent, fixed, or the top level window.
| enum WidgetDockPoint |
| void UI_AddFloatPropertyBinding | ( | struct UIWidget * | pWidget, |
| char * | inBoundPropertyName, | ||
| char * | inBindingExpression, | ||
| float * | pOutData, | ||
| int | viewmodelTableIndex | ||
| ) |
| void UI_AddIntPropertyBinding | ( | struct UIWidget * | pWidget, |
| char * | inBoundPropertyName, | ||
| char * | inBindingExpression, | ||
| int * | pOutData, | ||
| int | viewmodelTableIndex | ||
| ) |
| void UI_AddStringPropertyBinding | ( | struct UIWidget * | pWidget, |
| char * | inBoundPropertyName, | ||
| char * | inBindingExpression, | ||
| char ** | pOutData, | ||
| int | viewmodelTableIndex | ||
| ) |
Add a bound string property entry to the widget and initialise a value by calling the binding getter function.
| pWidget | theWidget to add the property binding. When the value changes the property of the widget will change when OnPropertyChanged is called. 2 way bindings will also be introduced for sliders, text entry fields, ect |
| inBoundPropertyName | bound property name - as it appears in the viewmodel lua table |
| inBindingExpression | the incoming binding expression, i.e. {spritename} |
| pOutData | the value returned from calling the lua string getter - allocates a string setting the pointer. user must deallocate |
| viewmodelTableIndex | the index in the lua registry that contains the lua table containing the function to call |
| size_t UI_CountWidgetChildren | ( | HWidget | pWidget | ) |
| size_t UI_CountWidgetChildrenPtr | ( | struct UIWidget * | pWidget | ) |
print a text representation of the widget tree. Falls appart if a widget fails to implement its debug print hook correctly. Shit. DON'T USE
| inWidget | |
| pPrintfFn |
| void UI_DefaultOnChildrenChanged | ( | struct UIWidget * | outWidget | ) |
| void UI_DestroyWidget | ( | HWidget | widget | ) |
| struct WidgetPropertyBinding * UI_FindBinding | ( | struct UIWidget * | pWidget, |
| const char * | bindingName | ||
| ) |
Get the AABB of the widget, excluding padding.
| outRect | |
| hWidget |
| HWidget UI_GetScratchWiget | ( | ) |
| void UI_GetWidgetPadding | ( | HWidget | hWidget, |
| float * | pOutPaddingTop, | ||
| float * | pOutPaddingBottom, | ||
| float * | pOutPaddingLeft, | ||
| float * | pOutPaddingRight | ||
| ) |
| void UI_GetWidgetSize | ( | HWidget | hWidget, |
| float * | pOutW, | ||
| float * | pOutH | ||
| ) |
| void UI_GetWidgetTopLeft | ( | HWidget | hWidget, |
| float * | pOutLeft, | ||
| float * | pOutTop | ||
| ) |
get top left BEFORE padding is applied (the raw top left)
| hWidget | |
| pOutLeft | |
| pOutTop |
| void * UI_Helper_OnOutputVerts | ( | struct UIWidget * | pWidget, |
| VECTOR(WidgetVertex) | pOutVerts | ||
| ) |
| void UI_Init | ( | ) |
| bool UI_IsAttributeStringABindingExpression | ( | const char * | attributeValue | ) |
| attributeValue |
| char * UI_MakeBindingGetterFunctionName | ( | const char * | inBindingName | ) |
USER MUST FREE RETURNED PTR append Get_ to the start of the string.
| inBindingName |
| char * UI_MakeBindingSetterFunctionName | ( | const char * | inBindingName | ) |
| HWidget UI_NewBlankWidget | ( | ) |
| void UI_SendWidgetMouseEvent | ( | struct UIWidget * | pWidget, |
| enum WidgetCallbackTypes | type, | ||
| struct WidgetMouseInfo * | pMouseInfo | ||
| ) |
send a mouse event to the widget that will be handled either by either or both a lua function and a c function. If both the C function is called first
| pWidget | |
| <br> | |
| pMouseInfo | data about the event |