Skip to content

LVGL codegen: optional nested object structs for repeated UI blocks #1023

Description

@Mep007

I have an experimental fork that adds an optional LVGL codegen mode for projects with repeated UI blocks, such as dashboard tiles.

Fork/branch:
https://github.com/Mep007/EEZ_Studio/tree/mesp-lvgl-codegen

What it addresses:

  • Current LVGL output uses one flat global objects namespace, so every referenced widget needs a globally unique identifier.
  • Repeated containers with the same internal structure become awkward, because child widgets cannot reuse local names like icon, lbl, value, bar.
  • The fork adds a build option: Nested object structs (experimental).
  • When enabled, generated object references are grouped into nested C structs per screen/object hierarchy.
  • Named widgets with children become struct nodes; the widget pointer is available as .obj.
  • Default flat output remains unchanged unless the option is enabled.
Image

Example intended access pattern:

objects.page_1.widg_3.icon
objects.page_1.widg_3.lbl
objects.page_1.widg_3.value
objects.page_1.widg_3.bar
objects.page_1.widg_3.scale

objects.page_1.widg_4.icon
objects.page_1.widg_4.lbl
objects.page_1.widg_4.value
objects.page_1.widg_4.bar
objects.page_1.widg_4.scale

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions