#include "objfont.h" #include "objgfx30.h" #include <string.h> #include <stdlib.h> TFont::TFont(TGfx0* buffer) { Buf = buffer; FontDataSize = 0; memset(FontDataIdx,0,sizeof(FontDataIdx)); memset(CharWidthTable,0,sizeof(CharWidthTable)); memset(CharHeightTable,0,sizeof(CharHeightTable)); FontData = 0; return; } // TFont::TFont void TFont::CenterTextX(Int32 y, const char * TextString ) { Int32 x; x = ((Buf->getMaxX()+1)-TextWidth(TextString)) / 2; PutText(x,y,TextString); return; } // TFont::CenterTextX void TFont::JustifyText(UInt8 Horiz, UInt8 Vert, const char * TextString) { UInt32 x,y; switch (Horiz) { case LeftText: x = 0; break; case CenterText: x = ((Buf->getMaxX())-TextWidth(TextString)) / 2; break; case RightText: x = (Buf->getMaxX())-TextWidth(TextString); break; default: return; } // switch switch (Vert) { case TopText: y = 0; break; case CenterText: y = ((Buf->getMaxY())-TextHeight(TextString)) / 2; break; case BottomText: y = (Buf->getMaxY())-TextHeight(TextString); default: return; } // switch PutText(x,y,TextString); return; } // TFont::JustifyText UInt32 TFont::TextHeight(const char * TextString) { UInt32 size, tmpsize; size = 0; if (TextString) while (*TextString) { tmpsize = CharHeightTable[*TextString++]; if (tmpsize>size) size = tmpsize; } return size; } // TFont::TextHeight UInt32 TFont::TextWidth(const char * TextString) { UInt32 size=0; if (TextString) while (*TextString) size+=CharWidthTable[*TextString++]; return size; } // TFont::TextWidth TFont::~TFont(void) { if (FontDataSize) free(FontData); return; } // TFont::~TFont