Add common tool commands: F2, A+l, A+L, A+b, A+B

db4
Slava Pestov 2009-01-08 18:56:39 -06:00
parent 632b21159d
commit 2fd234ac62
8 changed files with 56 additions and 36 deletions

View File

@ -9,9 +9,9 @@ ui.gadgets.editors ui.gadgets.labels ui.gadgets.status-bar
ui.tools.common ui ; ui.tools.common ui ;
IN: ui.tools.browser IN: ui.tools.browser
TUPLE: browser-gadget < track pane scroller search-field ; TUPLE: browser-gadget < tool pane scroller search-field ;
TOOL: browser-gadget { 550 400 } { 550 400 } browser-gadget set-tool-dim
: show-help ( link browser-gadget -- ) : show-help ( link browser-gadget -- )
model>> dup add-history model>> dup add-history
@ -63,10 +63,22 @@ M: browser-gadget definitions-changed ( assoc browser -- )
M: browser-gadget focusable-child* search-field>> ; M: browser-gadget focusable-child* search-field>> ;
: (browser-window) ( topic -- )
<browser-gadget> "Browser" open-status-window ;
: browser-window ( -- )
"handbook" (browser-window) ;
\ browser-window H{ { +nullary+ t } } define-command
: com-follow ( link -- ) : com-follow ( link -- )
[ browser-gadget? ] find-window [ browser-gadget? ] find-window
[ [ raise-window ] [ gadget-child show-help ] bi ] [ [ raise-window ] [ gadget-child show-help ] bi ]
[ <browser-gadget> "Browser" open-status-window ] if* ; [ (browser-window) ] if* ;
: show-browser ( -- ) "handbook" com-follow ;
\ show-browser H{ { +nullary+ t } } define-command
: com-back ( browser -- ) model>> go-back ; : com-back ( browser -- ) model>> go-back ;
@ -99,7 +111,4 @@ browser-gadget "scrolling"
{ T{ key-down f f "PAGE_DOWN" } com-page-down } { T{ key-down f f "PAGE_DOWN" } com-page-down }
} define-command-map } define-command-map
: browser-window ( -- )
[ "handbook" com-follow ] with-ui ;
MAIN: browser-window MAIN: browser-window

View File

@ -1,14 +1,14 @@
! Copyright (C) 2009 Slava Pestov. ! Copyright (C) 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: accessors assocs classes classes.mixin kernel namespaces USING: accessors assocs classes classes.mixin kernel namespaces
parser ui.gadgets ui.gadgets.scrollers ; parser ui.gadgets ui.gadgets.scrollers ui.gadgets.tracks ;
IN: ui.tools.common IN: ui.tools.common
SYMBOL: tool-dims SYMBOL: tool-dims
tool-dims global [ H{ } clone or ] change-at tool-dims global [ H{ } clone or ] change-at
MIXIN: tool TUPLE: tool < track ;
M: tool pref-dim* M: tool pref-dim*
class tool-dims get at ; class tool-dims get at ;
@ -18,11 +18,7 @@ M: tool layout*
[ [ dim>> ] [ class ] bi tool-dims get set-at ] [ [ dim>> ] [ class ] bi tool-dims get set-at ]
bi ; bi ;
: TOOL: : set-tool-dim ( dim class -- ) tool-dims get set-at ;
scan-word
[ tool add-mixin-instance ]
[ scan-object swap tool-dims get set-at ]
bi ; parsing
SLOT: scroller SLOT: scroller

View File

@ -10,9 +10,9 @@ ui.gadgets.status-bar ui.gadgets.theme ui.gadgets.labelled
ui.tools.common ui ; ui.tools.common ui ;
IN: ui.tools.inspector IN: ui.tools.inspector
TUPLE: inspector-gadget < track table ; TUPLE: inspector-gadget < tool table ;
TOOL: inspector-gadget { 500 300 } { 500 300 } inspector-gadget set-tool-dim
TUPLE: slot-description key key-string value value-string ; TUPLE: slot-description key key-string value value-string ;

View File

@ -149,9 +149,9 @@ M: interactor dispose drop ;
over set-caret over set-caret
mark>caret ; mark>caret ;
TUPLE: listener-gadget < track input output scroller popup ; TUPLE: listener-gadget < tool input output scroller popup ;
TOOL: listener-gadget { 550 700 } { 550 700 } listener-gadget set-tool-dim
: find-listener ( gadget -- listener ) : find-listener ( gadget -- listener )
[ listener-gadget? ] find-parent ; [ listener-gadget? ] find-parent ;
@ -196,13 +196,21 @@ M: listener-gadget focusable-child*
: listener-window ( -- ) : listener-window ( -- )
[ listener-window* drop ] with-ui ; [ listener-window* drop ] with-ui ;
\ listener-window H{ { +nullary+ t } } define-command
: (get-listener) ( quot -- listener ) : (get-listener) ( quot -- listener )
find-window find-window
[ gadget-child ] [ listener-window* ] if* ; inline [ [ raise-window ] [ gadget-child ] bi ]
[ listener-window* ] if* ; inline
: get-listener ( -- listener ) : get-listener ( -- listener )
[ listener-gadget? ] (get-listener) ; [ listener-gadget? ] (get-listener) ;
: show-listener ( -- )
get-listener drop ;
\ show-listener H{ { +nullary+ t } } define-command
: get-ready-listener ( -- listener ) : get-ready-listener ( -- listener )
[ [
{ {
@ -398,16 +406,12 @@ listener-gadget "scrolling"
{ T{ key-down f { A+ } "PAGE_DOWN" } com-page-down } { T{ key-down f { A+ } "PAGE_DOWN" } com-page-down }
} define-command-map } define-command-map
\ refresh-all
H{ { +nullary+ t } { +listener+ t } } define-command
listener-gadget "multi-touch" f { listener-gadget "multi-touch" f {
{ T{ up-action } refresh-all } { T{ up-action } refresh-all }
} define-command-map } define-command-map
listener-gadget "workflow" f { listener-gadget "other" f {
{ T{ key-down f f "ESC" } hide-popup } { T{ key-down f f "ESC" } hide-popup }
{ T{ key-down f f "F2" } refresh-all }
} define-command-map } define-command-map
M: listener-gadget graft* M: listener-gadget graft*

View File

@ -62,7 +62,7 @@ V{ } clone operations set-global
: edit-file ( pathname -- ) edit ; : edit-file ( pathname -- ) edit ;
[ pathname? ] \ edit-file H{ [ pathname? ] \ edit-file H{
{ +keyboard+ T{ key-down f { C+ } "E" } } { +keyboard+ T{ key-down f { C+ } "e" } }
{ +primary+ t } { +primary+ t }
{ +secondary+ t } { +secondary+ t }
{ +listener+ t } { +listener+ t }
@ -71,7 +71,7 @@ V{ } clone operations set-global
UNION: definition word method-spec link vocab vocab-link ; UNION: definition word method-spec link vocab vocab-link ;
[ definition? ] \ edit H{ [ definition? ] \ edit H{
{ +keyboard+ T{ key-down f { C+ } "E" } } { +keyboard+ T{ key-down f { C+ } "e" } }
{ +listener+ t } { +listener+ t }
} define-operation } define-operation
@ -86,7 +86,7 @@ UNION: definition word method-spec link vocab vocab-link ;
} define-operation } define-operation
[ topic? ] \ com-follow H{ [ topic? ] \ com-follow H{
{ +keyboard+ T{ key-down f { C+ } "H" } } { +keyboard+ T{ key-down f { C+ } "h" } }
{ +primary+ t } { +primary+ t }
} define-operation } define-operation
@ -98,7 +98,7 @@ UNION: definition word method-spec link vocab vocab-link ;
! } define-operation ! } define-operation
[ word? ] \ fix H{ [ word? ] \ fix H{
{ +keyboard+ T{ key-down f { C+ } "F" } } { +keyboard+ T{ key-down f { C+ } "f" } }
{ +listener+ t } { +listener+ t }
} define-operation } define-operation
@ -128,7 +128,7 @@ M: word com-stack-effect def>> com-stack-effect ;
: com-enter-in ( vocab -- ) vocab-name set-in ; : com-enter-in ( vocab -- ) vocab-name set-in ;
[ vocab? ] \ com-enter-in H{ [ vocab? ] \ com-enter-in H{
{ +keyboard+ T{ key-down f { C+ } "I" } } { +keyboard+ T{ key-down f { C+ } "i" } }
{ +listener+ t } { +listener+ t }
} define-operation } define-operation
@ -140,12 +140,12 @@ M: word com-stack-effect def>> com-stack-effect ;
} define-operation } define-operation
[ vocab-spec? ] \ run H{ [ vocab-spec? ] \ run H{
{ +keyboard+ T{ key-down f { C+ } "R" } } { +keyboard+ T{ key-down f { C+ } "r" } }
{ +listener+ t } { +listener+ t }
} define-operation } define-operation
[ vocab? ] \ test H{ [ vocab? ] \ test H{
{ +keyboard+ T{ key-down f { C+ } "T" } } { +keyboard+ T{ key-down f { C+ } "t" } }
{ +listener+ t } { +listener+ t }
} define-operation } define-operation

View File

@ -13,14 +13,14 @@ FROM: models.filter => <filter> ;
FROM: models.compose => <compose> ; FROM: models.compose => <compose> ;
IN: ui.tools.profiler IN: ui.tools.profiler
TUPLE: profiler-gadget < track TUPLE: profiler-gadget < tool
sort sort
vocabs vocab vocabs vocab
words words
methods methods
generic class ; generic class ;
TOOL: profiler-gadget { 700 400 } { 700 400 } profiler-gadget set-tool-dim
SINGLETON: word-renderer SINGLETON: word-renderer

View File

@ -1,9 +1,20 @@
! Copyright (C) 2006, 2009 Slava Pestov. ! Copyright (C) 2006, 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: ui.tools.operations ui.tools.listener ui kernel ; USING: ui.tools.operations ui.tools.listener ui.tools.browser
ui.tools.common ui.commands ui.gestures ui kernel tools.vocabs ;
IN: ui.tools IN: ui.tools
: main ( -- ) : main ( -- )
restore-windows? [ restore-windows ] [ listener-window ] if ; restore-windows? [ restore-windows ] [ listener-window ] if ;
MAIN: main MAIN: main
\ refresh-all H{ { +nullary+ t } { +listener+ t } } define-command
tool "common" "Common commands available in all UI tools" {
{ T{ key-down f { A+ } "l" } show-listener }
{ T{ key-down f { A+ } "L" } listener-window }
{ T{ key-down f { A+ } "b" } show-browser }
{ T{ key-down f { A+ } "B" } browser-window }
{ T{ key-down f f "F2" } refresh-all }
} define-command-map

View File

@ -8,12 +8,12 @@ ui.gadgets.labels ui threads namespaces make tools.walker assocs
combinators fry ; combinators fry ;
IN: ui.tools.walker IN: ui.tools.walker
TUPLE: walker-gadget < track TUPLE: walker-gadget < tool
status continuation thread status continuation thread
traceback traceback
closing? ; closing? ;
TOOL: walker-gadget { 620 620 } { 620 620 } walker-gadget set-tool-dim
: walker-command ( walker msg -- ) : walker-command ( walker msg -- )
swap swap