40 lines
597 B
Go
40 lines
597 B
Go
package model
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/derailed/tview"
|
|
)
|
|
|
|
// Igniter represents a runnable view.
|
|
type Igniter interface {
|
|
// Start starts a component.
|
|
Init(ctx context.Context)
|
|
|
|
// Start starts a component.
|
|
Start()
|
|
|
|
// Stop terminates a component.
|
|
Stop()
|
|
}
|
|
|
|
// Hinter represent a menu mnemonic provider.
|
|
type Hinter interface {
|
|
Hints() MenuHints
|
|
}
|
|
|
|
// Primitive represents a UI primitive.
|
|
type Primitive interface {
|
|
tview.Primitive
|
|
|
|
// Name returns the view name.
|
|
Name() string
|
|
}
|
|
|
|
// Component represents a ui component
|
|
type Component interface {
|
|
Primitive
|
|
Igniter
|
|
Hinter
|
|
}
|