mirror of
https://gitee.com/konyshe/goodlink.git
synced 2025-09-26 20:51:22 +08:00
107 lines
2.8 KiB
Go
107 lines
2.8 KiB
Go
//go:build windows
|
|
|
|
package ui2
|
|
|
|
import (
|
|
"goodlink/config"
|
|
|
|
"fyne.io/fyne/v2"
|
|
"fyne.io/fyne/v2/container"
|
|
"fyne.io/fyne/v2/widget"
|
|
)
|
|
|
|
type RemoteUI struct {
|
|
box_remote_ip *ipEntry
|
|
box_remote_port *portEntry
|
|
radio *widget.RadioGroup
|
|
}
|
|
|
|
func (c *RemoteUI) Disable() {
|
|
c.box_remote_ip.Disable()
|
|
c.box_remote_port.Disable()
|
|
c.radio.Disable()
|
|
}
|
|
|
|
func (c *RemoteUI) Enable() {
|
|
c.box_remote_ip.Enable()
|
|
c.box_remote_port.Enable()
|
|
c.radio.Enable()
|
|
}
|
|
|
|
func (c *RemoteUI) GetRemoteType() string {
|
|
return c.radio.Selected
|
|
}
|
|
|
|
func (c *RemoteUI) GetRemoteIP() string {
|
|
return c.box_remote_ip.Text
|
|
}
|
|
|
|
func (c *RemoteUI) GetRemotePort() string {
|
|
return c.box_remote_port.Text
|
|
}
|
|
|
|
func (c *RemoteUI) GetRemoteAddr() (string, error) {
|
|
if c.box_remote_ip.Validate() != nil {
|
|
return "", c.box_remote_ip.Validate()
|
|
}
|
|
if c.box_remote_port.Validate() != nil {
|
|
return "", c.box_remote_port.Validate()
|
|
}
|
|
return c.box_remote_ip.Text + ":" + c.box_remote_port.Text, nil
|
|
}
|
|
|
|
func (c *RemoteUI) GetContainer() *fyne.Container {
|
|
return container.NewVBox(
|
|
//container.New(layout.NewFormLayout(), widget.NewRichTextWithText("工作模式: "), c.radio),
|
|
//container.New(layout.NewFormLayout(), widget.NewRichTextWithText("转发目标地址: "), c.box_remote_ip),
|
|
//container.New(layout.NewFormLayout(), widget.NewRichTextWithText("转发目标端口: "), c.box_remote_port),
|
|
)
|
|
}
|
|
|
|
func NewRemoteUI(myWindow *fyne.Window, configInfo *config.ConfigInfo) *RemoteUI {
|
|
c := &RemoteUI{
|
|
radio: widget.NewRadioGroup([]string{"代理模式", "转发模式"}, nil),
|
|
box_remote_ip: NewIpEntry(configInfo.RemoteIP),
|
|
box_remote_port: NewPortEntry(configInfo.RemotePort),
|
|
}
|
|
|
|
c.radio.Horizontal = true
|
|
c.radio.OnChanged = func(value string) {
|
|
switch value {
|
|
case "转发模式":
|
|
c.box_remote_ip.SetText(configInfo.RemoteIP)
|
|
c.box_remote_ip.ResetPlaceHolder()
|
|
c.box_remote_ip.Enable()
|
|
|
|
c.box_remote_port.SetText(configInfo.RemotePort)
|
|
c.box_remote_port.ResetPlaceHolder()
|
|
c.box_remote_port.Enable()
|
|
default:
|
|
if c.box_remote_ip.Validate() == nil {
|
|
configInfo.RemoteIP = c.box_remote_ip.Text
|
|
}
|
|
c.box_remote_ip.SetText("")
|
|
c.box_remote_ip.SetPlaceHolder("无需配置")
|
|
c.box_remote_ip.Disable()
|
|
|
|
if c.box_remote_port.Validate() == nil {
|
|
configInfo.RemotePort = c.box_remote_port.Text
|
|
}
|
|
c.box_remote_port.SetText("")
|
|
c.box_remote_port.SetPlaceHolder("无需配置")
|
|
c.box_remote_port.Disable()
|
|
}
|
|
}
|
|
|
|
switch configInfo.RemoteType {
|
|
case "转发模式":
|
|
c.radio.SetSelected(configInfo.RemoteType)
|
|
c.box_remote_ip.SetText(configInfo.RemoteIP)
|
|
c.box_remote_port.SetText(configInfo.RemotePort)
|
|
default:
|
|
c.radio.SetSelected("代理模式")
|
|
}
|
|
|
|
return c
|
|
}
|