mirror of
https://github.com/mrusme/neonmodem.git
synced 2024-11-03 04:27:16 -05:00
64 lines
1.0 KiB
Go
64 lines
1.0 KiB
Go
package ctx
|
|
|
|
import (
|
|
"github.com/mrusme/gobbs/config"
|
|
"github.com/mrusme/gobbs/system"
|
|
"github.com/mrusme/gobbs/ui/theme"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
type Ctx struct {
|
|
Screen [2]int
|
|
Content [2]int
|
|
Config *config.Config
|
|
Systems []*system.System
|
|
Loading bool
|
|
Logger *zap.SugaredLogger
|
|
Theme *theme.Theme
|
|
|
|
currentSystem int
|
|
currentForum string
|
|
}
|
|
|
|
func New(
|
|
cfg *config.Config,
|
|
logger *zap.SugaredLogger,
|
|
) Ctx {
|
|
return Ctx{
|
|
Screen: [2]int{0, 0},
|
|
Content: [2]int{0, 0},
|
|
Config: cfg,
|
|
Loading: false,
|
|
Logger: logger,
|
|
Theme: theme.New(cfg),
|
|
|
|
currentSystem: -1,
|
|
currentForum: "",
|
|
}
|
|
}
|
|
|
|
func (c *Ctx) AddSystem(sys *system.System) error {
|
|
c.Systems = append(c.Systems, sys)
|
|
return nil
|
|
}
|
|
|
|
func (c *Ctx) NumSystems() int {
|
|
return len(c.Systems)
|
|
}
|
|
|
|
func (c *Ctx) SetCurrentSystem(idx int) {
|
|
c.currentSystem = idx
|
|
}
|
|
|
|
func (c *Ctx) GetCurrentSystem() int {
|
|
return c.currentSystem
|
|
}
|
|
|
|
func (c *Ctx) SetCurrentForum(id string) {
|
|
c.currentForum = id
|
|
}
|
|
|
|
func (c *Ctx) GetCurrentForum() string {
|
|
return c.currentForum
|
|
}
|