#pragma once #include #include #include #include #include namespace ext { namespace GuiBehavior { UF_BEHAVIOR_DEFINE_TYPE(); EXT_BEHAVIOR_DEFINE_TRAITS(); EXT_BEHAVIOR_DEFINE_FUNCTIONS(); UF_BEHAVIOR_DEFINE_METADATA( pod::Vector4f color = {1,1,1,1}; bool world = false; pod::Vector2f size = {0,0}; size_t mode = 0; struct { pod::Vector2f min = { 1, 1 }; pod::Vector2f max = { -1, -1 }; } box; bool clickable = false; bool clicked = false; bool hoverable = false; bool hovered = false; pod::Vector4f uv = {0, 0, 1, 1}; size_t shader = 0; float depth = 0; float alpha = -1; ); struct GlyphMetadata : public pod::Behavior::Metadata { void serialize( uf::Object&, uf::Serializer& ); void deserialize( uf::Object&, uf::Serializer& ); uf::stl::string font = ""; uf::stl::string string = ""; float scale = 0; pod::Vector2f padding = {0,0}; float spread = 0; float size = 0; float weight = 0; bool sdf = false; bool shadowbox = false; pod::Vector4f stroke = {0,0,0,0}; uf::stl::string origin = ""; uf::stl::string align = ""; uf::stl::string direction = ""; }; } }