00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef __CR_FONTS_H__
00025 #define __CR_FONTS_H__
00026 #endif
00027
00028 #include "cr-utils.h"
00029 #include "cr-num.h"
00030
00031
00032
00033
00034
00035
00036 G_BEGIN_DECLS
00037
00038
00039 enum CRFontFamilyType
00040 {
00041 FONT_FAMILY_SANS_SERIF,
00042 FONT_FAMILY_SERIF,
00043 FONT_FAMILY_CURSIVE,
00044 FONT_FAMILY_FANTASY,
00045 FONT_FAMILY_MONOSPACE,
00046 FONT_FAMILY_NON_GENERIC,
00047
00048 NB_FONT_FAMILIE_TYPES
00049 } ;
00050
00051 typedef struct _CRFontFamily CRFontFamily ;
00052
00053 struct _CRFontFamily
00054 {
00055 enum CRFontFamilyType type ;
00056
00057
00058
00059
00060
00061
00062 guchar *name ;
00063
00064 CRFontFamily *next ;
00065 CRFontFamily *prev ;
00066 } ;
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080 enum CRPredefinedAbsoluteFontSize
00081 {
00082 FONT_SIZE_XX_SMALL=0,
00083 FONT_SIZE_X_SMALL,
00084 FONT_SIZE_SMALL,
00085 FONT_SIZE_MEDIUM,
00086 FONT_SIZE_LARGE,
00087 FONT_SIZE_X_LARGE,
00088 FONT_SIZE_XX_LARGE,
00089
00090 NB_PREDEFINED_ABSOLUTE_FONT_SIZES
00091 } ;
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104 enum CRRelativeFontSize
00105 {
00106 FONT_SIZE_LARGER,
00107 FONT_SIZE_SMALLER
00108 } ;
00109
00110
00111
00112
00113
00114
00115 enum CRFontSizeType
00116 {
00117
00118
00119
00120
00121
00122
00123 PREDEFINED_ABSOLUTE_FONT_SIZE,
00124
00125
00126
00127
00128
00129
00130
00131 ABSOLUTE_FONT_SIZE,
00132
00133
00134
00135
00136
00137
00138
00139 RELATIVE_FONT_SIZE,
00140
00141
00142
00143
00144
00145
00146
00147 INHERITED_FONT_SIZE
00148 } ;
00149
00150 typedef struct _CRFontSize CRFontSize ;
00151 struct _CRFontSize
00152 {
00153 enum CRFontSizeType type ;
00154 union
00155 {
00156 enum CRPredefinedAbsoluteFontSize predefined ;
00157 enum CRRelativeFontSize relative ;
00158 CRNum * absolute ;
00159 } value;
00160 } ;
00161
00162 enum CRFontSizeAdjustType
00163 {
00164 FONT_SIZE_ADJUST_NONE = 0,
00165 FONT_SIZE_ADJUST_NUMBER,
00166 FONT_SIZE_ADJUST_INHERIT
00167 } ;
00168 typedef struct _CRFontSizeAdjust CRFontSizeAdjust ;
00169 struct _CRFontSizeAdjust
00170 {
00171 enum CRFontSizeAdjustType type ;
00172 CRNum *num ;
00173 } ;
00174
00175 enum CRFontStyle
00176 {
00177 FONT_STYLE_NORMAL=0,
00178 FONT_STYLE_ITALIC,
00179 FONT_STYLE_OBLIQUE,
00180 FONT_STYLE_INHERIT
00181 } ;
00182
00183 enum CRFontVariant
00184 {
00185 FONT_VARIANT_NORMAL=0,
00186 FONT_VARIANT_SMALL_CAPS,
00187 FONT_VARIANT_INHERIT
00188 } ;
00189
00190 enum CRFontWeight
00191 {
00192 FONT_WEIGHT_NORMAL = 1,
00193 FONT_WEIGHT_BOLD = 1<<1,
00194 FONT_WEIGHT_BOLDER = 1<<2,
00195 FONT_WEIGHT_LIGHTER = 1<<3,
00196 FONT_WEIGHT_100 = 1<<4,
00197 FONT_WEIGHT_200 = 1<<5,
00198 FONT_WEIGHT_300 = 1<<6,
00199 FONT_WEIGHT_400 = 1<<7,
00200 FONT_WEIGHT_500 = 1<<8,
00201 FONT_WEIGHT_600 = 1<<9,
00202 FONT_WEIGHT_700 = 1<<10,
00203 FONT_WEIGHT_800 = 1<<11,
00204 FONT_WEIGHT_900 = 1<<12,
00205 FONT_WEIGHT_INHERIT = 1<<13,
00206 NB_FONT_WEIGHTS
00207 } ;
00208
00209 enum CRFontStretch
00210 {
00211 FONT_STRETCH_NORMAL=0,
00212 FONT_STRETCH_WIDER,
00213 FONT_STRETCH_NARROWER,
00214 FONT_STRETCH_ULTRA_CONDENSED,
00215 FONT_STRETCH_EXTRA_CONDENSED,
00216 FONT_STRETCH_CONDENSED,
00217 FONT_STRETCH_SEMI_CONDENSED,
00218 FONT_STRETCH_SEMI_EXPANDED,
00219 FONT_STRETCH_EXPANDED,
00220 FONT_STRETCH_EXTRA_EXPANDED,
00221 FONT_STRETCH_ULTRA_EXPANDED,
00222 FONT_STRETCH_INHERIT
00223 } ;
00224
00225
00226
00227
00228 CRFontFamily *
00229 cr_font_family_new (enum CRFontFamilyType a_type, guchar *a_name) ;
00230
00231 CRFontFamily *
00232 cr_font_family_append (CRFontFamily *a_this,
00233 CRFontFamily *a_family_to_append) ;
00234
00235 guchar *
00236 cr_font_family_to_string (CRFontFamily *a_this,
00237 gboolean a_walk_font_family_list) ;
00238
00239 CRFontFamily *
00240 cr_font_family_prepend (CRFontFamily *a_this,
00241 CRFontFamily *a_family_to_prepend);
00242
00243 enum CRStatus
00244 cr_font_family_destroy (CRFontFamily *a_this) ;
00245
00246 enum CRStatus
00247 cr_font_family_set_name (CRFontFamily *a_this, guchar *a_name) ;
00248
00249
00250
00251
00252
00253
00254 CRFontSize * cr_font_size_new (void) ;
00255
00256 enum CRStatus cr_font_size_clear (CRFontSize *a_this) ;
00257
00258 enum CRStatus cr_font_size_copy (CRFontSize *a_dst, CRFontSize *a_src) ;
00259
00260 gchar* cr_font_size_to_string (CRFontSize *a_this) ;
00261
00262 void cr_font_size_destroy (CRFontSize *a_font_size) ;
00263
00264
00265
00266
00267
00268 CRFontSizeAdjust * cr_font_size_adjust_new (void) ;
00269
00270 gchar * cr_font_size_adjust_to_string (CRFontSizeAdjust *a_this) ;
00271
00272 void cr_font_size_adjust_destroy (CRFontSizeAdjust *a_this) ;
00273
00274
00275
00276
00277 const gchar * cr_font_style_to_string (enum CRFontStyle a_code) ;
00278
00279 const gchar * cr_font_weight_to_string (enum CRFontWeight a_code) ;
00280
00281 const gchar * cr_font_variant_to_string (enum CRFontVariant a_code) ;
00282
00283 const gchar * cr_font_stretch_to_string (enum CRFontStretch a_code) ;
00284
00285 G_END_DECLS