mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 23:21:54 +00:00 
			
		
		
		
	[lvgl] Fix image property processing (#8691)
This commit is contained in:
		| @@ -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 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user