lv_obj_style.h

Typedefs

typedef uint32_t lv_style_selector_t

Enums

enum _lv_style_state_cmp_t

Values:

enumerator _LV_STYLE_STATE_CMP_SAME
enumerator _LV_STYLE_STATE_CMP_DIFF_REDRAW
enumerator _LV_STYLE_STATE_CMP_DIFF_DRAW_PAD
enumerator _LV_STYLE_STATE_CMP_DIFF_LAYOUT

Functions

void _lv_obj_style_init(void)

Initialize the object related style manager module. Called by LVGL in lv_init()

void _lv_obj_style_deinit(void)

Deinitialize the object related style manager module. Called by LVGL in lv_deinit()

void lv_obj_add_style(lv_obj_t *obj, const lv_style_t *style, lv_style_selector_t selector)
bool lv_obj_replace_style(lv_obj_t *obj, const lv_style_t *old_style, const lv_style_t *new_style, lv_style_selector_t selector)
void lv_obj_remove_style(lv_obj_t *obj, const lv_style_t *style, lv_style_selector_t selector)
void lv_obj_remove_style_all(lv_obj_t *obj)

Remove all styles from an object

Parameters:

obj -- pointer to an object

void lv_obj_report_style_change(lv_style_t *style)

Notify all object if a style is modified

Parameters:

style -- pointer to a style. Only the objects with this style will be notified (NULL to notify all objects)

void lv_obj_refresh_style(lv_obj_t *obj, lv_part_t part, lv_style_prop_t prop)

Notify an object and its children about its style is modified.

Parameters:
  • obj -- pointer to an object

  • part -- the part whose style was changed. E.g. LV_PART_ANY, LV_PART_MAIN

  • prop -- LV_STYLE_PROP_ANY or an LV_STYLE_... property. It is used to optimize what needs to be refreshed. LV_STYLE_PROP_INV to perform only a style cache update

void lv_obj_enable_style_refresh(bool en)

Enable or disable automatic style refreshing when a new style is added/removed to/from an object or any other style change happens.

Parameters:

en -- true: enable refreshing; false: disable refreshing

lv_style_value_t lv_obj_get_style_prop(const lv_obj_t *obj, lv_part_t part, lv_style_prop_t prop)

Get the value of a style property. The current state of the object will be considered. Inherited properties will be inherited. If a property is not set a default value will be returned.

Parameters:
  • obj -- pointer to an object

  • part -- a part from which the property should be get

  • prop -- the property to get

Returns:

the value of the property. Should be read from the correct field of the lv_style_value_t according to the type of the property.

bool lv_obj_has_style_prop(const lv_obj_t *obj, lv_style_selector_t selector, lv_style_prop_t prop)

Check if an object has a specified style property for a given style selector.

Parameters:
  • obj -- pointer to an object

  • selector -- the style selector to be checked, defining the scope of the style to be examined.

  • prop -- the property to be checked.

Returns:

true if the object has the specified selector and property, false otherwise.

void lv_obj_set_local_style_prop(lv_obj_t *obj, lv_style_prop_t prop, lv_style_value_t value, lv_style_selector_t selector)

Set local style property on an object's part and state.

Parameters:
  • obj -- pointer to an object

  • prop -- the property

  • value -- value of the property. The correct element should be set according to the type of the property

  • selector -- OR-ed value of parts and state for which the style should be set

lv_style_res_t lv_obj_get_local_style_prop(lv_obj_t *obj, lv_style_prop_t prop, lv_style_value_t *value, lv_style_selector_t selector)
bool lv_obj_remove_local_style_prop(lv_obj_t *obj, lv_style_prop_t prop, lv_style_selector_t selector)

Remove a local style property from a part of an object with a given state.

Parameters:
  • obj -- pointer to an object

  • prop -- a style property to remove.

  • selector -- OR-ed value of parts and state for which the style should be removed

Returns:

true the property was found and removed; false: the property was not found

lv_style_value_t _lv_obj_style_apply_color_filter(const lv_obj_t *obj, uint32_t part, lv_style_value_t v)

Used internally for color filtering

void _lv_obj_style_create_transition(lv_obj_t *obj, lv_part_t part, lv_state_t prev_state, lv_state_t new_state, const _lv_obj_style_transition_dsc_t *tr)

Used internally to create a style transition

Parameters:
  • obj --

  • part --

  • prev_state --

  • new_state --

  • tr --

_lv_style_state_cmp_t _lv_obj_style_state_compare(lv_obj_t *obj, lv_state_t state1, lv_state_t state2)

Used internally to compare the appearance of an object in 2 states

Parameters:
  • obj --

  • state1 --

  • state2 --

Returns:

void lv_obj_fade_in(lv_obj_t *obj, uint32_t time, uint32_t delay)

Fade in an an object and all its children.

Parameters:
  • obj -- the object to fade in

  • time -- time of fade

  • delay -- delay to start the animation

void lv_obj_fade_out(lv_obj_t *obj, uint32_t time, uint32_t delay)

Fade out an an object and all its children.

Parameters:
  • obj -- the object to fade out

  • time -- time of fade

  • delay -- delay to start the animation

static inline lv_state_t lv_obj_style_get_selector_state(lv_style_selector_t selector)
static inline lv_part_t lv_obj_style_get_selector_part(lv_style_selector_t selector)
static inline void lv_obj_set_style_pad_all(lv_obj_t *obj, int32_t value, lv_style_selector_t selector)
static inline void lv_obj_set_style_pad_hor(lv_obj_t *obj, int32_t value, lv_style_selector_t selector)
static inline void lv_obj_set_style_pad_ver(lv_obj_t *obj, int32_t value, lv_style_selector_t selector)
static inline void lv_obj_set_style_margin_all(lv_obj_t *obj, int32_t value, lv_style_selector_t selector)
static inline void lv_obj_set_style_margin_hor(lv_obj_t *obj, int32_t value, lv_style_selector_t selector)
static inline void lv_obj_set_style_margin_ver(lv_obj_t *obj, int32_t value, lv_style_selector_t selector)
static inline void lv_obj_set_style_pad_gap(lv_obj_t *obj, int32_t value, lv_style_selector_t selector)
static inline void lv_obj_set_style_size(lv_obj_t *obj, int32_t width, int32_t height, lv_style_selector_t selector)
static inline void lv_obj_set_style_transform_scale(lv_obj_t *obj, int32_t value, lv_style_selector_t selector)
static inline int32_t lv_obj_get_style_space_left(const lv_obj_t *obj, uint32_t part)
static inline int32_t lv_obj_get_style_space_right(const lv_obj_t *obj, uint32_t part)
static inline int32_t lv_obj_get_style_space_top(const lv_obj_t *obj, uint32_t part)
static inline int32_t lv_obj_get_style_space_bottom(const lv_obj_t *obj, uint32_t part)
lv_text_align_t lv_obj_calculate_style_text_align(const lv_obj_t *obj, lv_part_t part, const char *txt)
static inline int32_t lv_obj_get_style_transform_scale_x_safe(const lv_obj_t *obj, uint32_t part)
static inline int32_t lv_obj_get_style_transform_scale_y_safe(const lv_obj_t *obj, uint32_t part)
lv_opa_t lv_obj_get_style_opa_recursive(const lv_obj_t *obj, lv_part_t part)

Get the opa style property from all parents and multiply and >> 8 them.

Parameters:
  • obj -- the object whose opacity should be get

  • part -- the part whose opacity should be get. Non-MAIN parts will consider the opa of the MAIN part too

Returns:

the final opacity considering the parents' opacity too

void _lv_obj_update_layer_type(lv_obj_t *obj)

Update the layer type of a widget bayed on its current styles. The result will be stored in obj->spec_attr->layer_type

Parameters:

obj -- the object whose layer should be updated

struct _lv_obj_style_t

Public Members

const lv_style_t *style
uint32_t selector
uint32_t is_local
uint32_t is_trans
struct _lv_obj_style_transition_dsc_t

Public Members

uint16_t time
uint16_t delay
lv_style_selector_t selector
lv_style_prop_t prop
lv_anim_path_cb_t path_cb
void *user_data