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_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_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_color
property is ignored)
-
enumerator LV_GRAD_DIR_VER
Simple vertical (top to bottom) gradient
-
enumerator LV_GRAD_DIR_HOR
Simple horizontal (left to right) gradient
-
enumerator LV_GRAD_DIR_LINEAR
Linear gradient defined by start and end points. Can be at any angle.
-
enumerator LV_GRAD_DIR_RADIAL
Radial gradient defined by start and end circles
-
enumerator LV_GRAD_DIR_CONICAL
Conical gradient defined by center point, start and end angles
-
enumerator LV_GRAD_DIR_NONE
-
enum lv_grad_extend_t
Gradient behavior outside the defined range.
Values:
-
enumerator LV_GRAD_EXTEND_PAD
Repeat the same color
-
enumerator LV_GRAD_EXTEND_REPEAT
Repeat the pattern
-
enumerator LV_GRAD_EXTEND_REFLECT
Repeat the pattern mirrored
-
enumerator LV_GRAD_EXTEND_PAD
-
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_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
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
-
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_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
-
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_NONE, LV_GRAD_DIR_VER, LV_GRAD_DIR_HOR, LV_GRAD_TYPE_LINEAR, LV_GRAD_TYPE_RADIAL, LV_GRAD_TYPE_CONICAL
-
lv_grad_extend_t extend
Behaviour outside the defined range. LV_GRAD_EXTEND_NONE, LV_GRAD_EXTEND_PAD, LV_GRAD_EXTEND_REPEAT, LV_GRAD_EXTEND_REFLECT
-
lv_point_t start
Linear gradient vector start point
-
lv_point_t end
Linear gradient vector end point
Center of the ending circle in local coordinates
-
struct lv_grad_dsc_t::[anonymous]::[anonymous] linear
-
lv_point_t focal
Center of the focal (starting) circle in local coordinates
-
lv_point_t focal_extent
Point on the circle (can be the same as the center)
-
lv_point_t end_extent
Point on the circle determining the radius of the gradient
-
struct lv_grad_dsc_t::[anonymous]::[anonymous] radial
-
lv_point_t center
Conical gradient center point
-
int16_t start_angle
Start angle 0..3600
-
int16_t end_angle
End angle 0..3600
-
struct lv_grad_dsc_t::[anonymous]::[anonymous] conical
-
union lv_grad_dsc_t::[anonymous] params
-
void *state
-
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).