OnlineLibrary
43 строки · 879.0 Байт
1package gui
2
3import (
4"fmt"
5"time"
6
7"OnlineLibrary/internal/util"
8"github.com/leonelquinteros/gotext"
9"gitverse.ru/kvark128/walk"
10)
11
12type StatusBar struct {
13*walk.StatusBar
14elapseTime, totalTime, fragments, bookPercent *walk.StatusBarItem
15}
16
17func (sb *StatusBar) SetElapsedTime(elapsed time.Duration) {
18sb.Synchronize(func() {
19text := util.FmtDuration(elapsed)
20sb.elapseTime.SetText(text)
21})
22}
23
24func (sb *StatusBar) SetTotalTime(total time.Duration) {
25sb.Synchronize(func() {
26text := util.FmtDuration(total)
27sb.totalTime.SetText(text)
28})
29}
30
31func (sb *StatusBar) SetFragments(current, length int) {
32sb.Synchronize(func() {
33text := gotext.Get("Fragment %d of %d", current, length)
34sb.fragments.SetText(text)
35})
36}
37
38func (sb *StatusBar) SetBookPercent(p int) {
39sb.Synchronize(func() {
40text := fmt.Sprintf("(%v%%)", p)
41sb.bookPercent.SetText(text)
42})
43}
44