annotate gui/skin/font.h @ 32835:19cc523b8e15

Enlarge uchar buffer, because GLib implements 31-bit UTF-8, and define length of an UTF-8 encoding sequence allowed in the font definition file as a constant.
author ib
date Thu, 17 Feb 2011 13:35:58 +0000
parents d55d0bb7d00f
children fe8f9b5d3ba2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
26458
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26365
diff changeset
1 /*
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26365
diff changeset
2 * This file is part of MPlayer.
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26365
diff changeset
3 *
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26365
diff changeset
4 * MPlayer is free software; you can redistribute it and/or modify
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26365
diff changeset
5 * it under the terms of the GNU General Public License as published by
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26365
diff changeset
6 * the Free Software Foundation; either version 2 of the License, or
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26365
diff changeset
7 * (at your option) any later version.
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26365
diff changeset
8 *
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26365
diff changeset
9 * MPlayer is distributed in the hope that it will be useful,
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26365
diff changeset
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26365
diff changeset
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26365
diff changeset
12 * GNU General Public License for more details.
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26365
diff changeset
13 *
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26365
diff changeset
14 * You should have received a copy of the GNU General Public License along
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26365
diff changeset
15 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26365
diff changeset
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26365
diff changeset
17 */
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26365
diff changeset
18
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25535
diff changeset
19 #ifndef MPLAYER_GUI_FONT_H
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25535
diff changeset
20 #define MPLAYER_GUI_FONT_H
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
21
32734
cc58a1e919d9 Allow character in the font description file to be in UTF-8.
ib
parents: 28051
diff changeset
22 #include <gtk/gtk.h>
26365
10dfbc523184 Add gui/ prefix to some #include paths so that compilation from the
diego
parents: 26029
diff changeset
23 #include "gui/bitmap.h"
10dfbc523184 Add gui/ prefix to some #include paths so that compilation from the
diego
parents: 26029
diff changeset
24 #include "gui/app.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
25
32734
cc58a1e919d9 Allow character in the font description file to be in UTF-8.
ib
parents: 28051
diff changeset
26 #define ASCII_CHRS 128 // number of ASCII characters
cc58a1e919d9 Allow character in the font description file to be in UTF-8.
ib
parents: 28051
diff changeset
27 #define EXTRA_CHRS 128 // (arbitrary) number of non-ASCII characters
32835
19cc523b8e15 Enlarge uchar buffer, because GLib implements 31-bit UTF-8,
ib
parents: 32787
diff changeset
28 #define UTF8LENGTH 4 // length of an UTF-8 encoding according to RFC 3629
32734
cc58a1e919d9 Allow character in the font description file to be in UTF-8.
ib
parents: 28051
diff changeset
29
32786
31f88a1387ad Define constants in a single place.
ib
parents: 32785
diff changeset
30 #define MAX_FONT_NAME 128
31f88a1387ad Define constants in a single place.
ib
parents: 32785
diff changeset
31 #define MAX_FONTS 25
31f88a1387ad Define constants in a single place.
ib
parents: 32785
diff changeset
32
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
33 #define fntAlignLeft 0
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
34 #define fntAlignCenter 1
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
35 #define fntAlignRight 2
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
36
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
37 typedef struct
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
38 {
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
39 int x,y; // location
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
40 int sx,sy; // size
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
41 } fntChar;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
42
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
43 typedef struct
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
44 {
32734
cc58a1e919d9 Allow character in the font description file to be in UTF-8.
ib
parents: 28051
diff changeset
45 fntChar Fnt[ASCII_CHRS + EXTRA_CHRS];
32835
19cc523b8e15 Enlarge uchar buffer, because GLib implements 31-bit UTF-8,
ib
parents: 32787
diff changeset
46 unsigned char nonASCIIidx[EXTRA_CHRS][UTF8LENGTH];
32734
cc58a1e919d9 Allow character in the font description file to be in UTF-8.
ib
parents: 28051
diff changeset
47 txSample Bitmap;
32786
31f88a1387ad Define constants in a single place.
ib
parents: 32785
diff changeset
48 char name[MAX_FONT_NAME];
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
49 } bmpFont;
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
50
32787
d55d0bb7d00f Reduce Fonts array to required size.
ib
parents: 32786
diff changeset
51 extern bmpFont * Fonts[MAX_FONTS];
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
52
28051
9e739bdb049c Get rid of pointless 'extern' keywords.
diego
parents: 26458
diff changeset
53 int fntAddNewFont( char * name );
9e739bdb049c Get rid of pointless 'extern' keywords.
diego
parents: 26458
diff changeset
54 void fntFreeFont( void );
9e739bdb049c Get rid of pointless 'extern' keywords.
diego
parents: 26458
diff changeset
55 int fntFindID( char * name );
32734
cc58a1e919d9 Allow character in the font description file to be in UTF-8.
ib
parents: 28051
diff changeset
56 int fntGetCharIndex( int id, unsigned char **str, gboolean utf8, int direction );
28051
9e739bdb049c Get rid of pointless 'extern' keywords.
diego
parents: 26458
diff changeset
57 int fntTextHeight( int id, char * str );
9e739bdb049c Get rid of pointless 'extern' keywords.
diego
parents: 26458
diff changeset
58 int fntTextWidth( int id, char * str );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
59
28051
9e739bdb049c Get rid of pointless 'extern' keywords.
diego
parents: 26458
diff changeset
60 int fntRead( char * path, char * fname );
32759
63844ef43932 Remove useless format argument.
ib
parents: 32734
diff changeset
61 txSample * fntRender( wItem * item, int px, char * txt );
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
62
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25535
diff changeset
63 #endif /* MPLAYER_GUI_FONT_H */