diff options
Diffstat (limited to 'font.h')
-rw-r--r-- | font.h | 32 |
1 files changed, 31 insertions, 1 deletions
@@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: font.h 1.5 2004/01/16 13:18:28 kls Exp $ + * $Id: font.h 1.6 2004/04/12 10:21:03 kls Exp $ */ #ifndef __FONT_H @@ -38,13 +38,20 @@ private: static eDvbCode code; static cFont *fonts[]; const tCharData *data[NUMCHARS]; + int height; public: cFont(void *Data); void SetData(void *Data); int Width(unsigned char c) const { return data[c]->width; } + ///< Returns the width of the given character. int Width(const char *s) const; + ///< Returns the width of the given string. int Height(unsigned char c) const { return data[c]->height; } + ///< Returns the height of the given character. int Height(const char *s) const; + ///< Returns the height of the given string. + int Height(void) const { return height; } + ///< Returns the height of this font (all characters have the same height). const tCharData *CharData(unsigned char c) const { return data[c]; } static bool SetCode(const char *Code); static void SetCode(eDvbCode Code); @@ -52,4 +59,27 @@ public: static const cFont *GetFont(eDvbFont Font); }; +class cTextWrapper { +private: + char *text; + char *eol; + int lines; + int lastLine; +public: + cTextWrapper(void); + cTextWrapper(const char *Text, const cFont *Font, int Width); + ~cTextWrapper(); + void Set(const char *Text, const cFont *Font, int Width); + ///< Wraps the Text to make it fit into the area defined by the given Width + ///< when displayed with the given Font. + ///< Wrapping is done by inserting the necessary number of newline + ///< characters into the string. + const char *Text(void); + ///< Returns the full wrapped text. + int Lines(void) { return lines; } + ///< Returns the actual number of lines needed to display the full wrapped text. + const char *GetLine(int Line); + ///< Returns the given Line. The first line is numbered 0. + }; + #endif //__FONT_H |