step 4: add digital bar level and status gauges

This commit is contained in:
2026-07-02 14:35:13 +02:00
parent 41e44a23bc
commit d638c512e9
11 changed files with 516 additions and 21 deletions

View File

@@ -2,7 +2,7 @@
## Current status
Step 3 completed and verified with automated checks. Ready to start Step 4.
Step 4 completed and verified with automated checks. Step 4 commit is pending.
## Completed steps
@@ -30,6 +30,15 @@ Step 1 - Public API contract and pure core:
Step 4 - Digital, bar, level, and status gauges.
Implemented during Step 4:
- Added digital gauge drawlist rendering with formatted value text.
- Added bar and level gauge rendering with horizontal/vertical fill geometry.
- Added threshold band and marker drawing for bar/level gauges.
- Added status light rendering with configured status state colors and text.
- Added Dear PyGui item callback wiring for gauges with `callback=`.
- Added Step 4 examples and tests for geometry, runtime updates, thresholds, markers, and status states.
Step 3 - Widget shell and renderer foundation:
Implemented during Step 3:
@@ -69,7 +78,7 @@ Implemented during Step 2:
## Known issues
Manual visual example checks were not run in this headless session.
Manual visual example checks for Steps 3 and 4 were not run in this headless session.
## Commands used
@@ -102,7 +111,14 @@ Manual visual example checks were not run in this headless session.
- Ran `uv run ruff format .`.
- Ran `uv run ruff format --check .`.
- Ran `uv run pyright`.
- Committed Step 3 with `git commit -m "step 3: add widget shell and renderer foundation"` before starting Step 4.
- Read `codex/FEATURES.md`, `codex/ARCHITECTURE.md`, `codex/STEPS.md`, and `codex/AGENTS.md` before Step 4 changes.
- Implemented Step 4 digital, bar, level, and status rendering, threshold/marker drawing, callback wiring, examples, README status update, and tests.
- Ran `uv run pytest`.
- Ran `uv run ruff check .`.
- Ran `uv run ruff format --check .`.
- Ran `uv run pyright`.
## Next action
Implement Step 4.
Commit Step 4, then implement Step 5.