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