forked from tadvi/winc
/
main.go
80 lines (63 loc) · 1.78 KB
/
main.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
package main
import (
"fmt"
"github.com/leaanthony/winc"
)
func btnOnClick(arg *winc.Event) {
fmt.Println("Button clicked")
}
func wndOnClose(arg *winc.Event) {
winc.Exit()
}
func main() {
mainWindow := winc.NewForm(nil)
dock := winc.NewSimpleDock(mainWindow)
mainWindow.SetSize(700, 600)
mainWindow.SetText("Controls Demo")
menu := mainWindow.NewMenu()
fileMn := menu.AddSubMenu("File")
fileMn.AddItem("New", winc.NoShortcut)
editMn := menu.AddSubMenu("Edit")
cutMn := editMn.AddItem("Cut", winc.Shortcut{winc.ModControl, winc.KeyX})
copyMn := editMn.AddItem("Copy", winc.NoShortcut)
pasteMn := editMn.AddItem("Paste", winc.NoShortcut)
menu.Show()
copyMn.SetCheckable(true)
copyMn.SetChecked(true)
pasteMn.SetEnabled(false)
cutMn.OnClick().Bind(func(e *winc.Event) {
println("cut click")
})
imlistTb := winc.NewImageList(16, 16)
imlistTb.AddResIcon(10)
imlistTb.AddResIcon(12)
imlistTb.AddResIcon(15)
toolbar := winc.NewToolbar(mainWindow)
toolbar.SetImageList(imlistTb)
addBtn := toolbar.AddButton("Add", 1)
toolbar.AddSeparator()
runBtn := toolbar.AddButton("Run", 2)
toolbar.Show()
runBtn.OnClick().Bind(func(e *winc.Event) {
println("runBtn click")
})
scroll := winc.NewScrollView(mainWindow)
imgv := winc.NewImageView(scroll)
scroll.SetChild(imgv)
addBtn.OnClick().Bind(func(e *winc.Event) {
if filePath, ok := winc.ShowOpenFileDlg(mainWindow,
"Select EDI X12 file", "All files (*.*)|*.*", 0, ""); ok {
if err := imgv.DrawImageFile(filePath); err != nil {
winc.Errorf(mainWindow, "Error: %s", err)
}
scroll.Invalidate(true)
}
})
dock.Dock(toolbar, winc.Top) // toolbars always dock to the top
dock.Dock(scroll, winc.Fill)
mainWindow.Center()
mainWindow.Show()
dock.Update()
mainWindow.OnClose().Bind(wndOnClose)
winc.RunMainLoop()
}