Separate search tools, titled-gadget focus fix
parent
6017ad861b
commit
cfdb6aef7b
|
@ -41,8 +41,18 @@ M: word article-content
|
|||
] with-style
|
||||
] ($block) ;
|
||||
|
||||
: ($subsection) ( object -- )
|
||||
[ article-title ] keep >link
|
||||
dup [ (help) ] curry
|
||||
write-outliner ;
|
||||
|
||||
: $subsection ( object -- )
|
||||
[ first [ (help) ] swap ($subsection) ] ($block) ;
|
||||
[
|
||||
subsection-style [ first ($subsection) ] with-style
|
||||
] ($block) ;
|
||||
|
||||
: help-outliner ( seq -- | quot: obj -- )
|
||||
sort-articles [ ($subsection) terpri ] each ;
|
||||
|
||||
: $outliner ( content -- )
|
||||
first call [ (help) ] help-outliner ;
|
||||
subsection-style [ first call help-outliner ] with-style ;
|
||||
|
|
|
@ -126,12 +126,6 @@ M: link summary "Link: " swap link-name unparse append ;
|
|||
|
||||
: >link ( obj -- obj ) dup word? [ <link> ] unless ;
|
||||
|
||||
: ($subsection) ( quot object -- )
|
||||
subsection-style [
|
||||
[ swap curry ] keep dup article-title swap >link
|
||||
rot write-outliner
|
||||
] with-style ;
|
||||
|
||||
: $link ( article -- )
|
||||
first link-style [
|
||||
dup article-title swap >link write-object
|
||||
|
@ -227,6 +221,3 @@ M: link summary "Link: " swap link-name unparse append ;
|
|||
[ [ article-title ] keep 2array ] map
|
||||
[ [ first ] 2apply <=> ] sort
|
||||
[ second ] map ;
|
||||
|
||||
: help-outliner ( seq quot -- | quot: obj -- )
|
||||
swap sort-articles [ ($subsection) terpri ] each-with ;
|
||||
|
|
|
@ -84,7 +84,4 @@ SYMBOL: term-index
|
|||
dup xref-article index-article ;
|
||||
|
||||
: search-help. ( phrase -- )
|
||||
"Search results for ``" write dup write "'':" print
|
||||
search-help [
|
||||
first >link [ article-title ] keep write-object terpri
|
||||
] each ;
|
||||
search-help [ first ] map help-outliner ;
|
||||
|
|
|
@ -1,23 +1,20 @@
|
|||
! Copyright (C) 2005, 2006 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
IN: words
|
||||
USING: inspector io kernel math namespaces prettyprint
|
||||
USING: help inspector io kernel math namespaces prettyprint
|
||||
sequences strings walker ;
|
||||
|
||||
: usage. ( word -- )
|
||||
usage natural-sort [
|
||||
[ synopsis ] keep dup [ usage. ] curry
|
||||
: word-outliner ( word quot -- )
|
||||
swap natural-sort [
|
||||
dup rot curry >r [ synopsis ] keep r>
|
||||
write-outliner terpri
|
||||
] each ;
|
||||
] each-with ;
|
||||
|
||||
: usage. ( word -- )
|
||||
usage [ usage. ] word-outliner ;
|
||||
|
||||
: apropos ( substring -- )
|
||||
"Word names containing ``" write dup write "'':" print
|
||||
all-words completions
|
||||
[
|
||||
[
|
||||
dup word-name % " (" % dup word-vocabulary % ")" %
|
||||
] "" make swap write-object terpri
|
||||
] each ;
|
||||
all-words completions [ (help) ] word-outliner ;
|
||||
|
||||
: annotate ( word quot -- | quot: word def -- def )
|
||||
over >r >r dup word-def r> call r> swap define-compound ;
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
! Copyright (C) 2005, 2006 Kevin Reid.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: cocoa compiler gadgets gadgets-browser gadgets-launchpad
|
||||
gadgets-listener kernel memory objc objc-classes sequences
|
||||
strings words ;
|
||||
gadgets-listener gadgets-search kernel memory objc objc-classes
|
||||
sequences strings words ;
|
||||
IN: cocoa
|
||||
|
||||
! -------------------------------------------------------------------------
|
||||
|
@ -112,6 +112,7 @@ DEFER: described-menu
|
|||
"File"
|
||||
{ "New Listener" listener-window "n" }
|
||||
{ "New Browser" browser-window "b" }
|
||||
{ "Apropos" apropos-window "r" }
|
||||
{ }
|
||||
{ "Run..." menu-run-file "o" }
|
||||
{ }
|
||||
|
@ -144,5 +145,6 @@ DEFER: described-menu
|
|||
{ {
|
||||
"Help"
|
||||
{ "Factor Documentation" handbook-window "?" }
|
||||
{ "Search" search-help-window "" }
|
||||
} }
|
||||
} described-menu set-main-menu ;
|
||||
|
|
|
@ -32,7 +32,7 @@ C: browser-track ( builder closer -- gadget )
|
|||
[ dup browser-track-closer call ] 2keep
|
||||
[ browser-track-showing remove-hash* ] keep track-remove ;
|
||||
|
||||
TUPLE: browser main-track vocab-track word-track ;
|
||||
TUPLE: browser vocab-track word-track ;
|
||||
|
||||
: find-browser [ browser? ] find-parent ;
|
||||
|
||||
|
@ -108,17 +108,6 @@ DEFER: show-vocab
|
|||
vocabs [ <vocab-button> ] map make-pile <scroller>
|
||||
"Vocabularies" f <tile> ;
|
||||
|
||||
: <apropos-gadget>
|
||||
[ apropos ] <search-gadget> "Apropos" f <tile> ;
|
||||
|
||||
TUPLE: main-track vocabs apropos ;
|
||||
|
||||
C: main-track ( -- gadget )
|
||||
{
|
||||
{ [ <vocabs> ] set-main-track-vocabs 2/3 }
|
||||
{ [ <apropos-gadget> ] set-main-track-apropos 1/3 }
|
||||
} { 0 1 } make-track* ;
|
||||
|
||||
: <vocab-track> ( -- track )
|
||||
[ <vocab-view> ] [ find-browser hide-vocab-words ]
|
||||
<browser-track> ;
|
||||
|
@ -128,16 +117,13 @@ C: main-track ( -- gadget )
|
|||
|
||||
C: browser ( -- browser )
|
||||
{
|
||||
{ [ <main-track> ] set-browser-main-track 1/5 }
|
||||
{ [ <vocabs> ] f 1/5 }
|
||||
{ [ <vocab-track> ] set-browser-vocab-track 1/5 }
|
||||
{ [ <word-track> ] set-browser-word-track 3/5 }
|
||||
} { 1 0 } make-track* ;
|
||||
|
||||
M: browser gadget-title drop "Browser" ;
|
||||
|
||||
M: browser focusable-child*
|
||||
browser-main-track main-track-apropos ;
|
||||
|
||||
: browser-window ( -- ) <browser> open-window ;
|
||||
|
||||
: browser-tool
|
||||
|
|
|
@ -19,35 +19,21 @@ C: history ( -- gadget )
|
|||
] each
|
||||
] with-pane ;
|
||||
|
||||
TUPLE: help-sidebar history search ;
|
||||
|
||||
: <help-search> ( -- gadget )
|
||||
[ search-help. ] <search-gadget> "Search" f <tile> ;
|
||||
|
||||
C: help-sidebar ( -- gadget )
|
||||
{
|
||||
{ [ <history> ] set-help-sidebar-history 1/2 }
|
||||
{ [ <help-search> ] set-help-sidebar-search 1/2 }
|
||||
} { 0 1 } make-track* ;
|
||||
|
||||
TUPLE: help-gadget showing sidebar scroller ;
|
||||
TUPLE: help-gadget showing history scroller ;
|
||||
|
||||
: help-gadget-pane help-gadget-scroller scroller-gadget ;
|
||||
|
||||
C: help-gadget ( -- gadget )
|
||||
{
|
||||
{ [ <help-sidebar> ] set-help-gadget-sidebar 1/4 }
|
||||
{ [ <history> ] set-help-gadget-history 1/4 }
|
||||
{ [ <pane> <scroller> ] set-help-gadget-scroller 3/4 }
|
||||
} { 1 0 } make-track* ;
|
||||
|
||||
M: help-gadget gadget-title
|
||||
"Help - " swap help-gadget-showing article-title append ;
|
||||
|
||||
M: help-gadget focusable-child*
|
||||
help-gadget-sidebar help-sidebar-search ;
|
||||
|
||||
: add-history ( help -- )
|
||||
dup help-gadget-sidebar help-sidebar-history
|
||||
dup help-gadget-history
|
||||
swap help-gadget-showing dup
|
||||
[ over history-seq push-new update-history ] [ 2drop ] if ;
|
||||
|
||||
|
|
|
@ -28,7 +28,9 @@ prettyprint sequences words ;
|
|||
{
|
||||
{ "Listener" [ listener-window ] }
|
||||
{ "Browser" [ browser-window ] }
|
||||
{ "Apropos" [ apropos-window ] }
|
||||
{ "Documentation" [ handbook-window ] }
|
||||
{ "Search help" [ search-help-window ] }
|
||||
{ "Globals" [ globals-window ] }
|
||||
{ "Memory" [ memory-window ] }
|
||||
{ "Save image" [ save ] }
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
! See http://factorcode.org/license.txt for BSD license.
|
||||
IN: gadgets-search
|
||||
USING: gadgets gadgets-editors gadgets-frames gadgets-labels
|
||||
gadgets-panes gadgets-scrolling gadgets-theme generic inspector
|
||||
kernel sequences ;
|
||||
gadgets-panes gadgets-scrolling gadgets-theme generic help
|
||||
inspector kernel sequences words ;
|
||||
|
||||
TUPLE: search-gadget scroller input quot ;
|
||||
|
||||
|
@ -30,3 +30,15 @@ C: search-gadget ( quot -- )
|
|||
} make-frame* ;
|
||||
|
||||
M: search-gadget focusable-child* search-gadget-input ;
|
||||
|
||||
M: search-gadget pref-dim* drop { 400 500 } ;
|
||||
|
||||
: apropos-window
|
||||
[ apropos ] <search-gadget>
|
||||
"Apropos" <titled-gadget>
|
||||
open-window ;
|
||||
|
||||
: search-help-window
|
||||
[ search-help. ] <search-gadget>
|
||||
"Search help" <titled-gadget>
|
||||
open-window ;
|
||||
|
|
|
@ -71,6 +71,8 @@ M: titled-gadget pref-dim* viewport-dim ;
|
|||
M: titled-gadget layout*
|
||||
dup rect-dim swap gadget-child set-gadget-dim ;
|
||||
|
||||
M: titled-gadget focusable-child* gadget-child ;
|
||||
|
||||
C: titled-gadget ( gadget title -- )
|
||||
dup delegate>gadget
|
||||
[ set-titled-gadget-title ] keep
|
||||
|
|
Loading…
Reference in New Issue