mirror of
https://github.com/esphome/esphome.git
synced 2025-07-28 06:06:33 +00:00
[lvgl] Fix image property processing (#8691)
This commit is contained in:
parent
1294e8ccd5
commit
d7c615ec43
@ -10,7 +10,7 @@ from ..defines import (
|
|||||||
CONF_ZOOM,
|
CONF_ZOOM,
|
||||||
LvConstant,
|
LvConstant,
|
||||||
)
|
)
|
||||||
from ..lv_validation import angle, lv_bool, lv_image, size, zoom
|
from ..lv_validation import lv_angle, lv_bool, lv_image, size, zoom
|
||||||
from ..lvcode import lv
|
from ..lvcode import lv
|
||||||
from ..types import lv_img_t
|
from ..types import lv_img_t
|
||||||
from . import Widget, WidgetType
|
from . import Widget, WidgetType
|
||||||
@ -22,7 +22,7 @@ BASE_IMG_SCHEMA = cv.Schema(
|
|||||||
{
|
{
|
||||||
cv.Optional(CONF_PIVOT_X): size,
|
cv.Optional(CONF_PIVOT_X): size,
|
||||||
cv.Optional(CONF_PIVOT_Y): size,
|
cv.Optional(CONF_PIVOT_Y): size,
|
||||||
cv.Optional(CONF_ANGLE): angle,
|
cv.Optional(CONF_ANGLE): lv_angle,
|
||||||
cv.Optional(CONF_ZOOM): zoom,
|
cv.Optional(CONF_ZOOM): zoom,
|
||||||
cv.Optional(CONF_OFFSET_X): size,
|
cv.Optional(CONF_OFFSET_X): size,
|
||||||
cv.Optional(CONF_OFFSET_Y): size,
|
cv.Optional(CONF_OFFSET_Y): size,
|
||||||
@ -66,17 +66,19 @@ class ImgType(WidgetType):
|
|||||||
if (pivot_x := config.get(CONF_PIVOT_X)) and (
|
if (pivot_x := config.get(CONF_PIVOT_X)) and (
|
||||||
pivot_y := config.get(CONF_PIVOT_Y)
|
pivot_y := config.get(CONF_PIVOT_Y)
|
||||||
):
|
):
|
||||||
lv.img_set_pivot(w.obj, pivot_x, pivot_y)
|
lv.img_set_pivot(
|
||||||
|
w.obj, await size.process(pivot_x), await size.process(pivot_y)
|
||||||
|
)
|
||||||
if (cf_angle := config.get(CONF_ANGLE)) is not None:
|
if (cf_angle := config.get(CONF_ANGLE)) is not None:
|
||||||
lv.img_set_angle(w.obj, cf_angle)
|
lv.img_set_angle(w.obj, await lv_angle.process(cf_angle))
|
||||||
if (img_zoom := config.get(CONF_ZOOM)) is not None:
|
if (img_zoom := config.get(CONF_ZOOM)) is not None:
|
||||||
lv.img_set_zoom(w.obj, img_zoom)
|
lv.img_set_zoom(w.obj, await zoom.process(img_zoom))
|
||||||
if (offset := config.get(CONF_OFFSET_X)) is not None:
|
if (offset := config.get(CONF_OFFSET_X)) is not None:
|
||||||
lv.img_set_offset_x(w.obj, offset)
|
lv.img_set_offset_x(w.obj, await size.process(offset))
|
||||||
if (offset := config.get(CONF_OFFSET_Y)) is not None:
|
if (offset := config.get(CONF_OFFSET_Y)) is not None:
|
||||||
lv.img_set_offset_y(w.obj, offset)
|
lv.img_set_offset_y(w.obj, await size.process(offset))
|
||||||
if CONF_ANTIALIAS in config:
|
if CONF_ANTIALIAS in config:
|
||||||
lv.img_set_antialias(w.obj, config[CONF_ANTIALIAS])
|
lv.img_set_antialias(w.obj, await lv_bool.process(config[CONF_ANTIALIAS]))
|
||||||
if mode := config.get(CONF_MODE):
|
if mode := config.get(CONF_MODE):
|
||||||
await w.set_property("size_mode", mode)
|
await w.set_property("size_mode", mode)
|
||||||
|
|
||||||
|
@ -134,6 +134,15 @@ lvgl:
|
|||||||
id: style_test
|
id: style_test
|
||||||
bg_color: blue
|
bg_color: blue
|
||||||
bg_opa: !lambda return 0.5;
|
bg_opa: !lambda return 0.5;
|
||||||
|
- lvgl.image.update:
|
||||||
|
id: lv_image
|
||||||
|
zoom: !lambda return 512;
|
||||||
|
angle: !lambda return 100;
|
||||||
|
pivot_x: !lambda return 20;
|
||||||
|
pivot_y: !lambda return 20;
|
||||||
|
offset_x: !lambda return 20;
|
||||||
|
offset_y: !lambda return 20;
|
||||||
|
antialias: !lambda return true;
|
||||||
- id: simple_msgbox
|
- id: simple_msgbox
|
||||||
title: Simple
|
title: Simple
|
||||||
|
|
||||||
@ -486,6 +495,8 @@ lvgl:
|
|||||||
align: top_left
|
align: top_left
|
||||||
y: "50"
|
y: "50"
|
||||||
mode: real
|
mode: real
|
||||||
|
zoom: 2.0
|
||||||
|
angle: 45
|
||||||
- tileview:
|
- tileview:
|
||||||
id: tileview_id
|
id: tileview_id
|
||||||
scrollbar_mode: active
|
scrollbar_mode: active
|
||||||
|
Loading…
x
Reference in New Issue
Block a user