   [entity k & options]
   `(u/call! ^TextField (:object ~entity) ~k ~@options))
 
+(defn tree*
+  [children arg]
+  (create-group (Tree. arg) children))
+
+(defmacro tree
+  [children arg & options]
+  `(let [entity# (tree* ~children ~arg)]
+     (u/calls! ^Tree (:object entity#) ~@options)
+     entity#))
+
+(defmacro tree!
+  [entity k & options]
+  `(u/call! ^Tree (:object ~entity) ~k ~@options))
+
 (defn vertical*
   [children]
   (create-group (VerticalGroup.) children))

  `(u/call! ^VerticalGroup (:object ~entity) ~k ~@options))

(defn window*
  [^String title arg children]
  (create-group (Window. title arg) children))

(defmacro window
  [title arg children & options]
  `(let [entity# (window* ~title ~arg ~children)]
     (u/calls! ^Window (:object entity#) ~@options)
     entity#))


           [com.badlogic.gdx.scenes.scene2d Actor Stage]
           [com.badlogic.gdx.scenes.scene2d.ui ButtonGroup CheckBox Dialog
            HorizontalGroup Image ImageButton ImageTextButton Label ScrollPane
            SelectBox Skin Slider Table TextButton TextField Tree Tree$Node
            VerticalGroup WidgetGroup Window]
           [com.badlogic.gdx.scenes.scene2d.utils ActorGestureListener Align
            ChangeListener ClickListener DragListener FocusListener
            NinePatchDrawable SpriteDrawable TextureRegionDrawable
