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