blob: 3f523e9764ebac68f6f925e4faada654bcf07aa5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
package main
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/canvas"
"fyne.io/fyne/v2/dialog"
"fyne.io/fyne/v2/widget"
"log"
"random.chars.jp/git/image-board/store"
)
type link struct {
onTap func()
widget.Hyperlink
}
func (l *link) Tapped(*fyne.PointEvent) {
l.onTap()
}
func newLink(text string, onTap func()) *link {
l := &link{onTap: onTap}
l.ExtendBaseWidget(l)
l.Text = text
return l
}
type imageButton struct {
widget.BaseWidget
objects []fyne.CanvasObject
img *canvas.Image
meta store.Image
}
func (i *imageButton) Tapped(*fyne.PointEvent) {
setImage(i.meta)
}
func (i *imageButton) CreateRenderer() fyne.WidgetRenderer {
return i
}
func (i *imageButton) Objects() []fyne.CanvasObject {
return []fyne.CanvasObject{i.img}
}
func (i *imageButton) Layout(size fyne.Size) {
i.img.Resize(size)
}
func (i *imageButton) Resize(size fyne.Size) {
i.img.Resize(size)
}
func (i *imageButton) Destroy() {
i.img = nil
}
func (i *imageButton) Size() fyne.Size {
return i.img.Size()
}
func (i *imageButton) MinSize() fyne.Size {
return i.img.MinSize()
}
func newImageButton(img *canvas.Image, meta store.Image) *imageButton {
return &imageButton{img: img, meta: meta}
}
func loading(title, message string) (done func()) {
hide := make(chan bool)
finalized := false
done = func() {
if !finalized {
finalized = true
hide <- true
}
}
go func() {
diag := dialog.NewProgressInfinite(title, message, window)
log.Printf("Showing loading view.")
diag.Show()
<-hide
log.Printf("Hiding loading view.")
diag.Hide()
}()
return
}
func progress(title, message string) (done func(), value func(progress float64)) {
hide := make(chan bool)
done = func() {
hide <- true
}
diag := dialog.NewProgress(title, message, window)
value = diag.SetValue
go func() {
log.Printf("Showing progress bar.")
diag.Show()
<-hide
log.Printf("Hiding progress bar.")
diag.Hide()
}()
return
}
|