summaryrefslogtreecommitdiff
path: root/font.h
diff options
context:
space:
mode:
Diffstat (limited to 'font.h')
-rw-r--r--font.h33
1 files changed, 32 insertions, 1 deletions
diff --git a/font.h b/font.h
index 9c36316..3803960 100644
--- a/font.h
+++ b/font.h
@@ -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.7 2004/05/16 10:49:44 kls Exp $
*/
#ifndef __FONT_H
@@ -21,6 +21,7 @@ enum eDvbFont {
enum eDvbCode {
code_iso8859_1,
+ code_iso8859_2,
code_iso8859_5,
code_iso8859_7,
#define eDvbCodeSize (code_iso8859_7 + 1)
@@ -38,13 +39,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 +60,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