-
Notifications
You must be signed in to change notification settings - Fork 0
/
alarm.go
97 lines (72 loc) · 1.96 KB
/
alarm.go
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
package main
import (
"log"
"strconv"
"time"
"github.com/lxn/walk"
)
var count string
var countWithoutBlank string
func Alarm(day, name string) {
mw, err := walk.NewMainWindow()
if err != nil {
WalkError(err)
}
icon, err := walk.Resources.Icon("./file.ico")
if err != nil {
WalkError(err)
}
ni, err := walk.NewNotifyIcon()
if err != nil {
WalkError(err)
} // 에러처리 할 미들웨어를 만들던지하자 이짓거리하지말고
defer ni.Dispose()
if err := ni.SetIcon(icon); err != nil {
WalkError(err)
}
if err := ni.SetToolTip("메뉴를 선택하세요."); err != nil {
WalkError(err)
}
go func() { //
for {
time.Sleep(1 * time.Second)
count, countWithoutBlank = CountFile(name)
if IsSpecialMode.Satisfied() {
ni.ShowMessage(GetFilename(name),
"D-DAY : "+
strconv.Itoa(GetDDay(day))+"\n"+
day+"일 까지 완성할 글이 공백 포함 "+count+"자\n공백 미포함 "+countWithoutBlank+"자 기록되었습니다.")
}
}
}()
ni.MouseDown().Attach(func(x, y int, button walk.MouseButton) {
if button != walk.LeftButton {
return
}
if err := ni.ShowCustom(
GetFilename(name),
"D-DAY : "+
strconv.Itoa(GetDDay(day))+"\n"+
day+"일 까지 완성할 글이 공백 포함 "+count+"자\n공백 미포함 "+countWithoutBlank+"자 기록되었습니다."); err != nil {
log.Fatal(err)
}
})
exitAction := walk.NewAction()
if err := exitAction.SetText("종료"); err != nil {
log.Fatal(err)
}
exitAction.Triggered().Attach(func() { walk.App().Exit(0) })
if err := ni.ContextMenu().Actions().Add(exitAction); err != nil {
log.Fatal(err)
}
if err := ni.SetVisible(true); err != nil {
log.Fatal(err)
}
if err := ni.ShowInfo(GetFilename(name),
"D-DAY : "+
strconv.Itoa(GetDDay(day))+"\n"+
day+"일 까지 완성할 글이 공백 포함 "+count+"자\n공백 미포함 "+countWithoutBlank+"자 기록되었습니다."); err != nil {
log.Fatal(err)
}
mw.Run()
}