package app // ClientView is the per-client UI cursor over daemon-owned project/process // state. In loopback mode there is one view, owned by uiState; future network // clients will each get their own copy. type ClientView struct { ID string ProjectKey string ProjectName string FocusedID string FocusedPad string ActiveAgentID string PadOffset int PadOffsetName string Cols uint16 Rows uint16 } func (v *ClientView) FocusChild(id string) { v.FocusedID = id v.FocusedPad = "" } func (v *ClientView) FocusPad(name string) { v.FocusedID = "" v.FocusedPad = name if v.PadOffsetName != name { v.PadOffset = 0 v.PadOffsetName = name } } func (v *ClientView) ClearPadFocus() { v.FocusedPad = "" } func (v *ClientView) Resize(cols, rows uint16) { v.Cols = cols v.Rows = rows }