46 lines
1.4 KiB
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()
|
||
|
})
|
||
|
}
|