factor/library/ui/fonts.factor

47 lines
1.5 KiB
Factor
Raw Normal View History

2005-06-27 03:47:22 -04:00
! Copyright (C) 2005 Slava Pestov.
! See http://factor.sf.net/license.txt for BSD license.
IN: gadgets
USING: alien hashtables io kernel lists namespaces sdl sequences
styles vectors ;
2005-06-27 03:47:22 -04:00
: ttf-name ( font style -- name )
2005-07-09 16:08:50 -04:00
cons {{
2005-06-27 03:47:22 -04:00
[[ [[ "Monospaced" plain ]] "VeraMono" ]]
[[ [[ "Monospaced" bold ]] "VeraMoBd" ]]
[[ [[ "Monospaced" bold-italic ]] "VeraMoBI" ]]
[[ [[ "Monospaced" italic ]] "VeraMoIt" ]]
[[ [[ "Sans Serif" plain ]] "Vera" ]]
[[ [[ "Sans Serif" bold ]] "VeraBd" ]]
[[ [[ "Sans Serif" bold-italic ]] "VeraBI" ]]
[[ [[ "Sans Serif" italic ]] "VeraIt" ]]
[[ [[ "Serif" plain ]] "VeraSe" ]]
[[ [[ "Serif" bold ]] "VeraSeBd" ]]
[[ [[ "Serif" bold-italic ]] "VeraBI" ]]
[[ [[ "Serif" italic ]] "VeraIt" ]]
2005-07-09 16:08:50 -04:00
}} hash ;
2005-06-27 03:47:22 -04:00
: ttf-path ( name -- string )
2005-08-25 15:27:38 -04:00
[ resource-path % "/fonts/" % % ".ttf" % ] "" make ;
2005-06-27 03:47:22 -04:00
: open-font ( [ font style ptsize ] -- alien )
first3 >r ttf-name ttf-path r> TTF_OpenFont ;
2005-06-27 03:47:22 -04:00
SYMBOL: open-fonts
: lookup-font ( font style ptsize -- font )
3vector open-fonts get [ open-font ] cache ;
2005-06-27 03:47:22 -04:00
global [ open-fonts nest drop ] bind
: ttf-init ( -- )
TTF_Init
2005-07-09 16:08:50 -04:00
global [
open-fonts [ [ cdr expired? not ] hash-subset ] change
] bind ;
2005-06-27 03:47:22 -04:00
: gadget-font ( gadget -- font )
[ font paint-prop ] keep
[ font-style paint-prop ] keep
font-size paint-prop
lookup-font ;