aboutsummaryrefslogtreecommitdiff
path: root/debug.go
diff options
context:
space:
mode:
authorTulir Asokan <tulir@maunium.net>2018-03-13 21:58:43 +0200
committerTulir Asokan <tulir@maunium.net>2018-03-13 21:58:43 +0200
commit90629c5c78916ba9be982afb9b8435ea58be166b (patch)
tree3c1720f695e43e4de8a0f68f0d3c9da65ffd82d1 /debug.go
parentf0333df1b2b6e0ef54a580668cb759a094b56010 (diff)
Code additions/edits
Diffstat (limited to 'debug.go')
-rw-r--r--debug.go45
1 files changed, 32 insertions, 13 deletions
diff --git a/debug.go b/debug.go
index 2533d5c..2498f9d 100644
--- a/debug.go
+++ b/debug.go
@@ -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)
}