「App:Library:LVGL:docs:Overview:Styles」の版間の差分
(→API) |
|||
1行目: | 1行目: | ||
+ | https://docs.lvgl.io/8.2/overview/style.html | ||
+ | __NOTOC__ | ||
+ | = Styles = | ||
+ | {| class="wikitable" | ||
+ | !英文 | ||
+ | !自動翻訳 | ||
+ | |- | ||
+ | | | ||
+ | ''Styles'' are used to set the appearance of objects. Styles in lvgl are heavily inspired by CSS. The concept in a nutshell is as follows: | ||
+ | |||
+ | * A style is an <code style="color: #bb0000;">lv_style_t</code> variable which can hold properties like border width, text color and so on. It's similar to a <code style="color: #bb0000;">class</code> in CSS. | ||
+ | * Styles can be assigned to objects to change their appearance. Upon assignment, the target part (''pseudo-element'' in CSS) and target state (''pseudo class'') can be specified. For example one can add <code style="color: #bb0000;">style_blue</code> to the knob of a slider when it's in pressed state. | ||
+ | * The same style can be used by any number of objects. | ||
+ | * Styles can be cascaded which means multiple styles may be assigned to an object and each style can have different properties. Therefore, not all properties have to be specified in a style. LVGL will search for a property until a style defines it or use a default if it's not specified by any of the styles. For example <code style="color: #bb0000;">style_btn</code> can result in a default gray button and <code style="color: #bb0000;">style_btn_red</code> can add only a <code style="color: #bb0000;">background-color=red</code> to overwrite the background color. | ||
+ | * The most recently added style has higher precedence. This means if a property is specified in two styles the newest style in the object will be used. | ||
+ | * Some properties (e.g. text color) can be inherited from a parent(s) if it's not specified in an object. | ||
+ | * Objects can also have local styles with higher precedence than "normal" styles. | ||
+ | * Unlike CSS (where pseudo-classes describe different states, e.g. <code style="color: #bb0000;">:focus</code>), in LVGL a property is assigned to a given state. | ||
+ | * Transitions can be applied when the object changes state. | ||
+ | | | ||
+ | |} | ||
+ | :[[App:Library:LVGL#Overview|戻る : Previous]] | ||
+ | |||
+ | |||
+ | == States == | ||
+ | {| class="wikitable" | ||
+ | !英文 | ||
+ | !自動翻訳 | ||
+ | |- | ||
+ | | | ||
+ | The objects can be in the combination of the following states: | ||
+ | |||
+ | * <code style="color: #bb0000;">LV_STATE_DEFAULT</code> (0x0000) Normal, released state | ||
+ | * <code style="color: #bb0000;">LV_STATE_CHECKED</code> (0x0001) Toggled or checked state | ||
+ | * <code style="color: #bb0000;">LV_STATE_FOCUSED</code> (0x0002) Focused via keypad or encoder or clicked via touchpad/mouse | ||
+ | * <code style="color: #bb0000;">LV_STATE_FOCUS_KEY</code> (0x0004) Focused via keypad or encoder but not via touchpad/mouse | ||
+ | * <code style="color: #bb0000;">LV_STATE_EDITED</code> (0x0008) Edit by an encoder | ||
+ | * <code style="color: #bb0000;">LV_STATE_HOVERED</code> (0x0010) Hovered by mouse (not supported now) | ||
+ | * <code style="color: #bb0000;">LV_STATE_PRESSED</code> (0x0020) Being pressed | ||
+ | * <code style="color: #bb0000;">LV_STATE_SCROLLED</code> (0x0040) Being scrolled | ||
+ | * <code style="color: #bb0000;">LV_STATE_DISABLED</code> (0x0080) Disabled state | ||
+ | * <code style="color: #bb0000;">LV_STATE_USER_1</code> (0x1000) Custom state | ||
+ | * <code style="color: #bb0000;">LV_STATE_USER_2</code> (0x2000) Custom state | ||
+ | * <code style="color: #bb0000;">LV_STATE_USER_3</code> (0x4000) Custom state | ||
+ | * <code style="color: #bb0000;">LV_STATE_USER_4</code> (0x8000) Custom state | ||
+ | |||
+ | An object can be in a combination of states such as being focused and pressed at the same time. This is represented as <code style="color: #bb0000;">LV_STATE_FOCUSED | LV_STATE_PRESSED</code>. | ||
+ | |||
+ | A style can be added to any state or state combination. For example, setting a different background color for the default and pressed states. If a property is not defined in a state the best matching state's property will be used. Typically this means the property with <code style="color: #bb0000;">LV_STATE_DEFAULT</code> is used.˛ If the property is not set even for the default state the default value will be used. (See later) | ||
+ | |||
+ | But what does the "best matching state's property" really mean? States have a precedence which is shown by their value (see in the above list). A higher value means higher precedence. To determine which state's property to use let's take an example. Imagine the background color is defined like this: | ||
+ | |||
+ | * <code style="color: #bb0000;">LV_STATE_DEFAULT</code>: white | ||
+ | * <code style="color: #bb0000;">LV_STATE_PRESSED</code>: gray | ||
+ | * <code style="color: #bb0000;">LV_STATE_FOCUSED</code>: red | ||
+ | |||
+ | # Initially the object is in the default state, so it's a simple case: the property is perfectly defined in the object's current state as white. | ||
+ | # When the object is pressed there are 2 related properties: default with white (default is related to every state) and pressed with gray. The pressed state has 0x0020 precedence which is higher than the default state's 0x0000 precedence, so gray color will be used. | ||
+ | # When the object is focused the same thing happens as in pressed state and red color will be used. (Focused state has higher precedence than default state). | ||
+ | # When the object is focused and pressed both gray and red would work, but the pressed state has higher precedence than focused so gray color will be used. | ||
+ | # It's possible to set e.g. rose color for <code style="color: #bb0000;">LV_STATE_PRESSED | LV_STATE_FOCUSED</code>. In this case, this combined state has 0x0020 + 0x0002 = 0x0022 precedence, which is higher than the pressed state's precedence so rose color would be used. | ||
+ | # When the object is in the checked state there is no property to set the background color for this state. So for lack of a better option, the object remains white from the default state's property. | ||
+ | |||
+ | Some practical notes: | ||
+ | |||
+ | * The precedence (value) of states is quite intuitive, and it's something the user would expect naturally. E.g. if an object is focused the user will still want to see if it's pressed, therefore the pressed state has a higher precedence. If the focused state had a higher precedence it would overwrite the pressed color. | ||
+ | * If you want to set a property for all states (e.g. red background color) just set it for the default state. If the object can't find a property for its current state it will fall back to the default state's property. | ||
+ | * Use ORed states to describe the properties for complex cases. (E.g. pressed + checked + focused) | ||
+ | * It might be a good idea to use different style elements for different states. For example, finding background colors for released, pressed, checked + pressed, focused, focused + pressed, focused + pressed + checked, etc. states is quite difficult. Instead, for example, use the background color for pressed and checked states and indicate the focused state with a different border color. | ||
+ | | | ||
+ | |} | ||
+ | :[[App:Library:LVGL#Overview|戻る : Previous]] | ||
+ | |||
+ | |||
+ | == Cascading styles == | ||
+ | {| class="wikitable" | ||
+ | !英文 | ||
+ | !自動翻訳 | ||
+ | |- | ||
+ | | | ||
+ | It's not required to set all the properties in one style. It's possible to add more styles to an object and have the latter added style modify or extend appearance. For example, create a general gray button style and create a new one for red buttons where only the new background color is set. | ||
+ | |||
+ | This is much like in CSS when used classes are listed like <code style="color: #bb0000;"><nowiki><div class=".btn .btn-red"></nowiki></code>. | ||
+ | |||
+ | Styles added later have precedence over ones set earlier. So in the gray/red button example above, the normal button style should be added first and the red style second. However, the precedence of the states are still taken into account. So let's examine the following case: | ||
+ | |||
+ | * the basic button style defines dark-gray color for the default state and light-gray color for the pressed state | ||
+ | * the red button style defines the background color as red only in the default state | ||
+ | |||
+ | In this case, when the button is released (it's in default state) it will be red because a perfect match is found in the most recently added style (red). When the button is pressed the light-gray color is a better match because it describes the current state perfectly, so the button will be light-gray. | ||
+ | | | ||
+ | |} | ||
+ | :[[App:Library:LVGL#Overview|戻る : Previous]] | ||
+ | |||
+ | |||
+ | == Inheritance == | ||
+ | {| class="wikitable" | ||
+ | !英文 | ||
+ | !自動翻訳 | ||
+ | |- | ||
+ | | | ||
+ | Some properties (typically those related to text) can be inherited from the parent object's styles. Inheritance is applied only if the given property is not set in the object's styles (even in default state). In this case, if the property is inheritable, the property's value will be searched in the parents until an object specifies a value for the property. The parents will use their own state to determine the value. So if a button is pressed, and the text color comes from here, the pressed text color will be used. | ||
+ | | | ||
+ | |} | ||
+ | :[[App:Library:LVGL#Overview|戻る : Previous]] | ||
+ | |||
+ | |||
+ | == Parts == | ||
+ | {| class="wikitable" | ||
+ | !英文 | ||
+ | !自動翻訳 | ||
+ | |- | ||
+ | | | ||
+ | Objects can be composed of ''parts'' which may each have their own styles. | ||
+ | |||
+ | The following predefined parts exist in LVGL: | ||
+ | |||
+ | * <code style="color: #bb0000;">LV_PART_MAIN</code> A background like rectangle | ||
+ | * <code style="color: #bb0000;">LV_PART_SCROLLBAR</code> The scrollbar(s) | ||
+ | * <code style="color: #bb0000;">LV_PART_INDICATOR</code> Indicator, e.g. for slider, bar, switch, or the tick box of the checkbox | ||
+ | * <code style="color: #bb0000;">LV_PART_KNOB</code> Like a handle to grab to adjust a value | ||
+ | * <code style="color: #bb0000;">LV_PART_SELECTED</code> Indicate the currently selected option or section | ||
+ | * <code style="color: #bb0000;">LV_PART_ITEMS</code> Used if the widget has multiple similar elements (e.g. table cells) | ||
+ | * <code style="color: #bb0000;">LV_PART_TICKS</code> Ticks on scales e.g. for a chart or meter | ||
+ | * <code style="color: #bb0000;">LV_PART_CURSOR</code> Mark a specific place e.g. text area's or chart's cursor | ||
+ | * <code style="color: #bb0000;">LV_PART_CUSTOM_FIRST</code> Custom part identifiers can be added starting from here. | ||
+ | |||
+ | For example a Slider has three parts: | ||
+ | |||
+ | * Background | ||
+ | * Indicator | ||
+ | * Knob | ||
+ | |||
+ | This means all three parts of the slider can have their own styles. See later how to add styles to objects and parts. | ||
+ | | | ||
+ | |} | ||
+ | :[[App:Library:LVGL#Overview|戻る : Previous]] | ||
+ | |||
+ | |||
+ | == Initialize styles and set/get properties == | ||
+ | {| class="wikitable" | ||
+ | !英文 | ||
+ | !自動翻訳 | ||
+ | |- | ||
+ | | | ||
+ | Styles are stored in <code style="color: #bb0000;">lv_style_t</code> variables. Style variables should be <code style="color: #bb0000;">static</code>, global or dynamically allocated. In other words they cannot be local variables in functions which are destroyed when the function exits. Before using a style it should be initialized with <code style="color: #bb0000;">lv_style_init(&my_style)</code>. After initializing a style, properties can be added or changed. | ||
+ | |||
+ | Property set functions looks like this: <code style="color: #bb0000;">lv_style_set_<property_name>(&style, <value>);</code> For example: | ||
+ | <syntaxhighlight lang="C++" style="border:1px dashed gray;"> | ||
+ | static lv_style_t style_btn; | ||
+ | lv_style_init(&style_btn); | ||
+ | lv_style_set_bg_color(&style_btn, lv_color_hex(0x115588)); | ||
+ | lv_style_set_bg_opa(&style_btn, LV_OPA_50); | ||
+ | lv_style_set_border_width(&style_btn, 2); | ||
+ | lv_style_set_border_color(&style_btn, lv_color_black()); | ||
+ | |||
+ | static lv_style_t style_btn_red; | ||
+ | lv_style_init(&style_btn_red); | ||
+ | lv_style_set_bg_color(&style_btn_red, lv_plaette_main(LV_PALETTE_RED)); | ||
+ | lv_style_set_bg_opa(&style_btn_red, LV_OPA_COVER); | ||
+ | </syntaxhighlight> | ||
+ | To remove a property use: | ||
+ | <syntaxhighlight lang="C++" style="border:1px dashed gray;"> | ||
+ | lv_style_remove_prop(&style, LV_STYLE_BG_COLOR); | ||
+ | </syntaxhighlight> | ||
+ | To get a property's value from a style: | ||
+ | <syntaxhighlight lang="C++" style="border:1px dashed gray;"> | ||
+ | lv_style_value_t v; | ||
+ | lv_res_t res = lv_style_get_prop(&style, LV_STYLE_BG_COLOR, &v); | ||
+ | if(res == LV_RES_OK) { /*Found*/ | ||
+ | do_something(v.color); | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | <code style="color: #bb0000;">lv_style_value_t</code> has 3 fields: | ||
+ | |||
+ | * <code style="color: #bb0000;">num</code> for integer, boolean and opacity properties | ||
+ | * <code style="color: #bb0000;">color</code> for color properties | ||
+ | * <code style="color: #bb0000;">ptr</code> for pointer properties | ||
+ | |||
+ | To reset a style (free all its data) use: | ||
+ | <syntaxhighlight lang="C++" style="border:1px dashed gray;"> | ||
+ | lv_style_reset(&style); | ||
+ | </syntaxhighlight> | ||
+ | Styles can be built as <code style="color: #bb0000;">const</code> too to save RAM: | ||
+ | <syntaxhighlight lang="C++" style="border:1px dashed gray;"> | ||
+ | const lv_style_const_prop_t style1_props[] = { | ||
+ | LV_STYLE_CONST_WIDTH(50), | ||
+ | LV_STYLE_CONST_HEIGHT(50), | ||
+ | LV_STYLE_PROP_INV, | ||
+ | }; | ||
+ | |||
+ | LV_STYLE_CONST_INIT(style1, style1_props); | ||
+ | </syntaxhighlight> | ||
+ | Later <code style="color: #bb0000;">const</code> style can be used like any other style but (obviously) new properties can not be added. | ||
+ | | | ||
+ | |} | ||
+ | :[[App:Library:LVGL#Overview|戻る : Previous]] | ||
+ | |||
+ | |||
+ | == Add and remove styles to a widget == | ||
+ | {| class="wikitable" | ||
+ | !英文 | ||
+ | !自動翻訳 | ||
+ | |- | ||
+ | | | ||
+ | A style on its own is not that useful. It must be assigned to an object to take effect. | ||
+ | | | ||
+ | |} | ||
+ | :[[App:Library:LVGL#Overview|戻る : Previous]] | ||
+ | |||
+ | |||
+ | === Add styles === | ||
+ | {| class="wikitable" | ||
+ | !英文 | ||
+ | !自動翻訳 | ||
+ | |- | ||
+ | | | ||
+ | To add a style to an object use <code style="color: #bb0000;">lv_obj_add_style(obj, &style, <selector>)</code>. <code style="color: #bb0000;"><selector></code> is an OR-ed value of parts and state to which the style should be added. Some examples: | ||
+ | |||
+ | * <code style="color: #bb0000;">LV_PART_MAIN | LV_STATE_DEFAULT</code> | ||
+ | * <code style="color: #bb0000;">LV_STATE_PRESSED</code>: The main part in pressed state. <code style="color: #bb0000;">LV_PART_MAIN</code> can be omitted | ||
+ | * <code style="color: #bb0000;">LV_PART_SCROLLBAR</code>: The scrollbar part in the default state. <code style="color: #bb0000;">LV_STATE_DEFAULT</code> can be omitted. | ||
+ | * <code style="color: #bb0000;">LV_PART_SCROLLBAR | LV_STATE_SCROLLED</code>: The scrollbar part when the object is being scrolled | ||
+ | * <code style="color: #bb0000;">0</code> Same as <code style="color: #bb0000;">LV_PART_MAIN | LV_STATE_DEFAULT</code>. | ||
+ | * <code style="color: #bb0000;">LV_PART_INDICATOR | LV_STATE_PRESSED | LV_STATE_CHECKED</code> The indicator part when the object is pressed and checked at the same time. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | Using <code style="color: #bb0000;">lv_obj_add_style</code>: | ||
+ | <syntaxhighlight lang="C++" style="border:1px dashed gray;"> | ||
+ | lv_obj_add_style(btn, &style_btn, 0); /*Default button style*/ | ||
+ | lv_obj_add_style(btn, &btn_red, LV_STATE_PRESSED); /*Overwrite only some colors to red when pressed*/ | ||
+ | </syntaxhighlight> | ||
+ | | | ||
+ | |} | ||
+ | :[[App:Library:LVGL#Overview|戻る : Previous]] | ||
+ | |||
+ | |||
+ | === Remove styles === | ||
+ | {| class="wikitable" | ||
+ | !英文 | ||
+ | !自動翻訳 | ||
+ | |- | ||
+ | | | ||
+ | To remove all styles from an object use <code style="color: #bb0000;">lv_obj_remove_style_all(obj)</code>. | ||
+ | |||
+ | To remove specific styles use <code style="color: #bb0000;">lv_obj_remove_style(obj, style, selector)</code>. This function will remove <code style="color: #bb0000;">style</code> only if the <code style="color: #bb0000;">selector</code> matches with the <code style="color: #bb0000;">selector</code> used in <code style="color: #bb0000;">lv_obj_add_style</code>. <code style="color: #bb0000;">style</code> can be <code style="color: #bb0000;">NULL</code> to check only the <code style="color: #bb0000;">selector</code> and remove all matching styles. The <code style="color: #bb0000;">selector</code> can use the <code style="color: #bb0000;">LV_STATE_ANY</code> and <code style="color: #bb0000;">LV_PART_ANY</code> values to remove the style from any state or part. | ||
+ | | | ||
+ | |} | ||
+ | :[[App:Library:LVGL#Overview|戻る : Previous]] | ||
+ | |||
+ | |||
+ | === Report style changes === | ||
+ | {| class="wikitable" | ||
+ | !英文 | ||
+ | !自動翻訳 | ||
+ | |- | ||
+ | | | ||
+ | If a style which is already assigned to an object changes (i.e. a property is added or changed), the objects using that style should be notified. There are 3 options to do this: | ||
+ | |||
+ | # If you know that the changed properties can be applied by a simple redraw (e.g. color or opacity changes) just call <code style="color: #bb0000;">lv_obj_invalidate(obj)</code> or <code style="color: #bb0000;">lv_obj_invalidate(lv_scr_act())</code>. | ||
+ | # If more complex style properties were changed or added, and you know which object(s) are affected by that style call <code style="color: #bb0000;">lv_obj_refresh_style(obj, part, property)</code>. To refresh all parts and properties use <code style="color: #bb0000;">lv_obj_refresh_style(obj, LV_PART_ANY, LV_STYLE_PROP_ANY)</code>. | ||
+ | # To make LVGL check all objects to see if they use a style and refresh them when needed, call <code style="color: #bb0000;">lv_obj_report_style_change(&style)</code>. If <code style="color: #bb0000;">style</code> is <code style="color: #bb0000;">NULL</code> all objects will be notified about a style change. | ||
+ | | | ||
+ | |} | ||
+ | :[[App:Library:LVGL#Overview|戻る : Previous]] | ||
+ | |||
+ | |||
+ | === Get a property's value on an object === | ||
+ | {| class="wikitable" | ||
+ | !英文 | ||
+ | !自動翻訳 | ||
+ | |- | ||
+ | | | ||
+ | To get a final value of property - considering cascading, inheritance, local styles and transitions (see below) - property get functions like this can be used: <code style="color: #bb0000;">lv_obj_get_style_<property_name>(obj, <part>)</code>. These functions use the object's current state and if no better candidate exists they return a default value. For example: | ||
+ | <syntaxhighlight lang="C++" style="border:1px dashed gray;"> | ||
+ | lv_color_t color = lv_obj_get_style_bg_color(btn, LV_PART_MAIN); | ||
+ | </syntaxhighlight> | ||
+ | | | ||
+ | |} | ||
+ | :[[App:Library:LVGL#Overview|戻る : Previous]] | ||
+ | |||
+ | |||
+ | == Local styles == | ||
+ | {| class="wikitable" | ||
+ | !英文 | ||
+ | !自動翻訳 | ||
+ | |- | ||
+ | | | ||
+ | In addition to "normal" styles, objects can also store local styles. This concept is similar to inline styles in CSS (e.g. <code style="color: #bb0000;"><nowiki><div style="color:red"></nowiki></code>) with some modification. | ||
+ | |||
+ | Local styles are like normal styles, but they can't be shared among other objects. If used, local styles are allocated automatically, and freed when the object is deleted. They are useful to add local customization to an object. | ||
+ | |||
+ | Unlike in CSS, LVGL local styles can be assigned to states (''pseudo-classes'') and parts (''pseudo-elements''). | ||
+ | |||
+ | To set a local property use functions like <code style="color: #bb0000;">lv_obj_set_style_<property_name>(obj, <value>, <selector>);</code> For example: | ||
+ | <syntaxhighlight lang="C++" style="border:1px dashed gray;"> | ||
+ | lv_obj_set_style_bg_color(slider, lv_color_red(), LV_PART_INDICATOR | LV_STATE_FOCUSED); | ||
+ | </syntaxhighlight> | ||
+ | | | ||
+ | |} | ||
+ | :[[App:Library:LVGL#Overview|戻る : Previous]] | ||
+ | |||
+ | |||
+ | == Properties == | ||
+ | {| class="wikitable" | ||
+ | !英文 | ||
+ | !自動翻訳 | ||
+ | |- | ||
+ | | | ||
+ | For the full list of style properties click here. | ||
+ | | | ||
+ | |} | ||
+ | :[[App:Library:LVGL#Overview|戻る : Previous]] | ||
+ | |||
+ | |||
+ | === Typical background properties === | ||
+ | {| class="wikitable" | ||
+ | !英文 | ||
+ | !自動翻訳 | ||
+ | |- | ||
+ | | | ||
+ | In the documentation of the widgets you will see sentences like "The widget uses the typical background properties". These "typical background properties" are the ones related to: | ||
+ | |||
+ | * Background | ||
+ | * Border | ||
+ | * Outline | ||
+ | * Shadow | ||
+ | * Padding | ||
+ | * Width and height transformation | ||
+ | * X and Y translation | ||
+ | | | ||
+ | |} | ||
+ | :[[App:Library:LVGL#Overview|戻る : Previous]] | ||
+ | |||
+ | |||
+ | == Transitions == | ||
+ | {| class="wikitable" | ||
+ | !英文 | ||
+ | !自動翻訳 | ||
+ | |- | ||
+ | | | ||
+ | By default, when an object changes state (e.g. it's pressed) the new properties from the new state are set immediately. However, with transitions it's possible to play an animation on state change. For example, on pressing a button its background color can be animated to the pressed color over 300 ms. | ||
+ | |||
+ | The parameters of the transitions are stored in the styles. It's possible to set | ||
+ | |||
+ | * the time of the transition | ||
+ | * the delay before starting the transition | ||
+ | * the animation path (also known as the timing or easing function) | ||
+ | * the properties to animate | ||
+ | |||
+ | The transition properties can be defined for each state. For example, setting a 500 ms transition time in the default state means that when the object goes to the default state a 500 ms transition time is applied. Setting a 100 ms transition time in the pressed state causes a 100 ms transition when going to the pressed state. This example configuration results in going to the pressed state quickly and then going back to default slowly. | ||
+ | |||
+ | To describe a transition an <code style="color: #bb0000;">lv_transition_dsc_t</code> variable needs to be initialized and added to a style: | ||
+ | <syntaxhighlight lang="C++" style="border:1px dashed gray;"> | ||
+ | /*Only its pointer is saved so must static, global or dynamically allocated */ | ||
+ | static const lv_style_prop_t trans_props[] = { | ||
+ | LV_STYLE_BG_OPA, LV_STYLE_BG_COLOR, | ||
+ | 0, /*End marker*/ | ||
+ | }; | ||
+ | |||
+ | static lv_style_transition_dsc_t trans1; | ||
+ | lv_style_transition_dsc_init(&trans1, trans_props, lv_anim_path_ease_out, duration_ms, delay_ms); | ||
+ | |||
+ | lv_style_set_transition(&style1, &trans1); | ||
+ | </syntaxhighlight> | ||
+ | | | ||
+ | |} | ||
+ | :[[App:Library:LVGL#Overview|戻る : Previous]] | ||
+ | |||
+ | |||
+ | == Color filter == | ||
+ | {| class="wikitable" | ||
+ | !英文 | ||
+ | !自動翻訳 | ||
+ | |- | ||
+ | | | ||
+ | TODO | ||
+ | | | ||
+ | |} | ||
+ | :[[App:Library:LVGL#Overview|戻る : Previous]] | ||
+ | |||
+ | |||
+ | == Themes == | ||
+ | {| class="wikitable" | ||
+ | !英文 | ||
+ | !自動翻訳 | ||
+ | |- | ||
+ | | | ||
+ | Themes are a collection of styles. If there is an active theme LVGL applies it on every created widget. This will give a default appearance to the UI which can then be modified by adding further styles. | ||
+ | |||
+ | Every display can have a different theme. For example, you could have a colorful theme on a TFT and monochrome theme on a secondary monochrome display. | ||
+ | |||
+ | To set a theme for a display, two steps are required: | ||
+ | |||
+ | # Initialize a theme | ||
+ | # Assign the initialized theme to a display. | ||
+ | |||
+ | Theme initialization functions can have different prototypes. This example shows how to set the "default" theme: | ||
+ | <syntaxhighlight lang="C++" style="border:1px dashed gray;"> | ||
+ | lv_theme_t * th = lv_theme_default_init(display, /*Use the DPI, size, etc from this display*/ | ||
+ | LV_COLOR_PALETTE_BLUE, LV_COLOR_PALETTE_CYAN, /*Primary and secondary palette*/ | ||
+ | false, /*Light or dark mode*/ | ||
+ | &lv_font_montserrat_10, &lv_font_montserrat_14, &lv_font_montserrat_18); /*Small, normal, large fonts*/ | ||
+ | |||
+ | lv_disp_set_theme(display, th); /*Assign the theme to the display*/ | ||
+ | </syntaxhighlight> | ||
+ | The included themes are enabled in <code style="color: #bb0000;">lv_conf.h</code>. If the default theme is enabled by <code style="color: #bb0000;">LV_USE_THEME_DEFAULT 1</code> LVGL automatically initializes and sets it when a display is created. | ||
+ | | | ||
+ | |} | ||
+ | :[[App:Library:LVGL#Overview|戻る : Previous]] | ||
+ | |||
+ | |||
+ | === Extending themes === | ||
+ | {| class="wikitable" | ||
+ | !英文 | ||
+ | !自動翻訳 | ||
+ | |- | ||
+ | | | ||
+ | Built-in themes can be extended. If a custom theme is created, a parent theme can be selected. The parent theme's styles will be added before the custom theme's styles. Any number of themes can be chained this way. E.g. default theme -> custom theme -> dark theme. | ||
+ | |||
+ | <code style="color: #bb0000;">lv_theme_set_parent(new_theme, base_theme)</code> extends the <code style="color: #bb0000;">base_theme</code> with the <code style="color: #bb0000;">new_theme</code>. | ||
+ | |||
+ | There is an example for it below. | ||
+ | | | ||
+ | |} | ||
+ | :[[App:Library:LVGL#Overview|戻る : Previous]] | ||
+ | |||
+ | |||
+ | == Examples == | ||
+ | {| class="wikitable" | ||
+ | !英文 | ||
+ | !自動翻訳 | ||
+ | |- | ||
+ | | | ||
+ | === Size styles === | ||
+ | [[file:LVGL docs example 004.png|link=https://docs.lvgl.io/8.2/overview/style.html#size-styles]] | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | === Background styles === | ||
+ | [[file:LVGL docs example 005.png|link=https://docs.lvgl.io/8.2/overview/style.html#background-styles]] | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | === Border styles === | ||
+ | [[file:LVGL docs example 006.png|link=https://docs.lvgl.io/8.2/overview/style.html#border-styles]] | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | === Outline styles === | ||
+ | [[file:LVGL docs example 007.png|link=https://docs.lvgl.io/8.2/overview/style.html#outline-styles]] | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | === Shadow styles === | ||
+ | [[file:LVGL docs example 008.png|link=https://docs.lvgl.io/8.2/overview/style.html#shadow-styles]] | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | === Image styles === | ||
+ | [[file:LVGL docs example 009.png|link=https://docs.lvgl.io/8.2/overview/style.html#image-styles]] | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | === Arc styles === | ||
+ | [[file:LVGL docs overview style 07.png|link=https://docs.lvgl.io/8.2/overview/style.html#arc-styles]] | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | === Text styles === | ||
+ | [[file:LVGL docs example 010.png|link=https://docs.lvgl.io/8.2/overview/style.html#text-styles]] | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | === Line styles === | ||
+ | [[file:LVGL docs example 011.png|link=https://docs.lvgl.io/8.2/overview/style.html#line-styles]] | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | === Transition === | ||
+ | [[file:LVGL docs example 012.png|link=https://docs.lvgl.io/8.2/overview/style.html#transition]] | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | === Using multiple styles === | ||
+ | [[file:LVGL docs example 013.png|link=https://docs.lvgl.io/8.2/overview/style.html#using-multiple-styles]] | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | === Local styles === | ||
+ | [[file:LVGL docs example 014.png|link=https://docs.lvgl.io/8.2/overview/style.html#id1]] | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | === Add styles to parts and states === | ||
+ | [[file:LVGL docs example 016.png|link=https://docs.lvgl.io/8.2/overview/style.html#add-styles-to-parts-and-states]] | ||
+ | | | ||
+ | |- | ||
+ | | | ||
+ | === Extending the current theme === | ||
+ | [[file:LVGL docs example 017.png|link=https://docs.lvgl.io/8.2/overview/style.html#extending-the-current-theme]] | ||
+ | | | ||
+ | |} | ||
+ | :[[App:Library:LVGL#Overview|戻る : Previous]] | ||
+ | |||
+ | |||
https://docs.lvgl.io/8.2/overview/style.html | https://docs.lvgl.io/8.2/overview/style.html | ||
__NOTOC__ | __NOTOC__ | ||
591行目: | 1,099行目: | ||
<span style="background-color:#e7f2fa;color:#2980b9;">enum lv_style_prop_t </span> | <span style="background-color:#e7f2fa;color:#2980b9;">enum lv_style_prop_t </span> | ||
: Enumeration of all built in style properties | : Enumeration of all built in style properties | ||
− | + | | | |
− | + | |- | |
− | + | | | |
''Values:'' | ''Values:'' | ||
2022年6月30日 (木) 21:11時点における版
https://docs.lvgl.io/8.2/overview/style.html
Styles
英文 | 自動翻訳 |
---|---|
Styles are used to set the appearance of objects. Styles in lvgl are heavily inspired by CSS. The concept in a nutshell is as follows:
|
States
英文 | 自動翻訳 |
---|---|
The objects can be in the combination of the following states:
An object can be in a combination of states such as being focused and pressed at the same time. This is represented as A style can be added to any state or state combination. For example, setting a different background color for the default and pressed states. If a property is not defined in a state the best matching state's property will be used. Typically this means the property with But what does the "best matching state's property" really mean? States have a precedence which is shown by their value (see in the above list). A higher value means higher precedence. To determine which state's property to use let's take an example. Imagine the background color is defined like this:
Some practical notes:
|
Cascading styles
英文 | 自動翻訳 |
---|---|
It's not required to set all the properties in one style. It's possible to add more styles to an object and have the latter added style modify or extend appearance. For example, create a general gray button style and create a new one for red buttons where only the new background color is set. This is much like in CSS when used classes are listed like Styles added later have precedence over ones set earlier. So in the gray/red button example above, the normal button style should be added first and the red style second. However, the precedence of the states are still taken into account. So let's examine the following case:
In this case, when the button is released (it's in default state) it will be red because a perfect match is found in the most recently added style (red). When the button is pressed the light-gray color is a better match because it describes the current state perfectly, so the button will be light-gray. |
Inheritance
英文 | 自動翻訳 |
---|---|
Some properties (typically those related to text) can be inherited from the parent object's styles. Inheritance is applied only if the given property is not set in the object's styles (even in default state). In this case, if the property is inheritable, the property's value will be searched in the parents until an object specifies a value for the property. The parents will use their own state to determine the value. So if a button is pressed, and the text color comes from here, the pressed text color will be used. |
Parts
英文 | 自動翻訳 |
---|---|
Objects can be composed of parts which may each have their own styles. The following predefined parts exist in LVGL:
For example a Slider has three parts:
This means all three parts of the slider can have their own styles. See later how to add styles to objects and parts. |
Initialize styles and set/get properties
英文 | 自動翻訳 |
---|---|
Styles are stored in Property set functions looks like this: static lv_style_t style_btn;
lv_style_init(&style_btn);
lv_style_set_bg_color(&style_btn, lv_color_hex(0x115588));
lv_style_set_bg_opa(&style_btn, LV_OPA_50);
lv_style_set_border_width(&style_btn, 2);
lv_style_set_border_color(&style_btn, lv_color_black());
static lv_style_t style_btn_red;
lv_style_init(&style_btn_red);
lv_style_set_bg_color(&style_btn_red, lv_plaette_main(LV_PALETTE_RED));
lv_style_set_bg_opa(&style_btn_red, LV_OPA_COVER);
To remove a property use: lv_style_remove_prop(&style, LV_STYLE_BG_COLOR);
To get a property's value from a style: lv_style_value_t v;
lv_res_t res = lv_style_get_prop(&style, LV_STYLE_BG_COLOR, &v);
if(res == LV_RES_OK) { /*Found*/
do_something(v.color);
}
To reset a style (free all its data) use: lv_style_reset(&style);
Styles can be built as const lv_style_const_prop_t style1_props[] = {
LV_STYLE_CONST_WIDTH(50),
LV_STYLE_CONST_HEIGHT(50),
LV_STYLE_PROP_INV,
};
LV_STYLE_CONST_INIT(style1, style1_props);
Later |
Add and remove styles to a widget
英文 | 自動翻訳 |
---|---|
A style on its own is not that useful. It must be assigned to an object to take effect. |
Add styles
英文 | 自動翻訳 |
---|---|
To add a style to an object use
lv_obj_add_style(btn, &style_btn, 0); /*Default button style*/
lv_obj_add_style(btn, &btn_red, LV_STATE_PRESSED); /*Overwrite only some colors to red when pressed*/
|
Remove styles
英文 | 自動翻訳 |
---|---|
To remove all styles from an object use To remove specific styles use |
Report style changes
英文 | 自動翻訳 |
---|---|
If a style which is already assigned to an object changes (i.e. a property is added or changed), the objects using that style should be notified. There are 3 options to do this:
|
Get a property's value on an object
英文 | 自動翻訳 |
---|---|
To get a final value of property - considering cascading, inheritance, local styles and transitions (see below) - property get functions like this can be used: lv_color_t color = lv_obj_get_style_bg_color(btn, LV_PART_MAIN);
|
Local styles
英文 | 自動翻訳 |
---|---|
In addition to "normal" styles, objects can also store local styles. This concept is similar to inline styles in CSS (e.g. Local styles are like normal styles, but they can't be shared among other objects. If used, local styles are allocated automatically, and freed when the object is deleted. They are useful to add local customization to an object. Unlike in CSS, LVGL local styles can be assigned to states (pseudo-classes) and parts (pseudo-elements). To set a local property use functions like lv_obj_set_style_bg_color(slider, lv_color_red(), LV_PART_INDICATOR | LV_STATE_FOCUSED);
|
Properties
英文 | 自動翻訳 |
---|---|
For the full list of style properties click here. |
Typical background properties
英文 | 自動翻訳 |
---|---|
In the documentation of the widgets you will see sentences like "The widget uses the typical background properties". These "typical background properties" are the ones related to:
|
Transitions
英文 | 自動翻訳 |
---|---|
By default, when an object changes state (e.g. it's pressed) the new properties from the new state are set immediately. However, with transitions it's possible to play an animation on state change. For example, on pressing a button its background color can be animated to the pressed color over 300 ms. The parameters of the transitions are stored in the styles. It's possible to set
The transition properties can be defined for each state. For example, setting a 500 ms transition time in the default state means that when the object goes to the default state a 500 ms transition time is applied. Setting a 100 ms transition time in the pressed state causes a 100 ms transition when going to the pressed state. This example configuration results in going to the pressed state quickly and then going back to default slowly. To describe a transition an /*Only its pointer is saved so must static, global or dynamically allocated */
static const lv_style_prop_t trans_props[] = {
LV_STYLE_BG_OPA, LV_STYLE_BG_COLOR,
0, /*End marker*/
};
static lv_style_transition_dsc_t trans1;
lv_style_transition_dsc_init(&trans1, trans_props, lv_anim_path_ease_out, duration_ms, delay_ms);
lv_style_set_transition(&style1, &trans1);
|
Color filter
英文 | 自動翻訳 |
---|---|
TODO |
Themes
英文 | 自動翻訳 |
---|---|
Themes are a collection of styles. If there is an active theme LVGL applies it on every created widget. This will give a default appearance to the UI which can then be modified by adding further styles. Every display can have a different theme. For example, you could have a colorful theme on a TFT and monochrome theme on a secondary monochrome display. To set a theme for a display, two steps are required:
Theme initialization functions can have different prototypes. This example shows how to set the "default" theme: lv_theme_t * th = lv_theme_default_init(display, /*Use the DPI, size, etc from this display*/
LV_COLOR_PALETTE_BLUE, LV_COLOR_PALETTE_CYAN, /*Primary and secondary palette*/
false, /*Light or dark mode*/
&lv_font_montserrat_10, &lv_font_montserrat_14, &lv_font_montserrat_18); /*Small, normal, large fonts*/
lv_disp_set_theme(display, th); /*Assign the theme to the display*/
The included themes are enabled in |
Extending themes
英文 | 自動翻訳 |
---|---|
Built-in themes can be extended. If a custom theme is created, a parent theme can be selected. The parent theme's styles will be added before the custom theme's styles. Any number of themes can be chained this way. E.g. default theme -> custom theme -> dark theme.
There is an example for it below. |
Examples
英文 | 自動翻訳 |
---|---|
Size styles |
|
Background styles |
|
Border styles |
|
Outline styles |
|
Shadow styles |
|
Image styles |
|
Arc styles |
|
Text styles |
|
Line styles |
|
Transition |
|
Using multiple styles |
|
Local styles |
|
Add styles to parts and states |
|
Extending the current theme |
https://docs.lvgl.io/8.2/overview/style.html
Styles
英文 | 自動翻訳 |
---|---|
Styles are used to set the appearance of objects. Styles in lvgl are heavily inspired by CSS. The concept in a nutshell is as follows:
|
States
英文 | 自動翻訳 |
---|---|
The objects can be in the combination of the following states:
An object can be in a combination of states such as being focused and pressed at the same time. This is represented as A style can be added to any state or state combination. For example, setting a different background color for the default and pressed states. If a property is not defined in a state the best matching state's property will be used. Typically this means the property with But what does the "best matching state's property" really mean? States have a precedence which is shown by their value (see in the above list). A higher value means higher precedence. To determine which state's property to use let's take an example. Imagine the background color is defined like this:
Some practical notes:
|
Cascading styles
英文 | 自動翻訳 |
---|---|
It's not required to set all the properties in one style. It's possible to add more styles to an object and have the latter added style modify or extend appearance. For example, create a general gray button style and create a new one for red buttons where only the new background color is set. This is much like in CSS when used classes are listed like Styles added later have precedence over ones set earlier. So in the gray/red button example above, the normal button style should be added first and the red style second. However, the precedence of the states are still taken into account. So let's examine the following case:
In this case, when the button is released (it's in default state) it will be red because a perfect match is found in the most recently added style (red). When the button is pressed the light-gray color is a better match because it describes the current state perfectly, so the button will be light-gray. |
Inheritance
英文 | 自動翻訳 |
---|---|
Some properties (typically those related to text) can be inherited from the parent object's styles. Inheritance is applied only if the given property is not set in the object's styles (even in default state). In this case, if the property is inheritable, the property's value will be searched in the parents until an object specifies a value for the property. The parents will use their own state to determine the value. So if a button is pressed, and the text color comes from here, the pressed text color will be used. |
Parts
英文 | 自動翻訳 |
---|---|
Objects can be composed of parts which may each have their own styles. The following predefined parts exist in LVGL:
For example a Slider has three parts:
This means all three parts of the slider can have their own styles. See later how to add styles to objects and parts. |
Initialize styles and set/get properties
英文 | 自動翻訳 |
---|---|
Styles are stored in Property set functions looks like this: static lv_style_t style_btn;
lv_style_init(&style_btn);
lv_style_set_bg_color(&style_btn, lv_color_hex(0x115588));
lv_style_set_bg_opa(&style_btn, LV_OPA_50);
lv_style_set_border_width(&style_btn, 2);
lv_style_set_border_color(&style_btn, lv_color_black());
static lv_style_t style_btn_red;
lv_style_init(&style_btn_red);
lv_style_set_bg_color(&style_btn_red, lv_plaette_main(LV_PALETTE_RED));
lv_style_set_bg_opa(&style_btn_red, LV_OPA_COVER);
To remove a property use: lv_style_remove_prop(&style, LV_STYLE_BG_COLOR);
To get a property's value from a style: lv_style_value_t v;
lv_res_t res = lv_style_get_prop(&style, LV_STYLE_BG_COLOR, &v);
if(res == LV_RES_OK) { /*Found*/
do_something(v.color);
}
To reset a style (free all its data) use: lv_style_reset(&style);
Styles can be built as const lv_style_const_prop_t style1_props[] = {
LV_STYLE_CONST_WIDTH(50),
LV_STYLE_CONST_HEIGHT(50),
LV_STYLE_PROP_INV,
};
LV_STYLE_CONST_INIT(style1, style1_props);
Later |
Add and remove styles to a widget
英文 | 自動翻訳 |
---|---|
A style on its own is not that useful. It must be assigned to an object to take effect. |
Add styles
英文 | 自動翻訳 |
---|---|
To add a style to an object use
lv_obj_add_style(btn, &style_btn, 0); /*Default button style*/
lv_obj_add_style(btn, &btn_red, LV_STATE_PRESSED); /*Overwrite only some colors to red when pressed*/
|
Remove styles
英文 | 自動翻訳 |
---|---|
To remove all styles from an object use To remove specific styles use |
Report style changes
英文 | 自動翻訳 |
---|---|
If a style which is already assigned to an object changes (i.e. a property is added or changed), the objects using that style should be notified. There are 3 options to do this:
|
Get a property's value on an object
英文 | 自動翻訳 |
---|---|
To get a final value of property - considering cascading, inheritance, local styles and transitions (see below) - property get functions like this can be used: lv_color_t color = lv_obj_get_style_bg_color(btn, LV_PART_MAIN);
|
Local styles
英文 | 自動翻訳 |
---|---|
In addition to "normal" styles, objects can also store local styles. This concept is similar to inline styles in CSS (e.g. Local styles are like normal styles, but they can't be shared among other objects. If used, local styles are allocated automatically, and freed when the object is deleted. They are useful to add local customization to an object. Unlike in CSS, LVGL local styles can be assigned to states (pseudo-classes) and parts (pseudo-elements). To set a local property use functions like lv_obj_set_style_bg_color(slider, lv_color_red(), LV_PART_INDICATOR | LV_STATE_FOCUSED);
|
Properties
英文 | 自動翻訳 |
---|---|
For the full list of style properties click here. |
Typical background properties
英文 | 自動翻訳 |
---|---|
In the documentation of the widgets you will see sentences like "The widget uses the typical background properties". These "typical background properties" are the ones related to:
|
Transitions
英文 | 自動翻訳 |
---|---|
By default, when an object changes state (e.g. it's pressed) the new properties from the new state are set immediately. However, with transitions it's possible to play an animation on state change. For example, on pressing a button its background color can be animated to the pressed color over 300 ms. The parameters of the transitions are stored in the styles. It's possible to set
The transition properties can be defined for each state. For example, setting a 500 ms transition time in the default state means that when the object goes to the default state a 500 ms transition time is applied. Setting a 100 ms transition time in the pressed state causes a 100 ms transition when going to the pressed state. This example configuration results in going to the pressed state quickly and then going back to default slowly. To describe a transition an /*Only its pointer is saved so must static, global or dynamically allocated */
static const lv_style_prop_t trans_props[] = {
LV_STYLE_BG_OPA, LV_STYLE_BG_COLOR,
0, /*End marker*/
};
static lv_style_transition_dsc_t trans1;
lv_style_transition_dsc_init(&trans1, trans_props, lv_anim_path_ease_out, duration_ms, delay_ms);
lv_style_set_transition(&style1, &trans1);
|
Color filter
英文 | 自動翻訳 |
---|---|
TODO |
Themes
英文 | 自動翻訳 |
---|---|
Themes are a collection of styles. If there is an active theme LVGL applies it on every created widget. This will give a default appearance to the UI which can then be modified by adding further styles. Every display can have a different theme. For example, you could have a colorful theme on a TFT and monochrome theme on a secondary monochrome display. To set a theme for a display, two steps are required:
Theme initialization functions can have different prototypes. This example shows how to set the "default" theme: lv_theme_t * th = lv_theme_default_init(display, /*Use the DPI, size, etc from this display*/
LV_COLOR_PALETTE_BLUE, LV_COLOR_PALETTE_CYAN, /*Primary and secondary palette*/
false, /*Light or dark mode*/
&lv_font_montserrat_10, &lv_font_montserrat_14, &lv_font_montserrat_18); /*Small, normal, large fonts*/
lv_disp_set_theme(display, th); /*Assign the theme to the display*/
The included themes are enabled in |
Extending themes
英文 | 自動翻訳 |
---|---|
Built-in themes can be extended. If a custom theme is created, a parent theme can be selected. The parent theme's styles will be added before the custom theme's styles. Any number of themes can be chained this way. E.g. default theme -> custom theme -> dark theme.
There is an example for it below. |
Examples
英文 | 自動翻訳 |
---|---|
Size styles |
|
Background styles |
|
Border styles |
|
Outline styles |
|
Shadow styles |
|
Image styles |
|
Arc styles |
|
Text styles |
|
Line styles |
|
Transition |
|
Using multiple styles |
|
Local styles |
|
Add styles to parts and states |
|
Extending the current theme |
API
英文 | 自動翻訳 |
---|---|
Typedefs typedef uint8_t lv_blend_mode_t typedef uint8_t lv_text_decor_t typedef uint8_t lv_border_side_t typedef uint8_t lv_grad_dir_t typedef uint8_t lv_dither_mode_t Enums enum [anonymous]
enum [anonymous]
enum [anonymous]
enum [anonymous]
enum [anonymous]
enum lv_style_prop_t
|
|
Values: enumerator LV_STYLE_PROP_INV enumerator LV_STYLE_WIDTH enumerator LV_STYLE_MIN_WIDTH enumerator LV_STYLE_MAX_WIDTH enumerator LV_STYLE_HEIGHT 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_TRANSFORM_WIDTH enumerator LV_STYLE_TRANSFORM_HEIGHT enumerator LV_STYLE_TRANSLATE_X enumerator LV_STYLE_TRANSLATE_Y enumerator LV_STYLE_TRANSFORM_ZOOM enumerator LV_STYLE_TRANSFORM_ANGLE 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_BG_COLOR enumerator LV_STYLE_BG_COLOR_FILTERED enumerator LV_STYLE_BG_OPA enumerator LV_STYLE_BG_GRAD_COLOR enumerator LV_STYLE_BG_GRAD_COLOR_FILTERED enumerator LV_STYLE_BG_GRAD_DIR enumerator LV_STYLE_BG_MAIN_STOP enumerator LV_STYLE_BG_GRAD_STOP enumerator LV_STYLE_BG_GRAD enumerator LV_STYLE_BG_DITHER_MODE enumerator LV_STYLE_BG_IMG_SRC enumerator LV_STYLE_BG_IMG_OPA enumerator LV_STYLE_BG_IMG_RECOLOR enumerator LV_STYLE_BG_IMG_RECOLOR_FILTERED enumerator LV_STYLE_BG_IMG_RECOLOR_OPA enumerator LV_STYLE_BG_IMG_TILED enumerator LV_STYLE_BORDER_COLOR enumerator LV_STYLE_BORDER_COLOR_FILTERED enumerator LV_STYLE_BORDER_OPA enumerator LV_STYLE_BORDER_WIDTH enumerator LV_STYLE_BORDER_SIDE enumerator LV_STYLE_BORDER_POST enumerator LV_STYLE_OUTLINE_WIDTH enumerator LV_STYLE_OUTLINE_COLOR enumerator LV_STYLE_OUTLINE_COLOR_FILTERED enumerator LV_STYLE_OUTLINE_OPA enumerator LV_STYLE_OUTLINE_PAD enumerator LV_STYLE_SHADOW_WIDTH enumerator LV_STYLE_SHADOW_OFS_X enumerator LV_STYLE_SHADOW_OFS_Y enumerator LV_STYLE_SHADOW_SPREAD enumerator LV_STYLE_SHADOW_COLOR enumerator LV_STYLE_SHADOW_COLOR_FILTERED enumerator LV_STYLE_SHADOW_OPA enumerator LV_STYLE_IMG_OPA enumerator LV_STYLE_IMG_RECOLOR enumerator LV_STYLE_IMG_RECOLOR_FILTERED enumerator LV_STYLE_IMG_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_COLOR_FILTERED enumerator LV_STYLE_LINE_OPA enumerator LV_STYLE_ARC_WIDTH enumerator LV_STYLE_ARC_ROUNDED enumerator LV_STYLE_ARC_COLOR enumerator LV_STYLE_ARC_COLOR_FILTERED enumerator LV_STYLE_ARC_OPA enumerator LV_STYLE_ARC_IMG_SRC enumerator LV_STYLE_TEXT_COLOR enumerator LV_STYLE_TEXT_COLOR_FILTERED 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_RADIUS enumerator LV_STYLE_CLIP_CORNER enumerator LV_STYLE_OPA enumerator LV_STYLE_COLOR_FILTER_DSC enumerator LV_STYLE_COLOR_FILTER_OPA enumerator LV_STYLE_ANIM_TIME enumerator LV_STYLE_ANIM_SPEED enumerator LV_STYLE_TRANSITION enumerator LV_STYLE_BLEND_MODE enumerator LV_STYLE_LAYOUT enumerator LV_STYLE_BASE_DIR enumerator _LV_STYLE_LAST_BUILT_IN_PROP enumerator LV_STYLE_PROP_ANY
Functions LV_EXPORT_CONST_INT(LV_IMG_ZOOM_NONE) void lv_style_init(lv_style_t *style)
void lv_style_reset(lv_style_t *style)
lv_style_prop_t lv_style_register_prop(void) bool lv_style_remove_prop(lv_style_t *style, lv_style_prop_t prop)
void lv_style_set_prop(lv_style_t *style, lv_style_prop_t prop, lv_style_value_t value)
lv_res_t lv_style_get_prop(const lv_style_t *style, lv_style_prop_t prop, lv_style_value_t *value)
static inline lv_res_t lv_style_get_prop_inlined(const lv_style_t *style, lv_style_prop_t prop, lv_style_value_t *value)
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)
bool lv_style_is_empty(const lv_style_t *style)
uint8_t _lv_style_get_prop_group(lv_style_prop_t prop)
static inline void lv_style_set_size(lv_style_t *style, lv_coord_t value) static inline void lv_style_set_pad_all(lv_style_t *style, lv_coord_t value) static inline void lv_style_set_pad_hor(lv_style_t *style, lv_coord_t value) static inline void lv_style_set_pad_ver(lv_style_t *style, lv_coord_t value) static inline void lv_style_set_pad_gap(lv_style_t *style, lv_coord_t value) struct lv_gradient_stop_t
struct lv_grad_dsc_t
union lv_style_value_t
struct lv_style_const_prop_t
struct lv_style_t
Typedefs typedef void (*lv_theme_apply_cb_t)(struct _lv_theme_t*, lv_obj_t*) typedef struct _lv_theme_t lv_theme_t Functions
void lv_theme_apply(lv_obj_t *obj)
void lv_theme_set_parent(lv_theme_t *new_theme, lv_theme_t *parent)
void lv_theme_set_apply_cb(lv_theme_t *theme, lv_theme_apply_cb_t apply_cb)
const lv_font_t *lv_theme_get_font_small(lv_obj_t *obj)
const lv_font_t *lv_theme_get_font_normal(lv_obj_t *obj)
const lv_font_t *lv_theme_get_font_large(lv_obj_t *obj)
lv_color_t lv_theme_get_color_primary(lv_obj_t *obj)
lv_color_t lv_theme_get_color_secondary(lv_obj_t *obj)
struct _lv_theme_t
Functions static inline lv_coord_t lv_obj_get_style_width(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_min_width(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_max_width(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_height(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_min_height(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_max_height(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_x(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_y(const struct _lv_obj_t *obj, uint32_t part) static inline lv_align_t lv_obj_get_style_align(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_transform_width(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_transform_height(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_translate_x(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_translate_y(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_transform_zoom(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_transform_angle(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_pad_top(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_pad_bottom(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_pad_left(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_pad_right(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_pad_row(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_pad_column(const struct _lv_obj_t *obj, uint32_t part) static inline lv_color_t lv_obj_get_style_bg_color(const struct _lv_obj_t *obj, uint32_t part) static inline lv_color_t lv_obj_get_style_bg_color_filtered(const struct _lv_obj_t *obj, uint32_t part) static inline lv_opa_t lv_obj_get_style_bg_opa(const struct _lv_obj_t *obj, uint32_t part) static inline lv_color_t lv_obj_get_style_bg_grad_color(const struct _lv_obj_t *obj, uint32_t part) static inline lv_color_t lv_obj_get_style_bg_grad_color_filtered(const struct _lv_obj_t *obj, uint32_t part) static inline lv_grad_dir_t lv_obj_get_style_bg_grad_dir(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_bg_main_stop(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_bg_grad_stop(const struct _lv_obj_t *obj, uint32_t part) static inline const lv_grad_dsc_t *lv_obj_get_style_bg_grad(const struct _lv_obj_t *obj, uint32_t part) static inline lv_dither_mode_t lv_obj_get_style_bg_dither_mode(const struct _lv_obj_t *obj, uint32_t part) static inline const void *lv_obj_get_style_bg_img_src(const struct _lv_obj_t *obj, uint32_t part) static inline lv_opa_t lv_obj_get_style_bg_img_opa(const struct _lv_obj_t *obj, uint32_t part) static inline lv_color_t lv_obj_get_style_bg_img_recolor(const struct _lv_obj_t *obj, uint32_t part) static inline lv_color_t lv_obj_get_style_bg_img_recolor_filtered(const struct _lv_obj_t *obj, uint32_t part) static inline lv_opa_t lv_obj_get_style_bg_img_recolor_opa(const struct _lv_obj_t *obj, uint32_t part) static inline bool lv_obj_get_style_bg_img_tiled(const struct _lv_obj_t *obj, uint32_t part) static inline lv_color_t lv_obj_get_style_border_color(const struct _lv_obj_t *obj, uint32_t part) static inline lv_color_t lv_obj_get_style_border_color_filtered(const struct _lv_obj_t *obj, uint32_t part) static inline lv_opa_t lv_obj_get_style_border_opa(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_border_width(const struct _lv_obj_t *obj, uint32_t part) static inline lv_border_side_t lv_obj_get_style_border_side(const struct _lv_obj_t *obj, uint32_t part) static inline bool lv_obj_get_style_border_post(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_outline_width(const struct _lv_obj_t *obj, uint32_t part) static inline lv_color_t lv_obj_get_style_outline_color(const struct _lv_obj_t *obj, uint32_t part) static inline lv_color_t lv_obj_get_style_outline_color_filtered(const struct _lv_obj_t *obj, uint32_t part) static inline lv_opa_t lv_obj_get_style_outline_opa(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_outline_pad(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_shadow_width(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_shadow_ofs_x(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_shadow_ofs_y(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_shadow_spread(const struct _lv_obj_t *obj, uint32_t part) static inline lv_color_t lv_obj_get_style_shadow_color(const struct _lv_obj_t *obj, uint32_t part) static inline lv_color_t lv_obj_get_style_shadow_color_filtered(const struct _lv_obj_t *obj, uint32_t part) static inline lv_opa_t lv_obj_get_style_shadow_opa(const struct _lv_obj_t *obj, uint32_t part) static inline lv_opa_t lv_obj_get_style_img_opa(const struct _lv_obj_t *obj, uint32_t part) static inline lv_color_t lv_obj_get_style_img_recolor(const struct _lv_obj_t *obj, uint32_t part) static inline lv_color_t lv_obj_get_style_img_recolor_filtered(const struct _lv_obj_t *obj, uint32_t part) static inline lv_opa_t lv_obj_get_style_img_recolor_opa(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_line_width(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_line_dash_width(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_line_dash_gap(const struct _lv_obj_t *obj, uint32_t part) static inline bool lv_obj_get_style_line_rounded(const struct _lv_obj_t *obj, uint32_t part) static inline lv_color_t lv_obj_get_style_line_color(const struct _lv_obj_t *obj, uint32_t part) static inline lv_color_t lv_obj_get_style_line_color_filtered(const struct _lv_obj_t *obj, uint32_t part) static inline lv_opa_t lv_obj_get_style_line_opa(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_arc_width(const struct _lv_obj_t *obj, uint32_t part) static inline bool lv_obj_get_style_arc_rounded(const struct _lv_obj_t *obj, uint32_t part) static inline lv_color_t lv_obj_get_style_arc_color(const struct _lv_obj_t *obj, uint32_t part) static inline lv_color_t lv_obj_get_style_arc_color_filtered(const struct _lv_obj_t *obj, uint32_t part) static inline lv_opa_t lv_obj_get_style_arc_opa(const struct _lv_obj_t *obj, uint32_t part) static inline const void *lv_obj_get_style_arc_img_src(const struct _lv_obj_t *obj, uint32_t part) static inline lv_color_t lv_obj_get_style_text_color(const struct _lv_obj_t *obj, uint32_t part) static inline lv_color_t lv_obj_get_style_text_color_filtered(const struct _lv_obj_t *obj, uint32_t part) static inline lv_opa_t lv_obj_get_style_text_opa(const struct _lv_obj_t *obj, uint32_t part) static inline const lv_font_t *lv_obj_get_style_text_font(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_text_letter_space(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_text_line_space(const struct _lv_obj_t *obj, uint32_t part) static inline lv_text_decor_t lv_obj_get_style_text_decor(const struct _lv_obj_t *obj, uint32_t part) static inline lv_text_align_t lv_obj_get_style_text_align(const struct _lv_obj_t *obj, uint32_t part) static inline lv_coord_t lv_obj_get_style_radius(const struct _lv_obj_t *obj, uint32_t part) static inline bool lv_obj_get_style_clip_corner(const struct _lv_obj_t *obj, uint32_t part) static inline lv_opa_t lv_obj_get_style_opa(const struct _lv_obj_t *obj, uint32_t part) static inline const lv_color_filter_dsc_t *lv_obj_get_style_color_filter_dsc(const struct _lv_obj_t *obj, uint32_t part) static inline lv_opa_t lv_obj_get_style_color_filter_opa(const struct _lv_obj_t *obj, uint32_t part)
static inline uint32_t lv_obj_get_style_anim_speed(const struct _lv_obj_t *obj, uint32_t part) static inline const lv_style_transition_dsc_t *lv_obj_get_style_transition(const struct _lv_obj_t *obj, uint32_t part) static inline lv_blend_mode_t lv_obj_get_style_blend_mode(const struct _lv_obj_t *obj, uint32_t part) static inline uint16_t lv_obj_get_style_layout(const struct _lv_obj_t *obj, uint32_t part) static inline lv_base_dir_t lv_obj_get_style_base_dir(const struct _lv_obj_t *obj, uint32_t part) void lv_obj_set_style_width(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_min_width(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_max_width(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_height(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_min_height(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_max_height(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_x(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_y(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_align(struct _lv_obj_t *obj, lv_align_t value, lv_style_selector_t selector) void lv_obj_set_style_transform_width(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_transform_height(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_translate_x(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_translate_y(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_transform_zoom(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_transform_angle(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_pad_top(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_pad_bottom(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_pad_left(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_pad_right(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_pad_row(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_pad_column(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_bg_color(struct _lv_obj_t *obj, lv_color_t value, lv_style_selector_t selector) void lv_obj_set_style_bg_color_filtered(struct _lv_obj_t *obj, lv_color_t value, lv_style_selector_t selector) void lv_obj_set_style_bg_opa(struct _lv_obj_t *obj, lv_opa_t value, lv_style_selector_t selector) void lv_obj_set_style_bg_grad_color(struct _lv_obj_t *obj, lv_color_t value, lv_style_selector_t selector) void lv_obj_set_style_bg_grad_color_filtered(struct _lv_obj_t *obj, lv_color_t value, lv_style_selector_t selector) void lv_obj_set_style_bg_grad_dir(struct _lv_obj_t *obj, lv_grad_dir_t value, lv_style_selector_t selector) void lv_obj_set_style_bg_main_stop(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_bg_grad_stop(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_bg_grad(struct _lv_obj_t *obj, const lv_grad_dsc_t *value, lv_style_selector_t selector) void lv_obj_set_style_bg_dither_mode(struct _lv_obj_t *obj, lv_dither_mode_t value, lv_style_selector_t selector) void lv_obj_set_style_bg_img_src(struct _lv_obj_t *obj, const void *value, lv_style_selector_t selector) void lv_obj_set_style_bg_img_opa(struct _lv_obj_t *obj, lv_opa_t value, lv_style_selector_t selector) void lv_obj_set_style_bg_img_recolor(struct _lv_obj_t *obj, lv_color_t value, lv_style_selector_t selector) void lv_obj_set_style_bg_img_recolor_filtered(struct _lv_obj_t *obj, lv_color_t value, lv_style_selector_t selector) void lv_obj_set_style_bg_img_recolor_opa(struct _lv_obj_t *obj, lv_opa_t value, lv_style_selector_t selector) void lv_obj_set_style_bg_img_tiled(struct _lv_obj_t *obj, bool value, lv_style_selector_t selector) void lv_obj_set_style_border_color(struct _lv_obj_t *obj, lv_color_t value, lv_style_selector_t selector) void lv_obj_set_style_border_color_filtered(struct _lv_obj_t *obj, lv_color_t value, lv_style_selector_t selector) void lv_obj_set_style_border_opa(struct _lv_obj_t *obj, lv_opa_t value, lv_style_selector_t selector) void lv_obj_set_style_border_width(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_border_side(struct _lv_obj_t *obj, lv_border_side_t value, lv_style_selector_t selector) void lv_obj_set_style_border_post(struct _lv_obj_t *obj, bool value, lv_style_selector_t selector) void lv_obj_set_style_outline_width(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_outline_color(struct _lv_obj_t *obj, lv_color_t value, lv_style_selector_t selector) void lv_obj_set_style_outline_color_filtered(struct _lv_obj_t *obj, lv_color_t value, lv_style_selector_t selector) void lv_obj_set_style_outline_opa(struct _lv_obj_t *obj, lv_opa_t value, lv_style_selector_t selector) void lv_obj_set_style_outline_pad(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_shadow_width(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_shadow_ofs_x(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_shadow_ofs_y(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_shadow_spread(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_shadow_color(struct _lv_obj_t *obj, lv_color_t value, lv_style_selector_t selector) void lv_obj_set_style_shadow_color_filtered(struct _lv_obj_t *obj, lv_color_t value, lv_style_selector_t selector) void lv_obj_set_style_shadow_opa(struct _lv_obj_t *obj, lv_opa_t value, lv_style_selector_t selector) void lv_obj_set_style_img_opa(struct _lv_obj_t *obj, lv_opa_t value, lv_style_selector_t selector) void lv_obj_set_style_img_recolor(struct _lv_obj_t *obj, lv_color_t value, lv_style_selector_t selector) void lv_obj_set_style_img_recolor_filtered(struct _lv_obj_t *obj, lv_color_t value, lv_style_selector_t selector) void lv_obj_set_style_img_recolor_opa(struct _lv_obj_t *obj, lv_opa_t value, lv_style_selector_t selector) void lv_obj_set_style_line_width(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_line_dash_width(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_line_dash_gap(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_line_rounded(struct _lv_obj_t *obj, bool value, lv_style_selector_t selector) void lv_obj_set_style_line_color(struct _lv_obj_t *obj, lv_color_t value, lv_style_selector_t selector) void lv_obj_set_style_line_color_filtered(struct _lv_obj_t *obj, lv_color_t value, lv_style_selector_t selector) void lv_obj_set_style_line_opa(struct _lv_obj_t *obj, lv_opa_t value, lv_style_selector_t selector) void lv_obj_set_style_arc_width(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_arc_rounded(struct _lv_obj_t *obj, bool value, lv_style_selector_t selector) void lv_obj_set_style_arc_color(struct _lv_obj_t *obj, lv_color_t value, lv_style_selector_t selector) void lv_obj_set_style_arc_color_filtered(struct _lv_obj_t *obj, lv_color_t value, lv_style_selector_t selector) void lv_obj_set_style_arc_opa(struct _lv_obj_t *obj, lv_opa_t value, lv_style_selector_t selector) void lv_obj_set_style_arc_img_src(struct _lv_obj_t *obj, const void *value, lv_style_selector_t selector) void lv_obj_set_style_text_color(struct _lv_obj_t *obj, lv_color_t value, lv_style_selector_t selector) void lv_obj_set_style_text_color_filtered(struct _lv_obj_t *obj, lv_color_t value, lv_style_selector_t selector) void lv_obj_set_style_text_opa(struct _lv_obj_t *obj, lv_opa_t value, lv_style_selector_t selector) void lv_obj_set_style_text_font(struct _lv_obj_t *obj, const lv_font_t *value, lv_style_selector_t selector) void lv_obj_set_style_text_letter_space(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_text_line_space(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_text_decor(struct _lv_obj_t *obj, lv_text_decor_t value, lv_style_selector_t selector) void lv_obj_set_style_text_align(struct _lv_obj_t *obj, lv_text_align_t value, lv_style_selector_t selector) void lv_obj_set_style_radius(struct _lv_obj_t *obj, lv_coord_t value, lv_style_selector_t selector) void lv_obj_set_style_clip_corner(struct _lv_obj_t *obj, bool value, lv_style_selector_t selector) void lv_obj_set_style_opa(struct _lv_obj_t *obj, lv_opa_t value, lv_style_selector_t selector) void lv_obj_set_style_color_filter_dsc(struct _lv_obj_t *obj, const lv_color_filter_dsc_t *value, lv_style_selector_t selector) void lv_obj_set_style_color_filter_opa(struct _lv_obj_t *obj, lv_opa_t value, lv_style_selector_t selector)
void lv_obj_set_style_anim_speed(struct _lv_obj_t *obj, uint32_t value, lv_style_selector_t selector) void lv_obj_set_style_transition(struct _lv_obj_t *obj, const lv_style_transition_dsc_t *value, lv_style_selector_t selector) void lv_obj_set_style_blend_mode(struct _lv_obj_t *obj, lv_blend_mode_t value, lv_style_selector_t selector) void lv_obj_set_style_layout(struct _lv_obj_t *obj, uint16_t value, lv_style_selector_t selector) void lv_obj_set_style_base_dir(struct _lv_obj_t *obj, lv_base_dir_t value, lv_style_selector_t selector)
void lv_style_set_width(lv_style_t *style, lv_coord_t value) void lv_style_set_min_width(lv_style_t *style, lv_coord_t value) void lv_style_set_max_width(lv_style_t *style, lv_coord_t value) void lv_style_set_height(lv_style_t *style, lv_coord_t value) void lv_style_set_min_height(lv_style_t *style, lv_coord_t value) void lv_style_set_max_height(lv_style_t *style, lv_coord_t value) void lv_style_set_x(lv_style_t *style, lv_coord_t value) void lv_style_set_y(lv_style_t *style, lv_coord_t value) void lv_style_set_align(lv_style_t *style, lv_align_t value) void lv_style_set_transform_width(lv_style_t *style, lv_coord_t value) void lv_style_set_transform_height(lv_style_t *style, lv_coord_t value) void lv_style_set_translate_x(lv_style_t *style, lv_coord_t value) void lv_style_set_translate_y(lv_style_t *style, lv_coord_t value) void lv_style_set_transform_zoom(lv_style_t *style, lv_coord_t value) void lv_style_set_transform_angle(lv_style_t *style, lv_coord_t value) void lv_style_set_pad_top(lv_style_t *style, lv_coord_t value) void lv_style_set_pad_bottom(lv_style_t *style, lv_coord_t value) void lv_style_set_pad_left(lv_style_t *style, lv_coord_t value) void lv_style_set_pad_right(lv_style_t *style, lv_coord_t value) void lv_style_set_pad_row(lv_style_t *style, lv_coord_t value) void lv_style_set_pad_column(lv_style_t *style, lv_coord_t value) void lv_style_set_bg_color(lv_style_t *style, lv_color_t value) void lv_style_set_bg_color_filtered(lv_style_t *style, lv_color_t value) void lv_style_set_bg_opa(lv_style_t *style, lv_opa_t value) void lv_style_set_bg_grad_color(lv_style_t *style, lv_color_t value) void lv_style_set_bg_grad_color_filtered(lv_style_t *style, lv_color_t value) void lv_style_set_bg_grad_dir(lv_style_t *style, lv_grad_dir_t value) void lv_style_set_bg_main_stop(lv_style_t *style, lv_coord_t value) void lv_style_set_bg_grad_stop(lv_style_t *style, lv_coord_t value) void lv_style_set_bg_grad(lv_style_t *style, const lv_grad_dsc_t *value) void lv_style_set_bg_dither_mode(lv_style_t *style, lv_dither_mode_t value) void lv_style_set_bg_img_src(lv_style_t *style, const void *value) void lv_style_set_bg_img_opa(lv_style_t *style, lv_opa_t value) void lv_style_set_bg_img_recolor(lv_style_t *style, lv_color_t value) void lv_style_set_bg_img_recolor_filtered(lv_style_t *style, lv_color_t value) void lv_style_set_bg_img_recolor_opa(lv_style_t *style, lv_opa_t value) void lv_style_set_bg_img_tiled(lv_style_t *style, bool value) void lv_style_set_border_color(lv_style_t *style, lv_color_t value) void lv_style_set_border_color_filtered(lv_style_t *style, lv_color_t value) void lv_style_set_border_opa(lv_style_t *style, lv_opa_t value) void lv_style_set_border_width(lv_style_t *style, lv_coord_t value) void lv_style_set_border_side(lv_style_t *style, lv_border_side_t value) void lv_style_set_border_post(lv_style_t *style, bool value) void lv_style_set_outline_width(lv_style_t *style, lv_coord_t value) void lv_style_set_outline_color(lv_style_t *style, lv_color_t value) void lv_style_set_outline_color_filtered(lv_style_t *style, lv_color_t value) void lv_style_set_outline_opa(lv_style_t *style, lv_opa_t value) void lv_style_set_outline_pad(lv_style_t *style, lv_coord_t value) void lv_style_set_shadow_width(lv_style_t *style, lv_coord_t value) void lv_style_set_shadow_ofs_x(lv_style_t *style, lv_coord_t value) void lv_style_set_shadow_ofs_y(lv_style_t *style, lv_coord_t value) void lv_style_set_shadow_spread(lv_style_t *style, lv_coord_t value) void lv_style_set_shadow_color(lv_style_t *style, lv_color_t value) void lv_style_set_shadow_color_filtered(lv_style_t *style, lv_color_t value) void lv_style_set_shadow_opa(lv_style_t *style, lv_opa_t value) void lv_style_set_img_opa(lv_style_t *style, lv_opa_t value) void lv_style_set_img_recolor(lv_style_t *style, lv_color_t value) void lv_style_set_img_recolor_filtered(lv_style_t *style, lv_color_t value) void lv_style_set_img_recolor_opa(lv_style_t *style, lv_opa_t value) void lv_style_set_line_width(lv_style_t *style, lv_coord_t value) void lv_style_set_line_dash_width(lv_style_t *style, lv_coord_t value) void lv_style_set_line_dash_gap(lv_style_t *style, lv_coord_t value) void lv_style_set_line_rounded(lv_style_t *style, bool value) void lv_style_set_line_color(lv_style_t *style, lv_color_t value) void lv_style_set_line_color_filtered(lv_style_t *style, lv_color_t value) void lv_style_set_line_opa(lv_style_t *style, lv_opa_t value) void lv_style_set_arc_width(lv_style_t *style, lv_coord_t value) void lv_style_set_arc_rounded(lv_style_t *style, bool value) void lv_style_set_arc_color(lv_style_t *style, lv_color_t value) void lv_style_set_arc_color_filtered(lv_style_t *style, lv_color_t value) void lv_style_set_arc_opa(lv_style_t *style, lv_opa_t value) void lv_style_set_arc_img_src(lv_style_t *style, const void *value) void lv_style_set_text_color(lv_style_t *style, lv_color_t value) void lv_style_set_text_color_filtered(lv_style_t *style, lv_color_t value) void lv_style_set_text_opa(lv_style_t *style, lv_opa_t value) void lv_style_set_text_font(lv_style_t *style, const lv_font_t *value) void lv_style_set_text_letter_space(lv_style_t *style, lv_coord_t value) void lv_style_set_text_line_space(lv_style_t *style, lv_coord_t value) void lv_style_set_text_decor(lv_style_t *style, lv_text_decor_t value) void lv_style_set_text_align(lv_style_t *style, lv_text_align_t value) void lv_style_set_radius(lv_style_t *style, lv_coord_t value) void lv_style_set_clip_corner(lv_style_t *style, bool value) void lv_style_set_opa(lv_style_t *style, lv_opa_t value) void lv_style_set_color_filter_dsc(lv_style_t *style, const lv_color_filter_dsc_t *value) void lv_style_set_color_filter_opa(lv_style_t *style, lv_opa_t value)
void lv_style_set_anim_speed(lv_style_t *style, uint32_t value) void lv_style_set_transition(lv_style_t *style, const lv_style_transition_dsc_t *value) void lv_style_set_blend_mode(lv_style_t *style, lv_blend_mode_t value) void lv_style_set_layout(lv_style_t *style, uint16_t value) void lv_style_set_base_dir(lv_style_t *style, lv_base_dir_t value) |