mirror of
https://github.com/openlibrecommunity/olcrtc.git
synced 2026-05-29 16:39:45 +00:00
69 lines
1.3 KiB
Go
69 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"os/exec"
|
|
|
|
"fyne.io/fyne/v2"
|
|
"fyne.io/fyne/v2/app"
|
|
"fyne.io/fyne/v2/container"
|
|
"fyne.io/fyne/v2/theme"
|
|
"fyne.io/fyne/v2/widget"
|
|
)
|
|
|
|
type Program struct {
|
|
App fyne.App
|
|
ParentWindow fyne.Window
|
|
RunString string
|
|
RunCheck *widget.Check
|
|
Config *Config
|
|
Cmd *exec.Cmd
|
|
}
|
|
|
|
func main() {
|
|
log("Starting application...")
|
|
program := NewProgram()
|
|
program.Run()
|
|
}
|
|
|
|
func NewProgram() *Program {
|
|
log("Initializing program...")
|
|
cfg := loadConfig()
|
|
p := &Program{
|
|
App: app.New(),
|
|
Config: cfg,
|
|
}
|
|
p.buildRunString(cfg.ConferenceID, cfg.EncryptionKey, cfg.SocksPort, cfg.DNS)
|
|
return p
|
|
}
|
|
|
|
func (p *Program) Run() {
|
|
log("Creating main window...")
|
|
w := p.App.NewWindow("OlcRTC")
|
|
w.CenterOnScreen()
|
|
w.Resize(fyne.NewSize(1280, 700))
|
|
w.SetOnClosed(p.olcrtcStop)
|
|
p.ParentWindow = w
|
|
|
|
settingsBtn := widget.NewButtonWithIcon("Settings", theme.SettingsIcon(), func() {
|
|
log("Settings button clicked")
|
|
p.settingsWindow()
|
|
})
|
|
|
|
p.RunCheck = widget.NewCheck("Run", func(b bool) {
|
|
if b {
|
|
log("Run enabled")
|
|
p.olcrtcRun()
|
|
} else {
|
|
log("Run disabled")
|
|
p.olcrtcStop()
|
|
}
|
|
})
|
|
|
|
w.SetContent(container.NewBorder(
|
|
settingsBtn,
|
|
p.RunCheck, nil, nil,
|
|
))
|
|
log("Window created and running...")
|
|
w.ShowAndRun()
|
|
}
|