cOMS/ui/attribute/UIAttributeType.h

113 lines
3.6 KiB
C

#ifndef TOS_UI_ATTRIBUTE_TYPE_H
#define TOS_UI_ATTRIBUTE_TYPE_H
#include "../../stdlib/Types.h"
enum UIAttributeType : uint16 {
UI_ATTRIBUTE_TYPE_NONE,
UI_ATTRIBUTE_TYPE_TYPE,
UI_ATTRIBUTE_TYPE_MIN_VALUE,
UI_ATTRIBUTE_TYPE_MAX_VALUE,
UI_ATTRIBUTE_TYPE_MAX_INPUT_LENGTH,
UI_ATTRIBUTE_TYPE_DIMENSION_X,
UI_ATTRIBUTE_TYPE_DIMENSION_Y,
UI_ATTRIBUTE_TYPE_DIMENSION_WIDTH,
UI_ATTRIBUTE_TYPE_DIMENSION_HEIGHT,
// Allows elements to overflow their parent while still positioned relative to their parent element
// e.g. Text in a button (e.g. a cooldown timer of a skill could be positioned below a button)
UI_ATTRIBUTE_TYPE_DIMENSION_OVERFLOW,
UI_ATTRIBUTE_TYPE_CONTENT,
UI_ATTRIBUTE_TYPE_CONTENT_ALIGN_H,
UI_ATTRIBUTE_TYPE_CONTENT_ALIGN_V,
UI_ATTRIBUTE_TYPE_FONT_NAME,
UI_ATTRIBUTE_TYPE_FONT_COLOR_INDEX,
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_POSITION_X,
UI_ATTRIBUTE_TYPE_POSITION_Y,
UI_ATTRIBUTE_TYPE_PARENT,
// Sub styles for components
// E.g. scroll bar usess style1 for background box and style2 for movable bar
UI_ATTRIBUTE_TYPE_STYLE1,
UI_ATTRIBUTE_TYPE_STYLE2,
UI_ATTRIBUTE_TYPE_STYLE3,
UI_ATTRIBUTE_TYPE_STYLE4,
UI_ATTRIBUTE_TYPE_STYLE5,
UI_ATTRIBUTE_TYPE_STYLE6,
UI_ATTRIBUTE_TYPE_STYLE7,
UI_ATTRIBUTE_TYPE_STYLE8,
UI_ATTRIBUTE_TYPE_FOREGROUND_COLOR_INDEX,
UI_ATTRIBUTE_TYPE_FOREGROUND_COLOR,
UI_ATTRIBUTE_TYPE_FOREGROUND_IMG,
UI_ATTRIBUTE_TYPE_FOREGROUND_IMG_OPACITY,
UI_ATTRIBUTE_TYPE_FOREGROUND_IMG_POSITION_V,
UI_ATTRIBUTE_TYPE_FOREGROUND_IMG_POSITION_H,
UI_ATTRIBUTE_TYPE_FOREGROUND_IMG_STYLE,
UI_ATTRIBUTE_TYPE_BACKGROUND_COLOR_INDEX,
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_INDEX,
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_SCROLL_STYLE,
UI_ATTRIBUTE_TYPE_SCROLL_X,
UI_ATTRIBUTE_TYPE_SCROLL_Y,
UI_ATTRIBUTE_TYPE_SHADOW_INNER_COLOR_INDEX,
UI_ATTRIBUTE_TYPE_SHADOW_INNER_COLOR,
UI_ATTRIBUTE_TYPE_SHADOW_INNER_ANGLE,
UI_ATTRIBUTE_TYPE_SHADOW_INNER_DISTANCE,
UI_ATTRIBUTE_TYPE_SHADOW_OUTER_COLOR_INDEX,
UI_ATTRIBUTE_TYPE_SHADOW_OUTER_COLOR,
UI_ATTRIBUTE_TYPE_SHADOW_OUTER_ANGLE,
UI_ATTRIBUTE_TYPE_SHADOW_OUTER_DISTANCE,
// @todo This isn't enough, we can have many animations (position, size, colors, ...)
// Maybe we need to define an animation child which overwrites the defined values
// Maybe it should use the same system as state dependent values like hover, active, ...
UI_ATTRIBUTE_TYPE_TRANSITION_ANIMATION,
UI_ATTRIBUTE_TYPE_TRANSITION_DURATION,
UI_ATTRIBUTE_TYPE_SIZE,
};
#endif