1 ! Copyright (C) 2006, 2007 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: debugger ui.tools.workspace help help.topics kernel
4 models ui.commands ui.gadgets ui.gadgets.panes
5 ui.gadgets.scrollers ui.gadgets.tracks ui.gestures
9 TUPLE: browser-gadget pane history ;
11 : show-help ( link help -- )
12 dup browser-gadget-history add-history
13 >r >link r> browser-gadget-history set-model ;
15 : <help-pane> ( browser-gadget -- gadget )
16 browser-gadget-history
17 [ [ dup help ] try drop ] <pane-control> ;
19 : init-history ( browser-gadget -- )
21 swap set-browser-gadget-history ;
23 : <browser-gadget> ( -- gadget )
24 browser-gadget construct-empty
27 g <help-pane> g-> set-browser-gadget-pane
29 ] { 0 1 } build-track ;
31 M: browser-gadget call-tool* show-help ;
33 M: browser-gadget tool-scroller
34 browser-gadget-pane find-scroller ;
36 : help-action ( browser-gadget -- link )
37 browser-gadget-history model-value >link ;
39 : com-follow browser-gadget call-tool ;
41 : com-back browser-gadget-history go-back ;
43 : com-forward browser-gadget-history go-forward ;
45 : com-documentation "handbook" swap show-help ;
47 : com-vocabularies "vocab-index" swap show-help ;
49 : browser-help "ui-browser" help-window ;
51 \ browser-help H{ { +nullary+ t } } define-command
53 browser-gadget "toolbar" f {
54 { T{ key-down f { A+ } "b" } com-back }
55 { T{ key-down f { A+ } "f" } com-forward }
56 { T{ key-down f { A+ } "h" } com-documentation }
57 { T{ key-down f { A+ } "v" } com-vocabularies }
58 { T{ key-down f f "F1" } browser-help }