41 lines
844 B
Go
41 lines
844 B
Go
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
|
|
}
|