Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

LEFontInstance.h

Go to the documentation of this file.
00001 
00002 /*
00003  * @(#)LEFontInstance.h 1.3 00/03/15
00004  *
00005  * (C) Copyright IBM Corp. 1998, 1999, 2000 - All Rights Reserved
00006  *
00007  */
00008 
00009 #ifndef __LEFONTINSTANCE_H
00010 #define __LEFONTINSTANCE_H
00011 
00012 #include "LETypes.h"
00013 
00014 U_NAMESPACE_BEGIN
00015 
00023 class LECharMapper
00024 {
00025 public:
00033     virtual LEUnicode32 mapChar(LEUnicode32 ch) const = 0;
00034 };
00035 
00046 class LEFontInstance
00047 {
00048 public:
00049 
00054     virtual ~LEFontInstance() { };
00055 
00056         //
00057     // Font file access
00058         //
00059 
00067     virtual const void *getFontTable(LETag tableTag) const = 0;
00068 
00079     virtual le_bool canDisplay(LEUnicode32 ch) const = 0;
00080 
00087     virtual le_int32 getUnitsPerEM() const = 0;
00088 
00102     virtual void mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, const LECharMapper *mapper, LEGlyphID glyphs[]) const = 0;
00103 
00115     virtual LEGlyphID mapCharToGlyph(LEUnicode32 ch, const LECharMapper *mapper) const = 0;
00116 
00128     virtual le_int32 getName(le_uint16 platformID, le_uint16 scriptID, le_uint16 languageID, le_uint16 nameID, LEUnicode *name) const = 0;
00129 
00130         //
00131     // Metrics
00132         //
00133 
00140     virtual void getGlyphAdvance(LEGlyphID glyph, LEPoint &advance) const = 0;
00141 
00152     virtual le_bool getGlyphPoint(LEGlyphID glyph, le_int32 pointNumber, LEPoint &point) const = 0;
00153 
00160     virtual float getXPixelsPerEm() const = 0;
00161 
00168     virtual float getYPixelsPerEm() const = 0;
00169 
00178     virtual float xUnitsToPoints(float xUnits) const = 0;
00179 
00188     virtual float yUnitsToPoints(float yUunits) const = 0;
00189 
00196     virtual void unitsToPoints(LEPoint &units, LEPoint &points) const = 0;
00197 
00206     virtual float xPixelsToUnits(float xPixels) const = 0;
00207 
00216     virtual float yPixelsToUnits(float yPixels) const = 0;
00217 
00224     virtual void pixelsToUnits(LEPoint &pixels, LEPoint &units) const = 0;
00225 
00234     virtual void transformFunits(float xFunits, float yFunits, LEPoint &pixels) const = 0;
00235 
00244     static float fixedToFloat(le_int32 fixed)
00245     {
00246         return (float) (fixed / 65536.0);
00247     };
00248 
00257     static le_int32 floatToFixed(float theFloat)
00258     {
00259         return (le_int32) (theFloat * 65536.0);
00260     };
00261 };
00262 
00263 U_NAMESPACE_END
00264 #endif
00265 
00266 

Generated on Tue Apr 9 11:30:05 2002 for ICU 2.1 by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001