Goal
Lift the three remaining primitive rasterisers from vimcode-private (src/tui_main/quadraui_tui.rs, src/gtk/quadraui_gtk.rs) into the quadraui crate (`quadraui::tui::`, `quadraui::gtk::`), taking `quadraui::Theme` instead of vimcode's `render::Theme`. Mirrors the lift work in B5c.5 (#259) which moved `activity_bar` + `terminal`.
Scope
Why
B5c.6 (`Backend` trait extension for all trait-less primitives) needs these rasterisers to exist at the quadraui layer so the trait impls can call them. Filing this lift as a separate stage keeps B5c.6 focused on adding trait methods rather than rewriting per-backend renderers.
Rough cost
Same shape as B5c.5 (#259):
- For each primitive: move the rasteriser file from vimcode → quadraui, swap `render::Theme` → `quadraui::Theme` field references, add any missing fields to `quadraui::Theme` via `q_theme()` adapter, remove the in-tree shim.
- Three primitives × small-to-medium = roughly 1-2 stages of work each.
Surfaced during
Phase B.5c trait coverage (#259 stage 6). Filed because the lift work is independent of the trait extension — they can land in either order, or in parallel.
Goal
Lift the three remaining primitive rasterisers from vimcode-private (
src/tui_main/quadraui_tui.rs,src/gtk/quadraui_gtk.rs) into the quadraui crate (`quadraui::tui::`, `quadraui::gtk::`), taking `quadraui::Theme` instead of vimcode's `render::Theme`. Mirrors the lift work in B5c.5 (#259) which moved `activity_bar` + `terminal`.Scope
Why
B5c.6 (`Backend` trait extension for all trait-less primitives) needs these rasterisers to exist at the quadraui layer so the trait impls can call them. Filing this lift as a separate stage keeps B5c.6 focused on adding trait methods rather than rewriting per-backend renderers.
Rough cost
Same shape as B5c.5 (#259):
Surfaced during
Phase B.5c trait coverage (#259 stage 6). Filed because the lift work is independent of the trait extension — they can land in either order, or in parallel.