cyclable text macro for SimpleWindow
This commit is contained in:
@@ -1,3 +1,5 @@
|
|||||||
|
(loadFrom "kiss-flixel" "src/kiss_flixel/SimpleWindowTools.kiss")
|
||||||
|
|
||||||
(import flixel.FlxState)
|
(import flixel.FlxState)
|
||||||
(import flixel.text.FlxText)
|
(import flixel.text.FlxText)
|
||||||
(import kiss_flixel.Log)
|
(import kiss_flixel.Log)
|
||||||
@@ -50,6 +52,10 @@
|
|||||||
onDeselect
|
onDeselect
|
||||||
->_ (print "$letter deselected"))))
|
->_ (print "$letter deselected"))))
|
||||||
|
|
||||||
|
(prop &mut cycleIdx 0)
|
||||||
|
(prop cycle (for i (range 10) (* i "*")))
|
||||||
|
(makeCycleText window cycleIdx "Counter" cycle)
|
||||||
|
|
||||||
(window.makeTextV2 "{tab} Back"
|
(window.makeTextV2 "{tab} Back"
|
||||||
(object onClick
|
(object onClick
|
||||||
->:Void _
|
->:Void _
|
||||||
|
@@ -1,3 +1,4 @@
|
|||||||
|
// TODO these evaluate args multiple times. withEvalOnce can't be used, because it strips the type annotations in the typeCase
|
||||||
(defMacro makeToggleText [window v label on off &opt objArgs]
|
(defMacro makeToggleText [window v label on off &opt objArgs]
|
||||||
(unless objArgs (set objArgs []))
|
(unless objArgs (set objArgs []))
|
||||||
`(.makeTextV2 ,window (+ ,label ": " (if ,v ,on ,off))
|
`(.makeTextV2 ,window (+ ,label ": " (if ,v ,on ,off))
|
||||||
@@ -8,4 +9,16 @@
|
|||||||
(set ,v (not ,v))
|
(set ,v (not ,v))
|
||||||
(set text.text (+ ,label ": " (if ,v ,on ,off))))
|
(set text.text (+ ,label ": " (if ,v ,on ,off))))
|
||||||
(never otherwise))
|
(never otherwise))
|
||||||
|
,@objArgs)))
|
||||||
|
|
||||||
|
(defMacro makeCycleText [window idxV label values &opt objArgs]
|
||||||
|
(unless objArgs (set objArgs []))
|
||||||
|
`(.makeTextV2 ,window (+ ,label ": " (nth ,values ,idxV))
|
||||||
|
(object
|
||||||
|
onClick ->self
|
||||||
|
(typeCase [self]
|
||||||
|
([:FlxText text]
|
||||||
|
(set ,idxV (% (+ ,idxV 1) .length ,values))
|
||||||
|
(set text.text (+ ,label ": " (nth ,values ,idxV))))
|
||||||
|
(never otherwise))
|
||||||
,@objArgs)))
|
,@objArgs)))
|
Reference in New Issue
Block a user