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 { presets := container.NewHBox( keyButton("192.168.", entry), keyButton("169.254.", entry), keyButton("10.", entry), keyButton("100.", entry), ) numpad := container.NewGridWithColumns(3, keyButton("1", entry), keyButton("2", entry), keyButton("3", entry), keyButton("4", entry), keyButton("5", entry), keyButton("6", entry), keyButton("7", entry), keyButton("8", entry), keyButton("9", entry), entButton(entry), keyButton("0", entry), keyButton(".", entry), keyButton("/", entry), keyButton("-", entry), clearButton("清空IP", entry), ) return container.NewVBox(presets, numpad) } func newPortKeypad(entry *widget.Entry) fyne.CanvasObject { presets := container.NewGridWithColumns(3, keyButton("1-65535", entry), keyButton("80;443", entry), keyButton("21", entry), keyButton("22", entry), keyButton("23", entry), keyButton("3389", entry), keyButton("445", entry), keyButton("25565", entry), keyButton("25;587", entry), ) numpad := container.NewGridWithColumns(3, keyButton("1", entry), keyButton("2", entry), keyButton("3", entry), keyButton("4", entry), keyButton("5", entry), keyButton("6", entry), keyButton("7", entry), keyButton("8", entry), keyButton("9", entry), keyButton("0", entry), keyButton(";", entry), keyButton("-", entry), entButton(entry), clearButton("清空端口", entry), ) return container.NewVBox(presets, numpad) }