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