mirror of
https://github.com/Karaka-Management/cOMS.git
synced 2026-01-11 11:18:40 +00:00
152 lines
5.0 KiB
C++
152 lines
5.0 KiB
C++
#ifndef TOS_UI_STYLE_H
|
|
#define TOS_UI_STYLE_H
|
|
|
|
#include "../stdlib/Types.h"
|
|
|
|
struct UIAttribute {
|
|
// Attributes use ids instead of strings
|
|
int32 attribute_id;
|
|
|
|
union {
|
|
char value_str[32];
|
|
int32 value_int;
|
|
f32 value_float;
|
|
v4_f32 value_v4_f32;
|
|
};
|
|
};
|
|
|
|
struct UIAttributeGroup {
|
|
int32 attribute_count;
|
|
UIAttribute* attributes;
|
|
};
|
|
|
|
enum UIAttributeType {
|
|
UI_ATTRIBUTE_TYPE_FONT_COLOR,
|
|
UI_ATTRIBUTE_TYPE_FONT_SIZE,
|
|
UI_ATTRIBUTE_TYPE_FONT_WEIGHT,
|
|
UI_ATTRIBUTE_TYPE_FONT_LINE_HEIGHT,
|
|
|
|
UI_ATTRIBUTE_TYPE_ALIGN_H,
|
|
UI_ATTRIBUTE_TYPE_ALIGN_V,
|
|
|
|
UI_ATTRIBUTE_TYPE_ZINDEX,
|
|
|
|
UI_ATTRIBUTE_TYPE_BACKGROUND_COLOR,
|
|
UI_ATTRIBUTE_TYPE_BACKGROUND_IMG,
|
|
UI_ATTRIBUTE_TYPE_BACKGROUND_IMG_OPACITY,
|
|
UI_ATTRIBUTE_TYPE_BACKGROUND_IMG_POSITION_V,
|
|
UI_ATTRIBUTE_TYPE_BACKGROUND_IMG_POSITION_H,
|
|
UI_ATTRIBUTE_TYPE_BACKGROUND_IMG_STYLE,
|
|
|
|
UI_ATTRIBUTE_TYPE_BORDER_COLOR,
|
|
UI_ATTRIBUTE_TYPE_BORDER_WIDTH,
|
|
UI_ATTRIBUTE_TYPE_BORDER_TOP_COLOR,
|
|
UI_ATTRIBUTE_TYPE_BORDER_TOP_WIDTH,
|
|
UI_ATTRIBUTE_TYPE_BORDER_RIGHT_COLOR,
|
|
UI_ATTRIBUTE_TYPE_BORDER_RIGHT_WIDTH,
|
|
UI_ATTRIBUTE_TYPE_BORDER_BOTTOM_COLOR,
|
|
UI_ATTRIBUTE_TYPE_BORDER_BOTTOM_WIDTH,
|
|
UI_ATTRIBUTE_TYPE_BORDER_LEFT_COLOR,
|
|
UI_ATTRIBUTE_TYPE_BORDER_LEFT_WIDTH,
|
|
|
|
UI_ATTRIBUTE_TYPE_PADDING,
|
|
UI_ATTRIBUTE_TYPE_PADDING_TOP,
|
|
UI_ATTRIBUTE_TYPE_PADDING_RIGHT,
|
|
UI_ATTRIBUTE_TYPE_PADDING_BOTTOM,
|
|
UI_ATTRIBUTE_TYPE_PADDING_LEFT,
|
|
|
|
UI_ATTRIBUTE_TYPE_SHADOW_INNER_COLOR,
|
|
UI_ATTRIBUTE_TYPE_SHADOW_INNER_ANGLE,
|
|
UI_ATTRIBUTE_TYPE_SHADOW_INNER_DISTANCE,
|
|
|
|
UI_ATTRIBUTE_TYPE_SHADOW_OUTER_COLOR,
|
|
UI_ATTRIBUTE_TYPE_SHADOW_OUTER_ANGLE,
|
|
UI_ATTRIBUTE_TYPE_SHADOW_OUTER_DISTANCE,
|
|
|
|
UI_ATTRIBUTE_TYPE_TRANSITION_ANIMATION,
|
|
UI_ATTRIBUTE_TYPE_TRANSITION_DURATION,
|
|
|
|
UI_ATTRIBUTE_TYPE_SIZE,
|
|
};
|
|
|
|
constexpr const char* ui_attribute_type_to_string(int32 e)
|
|
{
|
|
switch (e) {
|
|
case UI_ATTRIBUTE_TYPE_FONT_COLOR:
|
|
return "font_color";
|
|
case UI_ATTRIBUTE_TYPE_FONT_SIZE:
|
|
return "font_size";
|
|
case UI_ATTRIBUTE_TYPE_FONT_WEIGHT:
|
|
return "font_weight";
|
|
case UI_ATTRIBUTE_TYPE_FONT_LINE_HEIGHT:
|
|
return "font_line_height";
|
|
case UI_ATTRIBUTE_TYPE_ALIGN_H:
|
|
return "align_h";
|
|
case UI_ATTRIBUTE_TYPE_ALIGN_V:
|
|
return "align_v";
|
|
case UI_ATTRIBUTE_TYPE_ZINDEX:
|
|
return "zindex";
|
|
case UI_ATTRIBUTE_TYPE_BACKGROUND_COLOR:
|
|
return "background_color";
|
|
case UI_ATTRIBUTE_TYPE_BACKGROUND_IMG:
|
|
return "background_img";
|
|
case UI_ATTRIBUTE_TYPE_BACKGROUND_IMG_OPACITY:
|
|
return "background_img_opacity";
|
|
case UI_ATTRIBUTE_TYPE_BACKGROUND_IMG_POSITION_V:
|
|
return "background_img_position_v";
|
|
case UI_ATTRIBUTE_TYPE_BACKGROUND_IMG_POSITION_H:
|
|
return "background_img_position_h";
|
|
case UI_ATTRIBUTE_TYPE_BACKGROUND_IMG_STYLE:
|
|
return "background_img_style";
|
|
case UI_ATTRIBUTE_TYPE_BORDER_COLOR:
|
|
return "border_color";
|
|
case UI_ATTRIBUTE_TYPE_BORDER_WIDTH:
|
|
return "border_width";
|
|
case UI_ATTRIBUTE_TYPE_BORDER_TOP_COLOR:
|
|
return "border_top_color";
|
|
case UI_ATTRIBUTE_TYPE_BORDER_TOP_WIDTH:
|
|
return "border_top_width";
|
|
case UI_ATTRIBUTE_TYPE_BORDER_RIGHT_COLOR:
|
|
return "border_right_color";
|
|
case UI_ATTRIBUTE_TYPE_BORDER_RIGHT_WIDTH:
|
|
return "border_right_width";
|
|
case UI_ATTRIBUTE_TYPE_BORDER_BOTTOM_COLOR:
|
|
return "border_bottom_color";
|
|
case UI_ATTRIBUTE_TYPE_BORDER_BOTTOM_WIDTH:
|
|
return "border_bottom_width";
|
|
case UI_ATTRIBUTE_TYPE_BORDER_LEFT_COLOR:
|
|
return "border_left_color";
|
|
case UI_ATTRIBUTE_TYPE_BORDER_LEFT_WIDTH:
|
|
return "border_left_width";
|
|
case UI_ATTRIBUTE_TYPE_PADDING:
|
|
return "padding";
|
|
case UI_ATTRIBUTE_TYPE_PADDING_TOP:
|
|
return "padding_top";
|
|
case UI_ATTRIBUTE_TYPE_PADDING_RIGHT:
|
|
return "padding_right";
|
|
case UI_ATTRIBUTE_TYPE_PADDING_BOTTOM:
|
|
return "padding_bottom";
|
|
case UI_ATTRIBUTE_TYPE_PADDING_LEFT:
|
|
return "padding_left";
|
|
case UI_ATTRIBUTE_TYPE_SHADOW_INNER_COLOR:
|
|
return "shadow_inner_color";
|
|
case UI_ATTRIBUTE_TYPE_SHADOW_INNER_ANGLE:
|
|
return "shadow_inner_angle";
|
|
case UI_ATTRIBUTE_TYPE_SHADOW_INNER_DISTANCE:
|
|
return "shadow_inner_distance";
|
|
case UI_ATTRIBUTE_TYPE_SHADOW_OUTER_COLOR:
|
|
return "shadow_outer_color";
|
|
case UI_ATTRIBUTE_TYPE_SHADOW_OUTER_ANGLE:
|
|
return "shadow_outer_angle";
|
|
case UI_ATTRIBUTE_TYPE_SHADOW_OUTER_DISTANCE:
|
|
return "shadow_outer_distance";
|
|
case UI_ATTRIBUTE_TYPE_TRANSITION_ANIMATION:
|
|
return "transition_animation";
|
|
case UI_ATTRIBUTE_TYPE_TRANSITION_DURATION:
|
|
return "transition_duration";
|
|
}
|
|
|
|
return NULL;
|
|
}
|
|
|
|
#endif |