Add shortcuts for scrolling up/down to listener

db4
Slava Pestov 2009-01-06 20:55:23 -06:00
parent 63382b6e81
commit 00fad429b5
4 changed files with 36 additions and 21 deletions

View File

@ -5,7 +5,8 @@ assocs words vocabs accessors fry combinators.short-circuit
models models.history tools.apropos ui.tools.workspace models models.history tools.apropos ui.tools.workspace
ui.commands ui.gadgets ui.gadgets.panes ui.gadgets.scrollers ui.commands ui.gadgets ui.gadgets.panes ui.gadgets.scrollers
ui.gadgets.tracks ui.gestures ui.gadgets.buttons ui.gadgets.packs ui.gadgets.tracks ui.gestures ui.gadgets.buttons ui.gadgets.packs
ui.gadgets.editors ui.gadgets.labels ui.gadgets.status-bar ui ; ui.gadgets.editors ui.gadgets.labels ui.gadgets.status-bar
ui.tools.common ui ;
IN: ui.tools.browser IN: ui.tools.browser
TUPLE: browser-gadget < track pane scroller search-field ; TUPLE: browser-gadget < track pane scroller search-field ;
@ -83,18 +84,6 @@ M: browser-gadget focusable-child* search-field>> ;
\ browser-help H{ { +nullary+ t } } define-command \ browser-help H{ { +nullary+ t } } define-command
: com-page-up ( browser -- )
scroller>> scroll-up-page ;
: com-page-down ( browser -- )
scroller>> scroll-down-page ;
: com-scroll-up ( browser -- )
scroller>> scroll-up-line ;
: com-scroll-down ( browser -- )
scroller>> scroll-down-line ;
browser-gadget "toolbar" f { browser-gadget "toolbar" f {
{ T{ key-down f { A+ } "LEFT" } com-back } { T{ key-down f { A+ } "LEFT" } com-back }
{ T{ key-down f { A+ } "RIGHT" } com-forward } { T{ key-down f { A+ } "RIGHT" } com-forward }

View File

@ -0,0 +1,16 @@
! Copyright (C) 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors ui.gadgets.scrollers ;
IN: ui.tools.common
: com-page-up ( tool -- )
scroller>> scroll-up-page ;
: com-page-down ( tool -- )
scroller>> scroll-down-page ;
: com-scroll-up ( tool -- )
scroller>> scroll-up-line ;
: com-scroll-down ( tool -- )
scroller>> scroll-down-line ;

View File

@ -3,15 +3,16 @@
USING: inspector help help.markup io io.styles kernel models strings USING: inspector help help.markup io io.styles kernel models strings
namespaces parser quotations sequences vocabs words prettyprint namespaces parser quotations sequences vocabs words prettyprint
listener debugger threads boxes concurrency.flags math arrays listener debugger threads boxes concurrency.flags math arrays
generic accessors combinators assocs fry ui.commands ui.gadgets generic accessors combinators assocs fry generic.standard.engines.tuple
ui.gadgets.editors ui.gadgets.labelled ui.gadgets.panes ui.commands ui.gadgets ui.gadgets.editors ui.gadgets.labelled
ui.gadgets.buttons ui.gadgets.scrollers ui.gadgets.packs ui.gadgets.panes ui.gadgets.buttons ui.gadgets.scrollers ui.gadgets.packs
ui.gadgets.tracks ui.gadgets.borders ui.gadgets.frames ui.gadgets.tracks ui.gadgets.borders ui.gadgets.frames
ui.gadgets.grids ui.gestures ui.operations ui.tools.browser ui.gadgets.grids ui.gestures ui.operations ui.tools.browser
ui.tools.interactor ui.tools.inspector ui.tools.workspace ; ui.tools.interactor ui.tools.inspector ui.tools.workspace
ui.tools.common ;
IN: ui.tools.listener IN: ui.tools.listener
TUPLE: listener-gadget < track input output ; TUPLE: listener-gadget < track input output scroller ;
: listener-streams ( listener -- input output ) : listener-streams ( listener -- input output )
[ input>> ] [ output>> <pane-stream> ] bi ; [ input>> ] [ output>> <pane-stream> ] bi ;
@ -85,8 +86,6 @@ M: word word-completion-string
M: method-body word-completion-string M: method-body word-completion-string
"method-generic" word-prop word-completion-string ; "method-generic" word-prop word-completion-string ;
USE: generic.standard.engines.tuple
M: engine-word word-completion-string M: engine-word word-completion-string
"engine-generic" word-prop word-completion-string ; "engine-generic" word-prop word-completion-string ;
@ -152,7 +151,8 @@ M: engine-word word-completion-string
{ 0 1 } listener-gadget new-track { 0 1 } listener-gadget new-track
add-toolbar add-toolbar
init-listener init-listener
dup <listener-scroller> 1 track-add ; dup <listener-scroller> >>scroller
dup scroller>> 1 track-add ;
: listener-help ( -- ) "ui-listener" com-follow ; : listener-help ( -- ) "ui-listener" com-follow ;
@ -175,6 +175,15 @@ listener-gadget "toolbar" f {
{ T{ key-down f { C+ } "d" } com-end } { T{ key-down f { C+ } "d" } com-end }
} define-command-map } define-command-map
listener-gadget "scrolling"
"The listener's scroller can be scrolled from the keyboard."
{
{ T{ key-down f { A+ } "UP" } com-scroll-up }
{ T{ key-down f { A+ } "DOWN" } com-scroll-down }
{ T{ key-down f { A+ } "PAGE_UP" } com-page-up }
{ T{ key-down f { A+ } "PAGE_DOWN" } com-page-down }
} define-command-map
M: listener-gadget graft* M: listener-gadget graft*
[ call-next-method ] [ restart-listener ] bi ; [ call-next-method ] [ restart-listener ] bi ;

View File

@ -26,6 +26,7 @@ ARTICLE: "ui-listener" "UI listener"
{ "Clickable presentations (see " { $link "ui-presentations" } ")" } { "Clickable presentations (see " { $link "ui-presentations" } ")" }
} }
{ $command-map listener-gadget "toolbar" } { $command-map listener-gadget "toolbar" }
{ $command-map listener-gadget "scrolling" }
{ $command-map interactor "interactor" } { $command-map interactor "interactor" }
{ $command-map source-editor "word" } { $command-map source-editor "word" }
{ $command-map interactor "quotation" } { $command-map interactor "quotation" }