This document outlines the roadmap for achieving near-100% API coverage of LVGL v9 features within the lvgl_cpp framework.
Current lvgl_cpp coverage stands at 56.3% for functions and 34.5% for enums based on the latest v9.4 inclusive user-facing audit.
- Total Functions: 1,835 | Used: 1,034 | Coverage: 56.3%
- Total Enums: 859 | Used: 296 | Coverage: 34.5%
| LVGL Widget | lvgl_cpp Wrapper |
Status | Notes |
|---|---|---|---|
lv_obj |
core/object.h |
42.2% coverage. Includes behavior proxies. | |
lv_anim |
misc/animation.h |
62.9% coverage. | |
lv_event |
core/event.h |
✅ | Improved via EventProxy. |
lv_span |
widgets/span.h |
✅ | Phase 4 implementation complete. |
lv_lottie |
widgets/lottie.h |
✅ | |
lv_vector |
misc/vector.h |
✅ |
- Display (
lv_display): ✅ DONE.display/display.hprovides full abstraction. - Input Device (
lv_indev): ✅ DONE.indev/input_device.hcovers inputs and cursors. - Group (
lv_group): ✅ DONE. Core group management is functional. - File System (
lv_fs): PARTIAL.misc/file_system.hexists but driver registration logic is complex. - Theme (
lv_theme): ✅ DONE.misc/theme.hwrapper implemented.
Goal: Reach >53% total function coverage.
- `EventProxy` (#147): Systematic wrapping of `lv_obj_add_event_cb` and standard event handlers. ✅
- `StateProxy` (#148): Fluent interface for widget states (Checked, Disabled, etc.). ✅
- `GroupProxy` (#149): RAII management for focus groups and device assignment. ✅
- `Span` Widget (#150): Complete the rich text implementation. ✅
- Complete Animation Timeline: Add support for repeats, delays, and merging (
lv_anim_timeline_merge). - Lottie Optimizations: Memory-safe data source handling for Lottie animations.
- Audit Automation: Integrate
audit_api_coverage.pyinto the CI flow to prevent coverage regressions.
Goal: Increase lv_obj function coverage to >80%.
- Proxies: Introduce
InteractionProxyandTreeProxyto modularize object API. - Types: standardize
AreaandPointusage. - Features: Implement missing scrolling getters, coordinate transforms, and tree swapping.