-
Notifications
You must be signed in to change notification settings - Fork 16
/
pangomm.txt
375 lines (338 loc) · 23.7 KB
/
pangomm.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
PANGOMM
/=+===============================+=\
/ : : \
)==: GENERALITE :==(
\ :_______________________________: /
\=+===============================+=/
BUT ==> #Rasterization ou vectorization de texte. Utilise par défaut Cairo pour le rendering, mais peut
#utiliser Xft (GNU/Linux) ou Win32 API aussi (fait lors du build de Pango ?)
#Binder C++ de Pango
#Utilisé par GTK+
#Internalization : permet de choisir une police en fonction du LANGUAGE, ou d'un caractère Unicode à
#afficher ; support de la bidirectionnalité et de l'écriture de haut en bas.
#Support des variantes des polices.
#Support de l'écriture de paragraphes : ellipsization, espacement, etc.
GENERALITES ==> #Header : <pangomm.h>
#Librarie : libpangomm-${VERSION}
#Compiler avec $( pkg-config pangomm-${VERSION} --cflag --libs )
#Namespace : Pango::
UTILISATION ==> # - interfacer avec Cairo (cf plus bas)
# - interfacer avec Gtkmm : Gtk::Entry
TYPES DE POLICE #TrueType : .ttf
POSSIBLES ==> #OpenType : .otf, .ttf, successeur de TrueType
#ASCII font metrics : .afm
#Plus rarement : postscript, .pfb
#X11 font : .pcf
PRINCIPE DE BASE ==> #S'utilise par exemple avec Cairo :
# //Création d'un REFPTR<CAIRO::CONTEXT>, lié à une REFPTR<CAIRO::SURFACE>
# Pango::init(); //Ou instantier Gtk::Main
# Glib::RefPtr<Pango::Layout> layout( Pango::Layout::create( context ) );
# context->set_source_rgb( 0, 0, 0 );
# layout->set_text( "Hello" );
# //Autres changements de layout...
# layout->show_in_cairo_context( context );
PANGO_SCALE #Toutes les mesures ne se font pas en pixel ni en points, mais en une mesure bien inférieur :
#multiplier par PANGO_SCALE donne la taille en points.
/=+===============================+=\
/ : : \
)==: LAYOUT :==(
\ :_______________________________: /
\=+===============================+=/
init() #Initialise Pango.
Layout #Classe analogue au Contexte de Cairo, mais pour Pango.
Layout::create #
( CAIRO::REFPTR
<CAIRO::CONTEXT> ) #Renvoie un GLIB::REFPTR<LAYOUT> associé à CAIRO::CONTEXT.
LAYOUT.
show_in_cairo_context #
( CAIRO::REFPTR
<CAIRO::CONTEXT> ) #Imprime LAYOUT sur CAIRO::CONTEXT, en fonction du point actuel (coin supérieur gauche).
LAYOUT.update_from_
cairo_context #
( CAIRO::REFPTR
<CAIRO::CONTEXT> ) #Modifie le CAIRO::CONTEXT associé.
LAYOUT.
add_in_cairo_context #
( CAIRO::REFPTR
<CAIRO::CONTEXT> ) #Associe également à CAIRO::CONTEXT.
LAYOUT.get_context() #Renvoie le GLIB::REFPTR<PANGO::CONTEXT> associé
LAYOUT.context_changed()#A appeler si CONTEXT associé a changé.
LAYOUT.copy() #Renvoie une copie de LAYOUT sous forme de REFPTR<LAYOUT>
LAYOUT.{s,g}et_text #
( USTRING ) #Modifie le texte à imprimer.
LAYOUT.set_markup #
( USTRING ) #Même chose, mais balises HTML possibles. On peut aussi mettre des <a href="lien"></a>
LAYOT.{s,g}et_attributes#
( ATTRLIST ) #Modifie l'ATTRLIST de LAYOUT : l'ATTRLIST de départ est toujours vide.
LAYOUT.
{s,g}et_font_description#
( FONTDESCRIPTION ) #Modifie la FONTDESCRIPTION.
LAYOUT.
unset_font_description()#
LAYOUT.{s,g}et_wrap #Modifie le WRAPMODE parmi : WRAP_{WORD,CHAR,WORD_CHAR}. Ne modifie pas le fait d'être wrappé ou non.
( WRAPMODE ) #Le wrap a lieu en fonction de get_width(), et est wrapped si set_width() a été appelé.
LAYOUT.is_wrapped() #Renvoie true si wrapped.
LAYOUT.{s,g}et_width #
( INT_VAL ) #Modifie la taille du wrap
LAYOUT.{s,g}et_ellipsize#Modifie l'ELLIPSIZEMODE parmi : ELLIPSIZE_{NONE,START,MIDDLE,END}
( ELLIPSIZEMODE ) #L'ellipsization a lieu en fonction de get_height(), et est ellipsized si set_height() a été appelé.
LAYOUT.is_ellipsized() #Renvoie true si ellipsized.
LAYOUT.{s,g}et_height #Modifie la taille de l'ellipsization : au-delà de cette hauteur, des "..." raccourcissent une partie
( INT_VAL ) #du paragraphe
LAYOUT.{s,g}et_spacing #
( INT_VAL ) #Modifie l'espacement vertical entre deux lignes
LAYOUT.{s,g}et_justify #
( BOOL_VAL ) #Modifie le fait d'être justifié.
LAYOUT.{s,g}et_alignment#
( ALIGNMENT ) #Définie l'alignement parmi : ALIGN_{LEFT,RIGHT,CENTER}
LAYOUT.{s,g}et_indent #
( INT_VAL ) #Modifie l'indentation
LAYOUT.{s,g}et_tabs #
( TABARRAY ) #Modifie les tabulations (sinon par défaut tous les 8 espaces)
LAYOUT.{s,g}et_auto_dir #
( BOOL_VAL ) #A à voir avec les textes écrits de droite à gauche.
LAYOUT.{s,g}et_single_
paragraph_mode(BOOL_VAL)#Si true, remplace les newlines par des caractères invalides.
LAYOUT.get_line_count() #Renvoie le nombre de lignes.
LAYOUT.get_unknown_
glyphs_count() #Renvoie le nombre de caractères inconnus sous forme d'INT_VAL.
LAYOUT.get_log_attrs() #Renvoie un VECTOR<LOGATTR> de LAYOUT. Chaque LogAttr représente un caractère, il s'agit d'une
#struct d'UINT_VAL dont les membres sont : is_{char,line,mandatory}_break, is_white,
#is_cursor_position, is_{word,sentence}_{start,end,boundary}, backspace_deletes_character,
#is_expandable_space.
LAYOUT.index_to_pos #Renvoie les coordonnées (hors position courante du CONTEXT) de la bounding box du caractère numéro
( INT_VAL ) #INT_VAL, sous forme de RECTANGLE
LAYOUT.index_to_line_x #
( INT_VAL, BOOL_VAL, #Met dans INT_VAR2 le numéro de ligne et dans INT_VAR3 les coordonnées horizontaux du caractère numéro
INT_VAR2, INT_VAR3 ) #INT_VAL : son côté gauche si false, droit si true.
LAYOUT.
get_cursor_strong_pos #Renvoie les coordonnées (hors position courante du CONTEXT) du bord gauche du caractère numéro
( INT_VAL ) #INT_VAL, sous forme de RECTANGLE
*get_cursor_weak_pos* #
*get_cursor_pos* #Pareil, mais différences si texte bidirectionnel.
LAYOUT.xy_to_index #
( INT_VAL1, INT_VAL2, #Renvoie l'index du caractère aux coordonnées (hors position courante du CONTEXT) INT_VAL1,INT_VAL2,
INT_VAR1, INT_VAR2 ) #dans INT_VAR1. Ne comprends pas INT_VAR2 (pas utile).
LAYOUT. #Renvoie les coordonnées (hors position courante du CONTEXT) de la bounding box de LAYOUT, sous forme
get_logical_extents() #de RECTANGLE.
LAYOUT.get_ink_extents()#Même chose, mais en prenant en compte la position courante du CONTEXT.
LAYOUT.get_extents #
(RECTANGLE1_VAR,
RECTANGLE2_VAR) #Effectue un get_ink_extents() et get_logical_extents() et renvoie le résultat dans les références.
LAYOT.get_pixel*extents*#Comme get_*extents*, mais donne le résultat en pixels.
LAYOUT.get_size #
( INT_VAR1, INT_VAR2 ) #Renvoie la width et height du RECTANGLE renvoyé par get_logical_extents(), dans les références.
LAYOUT.get_pixel_size* #Même chose, en pixels.
LAYOUT.get_baseline() #Renvoie la distance entre le haut d'une lettre et la baseline de cette lettre.
LAYOUT.get_line(INT_VAL)#Renvoie la LAYOUTLINE numéro INT_VAL
LAYOUT.get_lines() #Renvoie toutes les LAYOUTLINE sous forme de VECTOR<LAYOUTLINE>
LAYOUT.get_iter() #Renvoie un LayoutIter : Itérateur entre les caractères ou lignes d'un LAYOUT. Permet de faire des
#get*extents, de renvoyer des LAYOUTLINE, et de déterminer si l'on est à la dernière ligne. Cf doc.
LayoutLine #Comme Layout, mais pour une seule ligne.
#Membres identiques : get_*extents, *cairo_context
LAYOUTLINE.get_layout() #Renvoie le REFPTR<LAYOUT> associé.
LAYOUTLINE.get_length() #Renvoie le nombre de caractères sous forme d'INTVAL
LAYOUTLINE.
get_start_index() #Renvoie le numéro du premier caractère par rapport au LAYOUT entier.
LAYOUTLINE.get_x_ranges #Renvoie les coordonnées horizontaux gauche et droit de chaque caractère allant du caractère numéro
( INT_VAL1, INT_VAL2 ) #INT_VAL1 au caractère numéro INT_VAL2, sous forme de VECTOR<PAIR<INT,INT> >
/=+===============================+=\
/ : : \
)==: ATTRIBUTS :==(
\ :_______________________________: /
\=+===============================+=/
AttrList #Liste d'Attribute
ATRLIST.insert(ATRIBUTE)#Ajoute ATTRIBUTE à ATTRLIST. Si ATTRIBUTE pour une lettre donnée existe déjà, ne la remplace pas.
ATRLIST.change(ATRIBUTE)#Pareil, mais remplace.
ATRLIST.insert_before #
( ATTRIBUTE ) #Ne voit pas la différence d'avec insert()
( ATTRLIST ) #Renvoie false si ATTRIBUTE est vide (obtenu à partir d'un get_attributes() d'un LAYOUT n'ayant pas eu
#un précédent set_attributes()).
ATTRLIST.get_iter() #Renvoie un ATTRITER au début d'ATTRLIST.
AttrIter #Itérateur d'AttrList, dont l'élément est un ATTRIBUTE. Ne respecte aucun concept standard, car
#manque les typedefs et *.
++ATTRITER #Avance au prochain ATTRIBUTE.
( ATTRITER ) #Renvoie false si end()
ATTRITER.get_range #
( INT_VAR1, INT_VAR2 ) #Renvoie le range d'un ATTRIBUTE dans les références.
ATTRITER.get_attribute #
( ATTRTYPE ) #Renvoie l'ATTRIBUTE de type ATTRTYPE.
ATTRITER.get_font_desc()#Renvoie la FONTDESCRIPTION.
ATTRITER.get_language() #Renvoie le LANGUAGE.
ATTRITER.get_attrs() #Renvoie les ATTRIBUTE sous forme de VECTOR<ATTRIBUTE>
ATRITR.get_extra_attrs()#Renvoie les ATTRIBUTE non-font sous forme de VECTOR<ATTRIBUTE>
Attribute #Base classe pour les propriétés d'un bout de texte.
#Les enfants désignent le type renvoyé et modifié via seulement un getter et un setter.
#Les enfants sont (classe, méthodes, type renvoyé/modifié) :
# - AttrFloat : {s,g}et_value -> double
# - AttrFontDesc : {s,g}et_desc -> FontDescription
# - AttrInt : {s,g}et_value -> int (dont enum)
# - AttrLanguage : {s,g}et_language -> Language
# - AttrShape : {s,g}et_{ink,logical}_rect -> Rectangle
# - AttrString : {s,g}et_string -> Ustring
# - AttrColor : {s,g}et_color -> Color
#Les enfants s'obtiennent via des factory methodes.
ATTRIBUTE.get_type() #Renvoie l'ATTRTYPE d'ATTRIBUTE parmi : ATTR_{INVALID,LANGUAGE,FAMILY,STYLE,WEIGHT,VARIANT,STRETCH,
#SIZE,FONT_DESC,FOREGROUND,BACKGROUND,UNDERLINE,STRIKETHROUGH,RISE,SHAPE,SCALE,FALLBACK,LETTER_SPACING,
#UNDERLINE_COLOR,STRIKETHROUGH_COLOR,ABSOLUTE_SIZE,GRAVITY,GRAVITY_HINT}
ATTRIBUTE.{s,g}et_
{start,end}_index #Modifie l'index de la première et de la dernière lettre du LAYOUT affecté par ATTRIBUTE (sinon
( UINT_VAL ) #première et dernière).
ATRIBUTE.equal(ATRIBUT2)#( ATTRIBUTE == ATTRIBUTE2 )
Attribute::
create_attr_scale(INTVL)#Renvoie ATTRFLOAT pour l'échelle de la taille de police. On peut utiliser les macros :
#PANGO_SCALE_{{XX_,X_,}{SMALL,LARGE},MEDIUM}
*_size( INT_VAL ) #Renvoie ATTRINT pour la taille de la police (multiplier par PANGO_SCALE pour avoir la taille en
#points)
*_rise( INT_VAL ) #Renvoie ATTRINT pour le degré d'élévation (même chose pour la multiplication)
*_underline( UNDERLINE )#Renvoie ATTRINT pour la manière de souligner parmi : UNDERLINE_{NONE,SINGLE,DOUBLE,LOW,ERROR}
*_strikethrough(BOOL_VL)#Renvoie ATTRINT pour le fait de barrer ou non.
*_style( STYLE ) #Renvoie ATTRINT pour la manière de mettre en italique parmi : STYLE_{NORMAL,ITALIC,OBLIQUE}. Doit
#avoir des doublons avec ce nom dans la famille de police pour le supporter.
*_weight( WEIGHT ) #Renvoie ATTRINT pour la manière de mettre en gras parmi :
#WEIGHT_{ULTRALIGHT,LIGHT,NORMAL,SEMIBOLD,BOLD,ULTRABOLD,HEAVY}. Même chose pour le support.
*_variant( VARIANT ) #Renvoie ATTRINT pour la capitalisation, parmi : VARIANT_{NORMAL,SMALL_CAPS}. Même chose pour le
#support.
*_stretch( STRETCH ) #Renvoie ATTRINT pour l'écart entre les lettres, parmi :
#STRETCH_{NORMAL,{,SEMI,EXTRA,ULTRA}_{EXPANDED,CONDENSED}}. Même chose pour le support.
*_{back,fore}ground #
( 3 UINT16_VAL ) #Renvoie ATTRCOLOR pour la couleur d'arrière ou de premier plan.
*_font_desc #
( FONTDESCRIPTION ) #Renvoie ATTRFONTDESC pour la FONTDESCRIPTION
*_family( USTRING ) #Renvoie ATTRSTRING pour la famille de police.
*_language( LANGUAGE ) #Renvoie ATTRLANGUAGE pour le LANGUAGE.
/=+===============================+=\
/ : : \
)==: FONTS :==(
\ :_______________________________: /
\=+===============================+=/
FontDescription #Police et style de police.
FONTDESCRIPTION(USTRING)#Instantie les attributs de FONTDESCRIPTION selon USTRING : même format que celui renvoyé par
#to_string()
FONTDESCRIPTION.
to_string() #Renvoie une USTRING représentant FONTDESCRIPTION
FONTDESCRIPTION.
to_filename() #Même chose, mais avec que des caractères légaux pour un nom de fichier.
FONTDESCRIPTION.hash() #Renvoie un hash de FONTDESCRIPTION sous forme d'UINT_VAL.
FONTDESCRIPTION.
{s,g}et_family #
( USTRING ) #Modifie la famille de police
FONTDESCRIPTION.
{s,g}et_style( STYLE ) #Modifie le STYLE.
FONTDESCRIPTION.
{s,g}et_variant(VARIANT)#Modifie la VARIANT
FONTDESCRIPTION.
{s,g}et_weight( WEIGHT )#Modifie la WEIGHT
FONTDESCRIPTION.
{s,g}et_stretch(STRETCH)#Modifie la STRETCH
FONTDESCRIPTION.
{s,g}et_size( INT_VAL ) #Modifie la taille de police (cf ATTRIBUTE*size)
FONTDESCRIPTION.
set_absolute_size #
( DOUBLE_VAL ) #Comme set_size(), mais avec une unité absolue (me semble identique)
FONTDESCRIPTION.
get_size_is_absolute() #Renvoie true si taille est avec une unité absolue.
FONTDESCRIPTION. #Disable des attributs de FONTDESCRIPTION, parmi (flags à or'd) :
unset_fields( FONTMASK )#FONT_MASK_{FAMILY,STYLE,VARIANT,WEIGHT,STRETCH,SIZE,GRAVITY}
FONTDESCRIPTION.
get_set_fields() #Renvoie un FONTMASK représentant les attributs non disabled.
FONTDESCRIPTION.merge #
( FONTDESCRIPTION2, #Les attributs non définis dans FONTDESCRIPTION mais définis dans FONTDESCRIPTION2 sont assignés à
BOOL_VAL ) #FONTDESCRIPTION. Si true, ceux définis dans les deux, sont assignés aussi.
FontFamily #Famille de police : il s'agit d'une police ; même nom que ceux affichés normalement, mais sans
#doublons avec "bold" ou "italic" (ou VARIANT, ou STRETCH), mais avec doublons "Mono", "Sans", etc.,
#et nombres indiquant taille. Ce nom n'est pas le nom de fichier : il est inscrit dans le fichier.
FONTFAMILY.list_faces() #Renvoie l'ensemble des FONTFACE de la FONTFAMILY sous forme de VECTOR<REFPTR<FONTFACE> >
FONTFAMILY.get_name() #Renvoie nom de la famille de police, sous forme d'USTRING.
FONTFMILY.is_monospace()#Renvoie true si monospace.
FontFace #Police : comme famille de police, mais pour une variante donnée de WEIGHT, STYLE, VARIANT et STRETCH.
FONTFACE.get_name() #Renvoie son nom sous forme d'USTRING, en général "Regular", "Bold", "Italic" ou "Bold Italic"
FONTFACE.list_sizes() #Si police bitmap, renvoie VECTOR<INT> décrivant les tailles possibles. Sinon renvoie VECTOR vide.
FONTFACE.describe() #Renvoie la FONTDESCRIPTION de FONTFACE.
Font #Comme FontFace, mais pour une taille donnée.
FONT.describe() #Renvoie la FONTDESCRIPTION de FONT.
FONT.describe_with_
absolute_size() #Même chose, mais avec une absolute size.
FONT.get_font_map() #Renvoie la FONTMAP associée.
FONT.get_coverage #
( LANGUAGE ) #Renvoie le support de LANGUAGE, sous forme de REFPTR<COVERAGE>
FONT.get_metrics #Renvoie un FontMetrics donnant des informations sur la forme de FONT, via les getters : get_ascent(),
( [LANGUAGE] ) #get_descent(), get_approximate_{char,digit}_width(),
#get_{underline,strikethrough}_{position,thickness}()
FONT.get_glyph_
{ink,logical}_extents #
(UINT32_VAL)
FONT.get_glyph_extents #
( UINT32_VAL,
RECTANGLE1_VAR, #Sensé renvoyer la bounding box du caractère unicode dont le codepoint est UINT32_VAL dans des
RECTANGLE2_VAR ) #RECTANGLE
FontSet #Ensemble de Font.
FNTST.get_font(UINT_VAL)#Renvoie un REFPTR<FONT> pouvant afficher le caractère dont l'Unicode codepoint est UINT_VAL.
FONTSET.get_metrics() #Renvoie un FontMetrics pour l'ensemble des FONT.
FontMap #Ensemble des FontFamily disponibles pour un PANGO::CONTEXT donné.
FONTMAP.list_families() #Comme CONTEXT.list_families()
FONTMAP.load_font #
(REFPTR<PANGO::CONTEXT>,
FONTDESCRIPTION ) #Renvoie un REFPTR<FONT> pouvant manipuler correctement FONTDESCRIPTION.
FONTMAP.load_fontset #
(REFPTR<PANGO::CONTEXT>,
FONTDESCRPTION,LANGUAGE)#Renvoie un REFPTR<FONTSET> pouvant manipuler correctement FONTDESCRIPTION et LANGUAGE.
FONTMAP.create_context()#Renvoie un REFPTR<CONTEXT> dont le CONTEXT est associé à FONTMAP.
/=+===============================+=\
/ : : \
)==: AUTRES :==(
\ :_______________________________: /
\=+===============================+=/
Context #Désigne un Context, classe proche de Layout, mais moins graphique.
CONTEXT.list_families() #Renvoie l'ensemble des familles de polices disponibles sous forme de VECTOR<REFPTR<FONTFAMILY> >
CONTEXT.load_font* #Comme FONTMAP.load_font*
CONTEXT.get_metrics* #Comme FONTMAP.get_metrics*
CONTEXT.update_from_
cairo_context( ... ) #Comme LAYOUT.update_from_cairo_context
CONTEXT.
{s,g}et_font_description#
( FONTDESCRIPTION ) #Comme LAYOUT.{s,g}et_font_description
CNTXT.{s,g}et_resolution#Modifie la résolution (points par pouces) supposée de l'écran : le changer modifie donc taille du
( DOUBLE ) #rendu, mais pas qualité. Standard pour beaucoup d'OS : 96 dpi.
CONTEXT.{s,g}et_language#
( LANGUAGE ) #Modifie le LANGUAGE (par défaut LANGUAGE vide, pas celui de la locale)
CONTEXT.{s,g}et_base_dir#
( DIRECTION ) #Modifie la DIRECTION parmi : DIRECTION_{LTR,RTL,TTB_LTR,TTB_RTL,WEAK_LTR,WEAK_RTL,NEUTRAL}
CONTEXT.
{s,g}et_base_gravity #Modifie le fait que le script de haut en bas, et de droite à gauche, parmi :
( GRAVITY ) #GRAVITY_{SOUTH,EAST,WEST,NORTH,AUTO}
CONTEXT.
{s,g}et_gravity_hint #Modifie la manière avec laquelle l'écriture verticale se fait, parmi :
( GRAVITYHINT ) #GRAVITY_HINT{NATURAL,STRONG,LINE}
Coverage #Indique le support des caractères Unicode par une FONT donnée, auquel il est associé.
COVERAGE.get( INT_VAL ) #Renvoie le support du code point INT_VAL sous forme de COVERAGELEVEL parmi :
#COVERAGE_{NONE,FALLBACK,APPROXIMATE,EXACT}
COVERAGE.to_bytes() #Renvoie l'ensemble des COVERAGELEVEL possibles sous forme de VECTOR<UCHAR>
Color #Couleur RGB.
COLOR.{s,g}et_
{red,green,blue} #
( UINT16_VAL ) #Modifie une couleur
COLOR.parse( USTRING ) #Remplie la couleur selon USTRING, sous la forme RGB, RRGGBB, RRRGGGBBB, RRRRGGGGBBBB ; ou un nom
#valide (cf /etc/X11/rgb.txt), tel que "DarkGray".
COLOR.to_string() #Renvoie la couleur sous forme d'USTRING : RRRRGGGGBBBB
Rectangle #Quadrilatère.
RECTANGLE( 4 INT_VAL ) #2 premiers arguments sont x et y (coin supérieur gauche), autres sont largeur et hauteur.
RECTANGLE.{s,g}et_
{x,y,width,height}
( INT_VAL ) #Modifie l'un des attributs de l'instantiation.
Language #Désigne une langue.
LANGUAGE( [USTRING] ) #USTRING est une langue au format RFC-3066 : "fr-FR", "en-US", etc.
LANGUAGE.get_string() #Renvoie cet USTRING.
LANGUAGE.get_scripts() #Renvoie les SCRIPT pouvant manipuler cette langue, sous forme de VECTOR<STRING>, parmi :
#SCRIPT_{INVALID_CODE,COMMON,INHERITED,ARABIC,ARMENIAN,BENGALI,BOPOMOFO,CHEROKEE,COPTIC,CYRILLIC,
#DESERET,DEVANAGARI,ETHIOPIC,GEORGIAN,GOTHIC,GREEK,GUJARATI,GURMUKHI,HAN,HANGUL,HEBREW,HIRAGANA,
#KANNADA,KATAKANA,KHMER,LAO,LATIN,MALAYALAM,MONGOLIAN,MYANMAR,OGHAM,OLD_ITALIC,ORIYA,RUNIC,SINHALA,
#SYRIAC,TAMIL,TELUGU,THAANA,THAI,TIBETAN,CANADIAN_ABORIGINAL,YI,TAGALOG,HANUNOO,BUHID,TAGBANWA,BRAILLE,
#CYPRIOT,LIMBU,OSMANYA,SHAVIAN,LINEAR_B,TAI_LE,UGARITIC,NEW_TAI_LUE,BUGINESE,GLAGOLITIC,TIFINAGH,
#SYLOTI_NAGRI,OLD_PERSIAN,KHAROSHTHI,UNKNOWN,BALINESE,CUNEIFORM,PHOENICIAN,PHAGS_PA,NKO,KAYAH_LI,
#LEPCHA,REJANG,SUNDANESE,SAURASHTRA,CHAM,OL_CHIKI,VAI,CARIAN,LYCIAN,LYDIAN}
LANGUAGE.includes_script#
( SCRIPT ) #Renvoie true si SCRIPT peut supporter LANGUAGE.
TabArray #Ensemble de tabulation : cf doc.