summaryrefslogtreecommitdiff
path: root/src/static-ui.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/static-ui.hpp')
-rw-r--r--src/static-ui.hpp28
1 files changed, 25 insertions, 3 deletions
diff --git a/src/static-ui.hpp b/src/static-ui.hpp
index adc410a..3abfd26 100644
--- a/src/static-ui.hpp
+++ b/src/static-ui.hpp
@@ -82,6 +82,24 @@ 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));
+const PKE_UI_BOX_STATE_FLAG PKE_UI_BOX_STATE_FLAG_ON_BTN_PRIMARY_PRESS
+ = PKE_UI_BOX_STATE_FLAG((PKE_UI_BOX_STATE_FLAG_T(1) << 3));
+const PKE_UI_BOX_STATE_FLAG PKE_UI_BOX_STATE_FLAG_ON_BTN_PRIMARY_RELEASE
+ = PKE_UI_BOX_STATE_FLAG((PKE_UI_BOX_STATE_FLAG_T(1) << 4));
+const PKE_UI_BOX_STATE_FLAG PKE_UI_BOX_STATE_FLAG_ON_BTN_PRIMARY_PRESSED
+ = PKE_UI_BOX_STATE_FLAG((PKE_UI_BOX_STATE_FLAG_T(1) << 5));
+const PKE_UI_BOX_STATE_FLAG PKE_UI_BOX_STATE_FLAG_ON_BTN_SECONDARY_PRESS
+ = PKE_UI_BOX_STATE_FLAG((PKE_UI_BOX_STATE_FLAG_T(1) << 6));
+const PKE_UI_BOX_STATE_FLAG PKE_UI_BOX_STATE_FLAG_ON_BTN_SECONDARY_RELEASE
+ = PKE_UI_BOX_STATE_FLAG((PKE_UI_BOX_STATE_FLAG_T(1) << 7));
+const PKE_UI_BOX_STATE_FLAG PKE_UI_BOX_STATE_FLAG_ON_BTN_SECONDARY_PRESSED
+ = PKE_UI_BOX_STATE_FLAG((PKE_UI_BOX_STATE_FLAG_T(1) << 8));
+const PKE_UI_BOX_STATE_FLAG PKE_UI_BOX_STATE_FLAG_ON_BTN_MIDDLE_PRESS
+ = PKE_UI_BOX_STATE_FLAG((PKE_UI_BOX_STATE_FLAG_T(1) << 9));
+const PKE_UI_BOX_STATE_FLAG PKE_UI_BOX_STATE_FLAG_ON_BTN_MIDDLE_RELEASE
+ = PKE_UI_BOX_STATE_FLAG((PKE_UI_BOX_STATE_FLAG_T(1) << 10));
+const PKE_UI_BOX_STATE_FLAG PKE_UI_BOX_STATE_FLAG_ON_BTN_MIDDLE_PRESSED
+ = PKE_UI_BOX_STATE_FLAG((PKE_UI_BOX_STATE_FLAG_T(1) << 11));
typedef uint16_t pke_ui_box_count_T;
@@ -100,6 +118,7 @@ struct pke_ui_box : public Entity_Base {
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;
+ PKE_UI_BOX_STATE_FLAG state_flags_mem;
struct pke_ui_box_internals {
// the exact px to translate (shader)
glm::vec2 px_corner;
@@ -112,6 +131,7 @@ struct pke_ui_box : public Entity_Base {
pke_ui_box **children;
pke_ui_box_count_T h_children;
pke_ui_box_count_T r_children;
+ uint8_t depth;
} internal;
};
@@ -122,7 +142,8 @@ union pke_ui_box_type_data {
} text;
struct pke_ui_box_type_data_button_text {
FontRenderHandle font_render_handle;
- pk_ev_id_T ev_mgr;
+ PkeEventHandle pke_event_handle;
+ pk_ev_id_T ev_id;
} button_text;
struct pke_ui_box_type_data_button_image {
VkDeviceMemory image_memory;
@@ -132,7 +153,8 @@ union pke_ui_box_type_data {
VkImageView image_view_hovered;
VkImage image_pressed;
VkImageView image_view_pressed;
- pk_ev_id_T ev_mgr;
+ PkeEventHandle pke_event_handle;
+ pk_ev_id_T ev_id;
} button_image;
};
@@ -161,7 +183,7 @@ pke_ui_box *pke_ui_box_new_child(pke_ui_box *parent, const PKE_UI_BOX_TYPE type
#ifdef PKE_TEST_EXPOSE
void pke_ui_calc_px(pk_arr_t<pke_ui_box_instance_buffer_item> &buffer, pke_ui_flex_params *flex_params, pke_ui_box *box);
-void pke_ui_recalc_sizes_recursive(pk_arr_t<pke_ui_box_instance_buffer_item> &arr, pke_ui_box *box, uint8_t depth = 0);
+void pke_ui_recalc_sizes_recursive(pk_arr_t<pke_ui_box_instance_buffer_item> &arr, pke_ui_box *box);
#endif
pke_ui_graphics_bindings *pke_ui_get_graphics_bindings();