00001 00002 #ifndef __XFont_h 00003 #define __XFont_h 00004 00005 #include "LgiOsDefs.h" 00006 00007 #define OsFnt void* 00008 00009 class XFont 00010 { 00011 class XFontPrivate *Data; 00012 friend class XFontMetrics; 00013 00014 void GetScale(double &x, double &y); 00015 00016 public: 00017 XFont(); 00018 ~XFont(); 00019 00020 OsFnt Handle(); 00021 XFont &operator =(XFont &f); 00022 00023 void SetPainter(OsPainter p); 00024 void SetFamily(char *face); 00025 void SetPointSize(int height); 00026 void SetBold(bool bold); 00027 void SetItalic(bool italic); 00028 void SetUnderline(bool underline); 00029 00030 int GetAscent(); 00031 int GetDescent(); 00032 char *GetFamily(); 00033 int GetPointSize(); 00034 bool GetBold(); 00035 bool GetItalic(); 00036 bool GetUnderline(); 00037 }; 00038 00039 class XFontMetrics 00040 { 00041 class XFontMetricsPrivate *Data; 00042 00043 public: 00044 XFontMetrics(XFont *f); 00045 ~XFontMetrics(); 00046 00047 int width(uchar i); 00048 int width(char *str, int len = -1); 00049 int width(char16 *str, int len = -1); 00050 int height(); 00051 int ascent(); 00052 int descent(); 00053 00054 uchar *GetCoverage(uchar *Map, int Max); 00055 }; 00056 00057 extern bool _GetSystemFont(char *FontType, char *Font, int FontBufSize, int &PointSize); 00058 00059 #endif