cOMS/ui/UILayout.h

36 lines
1.0 KiB
C

#ifndef TOS_UI_LAYOUT_H
#define TOS_UI_LAYOUT_H
#include "../stdlib/Types.h"
#include "../stdlib/HashMap.h"
#include "UIElement.h"
// Modified for every scene
struct UILayout {
int32 ui_deadzone_size = 5;
UIElementDimension ui_deadzone[5];
int32 element_hoverable_size;
int32 element_hoverable_pos;
UIElementDimension* elements_hoverable;
int32 element_interactible_size;
int32 element_interactible_pos;
UIElementDimension* elements_interactible;
// @question Since we use a hashmap below, do we even need the size?
// Isn't the size exactly the same as the hash_map buf size
int32 element_size;
int32 element_pos;
HashMap hash_map; // Used to directly find element by name
// @question Do we even need this or should the hashmap values be the elements directly?
// In other places (e.g. theme) we simply define a byte* data variable which actually holds the info.
UIElement* elements;
int32 vertex_size;
int32 vertex_pos;
Vertex3DTextureColorIndex* vertices;
};
#endif