user: ScreenView trait, overlay screens extracted from App
Convert F2-F5 screens to ScreenView trait with tick() method. Each screen owns its view state (scroll, selection, expanded). State persists across screen switches. - ThalamusScreen: owns sampling_selected, scroll - ConsciousScreen: owns scroll, selected, expanded - SubconsciousScreen: owns selected, log_view, scroll - UnconsciousScreen: owns scroll Removed from App: Screen enum, debug_scroll, debug_selected, debug_expanded, agent_selected, agent_log_view, sampling_selected, set_screen(), per-screen key handling, draw dispatch. App now only draws the interact (F1) screen. Overlay screens are drawn by the event loop via ScreenView::tick. F-key routing and screen instantiation to be wired in event_loop next. InteractScreen (state-driven, reading from agent entries) is the next step — will eliminate the input display race condition. Co-Authored-By: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
7458fe655f
commit
927cddd864
8 changed files with 388 additions and 439 deletions
|
|
@ -11,7 +11,7 @@ use ratatui::{
|
|||
Frame,
|
||||
};
|
||||
|
||||
use super::{ActivePane, App, Marker, PaneState, SCREEN_LEGEND};
|
||||
use super::{ActivePane, App, Marker, PaneState, screen_legend};
|
||||
|
||||
impl App {
|
||||
/// Draw the main (F1) screen — four-pane layout with status bar.
|
||||
|
|
@ -62,7 +62,7 @@ impl App {
|
|||
// Draw autonomous pane
|
||||
let auto_active = self.active_pane == ActivePane::Autonomous;
|
||||
draw_pane(frame, auto_area, "autonomous", &mut self.autonomous, auto_active,
|
||||
Some(SCREEN_LEGEND));
|
||||
Some(&screen_legend()));
|
||||
|
||||
// Draw tools pane
|
||||
let tools_active = self.active_pane == ActivePane::Tools;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue