go-susapp/debugsettingswindow.go

46 lines
1.4 KiB
Go

package main
import (
"log"
"github.com/gotk3/gotk3/gtk"
)
func openDebugSettingsWindow(application *gtk.Application, mainWindow *gtk.ApplicationWindow, state *State) {
debugWindow, err := gtk.ApplicationWindowNew(application)
if err != nil {
log.Fatal("Could not create application window.", err)
}
// Set ApplicationWindow Properties
debugWindow.SetTitle("Sus App > Debug Settings")
debugWindow.SetDefaultSize(350, 350)
layout, _ := gtk.LayoutNew(nil, nil)
debugWindow.Add(layout)
newToggleButton(layout, 8, "Player Position", &state.Settings.Debug.PlayerPosition, state.SaveSettings)
newToggleButton(layout, 50, "Player Collision", &state.Settings.Debug.PlayerCollision, state.SaveSettings)
newToggleButton(layout, 92, "Map Collision", &state.Settings.Debug.MapCollision, state.SaveSettings)
newToggleButton(layout, 134, "Disable Collision", &state.Settings.Debug.DisableCollision, state.SaveSettings)
debugWindow.ShowAll()
}
func newToggleButton(layout *gtk.Layout, y int, text string, editablePointer *bool, saveSettings func() error) {
btn, _ := gtk.ButtonNewWithLabel("[ ] " + text)
layout.Put(btn, 8, y)
btn.SetSizeRequest(334, 34)
if *editablePointer {
btn.SetLabel("[x] " + text)
}
btn.Connect("clicked", func(b *gtk.Button) {
*editablePointer = !(*editablePointer)
if *editablePointer {
btn.SetLabel("[x] " + text)
} else {
btn.SetLabel("[ ] " + text)
}
saveSettings()
})
}