       btn.index = i
       btn.x = @menu.gridX.span i % @cols
       btn.y = @menu.gridY.span (i / @cols).floor()
+      @btns.push btn
 
-    @setupKeyboradHander()
-    @setupCursorHandler (e) ->
-      console.log e.type
+    @cursor.x = @btns[@index].x
+    @cursor.y = @btns[@index].y
+
+    #@setupKeyboradHander()
+    #@setupCursorHandler (e) ->
+    #  console.log e.type
+    #  return
+    @on 'keydown', (e) ->
+      switch e.keyCode
+        when phina.input.Keyboard.KEY_CODE['up']
+          @index -= 1 if @index > 0
+        when phina.input.Keyboard.KEY_CODE['down']
+          @index += 1 if @index < @menus.length - 1
+        when phina.input.Keyboard.KEY_CODE['left']
+          @index -= 1 if @index > 0
+        when phina.input.Keyboard.KEY_CODE['right']
+          @index += 1 if @index < @menus.length - 1
+      @cursor.x = @btns[@index].x
+      @cursor.y = @btns[@index].y
       return
     return
 

    @menu.gridX = phina.util.Grid(@width  - @padding, @cols, true)
    @menu.gridY = phina.util.Grid(@height - @padding, @rows, true, - @menu.height / 2 + @itemHeight / 2 + @padding)

    for m,i in @menus
      btn = phina.ui.Button
        text:   m.text

      @fontWeight
    } = {}.$safe(options).$safe MenuScene.defaults

    @index = 0

    @rows       = @_calcRows()
    @itemWidth  = @_calcItemWidth()
    @itemHeight = @_calcItemHeight()
