-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmainMenu.go
130 lines (113 loc) · 3 KB
/
mainMenu.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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package main
import (
"log/slog"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/theme"
)
func makeMainMenu(a fyne.App, w fyne.Window) *fyne.MainMenu {
// File
file_new := fyne.NewMenuItem("New", func() {
slog.Info("selected menu item File>New")
newFile(a, w)
})
file_new.Icon = theme.FileIcon()
file_open := fyne.NewMenuItem("Open", func() {
slog.Info("selected menu item File>Open")
openFile(a, w)
})
file_open.Icon = theme.FolderOpenIcon()
file_save := fyne.NewMenuItem("Save", func() {
slog.Info("selected menu item File>Save")
saveFile(a, w)
})
file_save.Icon = theme.DocumentSaveIcon()
file_saveAs := fyne.NewMenuItem("Save As", func() {
slog.Info("selected menu item File>Save As")
saveFileAs(a, w)
})
file_saveAs.Icon = theme.DocumentSaveIcon()
file_import := fyne.NewMenuItem("Import", func() {})
file_import.ChildMenu = fyne.NewMenu("",
fyne.NewMenuItem("JSON", func() {
slog.Info("selected menu item File>Import>JSON")
importJSON(w)
}),
fyne.NewMenuItem("YAML", func() {
slog.Info("selected menu item File>Import>YAML")
importYAML(w)
}),
fyne.NewMenuItem("TOML", func() {
slog.Info("selected menu item File>Import>YAML")
importTOML(w)
}),
)
file_export := fyne.NewMenuItem("Export", func() {})
file_export.ChildMenu = fyne.NewMenu("",
fyne.NewMenuItem("JSON", func() {
slog.Info("selected menu item File>Export>JSON")
exportJSON(w)
}),
fyne.NewMenuItem("YAML", func() {
slog.Info("selected menu item File>Export>YAML")
exportYAML(w)
}),
fyne.NewMenuItem("TOML", func() {
slog.Info("selected menu item File>Export>TOML")
exportTOML(w)
}),
fyne.NewMenuItem("Go Source File", func() {
slog.Info("selected menu item File>Export>Go Source File")
exportGo(w)
}),
)
file_print := fyne.NewMenuItem("Print", func() {
slog.Info("selected menu item File>Print")
print(a, w)
})
file_print.Icon = theme.DocumentPrintIcon()
file := fyne.NewMenu("File",
file_new,
fyne.NewMenuItemSeparator(),
file_open,
fyne.NewMenuItemSeparator(),
file_save,
file_saveAs,
fyne.NewMenuItemSeparator(),
file_import,
fyne.NewMenuItemSeparator(),
file_export,
fyne.NewMenuItemSeparator(),
file_print,
)
// Edit
edit_newValue := fyne.NewMenuItem("New Value", func() {
slog.Info("selected menu item Edit>New Value")
newValue(a, w)
})
edit_newValue.Icon = theme.ContentAddIcon()
edit_delete := fyne.NewMenuItem("Delete", func() {
slog.Info("selected menu item Edit>Delete")
deleteSelected()
})
edit_delete.Icon = theme.ContentRemoveIcon()
edit_edit := fyne.NewMenuItem("Edit", func() {
slog.Info("selected menu item Edit>Edit")
editSelected(w)
})
edit_edit.Icon = theme.DocumentCreateIcon()
edit := fyne.NewMenu("Edit",
edit_newValue,
edit_delete,
edit_edit,
)
// Help
help_about := fyne.NewMenuItem("About", func() {
slog.Info("selected menu item Help>About")
showAboutDialog(a, w)
})
help_about.Icon = theme.InfoIcon()
help := fyne.NewMenu("Help",
help_about,
)
return fyne.NewMainMenu(file, edit, help)
}