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.text.FlxText)
|
||||
(import kiss_flixel.Log)
|
||||
@@ -50,6 +52,10 @@
|
||||
onDeselect
|
||||
->_ (print "$letter deselected"))))
|
||||
|
||||
(prop &mut cycleIdx 0)
|
||||
(prop cycle (for i (range 10) (* i "*")))
|
||||
(makeCycleText window cycleIdx "Counter" cycle)
|
||||
|
||||
(window.makeTextV2 "{tab} Back"
|
||||
(object onClick
|
||||
->: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]
|
||||
(unless objArgs (set objArgs []))
|
||||
`(.makeTextV2 ,window (+ ,label ": " (if ,v ,on ,off))
|
||||
@@ -8,4 +9,16 @@
|
||||
(set ,v (not ,v))
|
||||
(set text.text (+ ,label ": " (if ,v ,on ,off))))
|
||||
(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)))
|
Reference in New Issue
Block a user