Code

Extensions. Fix for bug #647744 ([inx] min/max float values ignored with locale using...
[inkscape.git] / src / sp-font-face.h
1 #ifdef HAVE_CONFIG_H
2 # include <config.h>
3 #endif
5 #ifdef ENABLE_SVG_FONTS
6 #ifndef __SP_FONTFACE_H__
7 #define __SP_FONTFACE_H__
9 /*
10  * SVG <font-face> element implementation
11  *
12  * Section 20.8.3 of the W3C SVG 1.1 spec
13  * available at: 
14  * http://www.w3.org/TR/SVG/fonts.html#FontFaceElement
15  *
16  * Authors:
17  *    Felipe C. da S. Sanches <juca@members.fsf.org>
18  *
19  * Copyright (C) 2008 Felipe C. da S. Sanches
20  *
21  * Released under GNU GPL, read the file 'COPYING' for more information
22  */
24 #include "sp-object.h"
26 #define SP_TYPE_FONTFACE (sp_fontface_get_type ())
27 #define SP_FONTFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_FONTFACE, SPFontFace))
28 #define SP_FONTFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_FONTFACE, SPFontFaceClass))
29 #define SP_IS_FONTFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_FONTFACE))
30 #define SP_IS_FONTFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_FONTFACE))
32 enum FontFaceStyleType{
33         SP_FONTFACE_STYLE_ALL,
34         SP_FONTFACE_STYLE_NORMAL,
35         SP_FONTFACE_STYLE_ITALIC,
36         SP_FONTFACE_STYLE_OBLIQUE
37 };
39 enum FontFaceVariantType{
40         SP_FONTFACE_VARIANT_NORMAL,
41         SP_FONTFACE_VARIANT_SMALL_CAPS
42 };
44 enum FontFaceWeightType{
45         SP_FONTFACE_WEIGHT_ALL,
46         SP_FONTFACE_WEIGHT_NORMAL,
47         SP_FONTFACE_WEIGHT_BOLD,
48         SP_FONTFACE_WEIGHT_100,
49         SP_FONTFACE_WEIGHT_200,
50         SP_FONTFACE_WEIGHT_300,
51         SP_FONTFACE_WEIGHT_400,
52         SP_FONTFACE_WEIGHT_500,
53         SP_FONTFACE_WEIGHT_600,
54         SP_FONTFACE_WEIGHT_700,
55         SP_FONTFACE_WEIGHT_800,
56         SP_FONTFACE_WEIGHT_900
57 };
59 enum FontFaceStretchType{
60         SP_FONTFACE_STRETCH_ALL,
61         SP_FONTFACE_STRETCH_NORMAL,
62         SP_FONTFACE_STRETCH_ULTRA_CONDENSED,
63         SP_FONTFACE_STRETCH_EXTRA_CONDENSED,
64         SP_FONTFACE_STRETCH_CONDENSED,
65         SP_FONTFACE_STRETCH_SEMI_CONDENSED,
66         SP_FONTFACE_STRETCH_SEMI_EXPANDED,
67         SP_FONTFACE_STRETCH_EXPANDED,
68         SP_FONTFACE_STRETCH_EXTRA_EXPANDED,
69         SP_FONTFACE_STRETCH_ULTRA_EXPANDED
70 };
72 enum FontFaceUnicodeRangeType{
73         FONTFACE_UNICODERANGE_FIXME_HERE,
74 };
76 struct SPFontFace : public SPObject {
77     char* font_family;
78     std::vector<FontFaceStyleType> font_style;
79     std::vector<FontFaceVariantType> font_variant;
80     std::vector<FontFaceWeightType> font_weight;
81     std::vector<FontFaceStretchType> font_stretch;
82     char* font_size;
83     std::vector<FontFaceUnicodeRangeType> unicode_range;
84     double units_per_em;
85     std::vector<int> panose_1;
86     double stemv;
87     double stemh;
88     double slope;
89     double cap_height;
90     double x_height;
91     double accent_height;
92     double ascent;
93     double descent;
94     char* widths;
95     char* bbox;
96     double ideographic;
97     double alphabetic;
98     double mathematical;
99     double hanging;
100     double v_ideographic;
101     double v_alphabetic;
102     double v_mathematical;
103     double v_hanging;
104     double underline_position;
105     double underline_thickness;
106     double strikethrough_position;
107     double strikethrough_thickness;
108     double overline_position;
109     double overline_thickness;
110 };
112 struct SPFontFaceClass {
113         SPObjectClass parent_class;
114 };
116 GType sp_fontface_get_type (void);
118 #endif //#ifndef __SP_FONTFACE_H__
119 #endif //#ifdef ENABLE_SVG_FONTS