summaryrefslogtreecommitdiff
path: root/libcore/pixmapcontainer.h
diff options
context:
space:
mode:
authorlouis <louis.braun@gmx.de>2014-09-27 09:25:14 +0200
committerlouis <louis.braun@gmx.de>2014-09-27 09:25:14 +0200
commitb0509b5182b6e0d04f05e6b3d5676b0d21f51966 (patch)
tree22b302342f22843e0815eb5f516c85f1478cbf0b /libcore/pixmapcontainer.h
downloadvdr-plugin-skindesigner-0.0.1.tar.gz
vdr-plugin-skindesigner-0.0.1.tar.bz2
initial commit version 0.0.10.0.1
Diffstat (limited to 'libcore/pixmapcontainer.h')
-rw-r--r--libcore/pixmapcontainer.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/libcore/pixmapcontainer.h b/libcore/pixmapcontainer.h
new file mode 100644
index 0000000..06f9104
--- /dev/null
+++ b/libcore/pixmapcontainer.h
@@ -0,0 +1,73 @@
+#ifndef __PIXMAP_CONTAINER_H
+#define __PIXMAP_CONTAINER_H
+
+#include <string>
+#include <vdr/plugin.h>
+#include "fontmanager.h"
+
+enum eFlushState {
+ fsOpen,
+ fsLock,
+ fsCount,
+};
+
+class cPixmapContainer : public cThread {
+private:
+ static cMutex mutex;
+ static cOsd *osd;
+ static eFlushState flushState;
+ bool pixContainerInit;
+ int numPixmaps;
+ cPixmap **pixmaps;
+ int *pixmapsTransparency;
+ bool checkRunning;
+ int fadeTime;
+ bool deleteOsdOnExit;
+protected:
+ void SetInitFinished(void) { pixContainerInit = false; };
+ bool CreateOsd(int Left, int Top, int Width, int Height);
+ void DeleteOsdOnExit(void) { deleteOsdOnExit = true; };
+ void LockFlush(void);
+ void OpenFlush(void);
+ //Wrappers for access to pixmaps
+ bool PixmapExists(int num);
+ int NumPixmaps(void) { return numPixmaps; };
+ void CreatePixmap(int num, int Layer, const cRect &ViewPort, const cRect &DrawPort = cRect::Null);
+ bool DestroyPixmap(int num);
+ void DrawText(int num, const cPoint &Point, const char *s, tColor ColorFg, tColor ColorBg, std::string fontName, int fontSize);
+ void DrawRectangle(int num, const cRect &Rect, tColor Color);
+ void DrawEllipse(int num, const cRect &Rect, tColor Color, int Quadrants = 0);
+ void DrawImage(int num, const cPoint &Point, const cImage &Image);
+ void DrawBitmap(int num, const cPoint &Point, const cBitmap &Bitmap, tColor ColorFg = 0, tColor ColorBg = 0, bool Overlay = false);
+ void Fill(int num, tColor Color);
+ void SetAlpha(int num, int Alpha);
+ void SetTransparency(int num, int Transparency);
+ void SetLayer(int num, int Layer);
+ int Width(int num);
+ int Height(int num);
+ int DrawportWidth(int num);
+ int DrawportHeight(int num);
+ int DrawportX(int num);
+ int DrawportY(int num);
+ void SetDrawPortPoint(int num, const cPoint &Point);
+ void SetCheckRunning(void) { checkRunning = true; };
+ void UnsetCheckRunning(void) { checkRunning = false; };
+ //HELPERS -- do not access the pixmaps array directly, use wrapper functions
+ void SetFadeTime(int fade) { fadeTime = fade; };
+ void FadeIn(void);
+ void FadeOut(void);
+ void ScrollVertical(int num, int scrollDelay, int scrollSpeed);
+ void ScrollHorizontal(int num, int scrollDelay, int scrollSpeed, int scrollMode);
+ void CancelSave(void);
+ void DoSleep(int duration);
+ void DrawBlendedBackground(int num, int xStart, int width, tColor color, tColor colorBlending, bool fromTop);
+ void DrawRoundedCorners(int num, int radius, int x, int y, int width, int height);
+ void DrawRoundedCornersWithBorder(int num, tColor borderColor, int radius, int width, int height);
+public:
+ cPixmapContainer(int numPixmaps);
+ virtual ~cPixmapContainer(void);
+ void DoFlush(void);
+ virtual void Action(void) {};
+};
+
+#endif //__PIXMAP_CONTAINER_H \ No newline at end of file