USING: ui.gadgets ui.gadgets.packs ui.gadgets.worlds tools.test namespaces models kernel accessors ; IN: ui.gadgets.worlds.tests ! Test focus behavior "g1" set : ( gadget -- world ) "Hi" f ; [ ] [ "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 ; : focusing new ; TUPLE: focus-test < gadget ; : focus-test new dup add-gadget drop ; 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