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