Files
gitea-docker/desktop/src-common/advent/max_progress_bar.clj
2017-03-16 23:00:05 -07:00

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