85 lines
2.2 KiB
Go
85 lines
2.2 KiB
Go
package ui
|
|
|
|
import (
|
|
"fyne.io/fyne/v2"
|
|
"fyne.io/fyne/v2/container"
|
|
"fyne.io/fyne/v2/widget"
|
|
)
|
|
|
|
func keyButton(label string, entry *widget.Entry) *widget.Button {
|
|
return widget.NewButton(label, func() {
|
|
entry.Append(label)
|
|
})
|
|
}
|
|
|
|
func entButton(entry *widget.Entry) *widget.Button {
|
|
return widget.NewButton("ENT", func() {
|
|
entry.Append("\n")
|
|
})
|
|
}
|
|
|
|
func clearButton(label string, entry *widget.Entry) *widget.Button {
|
|
return widget.NewButton(label, func() {
|
|
entry.SetText("")
|
|
})
|
|
}
|
|
|
|
func newIPKeypad(entry *widget.Entry) (fyne.CanvasObject, []*widget.Button) {
|
|
var btns []*widget.Button
|
|
p1 := keyButton("192.168.", entry)
|
|
p2 := keyButton("169.254.", entry)
|
|
p3 := keyButton("10.", entry)
|
|
p4 := keyButton("100.", entry)
|
|
btns = append(btns, p1, p2, p3, p4)
|
|
presets := container.NewHBox(p1, p2, p3, p4)
|
|
|
|
n := []struct{ label string }{
|
|
{"1"}, {"2"}, {"3"}, {"4"}, {"5"}, {"6"},
|
|
{"7"}, {"8"}, {"9"}, {"0"}, {"/"}, {"-"}, {"."},
|
|
}
|
|
var grid []fyne.CanvasObject
|
|
for _, v := range n {
|
|
b := keyButton(v.label, entry)
|
|
btns = append(btns, b)
|
|
grid = append(grid, b)
|
|
}
|
|
ent := entButton(entry)
|
|
btns = append(btns, ent)
|
|
grid = append(grid, ent)
|
|
clr := clearButton("清空IP", entry)
|
|
btns = append(btns, clr)
|
|
grid = append(grid, clr)
|
|
numpad := container.NewGridWithColumns(3, grid...)
|
|
|
|
return container.NewVBox(presets, numpad), btns
|
|
}
|
|
|
|
func newPortKeypad(entry *widget.Entry) (fyne.CanvasObject, []*widget.Button) {
|
|
var btns []*widget.Button
|
|
presetLabels := []string{"1-65535", "80;443", "21", "22", "23", "3389", "445", "25565", "25;587"}
|
|
var presetObjs []fyne.CanvasObject
|
|
for _, l := range presetLabels {
|
|
b := keyButton(l, entry)
|
|
btns = append(btns, b)
|
|
presetObjs = append(presetObjs, b)
|
|
}
|
|
presets := container.NewGridWithColumns(3, presetObjs...)
|
|
|
|
numLabels := []string{"1", "2", "3", "4", "5", "6", "7", "8", "9", "0", ";", "-"}
|
|
var grid []fyne.CanvasObject
|
|
for _, l := range numLabels {
|
|
b := keyButton(l, entry)
|
|
btns = append(btns, b)
|
|
grid = append(grid, b)
|
|
}
|
|
ent := entButton(entry)
|
|
btns = append(btns, ent)
|
|
grid = append(grid, ent)
|
|
clr := clearButton("清空端口", entry)
|
|
btns = append(btns, clr)
|
|
grid = append(grid, clr)
|
|
numpad := container.NewGridWithColumns(3, grid...)
|
|
|
|
return container.NewVBox(presets, numpad), btns
|
|
}
|