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