64 lines
2.0 KiB
Plaintext
64 lines
2.0 KiB
Plaintext
(import flixel.FlxState)
|
|
(import flixel.text.FlxText)
|
|
(import kiss_flixel.Log)
|
|
(import kiss_flixel.SimpleWindow)
|
|
(import kiss_flixel.FeedbackWindow)
|
|
(extends FlxState)
|
|
|
|
(method &override :Void create []
|
|
(super.create)
|
|
|
|
(Log.use)
|
|
(SimpleWindow.sensibleDefaultKeys)
|
|
(set SimpleWindow.defaultSelectionMarker (new FlxText 0 0 ">" SimpleWindow.textSize))
|
|
|
|
(showMenu))
|
|
|
|
(method :Void showMenu []
|
|
(SimpleWindow.promptForChoiceV2 "Testing SimpleWindow" ["Vertical" "Menu" "Feedback" "Quit"]
|
|
->:Void choice
|
|
(case choice
|
|
("Vertical"
|
|
(verticalMenu))
|
|
("Menu"
|
|
(subMenu))
|
|
("Feedback"
|
|
(#when sys
|
|
(FeedbackWindow.collectFeedback showMenu)))
|
|
("Quit"
|
|
(#when sys
|
|
(Sys.exit 0)))
|
|
(never otherwise))
|
|
(object screenReaderAudioFolder "assets/screen-reader-audio")))
|
|
|
|
(method subMenu []
|
|
(let [window (SimpleWindow.create (object title "SubMenu"))]
|
|
(doFor letter ["A" "B" "C"]
|
|
(window.makeText letter null
|
|
->_ (print "$letter clicked")
|
|
->_ (print "$letter selected")
|
|
->_ (print "$letter deselected")))
|
|
|
|
(window.makeText "{tab} Back" null
|
|
->:Void _
|
|
{
|
|
(window.hide)
|
|
(showMenu)
|
|
})
|
|
(window.enableGamepadInput
|
|
true
|
|
null
|
|
[=>B "tab"])
|
|
(window.show)))
|
|
|
|
(method verticalMenu []
|
|
(let [window (SimpleWindow.create (object title "Vertical Menu" xButton true))]
|
|
(set window.onClose ->:Void {(window.hide)(showMenu)})
|
|
(window.enableVerticalScrolling)
|
|
(doFor num (range 50)
|
|
(window.makeText "$num"))
|
|
(window.enableGamepadInput true)
|
|
(window.show)))
|
|
|
|
(method &override :Void update [:Float elapsed]
|
|
(super.update elapsed)) |