mirror of
https://github.com/esphome/esphome.git
synced 2025-07-25 20:56: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.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.schema_extractors import SCHEMA_EXTRACT, schema_extractor
|
||||
|
||||
@ -263,6 +263,15 @@ def pixels_validator(value):
|
||||
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):
|
||||
value = cv.float_range(0.1, 10.0)(value)
|
||||
return value
|
||||
|
@ -156,13 +156,13 @@ STYLE_PROPS = {
|
||||
"opa_layered": lvalid.opacity,
|
||||
"outline_color": lvalid.lv_color,
|
||||
"outline_opa": lvalid.opacity,
|
||||
"outline_pad": lvalid.pixels,
|
||||
"outline_pad": lvalid.padding,
|
||||
"outline_width": lvalid.pixels,
|
||||
"pad_all": lvalid.pixels,
|
||||
"pad_bottom": lvalid.pixels,
|
||||
"pad_left": lvalid.pixels,
|
||||
"pad_right": lvalid.pixels,
|
||||
"pad_top": lvalid.pixels,
|
||||
"pad_all": lvalid.padding,
|
||||
"pad_bottom": lvalid.padding,
|
||||
"pad_left": lvalid.padding,
|
||||
"pad_right": lvalid.padding,
|
||||
"pad_top": lvalid.padding,
|
||||
"shadow_color": lvalid.lv_color,
|
||||
"shadow_ofs_x": 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_Y_ALIGN): grid_alignments,
|
||||
cv.Optional(df.CONF_PAD_ROW): lvalid.pixels,
|
||||
cv.Optional(df.CONF_PAD_COLUMN): lvalid.pixels,
|
||||
cv.Optional(df.CONF_PAD_ROW): lvalid.padding,
|
||||
cv.Optional(df.CONF_PAD_COLUMN): lvalid.padding,
|
||||
}
|
||||
)
|
||||
|
||||
@ -370,8 +370,8 @@ LAYOUT_SCHEMA = {
|
||||
cv.Required(df.CONF_GRID_COLUMNS): [grid_spec],
|
||||
cv.Optional(df.CONF_GRID_COLUMN_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_COLUMN): lvalid.pixels,
|
||||
cv.Optional(df.CONF_PAD_ROW): lvalid.padding,
|
||||
cv.Optional(df.CONF_PAD_COLUMN): lvalid.padding,
|
||||
},
|
||||
df.TYPE_FLEX: {
|
||||
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_CROSS, 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_COLUMN): lvalid.pixels,
|
||||
cv.Optional(df.CONF_PAD_ROW): lvalid.padding,
|
||||
cv.Optional(df.CONF_PAD_COLUMN): lvalid.padding,
|
||||
},
|
||||
},
|
||||
lower=True,
|
||||
@ -427,8 +427,8 @@ ALL_STYLES = {
|
||||
**STYLE_PROPS,
|
||||
**GRID_CELL_SCHEMA,
|
||||
**FLEX_OBJ_SCHEMA,
|
||||
cv.Optional(df.CONF_PAD_ROW): lvalid.pixels,
|
||||
cv.Optional(df.CONF_PAD_COLUMN): lvalid.pixels,
|
||||
cv.Optional(df.CONF_PAD_ROW): lvalid.padding,
|
||||
cv.Optional(df.CONF_PAD_COLUMN): lvalid.padding,
|
||||
}
|
||||
|
||||
|
||||
|
@ -19,7 +19,7 @@ from ..defines import (
|
||||
CONF_SELECTED,
|
||||
)
|
||||
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 ..schemas import automation_schema
|
||||
from ..types import (
|
||||
@ -59,8 +59,8 @@ BUTTONMATRIX_BUTTON_SCHEMA = cv.Schema(
|
||||
BUTTONMATRIX_SCHEMA = cv.Schema(
|
||||
{
|
||||
cv.Optional(CONF_ONE_CHECKED, default=False): lv_bool,
|
||||
cv.Optional(CONF_PAD_ROW): pixels,
|
||||
cv.Optional(CONF_PAD_COLUMN): pixels,
|
||||
cv.Optional(CONF_PAD_ROW): padding,
|
||||
cv.Optional(CONF_PAD_COLUMN): padding,
|
||||
cv.GenerateID(CONF_BUTTON_TEXT_LIST_ID): cv.declare_id(char_ptr),
|
||||
cv.Required(CONF_ROWS): cv.ensure_list(
|
||||
cv.Schema(
|
||||
|
@ -2,7 +2,7 @@ from esphome.config_validation import Optional
|
||||
from esphome.const import CONF_TEXT
|
||||
|
||||
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 ..schemas import TEXT_SCHEMA
|
||||
from ..types import LvBoolean
|
||||
@ -19,7 +19,7 @@ class CheckboxType(WidgetType):
|
||||
(CONF_MAIN, CONF_INDICATOR),
|
||||
TEXT_SCHEMA.extend(
|
||||
{
|
||||
Optional(CONF_PAD_COLUMN): pixels,
|
||||
Optional(CONF_PAD_COLUMN): padding,
|
||||
}
|
||||
),
|
||||
)
|
||||
|
@ -641,6 +641,8 @@ lvgl:
|
||||
knob:
|
||||
radius: 1
|
||||
width: "4"
|
||||
pad_left: -5
|
||||
pad_top: 5
|
||||
height: 10%
|
||||
bg_color: 0x000000
|
||||
width: 100%
|
||||
|
Loading…
x
Reference in New Issue
Block a user