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