]> gitweb.factorcode.org Git - factor.git/blob - basis/pango/fonts/fonts.factor
7ea4e0a0c201cade2829181f38cbc093d24f8523
[factor.git] / basis / pango / fonts / fonts.factor
1 ! Copyright (C) 2008 Matthew Willis.
2 ! Copyright (C) 2009 Slava Pestov.
3 ! See http://factorcode.org/license.txt for BSD license
4 USING: pango alien.syntax alien.c-types alien.destructors
5 kernel glib accessors combinators destructors init fonts
6 memoize math ;
7 IN: pango.fonts
8
9 LIBRARY: pango
10
11 C-ENUM: PangoStyle
12 PANGO_STYLE_NORMAL
13 PANGO_STYLE_OBLIQUE
14 PANGO_STYLE_ITALIC ;
15
16 TYPEDEF: int PangoWeight
17 C-TYPE: PangoFont
18 C-TYPE: PangoFontFamily
19 C-TYPE: PangoFontFace
20 C-TYPE: PangoFontMap
21 C-TYPE: PangoFontMetrics
22 C-TYPE: PangoFontDescription
23 C-TYPE: PangoGlyphString
24 C-TYPE: PangoLanguage
25
26 CONSTANT: PANGO_WEIGHT_THIN 100
27 CONSTANT: PANGO_WEIGHT_ULTRALIGHT 200
28 CONSTANT: PANGO_WEIGHT_LIGHT 300
29 CONSTANT: PANGO_WEIGHT_BOOK 380
30 CONSTANT: PANGO_WEIGHT_NORMAL 400
31 CONSTANT: PANGO_WEIGHT_MEDIUM 500
32 CONSTANT: PANGO_WEIGHT_SEMIBOLD 600
33 CONSTANT: PANGO_WEIGHT_BOLD 700
34 CONSTANT: PANGO_WEIGHT_ULTRABOLD 800
35 CONSTANT: PANGO_WEIGHT_HEAVY 900
36 CONSTANT: PANGO_WEIGHT_ULTRAHEAVY 1000
37
38 FUNCTION: PangoFontDescription*
39 pango_font_description_new ( ) ;
40
41 FUNCTION: void
42 pango_font_description_free ( PangoFontDescription* desc ) ;
43
44 DESTRUCTOR: pango_font_description_free
45
46 FUNCTION: PangoFontDescription*
47 pango_font_description_from_string ( c-string str ) ;
48
49 FUNCTION: c-string
50 pango_font_description_to_string ( PangoFontDescription* desc ) ;
51
52 FUNCTION: c-string
53 pango_font_description_to_filename ( PangoFontDescription* desc ) ;
54
55 FUNCTION: void
56 pango_font_description_set_family ( PangoFontDescription* desc, c-string family ) ;
57
58 FUNCTION: void
59 pango_font_description_set_style ( PangoFontDescription* desc, PangoStyle style ) ;
60
61 FUNCTION: void
62 pango_font_description_set_weight ( PangoFontDescription* desc, PangoWeight weight ) ;
63
64 FUNCTION: void
65 pango_font_description_set_size ( PangoFontDescription* desc, gint size ) ;
66
67 FUNCTION: void
68 pango_font_map_list_families ( PangoFontMap* fontmap, PangoFontFamily*** families, int* n_families ) ;
69
70 FUNCTION: c-string
71 pango_font_family_get_name ( PangoFontFamily* family ) ;
72
73 FUNCTION: int
74 pango_font_family_is_monospace ( PangoFontFamily* family ) ;
75
76 FUNCTION: void
77 pango_font_family_list_faces ( PangoFontFamily* family, PangoFontFace*** faces, int* n_faces ) ;
78
79 FUNCTION: c-string
80 pango_font_face_get_face_name ( PangoFontFace* face ) ;
81
82 FUNCTION: void
83 pango_font_face_list_sizes ( PangoFontFace* face, int** sizes, int* n_sizes ) ;
84
85 FUNCTION: void pango_font_metrics_unref ( PangoFontMetrics* metrics ) ;
86
87 DESTRUCTOR: pango_font_metrics_unref
88
89 FUNCTION: int pango_font_metrics_get_ascent ( PangoFontMetrics* metrics ) ;
90
91 FUNCTION: int pango_font_metrics_get_descent ( PangoFontMetrics* metrics ) ;
92
93 FUNCTION: PangoFont* pango_font_map_load_font ( PangoFontMap* fontmap, PangoContext* context, PangoFontDescription* desc ) ;
94
95 FUNCTION: PangoFontMetrics* pango_context_get_metrics ( PangoContext* context, PangoFontDescription* desc, PangoLanguage* language ) ;
96
97 FUNCTION: PangoFontMetrics* pango_font_get_metrics ( PangoFont* font, PangoLanguage* language ) ;
98                                                          
99 MEMO: (cache-font-description) ( font -- description )
100     [
101         [ pango_font_description_new |pango_font_description_free ] dip {
102             [ name>> pango_font_description_set_family ]
103             [ size>> float>pango pango_font_description_set_size ]
104             [ bold?>> PANGO_WEIGHT_BOLD PANGO_WEIGHT_NORMAL ? pango_font_description_set_weight ]
105             [ italic?>> PANGO_STYLE_ITALIC PANGO_STYLE_NORMAL ? pango_font_description_set_style ]
106             [ drop ]
107         } 2cleave
108     ] with-destructors ;
109
110 : cache-font-description ( font -- description )
111     strip-font-colors (cache-font-description) ;
112
113 [ \ (cache-font-description) reset-memoized ] "pango.fonts" add-startup-hook