ui.gadgets.panes: use style-stream.

master
John Benediktsson 2020-02-15 09:35:09 -08:00
parent 6f9a7dcc9e
commit 7b0f6efe7f
1 changed files with 14 additions and 16 deletions

View File

@ -2,15 +2,14 @@
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: accessors assocs classes combinators destructors USING: accessors assocs classes combinators destructors
documents.private fonts fry io io.styles kernel locals math documents.private fonts fry io io.styles kernel locals math
math.rectangles math.vectors memoize models namespaces sequences math.rectangles math.vectors models namespaces sequences sorting
sorting splitting strings ui.baseline-alignment ui.clipboards splitting strings ui.baseline-alignment ui.clipboards ui.gadgets
ui.gadgets ui.gadgets.borders ui.gadgets.grid-lines ui.gadgets.borders ui.gadgets.grid-lines ui.gadgets.grids
ui.gadgets.grids ui.gadgets.icons ui.gadgets.incremental ui.gadgets.icons ui.gadgets.incremental ui.gadgets.labels
ui.gadgets.labels ui.gadgets.menus ui.gadgets.packs ui.gadgets.menus ui.gadgets.packs ui.gadgets.paragraphs
ui.gadgets.paragraphs ui.gadgets.presentations ui.gadgets.presentations ui.gadgets.private ui.gadgets.scrollers
ui.gadgets.private ui.gadgets.scrollers ui.gadgets.tracks ui.gadgets.tracks ui.gestures ui.images ui.pens.solid ui.render
ui.gestures ui.images ui.pens.solid ui.render ui.theme ui.theme ui.traverse unicode ;
ui.traverse unicode ;
FROM: io.styles => foreground background ; FROM: io.styles => foreground background ;
FROM: ui.gadgets.wrappers => <wrapper> ; FROM: ui.gadgets.wrappers => <wrapper> ;
IN: ui.gadgets.panes IN: ui.gadgets.panes
@ -98,7 +97,8 @@ M: pane selected-children
add-incremental add-incremental
] [ next-line ] bi ; ] [ next-line ] bi ;
: smash-pane ( pane -- gadget ) [ pane-nl ] [ output>> smash-line ] bi ; : smash-pane ( pane -- gadget )
[ pane-nl ] [ output>> smash-line ] bi ;
: pane-write ( seq pane -- ) : pane-write ( seq pane -- )
[ pane-nl ] [ current>> stream-write ] [ pane-nl ] [ current>> stream-write ]
@ -273,15 +273,13 @@ MEMO:: specified-font ( name style size foreground background -- font )
apply-presentation-style apply-presentation-style
nip ; nip ;
TUPLE: nested-pane-stream < pane-stream style parent ; TUPLE: nested-pane-stream < style-stream parent ;
: new-nested-pane-stream ( style parent class -- stream ) : new-nested-pane-stream ( style parent class -- stream )
new [ <pane> apply-wrap-style <pane-stream> swap ] 2dip boa ; inline
swap >>parent
swap <pane> apply-wrap-style [ >>style ] [ >>pane ] bi* ; inline
: unnest-pane-stream ( stream -- child parent ) : unnest-pane-stream ( stream -- child parent )
[ [ style>> ] [ pane>> smash-pane ] bi style-pane ] [ parent>> ] bi ; [ style>> ] [ stream>> pane>> smash-pane style-pane ] [ parent>> ] tri ;
TUPLE: pane-block-stream < nested-pane-stream ; TUPLE: pane-block-stream < nested-pane-stream ;
@ -315,7 +313,7 @@ M: pane-stream make-cell-stream
M: pane-stream stream-write-table M: pane-stream stream-write-table
[ [
swap [ [ pane>> smash-pane ] map ] map swap [ [ stream>> pane>> smash-pane ] map ] map
styled-grid styled-grid
] dip write-gadget ; ] dip write-gadget ;