]> gitweb.factorcode.org Git - factor.git/commitdiff
menus: ESC should close menu popup
authorSankaranarayanan Viswanathan <rationalrevolt@gmail.com>
Fri, 14 Oct 2016 03:53:38 +0000 (23:53 -0400)
committerJohn Benediktsson <mrjbq7@gmail.com>
Fri, 14 Oct 2016 14:57:02 +0000 (07:57 -0700)
basis/ui/gadgets/menus/menus.factor

index 993ffd3b689380ead28ceb5d9eebeb0fe600aa30..71e40105dffb354f0b59a4c4ee42db306243ecc0 100644 (file)
@@ -3,13 +3,19 @@
 USING: accessors kernel locals math.rectangles math.vectors
 namespaces opengl sequences sorting ui.commands ui.gadgets
 ui.gadgets.buttons ui.gadgets.glass ui.gadgets.packs
-ui.gadgets.worlds ui.gestures ui.operations
+ui.gadgets.worlds ui.gadgets.wrappers ui.gestures ui.operations
 ui.pens ui.pens.solid ui.theme ui.tools.common ;
+
+FROM: ui.gadgets.wrappers => wrapper ;
+
 IN: ui.gadgets.menus
 
-: show-menu ( owner menu -- )
+: (show-menu) ( owner menu -- )
     [ find-world ] dip hand-loc get-global point>rect show-glass ;
 
+: show-menu ( owner menu -- )
+    [ (show-menu) ] keep request-focus ;
+
 GENERIC: <menu-item> ( target hook command -- button )
 
 M:: object <menu-item> ( target hook command -- button )
@@ -43,12 +49,19 @@ M: ---- <menu-item>
         { 0 5 } >>dim
         menu-border-color <separator-pen> >>interior ;
 
+TUPLE: menu < wrapper ;
+
+menu H{
+    { T{ key-down f f "ESC" } [ hide-glass ] }
+} set-gestures
+
 : <menu> ( gadgets -- menu )
     <menu-items>
     { 0 3 } >>gap
     margins
     menu-border-color <solid> >>boundary 
-    menu-background <solid> >>interior ;
+    menu-background <solid> >>interior
+    menu new-wrapper ;
 
 : <commands-menu> ( target hook commands -- menu )
     [ <menu-item> ] 2with map <menu> ;