mirror of
https://github.com/esphome/esphome.git
synced 2025-07-27 05:36:38 +00:00
[lvgl] Allow padding to be negative (#8671)
This commit is contained in:
parent
37a2cb07d1
commit
1294e8ccd5
@ -16,7 +16,7 @@ from esphome.const import (
|
|||||||
)
|
)
|
||||||
from esphome.core import CORE, ID, Lambda
|
from esphome.core import CORE, ID, Lambda
|
||||||
from esphome.cpp_generator import MockObj
|
from esphome.cpp_generator import MockObj
|
||||||
from esphome.cpp_types import ESPTime, uint32
|
from esphome.cpp_types import ESPTime, int32, uint32
|
||||||
from esphome.helpers import cpp_string_escape
|
from esphome.helpers import cpp_string_escape
|
||||||
from esphome.schema_extractors import SCHEMA_EXTRACT, schema_extractor
|
from esphome.schema_extractors import SCHEMA_EXTRACT, schema_extractor
|
||||||
|
|
||||||
@ -263,6 +263,15 @@ def pixels_validator(value):
|
|||||||
pixels = LValidator(pixels_validator, uint32, retmapper=literal)
|
pixels = LValidator(pixels_validator, uint32, retmapper=literal)
|
||||||
|
|
||||||
|
|
||||||
|
def padding_validator(value):
|
||||||
|
if isinstance(value, str) and value.lower().endswith("px"):
|
||||||
|
value = value[:-2]
|
||||||
|
return cv.int_(value)
|
||||||
|
|
||||||
|
|
||||||
|
padding = LValidator(padding_validator, int32, retmapper=literal)
|
||||||
|
|
||||||
|
|
||||||
def zoom_validator(value):
|
def zoom_validator(value):
|
||||||
value = cv.float_range(0.1, 10.0)(value)
|
value = cv.float_range(0.1, 10.0)(value)
|
||||||
return value
|
return value
|
||||||
|
@ -156,13 +156,13 @@ STYLE_PROPS = {
|
|||||||
"opa_layered": lvalid.opacity,
|
"opa_layered": lvalid.opacity,
|
||||||
"outline_color": lvalid.lv_color,
|
"outline_color": lvalid.lv_color,
|
||||||
"outline_opa": lvalid.opacity,
|
"outline_opa": lvalid.opacity,
|
||||||
"outline_pad": lvalid.pixels,
|
"outline_pad": lvalid.padding,
|
||||||
"outline_width": lvalid.pixels,
|
"outline_width": lvalid.pixels,
|
||||||
"pad_all": lvalid.pixels,
|
"pad_all": lvalid.padding,
|
||||||
"pad_bottom": lvalid.pixels,
|
"pad_bottom": lvalid.padding,
|
||||||
"pad_left": lvalid.pixels,
|
"pad_left": lvalid.padding,
|
||||||
"pad_right": lvalid.pixels,
|
"pad_right": lvalid.padding,
|
||||||
"pad_top": lvalid.pixels,
|
"pad_top": lvalid.padding,
|
||||||
"shadow_color": lvalid.lv_color,
|
"shadow_color": lvalid.lv_color,
|
||||||
"shadow_ofs_x": lvalid.lv_int,
|
"shadow_ofs_x": lvalid.lv_int,
|
||||||
"shadow_ofs_y": lvalid.lv_int,
|
"shadow_ofs_y": lvalid.lv_int,
|
||||||
@ -226,8 +226,8 @@ FULL_STYLE_SCHEMA = STYLE_SCHEMA.extend(
|
|||||||
{
|
{
|
||||||
cv.Optional(df.CONF_GRID_CELL_X_ALIGN): grid_alignments,
|
cv.Optional(df.CONF_GRID_CELL_X_ALIGN): grid_alignments,
|
||||||
cv.Optional(df.CONF_GRID_CELL_Y_ALIGN): grid_alignments,
|
cv.Optional(df.CONF_GRID_CELL_Y_ALIGN): grid_alignments,
|
||||||
cv.Optional(df.CONF_PAD_ROW): lvalid.pixels,
|
cv.Optional(df.CONF_PAD_ROW): lvalid.padding,
|
||||||
cv.Optional(df.CONF_PAD_COLUMN): lvalid.pixels,
|
cv.Optional(df.CONF_PAD_COLUMN): lvalid.padding,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -370,8 +370,8 @@ LAYOUT_SCHEMA = {
|
|||||||
cv.Required(df.CONF_GRID_COLUMNS): [grid_spec],
|
cv.Required(df.CONF_GRID_COLUMNS): [grid_spec],
|
||||||
cv.Optional(df.CONF_GRID_COLUMN_ALIGN): grid_alignments,
|
cv.Optional(df.CONF_GRID_COLUMN_ALIGN): grid_alignments,
|
||||||
cv.Optional(df.CONF_GRID_ROW_ALIGN): grid_alignments,
|
cv.Optional(df.CONF_GRID_ROW_ALIGN): grid_alignments,
|
||||||
cv.Optional(df.CONF_PAD_ROW): lvalid.pixels,
|
cv.Optional(df.CONF_PAD_ROW): lvalid.padding,
|
||||||
cv.Optional(df.CONF_PAD_COLUMN): lvalid.pixels,
|
cv.Optional(df.CONF_PAD_COLUMN): lvalid.padding,
|
||||||
},
|
},
|
||||||
df.TYPE_FLEX: {
|
df.TYPE_FLEX: {
|
||||||
cv.Optional(
|
cv.Optional(
|
||||||
@ -380,8 +380,8 @@ LAYOUT_SCHEMA = {
|
|||||||
cv.Optional(df.CONF_FLEX_ALIGN_MAIN, default="start"): flex_alignments,
|
cv.Optional(df.CONF_FLEX_ALIGN_MAIN, default="start"): flex_alignments,
|
||||||
cv.Optional(df.CONF_FLEX_ALIGN_CROSS, default="start"): flex_alignments,
|
cv.Optional(df.CONF_FLEX_ALIGN_CROSS, default="start"): flex_alignments,
|
||||||
cv.Optional(df.CONF_FLEX_ALIGN_TRACK, default="start"): flex_alignments,
|
cv.Optional(df.CONF_FLEX_ALIGN_TRACK, default="start"): flex_alignments,
|
||||||
cv.Optional(df.CONF_PAD_ROW): lvalid.pixels,
|
cv.Optional(df.CONF_PAD_ROW): lvalid.padding,
|
||||||
cv.Optional(df.CONF_PAD_COLUMN): lvalid.pixels,
|
cv.Optional(df.CONF_PAD_COLUMN): lvalid.padding,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
lower=True,
|
lower=True,
|
||||||
@ -427,8 +427,8 @@ ALL_STYLES = {
|
|||||||
**STYLE_PROPS,
|
**STYLE_PROPS,
|
||||||
**GRID_CELL_SCHEMA,
|
**GRID_CELL_SCHEMA,
|
||||||
**FLEX_OBJ_SCHEMA,
|
**FLEX_OBJ_SCHEMA,
|
||||||
cv.Optional(df.CONF_PAD_ROW): lvalid.pixels,
|
cv.Optional(df.CONF_PAD_ROW): lvalid.padding,
|
||||||
cv.Optional(df.CONF_PAD_COLUMN): lvalid.pixels,
|
cv.Optional(df.CONF_PAD_COLUMN): lvalid.padding,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ from ..defines import (
|
|||||||
CONF_SELECTED,
|
CONF_SELECTED,
|
||||||
)
|
)
|
||||||
from ..helpers import lvgl_components_required
|
from ..helpers import lvgl_components_required
|
||||||
from ..lv_validation import key_code, lv_bool, pixels
|
from ..lv_validation import key_code, lv_bool, padding
|
||||||
from ..lvcode import lv, lv_add, lv_expr
|
from ..lvcode import lv, lv_add, lv_expr
|
||||||
from ..schemas import automation_schema
|
from ..schemas import automation_schema
|
||||||
from ..types import (
|
from ..types import (
|
||||||
@ -59,8 +59,8 @@ BUTTONMATRIX_BUTTON_SCHEMA = cv.Schema(
|
|||||||
BUTTONMATRIX_SCHEMA = cv.Schema(
|
BUTTONMATRIX_SCHEMA = cv.Schema(
|
||||||
{
|
{
|
||||||
cv.Optional(CONF_ONE_CHECKED, default=False): lv_bool,
|
cv.Optional(CONF_ONE_CHECKED, default=False): lv_bool,
|
||||||
cv.Optional(CONF_PAD_ROW): pixels,
|
cv.Optional(CONF_PAD_ROW): padding,
|
||||||
cv.Optional(CONF_PAD_COLUMN): pixels,
|
cv.Optional(CONF_PAD_COLUMN): padding,
|
||||||
cv.GenerateID(CONF_BUTTON_TEXT_LIST_ID): cv.declare_id(char_ptr),
|
cv.GenerateID(CONF_BUTTON_TEXT_LIST_ID): cv.declare_id(char_ptr),
|
||||||
cv.Required(CONF_ROWS): cv.ensure_list(
|
cv.Required(CONF_ROWS): cv.ensure_list(
|
||||||
cv.Schema(
|
cv.Schema(
|
||||||
|
@ -2,7 +2,7 @@ from esphome.config_validation import Optional
|
|||||||
from esphome.const import CONF_TEXT
|
from esphome.const import CONF_TEXT
|
||||||
|
|
||||||
from ..defines import CONF_INDICATOR, CONF_MAIN, CONF_PAD_COLUMN
|
from ..defines import CONF_INDICATOR, CONF_MAIN, CONF_PAD_COLUMN
|
||||||
from ..lv_validation import lv_text, pixels
|
from ..lv_validation import lv_text, padding
|
||||||
from ..lvcode import lv
|
from ..lvcode import lv
|
||||||
from ..schemas import TEXT_SCHEMA
|
from ..schemas import TEXT_SCHEMA
|
||||||
from ..types import LvBoolean
|
from ..types import LvBoolean
|
||||||
@ -19,7 +19,7 @@ class CheckboxType(WidgetType):
|
|||||||
(CONF_MAIN, CONF_INDICATOR),
|
(CONF_MAIN, CONF_INDICATOR),
|
||||||
TEXT_SCHEMA.extend(
|
TEXT_SCHEMA.extend(
|
||||||
{
|
{
|
||||||
Optional(CONF_PAD_COLUMN): pixels,
|
Optional(CONF_PAD_COLUMN): padding,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
@ -641,6 +641,8 @@ lvgl:
|
|||||||
knob:
|
knob:
|
||||||
radius: 1
|
radius: 1
|
||||||
width: "4"
|
width: "4"
|
||||||
|
pad_left: -5
|
||||||
|
pad_top: 5
|
||||||
height: 10%
|
height: 10%
|
||||||
bg_color: 0x000000
|
bg_color: 0x000000
|
||||||
width: 100%
|
width: 100%
|
||||||
|
Loading…
x
Reference in New Issue
Block a user