00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __MFONT_H__
00024
00025 #define __MFONT_H__
00026
00027
00028
00029
00030
00031 class MFrameBuffer;
00032
00033
00034
00035 #include "CDesktop.h"
00036
00037
00038
00059 class MFont
00060
00061 {
00062
00063 public:
00064
00067 typedef unsigned int TUnicodeChar;
00068
00069
00070
00073 typedef TUnicodeChar* TUnicodeString;
00074
00075
00076
00077 public:
00078
00081 virtual unsigned int GetCharHeight( TUnicodeChar aChar ) = 0;
00082
00083
00084
00097 virtual unsigned int GetStringHeight( const char* aString ) = 0;
00098
00099
00100
00103 virtual unsigned int GetStringHeight( const TUnicodeString aString ) = 0;
00104
00105
00106
00109 virtual unsigned int GetCharWidth( TUnicodeChar aChar ) = 0;
00110
00111
00112
00115 virtual unsigned int GetStringWidth( const char* aString ) = 0;
00116
00117
00118
00121 virtual unsigned int GetStringWidth( const TUnicodeString aString ) = 0;
00122
00123
00126 virtual bool Render( MFrameBuffer& aFrameBuffer, TUnicodeChar aChar, unsigned int aX, unsigned int aY, CDesktop::TColor aColor ) = 0;
00127
00128
00129
00132 virtual bool Render( MFrameBuffer& aFrameBuffer, const char* aString, unsigned int aX, unsigned int aY, CDesktop::TColor aColor ) = 0;
00133
00134
00135
00138 virtual bool Render( MFrameBuffer& aFrameBuffer, const TUnicodeString aString, unsigned int aX, unsigned int aY, CDesktop::TColor aColor ) = 0;
00139
00140
00141
00143 enum EFontParameters
00144 {
00145 KHeight,
00146 KMaxAdvanceWidth,
00147 KAscender,
00148 KDescender
00149 };
00150
00152 virtual int GetFontParameter( EFontParameters aParameter ) = 0;
00153
00154 virtual ~MFont() {};
00155
00156
00157
00158 public:
00159
00162 enum EFixedFontType {
00163
00164 KFixedFont6 = 1,
00165
00166 KFixedFont12 = 2,
00167
00168 KFixedFont24 = 3,
00169
00170 KFixedFont48 = 4,
00171
00172 KFixedFont96 = 5
00173
00174 };
00175
00176
00177
00182 static MFont& GetFixedWidthFont( EFixedFontType aFontType );
00183
00184
00185
00210 static MFont* CreateTrueTypeFont( const char* aFontName, unsigned int aFontSize );
00211
00212
00213
00216 static unsigned int UStrLen( const TUnicodeString aString );
00217
00218 };
00219
00220
00221
00222 #endif // __MFONT_H__
00223
00224
00225