diff --git a/extra/automata/ui/ui.factor b/extra/automata/ui/ui.factor
index cfec6597c2..5678a6f06b 100644
--- a/extra/automata/ui/ui.factor
+++ b/extra/automata/ui/ui.factor
@@ -14,13 +14,25 @@ USING: kernel namespaces math quotations arrays hashtables sequences threads
ui.gadgets.packs
ui.gadgets.grids
ui.gadgets.theme
+ accessors
+ qualified
namespaces.lib assocs.lib vars
- rewrite-closures automata math.geometry.rect ;
+ rewrite-closures automata math.geometry.rect newfx ;
IN: automata.ui
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+QUALIFIED: ui.gadgets
+QUALIFIED: ui.gadgets.grids
+
+: add-gadget ( parent child -- parent ) over ui.gadgets:add-gadget ;
+
+: grid-add ( grid child i j -- grid )
+ >r >r dupd swap r> r> ui.gadgets.grids:grid-add ;
+
+! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
: draw-point ( y x value -- ) 1 = [ swap glVertex2i ] [ 2drop ] if ;
: draw-line ( y line -- ) 0 swap [ >r 2dup r> draw-point 1+ ] each 2drop ;
@@ -57,29 +69,40 @@ slate> relayout-1 ;
DEFER: automata-window
-: automata-window* ( -- ) init-rule set-interesting
+: automata-window* ( -- )
+ init-rule
+ set-interesting
-{
-[ "1 - Center" [ start-center ] view-button ]
-[ "2 - Random" [ start-random ] view-button ]
-[ "3 - Continue" [ run-rule ] view-button ]
-[ "5 - Random Rule" [ random-rule ] view-button ]
-[ "n - New" [ automata-window ] view-button ]
-} make*
-[ [ gadget, ] curry ] map concat ! Hack
-make-shelf over @top grid-add
+
-[ display ] closed-quot { 400 400 } over set-slate-dim dup >slate
-over @center grid-add
+
-{
-{ T{ key-down f f "1" } [ [ start-center ] view-action ] }
-{ T{ key-down f f "2" } [ [ start-random ] view-action ] }
-{ T{ key-down f f "3" } [ [ run-rule ] view-action ] }
-{ T{ key-down f f "5" } [ [ random-rule ] view-action ] }
-{ T{ key-down f f "n" } [ [ automata-window ] view-action ] }
-} [ make* ] map >hashtable tuck set-gadget-delegate
-"Automata" open-window ;
+ "1 - Center" [ start-center ] view-button add-gadget
+ "2 - Random" [ start-random ] view-button add-gadget
+ "3 - Continue" [ run-rule ] view-button add-gadget
+ "5 - Random Rule" [ random-rule ] view-button add-gadget
+ "n - New" [ automata-window ] view-button add-gadget
+
+ @top grid-add
+
+ C[ display ]
+ { 400 400 } >>dim
+ dup >slate
+
+ @center grid-add
+
+ H{ }
+ T{ key-down f f "1" } [ start-center ] view-action is
+ T{ key-down f f "2" } [ start-random ] view-action is
+ T{ key-down f f "3" } [ run-rule ] view-action is
+ T{ key-down f f "5" } [ random-rule ] view-action is
+ T{ key-down f f "n" } [ automata-window ] view-action is
+
+
+
+ tuck set-gadget-delegate
+
+ "Automata" open-window ;
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!