step 3: add widget shell and renderer foundation

This commit is contained in:
2026-07-02 14:20:22 +02:00
parent 34fd60c34e
commit 41e44a23bc
13 changed files with 683 additions and 84 deletions

View File

@@ -216,6 +216,7 @@ def set_runtime_value(tag: Tag, value: GaugeValue, *, now: float = 0.0) -> None:
state.displayed_value = clamped
state.smoothing_state.value = clamped
state.dirty |= DirtyFlags.VALUE | DirtyFlags.DYNAMIC | DirtyFlags.TEXT
render_runtime_gauge(state)
def get_runtime_value(tag: Tag) -> GaugeValue:
@@ -257,6 +258,7 @@ def update_runtime_gauge(tag: Tag, **config: Any) -> None:
dirty |= DirtyFlags.VALUE | DirtyFlags.DYNAMIC | DirtyFlags.TEXT
state.dirty |= dirty
render_runtime_gauge(state)
def set_runtime_thresholds(
@@ -278,10 +280,17 @@ def set_runtime_show(tag: Tag, show: bool) -> None:
def delete_runtime_gauge(tag: Tag) -> None:
get_gauge_state(tag)
state = get_gauge_state(tag)
if state.renderer is not None:
state.renderer.delete()
del _registry[tag]
def render_runtime_gauge(state: GaugeState) -> None:
if state.renderer is not None:
state.renderer.render()
def update_state_size(state: GaugeState, size: SizeState) -> None:
state.measured_width = size.measured_width
state.measured_height = size.measured_height