]> git.saurik.com Git - apple/icu.git/blame - icuSources/samples/layout/FontMap.h
ICU-461.12.tar.gz
[apple/icu.git] / icuSources / samples / layout / FontMap.h
CommitLineData
b75a7d8f
A
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
19class FontMap
20{
21public:
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
36protected:
37 virtual const LEFontInstance *openFont(const char *fontName, le_int16 pointSize, LEErrorCode &status) = 0;
38
39 char errorMessage[256];
40
41private:
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
60inline le_int16 FontMap::getPointSize() const
61{
62 return fPointSize;
63}
64
65#endif
66