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() }) }