50 lines
1005 B
Go
50 lines
1005 B
Go
package ui
|
|
|
|
import (
|
|
"fyne.io/fyne/v2"
|
|
"fyne.io/fyne/v2/container"
|
|
"fyne.io/fyne/v2/layout"
|
|
"fyne.io/fyne/v2/theme"
|
|
"fyne.io/fyne/v2/widget"
|
|
)
|
|
|
|
type logViewer struct {
|
|
logArea *widget.Entry
|
|
refresh *widget.Button
|
|
|
|
Win fyne.Window
|
|
}
|
|
|
|
func newLogViewer() *logViewer {
|
|
var lv logViewer
|
|
|
|
lv.logArea = widget.NewMultiLineEntry()
|
|
lv.logArea.Disable()
|
|
lv.logArea.Wrapping = fyne.TextWrapBreak
|
|
|
|
lv.initLogContent()
|
|
|
|
lv.refresh = widget.NewButtonWithIcon(string(theme.ColorNameFocus), theme.ViewRefreshIcon(), func() {
|
|
// lv.initLogContent()
|
|
})
|
|
|
|
lv.Win = fyne.CurrentApp().NewWindow("日志")
|
|
lv.Win.SetContent(container.NewBorder(
|
|
container.NewHBox(layout.NewSpacer(), lv.refresh), nil, nil, nil,
|
|
lv.logArea))
|
|
lv.Win.Resize(fyne.NewSize(800, 600))
|
|
lv.Win.CenterOnScreen()
|
|
|
|
return &lv
|
|
}
|
|
|
|
func (lv *logViewer) initLogContent() {
|
|
cont := ""
|
|
// globalLogWriter.Traversal(func(s string) {
|
|
// cont += s
|
|
// })
|
|
|
|
// lv.logArea.CursorRow = globalLogWriter.Size()
|
|
lv.logArea.SetText(cont)
|
|
}
|