FLTK 1.3.9: Fl_Font.H Source File

FLTK 1.3.9

Loading...
Searching...
No Matches
Fl_Font.H
1//
2// "$Id$"
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. Distribution and use rights are outlined in
9// the file "COPYING" which should have been included with this file. If this
10// file is missing or damaged, see the license at:
11//
12// http://www.fltk.org/COPYING.php
13//
14// Please report all bugs and problems on the following page:
15//
16// http://www.fltk.org/str.php
17//
18
19// Two internal fltk data structures:
20//
21// Fl_Fontdesc: an entry into the fl_font() table. There is one of these
22// for each fltk font number.
23//
24#ifndef FL_FONT_
25#define FL_FONT_
26
27#include <config.h>
28
29# if USE_XFT
30typedef struct _XftFont XftFont;
31# elif !defined(WIN32) && !defined(__APPLE__)
32# include "Xutf8.h"
33# endif // USE_XFT
34
41 class Fl_Font_Descriptor {
42public:
44 Fl_Font_Descriptor *next;
45 Fl_Fontsize size;
46#ifndef FL_DOXYGEN // don't bother with platorm dependant details in the doc.
47# ifdef WIN32
48 HFONT fid;
49 int *width[64];
50 TEXTMETRIC metr;
51 int angle;
52 FL_EXPORT Fl_Font_Descriptor(const char* fontname, Fl_Fontsize size);
53# elif defined(__APPLE_QUARTZ__)
54 FL_EXPORT Fl_Font_Descriptor(const char* fontname, Fl_Fontsize size);
55 ATSUTextLayout layout;
56# if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
57 CTFontRef fontref;
58 // the unicode span is divided in 512 blocks of 128 characters
59 float *width[512]; // array of arrays of character widths
60# endif
61 ATSUStyle style;
62 short ascent, descent, q_width;
63# elif USE_XFT
64 XftFont* font;
65 //const char* encoding;
66 int angle;
67 FL_EXPORT Fl_Font_Descriptor(const char* xfontname, Fl_Fontsize size, int angle);
68# else
69 XUtf8FontStruct* font; // X UTF-8 font information
70 FL_EXPORT Fl_Font_Descriptor(const char* xfontname);
71# endif
72# if HAVE_GL
73 unsigned int listbase;// base of display list, 0 = none
74#ifndef __APPLE_QUARTZ__
75 char glok[64];
76#endif // __APPLE_QUARTZ__
77# endif // HAVE_GL
78
79 FL_EXPORT ~Fl_Font_Descriptor();
80
81#endif // FL_DOXYGEN
82};
83
84//extern FL_EXPORT Fl_Font_Descriptor *fl_fontsize; // the currently selected one
85
86 struct Fl_Fontdesc {
87 const char *name;
88 char fontname[128]; // "Pretty" font name
89 Fl_Font_Descriptor *first; // linked list of sizes of this style
90# ifndef WIN32
91 char **xlist; // matched X font names
92 int n; // size of xlist, negative = don't free xlist!
93# endif
94};
95
96extern FL_EXPORT Fl_Fontdesc *fl_fonts; // the table
97
98# ifndef WIN32
99// functions for parsing X font names:
100FL_EXPORT const char* fl_font_word(const char *p, int n);
101FL_EXPORT char *fl_find_fontsize(char *name);
102# endif
103
104#endif
105
106//
107// End of "$Id$".
108//
Fl_Fontsize
int Fl_Fontsize
Size of a font in pixels.
Definition Enumerations.H:904
Fl_Font_Descriptor
This a structure for an actual system font, with junk to help choose it and info on character sizes.
Definition Fl_Font.H:41
Fl_Font_Descriptor::next
Fl_Font_Descriptor * next
linked list for this Fl_Fontdesc
Definition Fl_Font.H:44
Fl_Font_Descriptor::size
Fl_Fontsize size
font size
Definition Fl_Font.H:45
Fl_Fontdesc
Definition Fl_Font.H:86