diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-07-23 15:22:37 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-07-23 15:22:37 -0400 |
| commit | 7d3b7f981998fdeb5375dff70f222821b0cdfc3d (patch) | |
| tree | 7f0e22f0465ee927c8e0ac9bc21e138c7053e759 /src | |
| parent | 956f1dfc5c6617827bad4e3ad1938183ff7597a3 (diff) | |
pke: add PKE_UI_BOX_STATE_FLAG to pke_ui_box
Diffstat (limited to 'src')
| -rw-r--r-- | src/static-ui.hpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/static-ui.hpp b/src/static-ui.hpp index 947f39f..adc410a 100644 --- a/src/static-ui.hpp +++ b/src/static-ui.hpp @@ -20,6 +20,7 @@ struct MSDFGlyphSettings { TypeSafeInt_H(PKE_UI_BOX_TYPE, uint8_t, 0xFF); TypeSafeInt_H(PKE_UI_BOX_FLAG, uint64_t, 0xFFFFFFFFFFFFFFFF); +TypeSafeInt_H(PKE_UI_BOX_STATE_FLAG, uint64_t, 0xFFFFFFFFFFFFFFFF); // layouts const PKE_UI_BOX_TYPE PKE_UI_BOX_TYPE_STANDARD @@ -69,6 +70,19 @@ const PKE_UI_BOX_FLAG PKE_UI_BOX_FLAG_VISIBILITY_INVISIBLE = PKE_UI_BOX_FLAG((1 << 7)); // [10-??] +// PKE_UI_BOX_STATE_FLAG represent the current state THIS TICK. +// So, e.g. +// Did the mouse enter this tick. +// Is the mouse hovered. +const PKE_UI_BOX_STATE_FLAG PKE_UI_BOX_STATE_FLAG_NONE + = PKE_UI_BOX_STATE_FLAG((PKE_UI_BOX_STATE_FLAG_T(0) << 0)); +const PKE_UI_BOX_STATE_FLAG PKE_UI_BOX_STATE_FLAG_MOUSE_ENTERED + = PKE_UI_BOX_STATE_FLAG((PKE_UI_BOX_STATE_FLAG_T(1) << 0)); +const PKE_UI_BOX_STATE_FLAG PKE_UI_BOX_STATE_FLAG_MOUSE_EXITED + = PKE_UI_BOX_STATE_FLAG((PKE_UI_BOX_STATE_FLAG_T(1) << 1)); +const PKE_UI_BOX_STATE_FLAG PKE_UI_BOX_STATE_FLAG_MOUSE_HOVER + = PKE_UI_BOX_STATE_FLAG((PKE_UI_BOX_STATE_FLAG_T(1) << 2)); + typedef uint16_t pke_ui_box_count_T; struct pke_ui_box; @@ -85,6 +99,7 @@ struct pke_ui_box : public Entity_Base { glm::vec4 color_border = glm::vec4(1.0, 0.0, 0.0, 1.0); glm::vec4 color_background = glm::vec4(0.2, 0.3, 0.2, 0.5); union pke_ui_box_type_data *type_data; + PKE_UI_BOX_STATE_FLAG state_flags; struct pke_ui_box_internals { // the exact px to translate (shader) glm::vec2 px_corner; |
