lv_style.h
Defines
-
LV_STYLE_SENTINEL_VALUE
-
LV_STYLE_PROP_FLAG_NONE
No special behavior
-
LV_STYLE_PROP_FLAG_INHERITABLE
Inherited
-
LV_STYLE_PROP_FLAG_EXT_DRAW_UPDATE
Requires ext. draw size update when changed
-
LV_STYLE_PROP_FLAG_LAYOUT_UPDATE
Requires layout update when changed
-
LV_STYLE_PROP_FLAG_PARENT_LAYOUT_UPDATE
Requires layout update on parent when changed
-
LV_STYLE_PROP_FLAG_LAYER_UPDATE
Affects layer handling
-
LV_STYLE_PROP_FLAG_TRANSFORM
Affects the object's transformation
-
LV_STYLE_PROP_FLAG_ALL
Indicating all flags
-
LV_SCALE_NONE
Value for not zooming the image
-
LV_STYLE_CONST_INIT(var_name, prop_array)
-
LV_STYLE_CONST_PROPS_END
-
LV_GRAD_LEFT
-
LV_GRAD_RIGHT
-
LV_GRAD_TOP
-
LV_GRAD_BOTTOM
-
LV_GRAD_CENTER
-
LV_ASSERT_STYLE(style_p)
Enums
-
enum lv_blend_mode_t
Possible options for blending 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_DIFFERENCE
Absolute difference between 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 [anonymous]
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_RADIAL_OFFSET
-
enumerator LV_STYLE_PAD_RADIAL
-
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_TRANSLATE_RADIAL
-
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
Note
Do not call
lv_style_init
on 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!- Parameters:
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.
- Parameters:
style – pointer to a style
-
void lv_style_copy(lv_style_t *dst, const lv_style_t *src)
Copy all properties of a style to an other. It has the same affect callying the same
lv_set_style_...
functions on both styles. It means new memory will be allocated to store the properties in the destination style. After the copy the destination style is fully independent of the source and source can removed without affecting the destination style.- Parameters:
dst – the destination to copy into (can not the a constant style)
src – the source style to copy from.
-
static inline bool lv_style_is_const(const lv_style_t *style)
Check if a style is constant
- Parameters:
style – pointer to a style
- Returns:
true: the style is constant
-
lv_style_prop_t lv_style_register_prop(uint8_t flag)
Register a new style property for custom usage
Example:
lv_style_prop_t MY_PROP; static inline void lv_style_set_my_prop(lv_style_t * style, lv_color_t value) { lv_style_value_t v = {.color = value}; lv_style_set_prop(style, MY_PROP, v); } ... MY_PROP = lv_style_register_prop(); ... lv_style_set_my_prop(&style1, lv_palette_main(LV_PALETTE_RED));
- Returns:
a new property ID, or LV_STYLE_PROP_INV if there are no more available.
-
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
- Parameters:
style – pointer to a style
prop – a style property ORed with a state.
- Returns:
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()
- Parameters:
style – pointer to style
prop – the ID of a property (e.g.
LV_STYLE_BG_COLOR
)value –
lv_style_value_t
variable 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
Note
For performance reasons there are no sanity check on
style
- Parameters:
style – pointer to a style
prop – the ID of a property
value – pointer to a
lv_style_value_t
variable to store the value
- Returns:
LV_RESULT_INVALID: the property wasn't found in the style (
value
is unchanged) LV_RESULT_OK: the property was fond, andvalue
is 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)
Initialize a transition descriptor.
Example:
const static lv_style_prop_t trans_props[] = { LV_STYLE_BG_OPA, LV_STYLE_BG_COLOR, 0 }; static lv_style_transition_dsc_t trans1; lv_style_transition_dsc_init(&trans1, trans_props, NULL, 300, 0, NULL);
- Parameters:
tr – pointer to a transition descriptor to initialize
props – an array with the properties to transition. The last element must be zero.
path_cb – an animation path (ease) callback. If
NULL
liner path will be used.time – duration of the transition in [ms]
delay – delay before the transition in [ms]
user_data – any custom data that will be saved in the transition animation and will be available when
path_cb
is called
-
lv_style_value_t lv_style_prop_get_default(lv_style_prop_t prop)
Get the default value of a property
- Parameters:
prop – the ID of a property
- Returns:
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
Note
For performance reasons there are no sanity check on
style
Note
This function is the same as lv_style_get_prop but inlined. Use it only on performance critical places
- Parameters:
style – pointer to a style
prop – the ID of a property
value – pointer to a
lv_style_value_t
variable to store the value
- Returns:
LV_RESULT_INVALID: the property wasn't found in the style (
value
is unchanged) LV_RESULT_OK: the property was fond, andvalue
is set accordingly
-
bool lv_style_is_empty(const lv_style_t *style)
Checks if a style is empty (has no properties)
- Parameters:
style – pointer to a style
- Returns:
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.
- Parameters:
prop – a style property
- Returns:
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.
- Parameters:
prop – a style property
- Returns:
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_margin_hor(lv_style_t *style, int32_t value)
-
static inline void lv_style_set_margin_ver(lv_style_t *style, int32_t value)
-
static inline void lv_style_set_margin_all(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.
- Parameters:
prop – Property ID
flag – Flag
- Returns:
true if the flag is set for this property
Variables
-
const lv_style_prop_t lv_style_const_prop_id_inv
-
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).