diff options
author | Tulir Asokan <tulir@maunium.net> | 2018-03-13 21:58:43 +0200 |
---|---|---|
committer | Tulir Asokan <tulir@maunium.net> | 2018-03-13 21:58:43 +0200 |
commit | 90629c5c78916ba9be982afb9b8435ea58be166b (patch) | |
tree | 3c1720f695e43e4de8a0f68f0d3c9da65ffd82d1 /debug.go | |
parent | f0333df1b2b6e0ef54a580668cb759a094b56010 (diff) |
Code additions/edits
Diffstat (limited to 'debug.go')
-rw-r--r-- | debug.go | 45 |
1 files changed, 32 insertions, 13 deletions
@@ -22,35 +22,54 @@ import ( "github.com/rivo/tview" ) +const DebugPaneHeight = 40 + +type DebugPrinter interface { + Printf(text string, args ...interface{}) + Print(text ...interface{}) +} + type DebugPane struct { - text string pane *tview.TextView num int + gmx Gomuks +} + +func NewDebugPane(gmx Gomuks) *DebugPane { + pane := tview.NewTextView() + pane. + SetScrollable(true). + SetWrap(true) + pane.SetChangedFunc(func() { + gmx.App().Draw() + }) + pane.SetBorder(true).SetTitle("Debug output") + fmt.Fprintln(pane, "[0] Debug pane initialized") + + return &DebugPane{ + pane: pane, + num: 0, + gmx: gmx, + } } func (db *DebugPane) Printf(text string, args ...interface{}) { - db.num++ - db.Write(fmt.Sprintf("[%d] %s\n", db.num, fmt.Sprintf(text, args...))) + db.Write(fmt.Sprintf(text, args...)) } func (db *DebugPane) Print(text ...interface{}) { - db.num++ - db.Write(fmt.Sprintf("[%d] %s", db.num, fmt.Sprintln(text...))) + db.Write(fmt.Sprint(text...)) } func (db *DebugPane) Write(text string) { if db.pane != nil { - db.text += text - db.pane.SetText(db.text) + db.num++ + fmt.Fprintf(db.pane, "[%d] %s\n", db.num, text) } } -func (db *DebugPane) Wrap(main *tview.Pages) tview.Primitive { - db.pane = tview.NewTextView() - db.pane.SetBorder(true).SetTitle("Debug output") - db.text += "[0] Debug pane initialized\n" - db.pane.SetText(db.text) - return tview.NewGrid().SetRows(0, 20).SetColumns(0). +func (db *DebugPane) Wrap(main tview.Primitive) tview.Primitive { + return tview.NewGrid().SetRows(0, DebugPaneHeight).SetColumns(0). AddItem(main, 0, 0, 1, 1, 1, 1, true). AddItem(db.pane, 1, 0, 1, 1, 1, 1, false) } |