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