Files
kiss-flixel/simplewindow-test/source/PlayState.kiss

76 lines
2.5 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.makeTextV2 letter
(object
onClick
->_ (print "$letter clicked")
tooltipText
"letter $letter"
altActions
[
=>"1 alt option 1" ->_ (print "alt option 1 clicked for $letter")
=>"2 alt option 2" ->_ (print "alt option 2 clicked for $letter")
]
onSelect
->_ (print "$letter selected")
onDeselect
->_ (print "$letter deselected"))))
(window.makeTextV2 "{tab} Back"
(object onClick
->: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.makeTextV2 "$num"))
(window.enableGamepadInput true)
(window.show)))
(method &override :Void update [:Float elapsed]
(super.update elapsed))