]> git.saurik.com Git - apple/icu.git/blob - icuSources/samples/layout/FontMap.h
ICU-57132.0.1.tar.gz
[apple/icu.git] / icuSources / samples / layout / FontMap.h
1 /*
2 ******************************************************************************
3 * Copyright (C) 1998-2003, International Business Machines Corporation and *
4 * others. All Rights Reserved. *
5 ******************************************************************************
6 */
7
8 #ifndef __FONTMAP_H
9 #define __FONTMAP_H
10
11 #include "layout/LETypes.h"
12 #include "layout/LEScripts.h"
13 #include "layout/LEFontInstance.h"
14
15 #include "GUISupport.h"
16
17 #define BUFFER_SIZE 128
18
19 class FontMap
20 {
21 public:
22 FontMap(const char *fileName, le_int16 pointSize, GUISupport *guiSupport, LEErrorCode &status);
23
24 virtual ~FontMap();
25
26 virtual const LEFontInstance *getScriptFont(le_int32 scriptCode, LEErrorCode &status);
27
28 virtual le_int16 getPointSize() const;
29
30 virtual le_int32 getAscent() const;
31
32 virtual le_int32 getDescent() const;
33
34 virtual le_int32 getLeading() const;
35
36 protected:
37 virtual const LEFontInstance *openFont(const char *fontName, le_int16 pointSize, LEErrorCode &status) = 0;
38
39 char errorMessage[256];
40
41 private:
42 static char *strip(char *s);
43 le_int32 getFontIndex(const char *fontName);
44 void getMaxMetrics();
45
46 le_int16 fPointSize;
47 le_int32 fFontCount;
48
49 le_int32 fAscent;
50 le_int32 fDescent;
51 le_int32 fLeading;
52
53 GUISupport *fGUISupport;
54
55 const LEFontInstance *fFontInstances[scriptCodeCount];
56 const char *fFontNames[scriptCodeCount];
57 le_int32 fFontIndices[scriptCodeCount];
58 };
59
60 inline le_int16 FontMap::getPointSize() const
61 {
62 return fPointSize;
63 }
64
65 #endif
66