FLTK 1.3.0
Main Page
Related Pages
Modules
Classes
Files
File List
File Members
Fl_Font.H
1
//
2
// "$Id: Fl_Font.H 8428 2011-02-15 15:47:22Z manolo $"
3
//
4
// Font definitions for the Fast Light Tool Kit (FLTK).
5
//
6
// Copyright 1998-2011 by Bill Spitzak and others.
7
//
8
// This library is free software; you can redistribute it and/or
9
// modify it under the terms of the GNU Library General Public
10
// License as published by the Free Software Foundation; either
11
// version 2 of the License, or (at your option) any later version.
12
//
13
// This library is distributed in the hope that it will be useful,
14
// but WITHOUT ANY WARRANTY; without even the implied warranty of
15
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
// Library General Public License for more details.
17
//
18
// You should have received a copy of the GNU Library General Public
19
// License along with this library; if not, write to the Free Software
20
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
21
// USA.
22
//
23
// Please report all bugs and problems on the following page:
24
//
25
// http://www.fltk.org/str.php
26
//
27
28
// Two internal fltk data structures:
29
//
30
// Fl_Fontdesc: an entry into the fl_font() table. There is one of these
31
// for each fltk font number.
32
//
33
#ifndef FL_FONT_
34
#define FL_FONT_
35
36
#include <config.h>
37
38
# if USE_XFT
39
typedef
struct
_XftFont XftFont;
40
# elif !defined(WIN32) && !defined(__APPLE__)
41
# include <FL/Xutf8.h>
42
# endif // USE_XFT
43
50
class
Fl_Font_Descriptor
{
51
public
:
53
Fl_Font_Descriptor
*
next
;
54
Fl_Fontsize
size
;
55
#ifndef FL_DOXYGEN // don't bother with platorm dependant details in the doc.
56
# ifdef WIN32
57
HFONT fid;
58
int
*width[64];
59
TEXTMETRIC metr;
60
int
angle;
61
FL_EXPORT
Fl_Font_Descriptor
(
const
char
* fontname,
Fl_Fontsize
size
);
62
# elif defined(__APPLE_QUARTZ__)
63
FL_EXPORT
Fl_Font_Descriptor
(
const
char
* fontname,
Fl_Fontsize
size
);
64
ATSUTextLayout layout;
65
# if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
66
CTFontRef fontref;
67
// the unicode span is divided in 512 blocks of 128 characters
68
float
*width[512];
// array of arrays of character widths
69
# endif
70
ATSUStyle style;
71
short
ascent, descent, q_width;
72
char
*q_name;
73
# elif USE_XFT
74
XftFont* font;
75
//const char* encoding;
76
int
angle;
77
FL_EXPORT
Fl_Font_Descriptor
(
const
char
* xfontname,
Fl_Fontsize
size
,
int
angle);
78
# else
79
XUtf8FontStruct
* font;
// X UTF-8 font information
80
FL_EXPORT
Fl_Font_Descriptor
(
const
char
* xfontname);
81
# endif
82
# if HAVE_GL
83
unsigned
int
listbase;
// base of display list, 0 = none
84
#ifndef __APPLE_QUARTZ__
85
char
glok[64];
86
#endif // __APPLE_QUARTZ__
87
# endif // HAVE_GL
88
89
FL_EXPORT ~
Fl_Font_Descriptor
();
90
91
#endif // FL_DOXYGEN
92
};
93
94
//extern FL_EXPORT Fl_Font_Descriptor *fl_fontsize; // the currently selected one
95
96
struct
Fl_Fontdesc
{
97
const
char
*name;
98
char
fontname[128];
// "Pretty" font name
99
Fl_Font_Descriptor
*first;
// linked list of sizes of this style
100
# ifndef WIN32
101
char
**xlist;
// matched X font names
102
int
n;
// size of xlist, negative = don't free xlist!
103
# endif
104
};
105
106
extern
FL_EXPORT
Fl_Fontdesc
*fl_fonts;
// the table
107
108
# ifndef WIN32
109
// functions for parsing X font names:
110
FL_EXPORT
const
char
* fl_font_word(
const
char
*p,
int
n);
111
FL_EXPORT
char
*fl_find_fontsize(
char
*name);
112
# endif
113
114
#endif
115
116
//
117
// End of "$Id: Fl_Font.H 8428 2011-02-15 15:47:22Z manolo $".
118
//
© 1998-2011 by Bill Spitzak and others.
© 1998-2011 by Bill Spitzak and others. Permission is granted to reproduce this manual or any portion for any purpose, provided this copyright and permission notice are preserved.