io.styles: support image style
parent
0b88380947
commit
da825003ae
|
@ -137,6 +137,10 @@ ALIAS: $slot $snippet
|
||||||
] with-nesting
|
] with-nesting
|
||||||
] ($heading) ;
|
] ($heading) ;
|
||||||
|
|
||||||
|
! Images
|
||||||
|
: $image ( element -- )
|
||||||
|
[ [ "" ] dip first image associate format ] ($span) ;
|
||||||
|
|
||||||
! Some links
|
! Some links
|
||||||
: write-link ( string object -- )
|
: write-link ( string object -- )
|
||||||
link-style get [ write-object ] with-style ;
|
link-style get [ write-object ] with-style ;
|
||||||
|
|
|
@ -111,6 +111,12 @@ $nl
|
||||||
{ $subsection with-cell }
|
{ $subsection with-cell }
|
||||||
{ $subsection write-cell } ;
|
{ $subsection write-cell } ;
|
||||||
|
|
||||||
|
HELP: href
|
||||||
|
{ $description "Character style. A URL string that the text links to." } ;
|
||||||
|
|
||||||
|
HELP: image
|
||||||
|
{ $description "Character style. A pathname string for an image file to display in place of the printed text. If this style is specified, the printed text serves the same role as the " { $snippet "alt" } " attribute of an HTML " { $snippet "img" } " tag -- the text is only displayed if the output medium does not support images." } ;
|
||||||
|
|
||||||
ARTICLE: "character-styles" "Character styles"
|
ARTICLE: "character-styles" "Character styles"
|
||||||
"Character styles for " { $link stream-format } " and " { $link with-style } ":"
|
"Character styles for " { $link stream-format } " and " { $link with-style } ":"
|
||||||
{ $subsection foreground }
|
{ $subsection foreground }
|
||||||
|
@ -118,7 +124,10 @@ ARTICLE: "character-styles" "Character styles"
|
||||||
{ $subsection font-name }
|
{ $subsection font-name }
|
||||||
{ $subsection font-size }
|
{ $subsection font-size }
|
||||||
{ $subsection font-style }
|
{ $subsection font-style }
|
||||||
{ $subsection presented } ;
|
"Special styles:"
|
||||||
|
{ $subsection href }
|
||||||
|
{ $subsection image }
|
||||||
|
{ $see-also "presentations" } ;
|
||||||
|
|
||||||
ARTICLE: "paragraph-styles" "Paragraph styles"
|
ARTICLE: "paragraph-styles" "Paragraph styles"
|
||||||
"Paragraph styles for " { $link with-nesting } ":"
|
"Paragraph styles for " { $link with-nesting } ":"
|
||||||
|
@ -139,6 +148,8 @@ HELP: write-object
|
||||||
$io-error ;
|
$io-error ;
|
||||||
|
|
||||||
ARTICLE: "presentations" "Presentations"
|
ARTICLE: "presentations" "Presentations"
|
||||||
|
"A special style for " { $link format } " and " { $link with-nesting } ":"
|
||||||
|
{ $subsection presented }
|
||||||
"The " { $link presented } " style can be used to emit clickable objects. A utility word for outputting this style:"
|
"The " { $link presented } " style can be used to emit clickable objects. A utility word for outputting this style:"
|
||||||
{ $subsection write-object } ;
|
{ $subsection write-object } ;
|
||||||
|
|
||||||
|
|
|
@ -117,8 +117,12 @@ SYMBOL: font-style
|
||||||
! Presentation
|
! Presentation
|
||||||
SYMBOL: presented
|
SYMBOL: presented
|
||||||
|
|
||||||
|
! Link
|
||||||
SYMBOL: href
|
SYMBOL: href
|
||||||
|
|
||||||
|
! Image
|
||||||
|
SYMBOL: image
|
||||||
|
|
||||||
! Paragraph styles
|
! Paragraph styles
|
||||||
SYMBOL: page-color
|
SYMBOL: page-color
|
||||||
SYMBOL: border-color
|
SYMBOL: border-color
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
! Copyright (C) 2005, 2009 Slava Pestov.
|
! Copyright (C) 2005, 2009 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: arrays hashtables io kernel namespaces sequences
|
USING: arrays hashtables io kernel namespaces sequences io.styles
|
||||||
io.styles strings quotations math opengl combinators memoize
|
strings quotations math opengl combinators memoize math.vectors
|
||||||
math.vectors sorting splitting assocs classes.tuple models
|
sorting splitting assocs classes.tuple models continuations
|
||||||
continuations destructors accessors math.rectangles fry
|
destructors accessors math.rectangles fry fonts ui.images ui.gadgets
|
||||||
fonts ui.gadgets ui.gadgets.private ui.gadgets.borders ui.gadgets.buttons
|
ui.gadgets.private ui.gadgets.borders ui.gadgets.buttons
|
||||||
ui.gadgets.labels ui.gadgets.scrollers ui.gadgets.paragraphs
|
ui.gadgets.labels ui.gadgets.scrollers ui.gadgets.paragraphs
|
||||||
ui.gadgets.incremental ui.gadgets.packs ui.gadgets.theme
|
ui.gadgets.incremental ui.gadgets.packs ui.gadgets.theme
|
||||||
ui.gadgets.menus ui.clipboards ui.gestures ui.traverse ui.render
|
ui.gadgets.menus ui.clipboards ui.gestures ui.traverse ui.render
|
||||||
ui.text ui.gadgets.presentations ui.gadgets.grids ui.gadgets.tracks
|
ui.text ui.gadgets.presentations ui.gadgets.grids ui.gadgets.tracks
|
||||||
ui.gadgets.grid-lines colors call ;
|
ui.gadgets.icons ui.gadgets.grid-lines colors call ;
|
||||||
IN: ui.gadgets.panes
|
IN: ui.gadgets.panes
|
||||||
|
|
||||||
TUPLE: pane < pack
|
TUPLE: pane < pack
|
||||||
|
@ -210,9 +210,13 @@ MEMO: specified-font ( assoc -- font )
|
||||||
: apply-presentation-style ( style gadget -- style gadget )
|
: apply-presentation-style ( style gadget -- style gadget )
|
||||||
presented [ <presentation> ] apply-style ;
|
presented [ <presentation> ] apply-style ;
|
||||||
|
|
||||||
|
: apply-image-style ( style gadget -- style gadget )
|
||||||
|
image [ nip <image-name> <icon> ] apply-style ;
|
||||||
|
|
||||||
: style-label ( style gadget -- gadget )
|
: style-label ( style gadget -- gadget )
|
||||||
apply-font-style
|
apply-font-style
|
||||||
apply-presentation-style
|
apply-presentation-style
|
||||||
|
apply-image-style
|
||||||
nip ; inline
|
nip ; inline
|
||||||
|
|
||||||
: <styled-label> ( style text -- gadget )
|
: <styled-label> ( style text -- gadget )
|
||||||
|
@ -322,14 +326,18 @@ M: paragraph stream-write1
|
||||||
over CHAR: \s =
|
over CHAR: \s =
|
||||||
[ H{ } swap gadget-bl drop ] [ gadget-write1 ] if ;
|
[ H{ } swap gadget-bl drop ] [ gadget-write1 ] if ;
|
||||||
|
|
||||||
|
: empty-output? ( string style -- ? )
|
||||||
|
[ empty? ] [ image swap key? not ] bi* and ;
|
||||||
|
|
||||||
: gadget-format ( string style stream -- )
|
: gadget-format ( string style stream -- )
|
||||||
'[ _ swap <styled-label> _ swap add-gadget drop ] unless-empty ;
|
[ [ empty-output? ] 2keep ] dip
|
||||||
|
'[ _ _ swap <styled-label> _ swap add-gadget drop ] unless ;
|
||||||
|
|
||||||
M: pack stream-format
|
M: pack stream-format
|
||||||
gadget-format ;
|
gadget-format ;
|
||||||
|
|
||||||
M: paragraph stream-format
|
M: paragraph stream-format
|
||||||
presented pick at [
|
over { presented image } [ swap key? ] with any? [
|
||||||
gadget-format
|
gadget-format
|
||||||
] [
|
] [
|
||||||
[ " " split ] 2dip
|
[ " " split ] 2dip
|
||||||
|
|
Loading…
Reference in New Issue