]> gitweb.factorcode.org Git - factor.git/commitdiff
Reorganises button-list code to separate file
authorinivekin <inivekin@gmail.com>
Sat, 27 Mar 2021 08:02:00 +0000 (16:02 +0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Tue, 25 Jan 2022 19:07:19 +0000 (11:07 -0800)
basis/ui/tools/browser/popups/popups.factor
basis/ui/tools/button-list/button-list-docs.factor [new file with mode: 0644]
basis/ui/tools/button-list/button-list-tests.factor [new file with mode: 0644]
basis/ui/tools/button-list/button-list.factor [new file with mode: 0644]
basis/ui/tools/common/common.factor
basis/ui/tools/tools.factor

index 25114b7f5cf945bb12d88b6cd624a63c0026d56b..1dfa16236c23bd01c40f31dbdc9f219d0412d9cb 100644 (file)
@@ -50,25 +50,3 @@ SLOT: model
 : com-show-incoming-links ( browser-gadget -- )
     [ usage ] "Incoming links" show-links-popup ;
 
-: <active-buttons-table> ( model -- table )
-    [ keys [ ">" swap 2array ] map ] <arrow> trivial-renderer [ second ] <search-table> 
-        dup table>>
-        active-buttons get '[ second _ at invoke-secondary ] >>action
-        [ hide-glass ] >>hook
-        t >>selection-required?
-        10 >>min-rows
-        10 >>max-rows
-        30 >>min-cols
-        30 >>max-cols drop
-    ;
-
-: <active-buttons-popup> ( model title -- gadget )
-    [ <active-buttons-table> white-interior ] dip
-    popup-color <framed-labeled-gadget> links-popup new-wrapper ;
-
-: show-active-buttons-popup ( browser-gadget model title -- )
-    <active-buttons-popup>
-    [ hand-loc get-global point>rect show-glass ] [ request-focus ] bi ; inline
-
-: com-show-active-buttons ( browser-gadget -- )
-    active-buttons get <model> "Active buttons" show-active-buttons-popup ;
diff --git a/basis/ui/tools/button-list/button-list-docs.factor b/basis/ui/tools/button-list/button-list-docs.factor
new file mode 100644 (file)
index 0000000..0a743c1
--- /dev/null
@@ -0,0 +1,5 @@
+USING: help.markup help.syntax ui.tools.button-list ;
+IN: ui.tools.button-list
+
+HELP: show-active-buttons-popup
+{ $description "Displays a popup window for fuzzy selection of any labeled button in any window of the session." } ;
diff --git a/basis/ui/tools/button-list/button-list-tests.factor b/basis/ui/tools/button-list/button-list-tests.factor
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/basis/ui/tools/button-list/button-list.factor b/basis/ui/tools/button-list/button-list.factor
new file mode 100644 (file)
index 0000000..07ad1a2
--- /dev/null
@@ -0,0 +1,38 @@
+! Copyright (C) 2021 Kevin Cope.
+! See http://factorcode.org/license.txt for BSD license.
+USING: accessors arrays assocs classes kernel math.rectangles 
+models models.arrow namespaces sequences ui ui.gadgets
+ui.gadgets.buttons ui.gadgets.glass ui.gadgets.labeled 
+ui.gadgets.presentations ui.gadgets.search-tables
+ui.gadgets.tables ui.gadgets.wrappers ui.gestures ui.theme 
+ui.tools.browser.popups ui.tools.common ;
+FROM: ui.gadgets.wrappers => wrapper ;
+IN: ui.tools.button-list
+
+TUPLE: button-list-popup < wrapper ;
+
+: <active-buttons-table> ( model -- table )
+    [ keys [ ">" swap 2array ] map ] <arrow> trivial-renderer [ second ] <search-table> 
+    dup table>>
+        [ second active-buttons get at invoke-primary ] >>action
+        [ hide-glass ] >>hook
+        t >>selection-required?
+        10 >>min-rows
+        10 >>max-rows
+        30 >>min-cols
+        30 >>max-cols
+    drop
+    ;
+
+: <active-buttons-popup> ( model title -- gadget )
+    [ <active-buttons-table> white-interior ] dip
+    popup-color <framed-labeled-gadget> button-list-popup new-wrapper ;
+
+button-list-popup H{
+    { T{ key-down f f "ESC" } [ hide-glass ] }
+} set-gestures
+
+: show-active-buttons-popup ( tool -- )
+    active-buttons get <model> "Active Buttons" <active-buttons-popup>
+    [ hand-loc get-global point>rect show-glass ] [ request-focus ] bi ; inline
+
index 50f147889cfcd7aee256e645159679399de8f588..398e154f03c11a848c98f03c515c6698234b3d9d 100644 (file)
@@ -2,7 +2,7 @@
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors classes combinators.short-circuit kernel ui
 ui.gadgets ui.gadgets.borders ui.gadgets.scrollers
-ui.gadgets.tracks ui.pens.solid ui.theme words ;
+ui.gadgets.tracks ui.pens.solid ui.theme ui.tools.button-list words ;
 
 IN: ui.tools.common
 
@@ -48,3 +48,6 @@ SLOT: scroller
 
 : white-interior ( track -- track )
     content-background <solid> >>interior ;
+
+: com-show-active-buttons ( tool -- )
+    show-active-buttons-popup ;
index 2ab02e01c3c16cd22ede41e6bb5c867041e886c0..3f2d6f5704fd0176487fa80e94485573ea2fd48e 100644 (file)
@@ -24,6 +24,7 @@ tool "tool-switching" f {
 } define-command-map
 
 tool "common" f {
+    { T{ key-down f ${ os macosx? M+ A+ ? } "t" } com-show-active-buttons }
     { T{ key-down f ${ os macosx? M+ C+ ? } "w" } close-window }
     { T{ key-down f ${ os macosx? M+ C+ ? } "q" } com-exit }
     { T{ key-down f f "F2" } refresh-all }