29 lines
1.2 KiB
Clojure
29 lines
1.2 KiB
Clojure
(ns advent.max-progress-bar
|
|
(:require [play-clj.utils :as u])
|
|
(:import [play_clj.entities ActorEntity])
|
|
)
|
|
|
|
(gen-class :name advent.max-progress-bar.MaxProgressBar
|
|
:extends com.badlogic.gdx.scenes.scene2d.ui.Slider
|
|
:state state
|
|
:init init
|
|
:exposes-methods {setValue parentSetValue}
|
|
:constructors {[float float float boolean com.badlogic.gdx.scenes.scene2d.ui.Slider$SliderStyle float] [float float float boolean com.badlogic.gdx.scenes.scene2d.ui.Slider$SliderStyle]}
|
|
)
|
|
(defn -init [min max step-size vertical style artificial-max]
|
|
[[min max step-size vertical style] artificial-max])
|
|
|
|
(defn -setValue [this value]
|
|
(.parentSetValue this (min value (.state this))))
|
|
|
|
(defn max-progress-bar
|
|
[min max step vertical? arg artificial-max]
|
|
(println min max step vertical? arg artificial-max)
|
|
(ActorEntity.
|
|
(advent.max-progress-bar.MaxProgressBar. (float min) (float max) (float step) vertical? arg (float artificial-max))))
|
|
|
|
(defmacro max-progress-bar!
|
|
"Calls a single method on a `slider`."
|
|
[entity k & options]
|
|
`(u/call! ^advent.max-progress-bar.MaxProgressBar (u/get-obj ~entity :object) ~k ~@options))
|