USING: ui.gadgets ui.gadgets.packs ui.gadgets.worlds tools.test namespaces models kernel accessors arrays ; IN: ui.gadgets.worlds.tests ! Test focus behavior "g1" set : ( gadget -- world ) "Hi" >>title swap 1array >>gadgets ; { } [ "g1" get "w" set ] unit-test { } [ "g1" get request-focus ] unit-test { t } [ "w" get focus>> "g1" get eq? ] unit-test "g1" set "g2" set "g2" get "g1" get add-gadget drop { } [ "g2" get "w" set ] unit-test { } [ "g1" get request-focus ] unit-test { t } [ "w" get focus>> "g2" get eq? ] unit-test { t } [ "g2" get focus>> "g1" get eq? ] unit-test { f } [ "g1" get focus>> ] unit-test "g1" set "g2" set "g3" set "g3" get "g1" get add-gadget drop "g3" get "g2" get add-gadget drop { } [ "g3" get "w" set ] unit-test { } [ "g1" get request-focus ] unit-test { } [ "g2" get unparent ] unit-test { t } [ "g3" get focus>> "g1" get eq? ] unit-test { t } [ dup focusable-child eq? ] unit-test TUPLE: focusing < gadget ; : ( -- gadget ) focusing new ; TUPLE: focus-test < gadget ; : ( -- gadget ) focus-test new add-gadget ; M: focus-test focusable-child* gadget-child ; "f" set { } [ "f" get request-focus ] unit-test { t } [ "f" get focus>> "f" get gadget-child eq? ] unit-test { t } [ "f" get gadget-child focusing? ] unit-test