Noah Petherbridge
336a949ed0
* Adds global modal support in the pkg/modal/ package. It has easy Alert() and Confirm() methods to prompt the user before calling a callback function on affirmative response. * Modals have global app state: they're processed in the main loop in pkg/doodle.go similar to the global command shell. * When a modal is active, a semitransparent black frame covers the screen (gameplay loop paused, last game frame rendered below) and the modal window appears on top. * The developer console retains higher priority than the modal system and always renders on top. * Editor Mode: track when the level pixels have been modified, and confirm the user about unsaved changes when they attempt to close the level (New, Open, Close, etc.) * Global: the Escape key no longer immediately shuts down the game, but will confirm the user's intent via a modal. * File->Quit in the Editor Mode also invokes the confirm shutdown modal.
16 lines
242 B
Go
16 lines
242 B
Go
package modal_test
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
modal "git.kirsle.net/apps/doodle/pkg/modal"
|
|
)
|
|
|
|
func ExampleAlert() {
|
|
alert := modal.Alert("Permission Denied").WithTitle("Error").Then(func() {
|
|
fmt.Println("Alert button answered!")
|
|
})
|
|
|
|
_ = alert
|
|
}
|