aboutsummaryrefslogtreecommitdiff
path: root/gomuks.go
diff options
context:
space:
mode:
authorTulir Asokan <tulir@maunium.net>2018-03-18 21:24:03 +0200
committerTulir Asokan <tulir@maunium.net>2018-03-18 21:24:03 +0200
commit72945c9a284b6858594f1e8a43743c397e90c380 (patch)
treec4dc096f97c546dcc546d50385e2909e2e10b82d /gomuks.go
parent0509b195625c959a7b5556e3baae4f869c4d62f6 (diff)
Organize files
Diffstat (limited to 'gomuks.go')
-rw-r--r--gomuks.go60
1 files changed, 25 insertions, 35 deletions
diff --git a/gomuks.go b/gomuks.go
index 5fa0a8a..fecb67a 100644
--- a/gomuks.go
+++ b/gomuks.go
@@ -21,43 +21,37 @@ import (
"path/filepath"
"maunium.net/go/gomatrix"
+ "maunium.net/go/gomuks/config"
+ "maunium.net/go/gomuks/interface"
+ "maunium.net/go/gomuks/matrix"
+ "maunium.net/go/gomuks/ui"
+ "maunium.net/go/gomuks/ui/debug"
"maunium.net/go/tview"
)
-type Gomuks interface {
- Debug() DebugPrinter
- Matrix() *gomatrix.Client
- MatrixContainer() *MatrixContainer
- App() *tview.Application
- UI() *GomuksUI
- Config() *Config
-
- Start()
- Stop()
- Recover()
-}
-
type gomuks struct {
app *tview.Application
- ui *GomuksUI
- matrix *MatrixContainer
- debug *DebugPane
- config *Config
+ ui *ui.GomuksUI
+ matrix *matrix.Container
+ debug *debug.Pane
+ config *config.Config
}
-var gdebug DebugPrinter
-
-func NewGomuks(debug bool) *gomuks {
+func NewGomuks(enableDebug bool) *gomuks {
configDir := filepath.Join(os.Getenv("HOME"), ".config/gomuks")
gmx := &gomuks{
app: tview.NewApplication(),
}
- gmx.debug = NewDebugPane(gmx)
- gdebug = gmx.debug
- gmx.config = NewConfig(gmx, configDir)
- gmx.ui = NewGomuksUI(gmx)
- gmx.matrix = NewMatrixContainer(gmx)
- gmx.ui.matrix = gmx.matrix
+
+ gmx.debug = debug.NewPane()
+ gmx.debug.SetChangedFunc(func() {
+ gmx.ui.Render()
+ })
+ debug.Default = gmx.debug
+
+ gmx.config = config.NewConfig(configDir)
+ gmx.ui = ui.NewGomuksUI(gmx)
+ gmx.matrix = matrix.NewMatrixContainer(gmx)
gmx.config.Load()
if len(gmx.config.MXID) > 0 {
@@ -67,7 +61,7 @@ func NewGomuks(debug bool) *gomuks {
gmx.matrix.InitClient()
main := gmx.ui.InitViews()
- if debug {
+ if enableDebug {
main = gmx.debug.Wrap(main)
}
gmx.app.SetRoot(main, true)
@@ -101,15 +95,11 @@ func (gmx *gomuks) Start() {
}
}
-func (gmx *gomuks) Debug() DebugPrinter {
- return gmx.debug
-}
-
func (gmx *gomuks) Matrix() *gomatrix.Client {
- return gmx.matrix.client
+ return gmx.matrix.Client()
}
-func (gmx *gomuks) MatrixContainer() *MatrixContainer {
+func (gmx *gomuks) MatrixContainer() ifc.MatrixContainer {
return gmx.matrix
}
@@ -117,11 +107,11 @@ func (gmx *gomuks) App() *tview.Application {
return gmx.app
}
-func (gmx *gomuks) Config() *Config {
+func (gmx *gomuks) Config() *config.Config {
return gmx.config
}
-func (gmx *gomuks) UI() *GomuksUI {
+func (gmx *gomuks) UI() ifc.GomuksUI {
return gmx.ui
}