lv_style.h
Defines
- 
LV_STYLE_SENTINEL_VALUE
 
- 
LV_STYLE_PROP_FLAG_NONE
 Flags for style behavior
The rest of the flags will have _FLAG added to their name in v9.
- 
LV_STYLE_PROP_FLAG_INHERITABLE
 
- 
LV_STYLE_PROP_FLAG_EXT_DRAW_UPDATE
 
- 
LV_STYLE_PROP_FLAG_LAYOUT_UPDATE
 
- 
LV_STYLE_PROP_FLAG_PARENT_LAYOUT_UPDATE
 
- 
LV_STYLE_PROP_FLAG_LAYER_UPDATE
 
- 
LV_STYLE_PROP_FLAG_TRANSFORM
 
- 
LV_STYLE_PROP_FLAG_ALL
 
- 
LV_SCALE_NONE
 Other constants
- 
LV_STYLE_CONST_INIT(var_name, prop_array)
 
- 
LV_STYLE_CONST_PROPS_END
 
- 
LV_ASSERT_STYLE(p)
 
Typedefs
- 
typedef _lv_blend_mode_t lv_blend_mode_t
 
- 
typedef _lv_text_decor_t lv_text_decor_t
 
- 
typedef _lv_border_side_t lv_border_side_t
 
- 
typedef _lv_grad_dir_t lv_grad_dir_t
 
- 
typedef _lv_style_prop_t lv_style_prop_t
 
- 
typedef _lv_style_res_t lv_style_res_t
 
Enums
- 
enum _lv_blend_mode_t
 Possible options how to blend opaque drawings
Values:
- 
enumerator LV_BLEND_MODE_NORMAL
 Simply mix according to the opacity value
- 
enumerator LV_BLEND_MODE_ADDITIVE
 Add the respective color channels
- 
enumerator LV_BLEND_MODE_SUBTRACTIVE
 Subtract the foreground from the background
- 
enumerator LV_BLEND_MODE_MULTIPLY
 Multiply the foreground and background
- 
enumerator LV_BLEND_MODE_NORMAL
 
- 
enum _lv_text_decor_t
 Some options to apply decorations on texts. 'OR'ed values can be used.
Values:
- 
enumerator LV_TEXT_DECOR_NONE
 
- 
enumerator LV_TEXT_DECOR_UNDERLINE
 
- 
enumerator LV_TEXT_DECOR_STRIKETHROUGH
 
- 
enumerator LV_TEXT_DECOR_NONE
 
- 
enum _lv_border_side_t
 Selects on which sides border should be drawn 'OR'ed values can be used.
Values:
- 
enumerator LV_BORDER_SIDE_NONE
 
- 
enumerator LV_BORDER_SIDE_BOTTOM
 
- 
enumerator LV_BORDER_SIDE_TOP
 
- 
enumerator LV_BORDER_SIDE_LEFT
 
- 
enumerator LV_BORDER_SIDE_RIGHT
 
- 
enumerator LV_BORDER_SIDE_FULL
 
- 
enumerator LV_BORDER_SIDE_INTERNAL
 FOR matrix-like objects (e.g. Button matrix)
- 
enumerator LV_BORDER_SIDE_NONE
 
- 
enum _lv_grad_dir_t
 The direction of the gradient.
Values:
- 
enumerator LV_GRAD_DIR_NONE
 No gradient (the
grad_colorproperty is ignored)
- 
enumerator LV_GRAD_DIR_VER
 Vertical (top to bottom) gradient
- 
enumerator LV_GRAD_DIR_HOR
 Horizontal (left to right) gradient
- 
enumerator LV_GRAD_DIR_NONE
 
- 
enum _lv_style_prop_t
 Enumeration of all built in style properties
Props are split into groups of 16. When adding a new prop to a group, ensure it does not overflow into the next one.
Values:
- 
enumerator LV_STYLE_PROP_INV
 
- 
enumerator LV_STYLE_WIDTH
 
- 
enumerator LV_STYLE_HEIGHT
 
- 
enumerator LV_STYLE_LENGTH
 
- 
enumerator LV_STYLE_MIN_WIDTH
 
- 
enumerator LV_STYLE_MAX_WIDTH
 
- 
enumerator LV_STYLE_MIN_HEIGHT
 
- 
enumerator LV_STYLE_MAX_HEIGHT
 
- 
enumerator LV_STYLE_X
 
- 
enumerator LV_STYLE_Y
 
- 
enumerator LV_STYLE_ALIGN
 
- 
enumerator LV_STYLE_RADIUS
 
- 
enumerator LV_STYLE_PAD_TOP
 
- 
enumerator LV_STYLE_PAD_BOTTOM
 
- 
enumerator LV_STYLE_PAD_LEFT
 
- 
enumerator LV_STYLE_PAD_RIGHT
 
- 
enumerator LV_STYLE_PAD_ROW
 
- 
enumerator LV_STYLE_PAD_COLUMN
 
- 
enumerator LV_STYLE_LAYOUT
 
- 
enumerator LV_STYLE_MARGIN_TOP
 
- 
enumerator LV_STYLE_MARGIN_BOTTOM
 
- 
enumerator LV_STYLE_MARGIN_LEFT
 
- 
enumerator LV_STYLE_MARGIN_RIGHT
 
- 
enumerator LV_STYLE_BG_COLOR
 
- 
enumerator LV_STYLE_BG_OPA
 
- 
enumerator LV_STYLE_BG_GRAD_DIR
 
- 
enumerator LV_STYLE_BG_MAIN_STOP
 
- 
enumerator LV_STYLE_BG_GRAD_STOP
 
- 
enumerator LV_STYLE_BG_GRAD_COLOR
 
- 
enumerator LV_STYLE_BG_MAIN_OPA
 
- 
enumerator LV_STYLE_BG_GRAD_OPA
 
- 
enumerator LV_STYLE_BG_GRAD
 
- 
enumerator LV_STYLE_BASE_DIR
 
- 
enumerator LV_STYLE_BG_IMAGE_SRC
 
- 
enumerator LV_STYLE_BG_IMAGE_OPA
 
- 
enumerator LV_STYLE_BG_IMAGE_RECOLOR
 
- 
enumerator LV_STYLE_BG_IMAGE_RECOLOR_OPA
 
- 
enumerator LV_STYLE_BG_IMAGE_TILED
 
- 
enumerator LV_STYLE_CLIP_CORNER
 
- 
enumerator LV_STYLE_BORDER_WIDTH
 
- 
enumerator LV_STYLE_BORDER_COLOR
 
- 
enumerator LV_STYLE_BORDER_OPA
 
- 
enumerator LV_STYLE_BORDER_SIDE
 
- 
enumerator LV_STYLE_BORDER_POST
 
- 
enumerator LV_STYLE_OUTLINE_WIDTH
 
- 
enumerator LV_STYLE_OUTLINE_COLOR
 
- 
enumerator LV_STYLE_OUTLINE_OPA
 
- 
enumerator LV_STYLE_OUTLINE_PAD
 
- 
enumerator LV_STYLE_SHADOW_WIDTH
 
- 
enumerator LV_STYLE_SHADOW_COLOR
 
- 
enumerator LV_STYLE_SHADOW_OPA
 
- 
enumerator LV_STYLE_SHADOW_OFFSET_X
 
- 
enumerator LV_STYLE_SHADOW_OFFSET_Y
 
- 
enumerator LV_STYLE_SHADOW_SPREAD
 
- 
enumerator LV_STYLE_IMAGE_OPA
 
- 
enumerator LV_STYLE_IMAGE_RECOLOR
 
- 
enumerator LV_STYLE_IMAGE_RECOLOR_OPA
 
- 
enumerator LV_STYLE_LINE_WIDTH
 
- 
enumerator LV_STYLE_LINE_DASH_WIDTH
 
- 
enumerator LV_STYLE_LINE_DASH_GAP
 
- 
enumerator LV_STYLE_LINE_ROUNDED
 
- 
enumerator LV_STYLE_LINE_COLOR
 
- 
enumerator LV_STYLE_LINE_OPA
 
- 
enumerator LV_STYLE_ARC_WIDTH
 
- 
enumerator LV_STYLE_ARC_ROUNDED
 
- 
enumerator LV_STYLE_ARC_COLOR
 
- 
enumerator LV_STYLE_ARC_OPA
 
- 
enumerator LV_STYLE_ARC_IMAGE_SRC
 
- 
enumerator LV_STYLE_TEXT_COLOR
 
- 
enumerator LV_STYLE_TEXT_OPA
 
- 
enumerator LV_STYLE_TEXT_FONT
 
- 
enumerator LV_STYLE_TEXT_LETTER_SPACE
 
- 
enumerator LV_STYLE_TEXT_LINE_SPACE
 
- 
enumerator LV_STYLE_TEXT_DECOR
 
- 
enumerator LV_STYLE_TEXT_ALIGN
 
- 
enumerator LV_STYLE_OPA
 
- 
enumerator LV_STYLE_OPA_LAYERED
 
- 
enumerator LV_STYLE_COLOR_FILTER_DSC
 
- 
enumerator LV_STYLE_COLOR_FILTER_OPA
 
- 
enumerator LV_STYLE_ANIM
 
- 
enumerator LV_STYLE_ANIM_DURATION
 
- 
enumerator LV_STYLE_TRANSITION
 
- 
enumerator LV_STYLE_BLEND_MODE
 
- 
enumerator LV_STYLE_TRANSFORM_WIDTH
 
- 
enumerator LV_STYLE_TRANSFORM_HEIGHT
 
- 
enumerator LV_STYLE_TRANSLATE_X
 
- 
enumerator LV_STYLE_TRANSLATE_Y
 
- 
enumerator LV_STYLE_TRANSFORM_SCALE_X
 
- 
enumerator LV_STYLE_TRANSFORM_SCALE_Y
 
- 
enumerator LV_STYLE_TRANSFORM_ROTATION
 
- 
enumerator LV_STYLE_TRANSFORM_PIVOT_X
 
- 
enumerator LV_STYLE_TRANSFORM_PIVOT_Y
 
- 
enumerator LV_STYLE_TRANSFORM_SKEW_X
 
- 
enumerator LV_STYLE_TRANSFORM_SKEW_Y
 
- 
enumerator LV_STYLE_BITMAP_MASK_SRC
 
- 
enumerator LV_STYLE_ROTARY_SENSITIVITY
 
- 
enumerator LV_STYLE_FLEX_FLOW
 
- 
enumerator LV_STYLE_FLEX_MAIN_PLACE
 
- 
enumerator LV_STYLE_FLEX_CROSS_PLACE
 
- 
enumerator LV_STYLE_FLEX_TRACK_PLACE
 
- 
enumerator LV_STYLE_FLEX_GROW
 
- 
enumerator LV_STYLE_GRID_COLUMN_ALIGN
 
- 
enumerator LV_STYLE_GRID_ROW_ALIGN
 
- 
enumerator LV_STYLE_GRID_ROW_DSC_ARRAY
 
- 
enumerator LV_STYLE_GRID_COLUMN_DSC_ARRAY
 
- 
enumerator LV_STYLE_GRID_CELL_COLUMN_POS
 
- 
enumerator LV_STYLE_GRID_CELL_COLUMN_SPAN
 
- 
enumerator LV_STYLE_GRID_CELL_X_ALIGN
 
- 
enumerator LV_STYLE_GRID_CELL_ROW_POS
 
- 
enumerator LV_STYLE_GRID_CELL_ROW_SPAN
 
- 
enumerator LV_STYLE_GRID_CELL_Y_ALIGN
 
- 
enumerator _LV_STYLE_LAST_BUILT_IN_PROP
 
- 
enumerator _LV_STYLE_NUM_BUILT_IN_PROPS
 
- 
enumerator LV_STYLE_PROP_ANY
 
- 
enumerator _LV_STYLE_PROP_CONST
 
- 
enumerator LV_STYLE_PROP_INV
 
Functions
- 
void lv_style_init(lv_style_t *style)
 Initialize a style
备注
Do not call
lv_style_initon styles that already have some properties because this function won't free the used memory, just sets a default state for the style. In other words be sure to initialize styles only once!- 参数:
 style -- pointer to a style to initialize
- 
void lv_style_reset(lv_style_t *style)
 Clear all properties from a style and free all allocated memories.
- 参数:
 style -- pointer to a style
- 
static inline bool lv_style_is_const(const lv_style_t *style)
 Check if a style is constant
- 参数:
 style -- pointer to a style
- 返回:
 true: the style is constant
- 
lv_style_prop_t lv_style_register_prop(uint8_t flag)
 
- 
lv_style_prop_t lv_style_get_num_custom_props(void)
 Get the number of custom properties that have been registered thus far.
- 
bool lv_style_remove_prop(lv_style_t *style, lv_style_prop_t prop)
 Remove a property from a style
- 参数:
 style -- pointer to a style
prop -- a style property ORed with a state.
- 返回:
 true: the property was found and removed; false: the property wasn't found
- 
void lv_style_set_prop(lv_style_t *style, lv_style_prop_t prop, lv_style_value_t value)
 Set the value of property in a style. This function shouldn't be used directly by the user. Instead use
lv_style_set_<prop_name>(). E.g.lv_style_set_bg_color()- 参数:
 style -- pointer to style
prop -- the ID of a property (e.g.
LV_STYLE_BG_COLOR)value --
lv_style_value_tvariable in which a field is set according to the type ofprop
- 
lv_style_res_t lv_style_get_prop(const lv_style_t *style, lv_style_prop_t prop, lv_style_value_t *value)
 Get the value of a property
备注
For performance reasons there are no sanity check on
style- 参数:
 style -- pointer to a style
prop -- the ID of a property
value -- pointer to a
lv_style_value_tvariable to store the value
- 返回:
 LV_RESULT_INVALID: the property wasn't found in the style (
valueis unchanged) LV_RESULT_OK: the property was fond, andvalueis set accordingly
- 
void lv_style_transition_dsc_init(lv_style_transition_dsc_t *tr, const lv_style_prop_t props[], lv_anim_path_cb_t path_cb, uint32_t time, uint32_t delay, void *user_data)
 
- 
lv_style_value_t lv_style_prop_get_default(lv_style_prop_t prop)
 Get the default value of a property
- 参数:
 prop -- the ID of a property
- 返回:
 the default value
- 
static inline lv_style_res_t lv_style_get_prop_inlined(const lv_style_t *style, lv_style_prop_t prop, lv_style_value_t *value)
 Get the value of a property
备注
For performance reasons there are no sanity check on
style备注
This function is the same as lv_style_get_prop but inlined. Use it only on performance critical places
- 参数:
 style -- pointer to a style
prop -- the ID of a property
value -- pointer to a
lv_style_value_tvariable to store the value
- 返回:
 LV_RESULT_INVALID: the property wasn't found in the style (
valueis unchanged) LV_RESULT_OK: the property was fond, andvalueis set accordingly
- 
bool lv_style_is_empty(const lv_style_t *style)
 Checks if a style is empty (has no properties)
- 参数:
 style -- pointer to a style
- 返回:
 true if the style is empty
- 
static inline uint32_t _lv_style_get_prop_group(lv_style_prop_t prop)
 Tell the group of a property. If the a property from a group is set in a style the (1 << group) bit of style->has_group is set. It allows early skipping the style if the property is not exists in the style at all.
- 参数:
 prop -- a style property
- 返回:
 the group [0..30] 30 means all the custom properties with index > 120
- 
uint8_t _lv_style_prop_lookup_flags(lv_style_prop_t prop)
 Get the flags of a built-in or custom property.
- 参数:
 prop -- a style property
- 返回:
 the flags of the property
- 
static inline void lv_style_set_size(lv_style_t *style, int32_t width, int32_t height)
 
- 
static inline void lv_style_set_pad_all(lv_style_t *style, int32_t value)
 
- 
static inline void lv_style_set_pad_hor(lv_style_t *style, int32_t value)
 
- 
static inline void lv_style_set_pad_ver(lv_style_t *style, int32_t value)
 
- 
static inline void lv_style_set_pad_gap(lv_style_t *style, int32_t value)
 
- 
static inline void lv_style_set_transform_scale(lv_style_t *style, int32_t value)
 
- 
static inline bool lv_style_prop_has_flag(lv_style_prop_t prop, uint8_t flag)
 Check if the style property has a specified behavioral flag.
Do not pass multiple flags to this function as backwards-compatibility is not guaranteed for that.
- 参数:
 prop -- Property ID
flag -- Flag
- 返回:
 true if the flag is set for this property
Variables
- 
const lv_style_prop_t lv_style_const_prop_id_inv
 
- 
struct lv_gradient_stop_t
 - #include <lv_style.h>
A gradient stop definition. This matches a color and a position in a virtual 0-255 scale.
 
- 
struct lv_grad_dsc_t
 - #include <lv_style.h>
A descriptor of a gradient.
Public Members
- 
lv_gradient_stop_t stops[2]
 A gradient stop array
- 
uint8_t stops_count
 The number of used stops in the array
- 
lv_grad_dir_t dir
 The gradient direction. Any of LV_GRAD_DIR_HOR, LV_GRAD_DIR_VER, LV_GRAD_DIR_NONE
 - 
lv_gradient_stop_t stops[2]
 
- 
union lv_style_value_t
 - #include <lv_style.h>
A common type to handle all the property types in the same way.
Public Members
- 
int32_t num
 Number integer number (opacity, enums, booleans or "normal" numbers)
- 
const void *ptr
 Constant pointers (font, cone text, etc)
- 
lv_color_t color
 Colors
 - 
int32_t num
 
- 
struct lv_style_transition_dsc_t
 - #include <lv_style.h>
Descriptor for style transitions
Public Members
- 
const lv_style_prop_t *props
 An array with the properties to animate.
- 
void *user_data
 A custom user data that will be passed to the animation's user_data
- 
lv_anim_path_cb_t path_xcb
 A path for the animation.
- 
uint32_t time
 Duration of the transition in [ms]
- 
uint32_t delay
 Delay before the transition in [ms]
 - 
const lv_style_prop_t *props
 
- 
struct lv_style_const_prop_t
 - #include <lv_style.h>
Descriptor of a constant style property.
 
- 
struct lv_style_t
 - #include <lv_style.h>
Descriptor of a style (a collection of properties and values).