summaryrefslogtreecommitdiffstats
path: root/noatun/modules/kjofol-skin/kjfont.h
diff options
context:
space:
mode:
Diffstat (limited to 'noatun/modules/kjofol-skin/kjfont.h')
-rw-r--r--noatun/modules/kjofol-skin/kjfont.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/noatun/modules/kjofol-skin/kjfont.h b/noatun/modules/kjofol-skin/kjfont.h
new file mode 100644
index 00000000..4ea5319b
--- /dev/null
+++ b/noatun/modules/kjofol-skin/kjfont.h
@@ -0,0 +1,50 @@
+#ifndef KJFONT_H
+#define KJFONT_H
+
+#include <qstring.h>
+#include <qpixmap.h>
+#include <qbitmap.h>
+#include <qfont.h>
+
+class KJLoader;
+
+class KJFont
+{
+public:
+ KJFont(const QString &prefix, KJLoader *parent);
+ // draw the string str to dev at position pos, within rectangle limit in relation to pos
+ QPixmap draw(const QCString &str, int wide, const QPoint &pt=QPoint(0,0)) const;
+ QPixmap draw(const QString &str, int wide, const QPoint &pt=QPoint(0,0)) const
+ { return draw(QCString(str.latin1()), wide, pt); }
+
+ int fontHeight() const {return mHeight;}
+ int fontWidth() const {return mWidth;}
+ int fontSpacing() const {return mSpacing;}
+ bool isTransparent() const {return mTransparent;}
+
+ // !!! Call if you changed the systemfont !!!
+ void recalcSysFont(void);
+
+protected:
+ QPixmap drawSysFont(const QCString &s, int wide, const QPoint &pos=QPoint(0,0)) const;
+ QPixmap drawPixmapFont(const QCString &, int, const QPoint &pos=QPoint(0,0)) const;
+
+ void drawCharacter(QPixmap *dev, QBitmap *devMask, const QPoint &to, char c) const;
+ QPoint charSource(char c) const;
+
+private:
+ QPixmap mText;
+ QBitmap mTextMask;
+ QRgb mTransparentRGB; // this color will be transparent
+ int mSpacing;
+ int mWidth, mHeight;
+ bool mTransparent; // indicates wether there's transparency
+ const char *mString[3];
+ char mNullChar;
+ QFontMetrics *sysFontMetrics;
+ QFont sysFont;
+ QColor sysFontColor;
+ bool mUseSysFont;
+};
+
+#endif