! Copyright (C) 2005, 2007 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. IN: gadgets-panes USING: arrays gadgets gadgets-borders gadgets-buttons gadgets-labels gadgets-scrolling gadgets-paragraphs gadgets-theme gadgets-presentations gadgets-slots generic assocs io kernel namespaces sequences styles strings quotations ; : do-pane-stream ( pane-stream quot -- ) >r pane-stream-pane r> keep scroll-pane ; inline M: pane-stream stream-nl [ pane-nl ] do-pane-stream ; M: pane-stream stream-write1 [ pane-current stream-write1 ] do-pane-stream ; M: pane-stream stream-write [ swap string-lines pane-write ] do-pane-stream ; M: pane-stream stream-format [ rot string-lines pane-format ] do-pane-stream ; M: pane-stream stream-close drop ; M: pane-stream stream-flush drop ; M: pane-stream with-stream-style (with-stream-style) ; ! Character styles : apply-style ( style gadget key quot -- style gadget ) >r pick at r> when* ; inline : apply-foreground-style ( style gadget -- style gadget ) foreground [ over set-label-color ] apply-style ; : apply-background-style ( style gadget -- style gadget ) background [ dupd solid-interior ] apply-style ; : specified-font ( style -- font ) [ font swap at [ "monospace" ] unless* ] keep [ font-style swap at [ plain ] unless* ] keep font-size swap at [ 12 ] unless* 3array ; : apply-font-style ( style gadget -- style gadget ) over specified-font over set-label-font ; : apply-presentation-style ( style gadget -- style gadget ) presented [ ] apply-style ; : ( style text -- gadget )