Move ui listener macros to ui.clj

This commit is contained in:
oakes
2014-05-10 12:54:02 -04:00
parent e0deae642a
commit 7315e1ad1d
3 changed files with 46 additions and 44 deletions

View File

@@ -10,8 +10,10 @@
Dialog HorizontalGroup Image ImageButton ImageTextButton Label
ScrollPane SelectBox Skin Slider Stack Table TextButton TextField
Tree Tree$Node VerticalGroup WidgetGroup Window]
[com.badlogic.gdx.scenes.scene2d.utils NinePatchDrawable
SpriteDrawable TextureRegionDrawable TiledDrawable]
[com.badlogic.gdx.scenes.scene2d.utils ActorGestureListener
ChangeListener ClickListener DragListener FocusListener
NinePatchDrawable SpriteDrawable TextureRegionDrawable
TiledDrawable]
[com.esotericsoftware.tablelayout Cell]
[play_clj.entities ActorEntity]))
@@ -57,6 +59,47 @@ based on the file at `path`.
[k]
`~(u/gdx-field :scenes :scene2d :utils :Align (u/key->camel k)))
(defmacro actor-gesture-listener!
"Calls a single method on the [ActorGestureListener](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/scenes/scene2d/utils/ActorGestureListener.html)
in the `screen`."
[screen k & options]
`(let [listeners# (u/get-obj ~screen :ui-listeners)
^ActorGestureListener object#
(u/get-obj listeners# :actor-gesture-listener)]
(u/call! object# ~k ~@options)))
(defmacro change-listener!
"Calls a single method on the [ChangeListener](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/scenes/scene2d/utils/ChangeListener.html)
in the `screen`."
[screen k & options]
`(let [listeners# (u/get-obj ~screen :ui-listeners)
^ChangeListener object# (u/get-obj listeners# :change-listener)]
(u/call! object# ~k ~@options)))
(defmacro click-listener!
"Calls a single method on the [ClickListener](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/scenes/scene2d/utils/ClickListener.html)
in the `screen`."
[screen k & options]
`(let [listeners# (u/get-obj ~screen :ui-listeners)
^ClickListener object# (u/get-obj listeners# :click-listener)]
(u/call! object# ~k ~@options)))
(defmacro drag-listener!
"Calls a single method on the [DragListener](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/scenes/scene2d/utils/DragListener.html)
in the `screen`."
[screen k & options]
`(let [listeners# (u/get-obj ~screen :ui-listeners)
^DragListener object# (u/get-obj listeners# :drag-listener)]
(u/call! object# ~k ~@options)))
(defmacro focus-listener!
"Calls a single method on the [FocusListener](http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/scenes/scene2d/utils/FocusListener.html)
in the `screen`."
[screen k & options]
`(let [listeners# (u/get-obj ~screen :ui-listeners)
^FocusListener object# (u/get-obj listeners# :focus-listener)]
(u/call! object# ~k ~@options)))
(defn cell!
"Calls a single method on a [Cell](https://github.com/libgdx/libgdx/blob/master/gdx/src/com/esotericsoftware/tablelayout/Cell.java)."
[^Cell cell & args]