Wrapper classes for the emwin library

Dependents:   app_emwin1 app_emwin2_pos lpc4088_ebb_gui_emwin

Revision:
0:316c181e9b65
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/EwPainter.cpp	Mon Dec 16 07:03:22 2013 +0000
@@ -0,0 +1,401 @@
+#include "mbed.h"
+
+#include "EwPainter.h"
+
+
+EwPainter::EwPainter() {
+    _contextSaved = false;
+}
+
+void EwPainter::enableAlpha(bool on) {
+    GUI_EnableAlpha((on ? 1 : 0));
+}
+
+ewColor_t EwPainter::getBackgroundColor() {
+    return GUI_GetBkColor();
+}
+
+void EwPainter::setBackgroundColor(ewColor_t c) {
+    GUI_SetBkColor(c);
+}
+
+ewColor_t EwPainter::getColor() {
+    return GUI_GetColor();
+}
+
+void EwPainter::setColor(ewColor_t c) {
+    GUI_SetColor(c);
+}
+
+uint8_t EwPainter::getPenSize() {
+    return GUI_GetPenSize();
+}
+
+void EwPainter::setPenSize(uint8_t size) {
+    GUI_SetPenSize(size);
+}
+
+void EwPainter::move(int32_t dx, int32_t dy) {
+    GUI_MoveRel(dx, dy);
+}
+
+void EwPainter::moveTo(int32_t x, int32_t y) {
+    GUI_MoveTo(x, y);
+}
+
+void EwPainter::clear() {
+    GUI_Clear();
+}
+
+void EwPainter::clearRect(int32_t x0, int32_t y0, int32_t x1, int32_t y1) {
+    GUI_ClearRect(x0, y0, x1, y1);
+}
+
+void EwPainter::copyRect(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t width, int32_t height) {
+    GUI_CopyRect(x0, y0, x1, y1, width, height);
+}
+
+void EwPainter::drawHorizGradient(int32_t x0, int32_t y0, int32_t x1, int32_t y1, ewColor_t c0, ewColor_t c1) {
+    GUI_DrawGradientH(x0, y0, x1, y1, c0, c1);
+}
+
+void EwPainter::drawVertGradient(int32_t x0, int32_t y0, int32_t x1, int32_t y1, ewColor_t c0, ewColor_t c1) {
+    GUI_DrawGradientV(x0, y0, x1, y1, c0, c1);
+}
+void EwPainter::drawHorizRoundGradient(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t radius, ewColor_t c0, ewColor_t c1) {
+    GUI_DrawGradientRoundedH(x0, y0, x1, y1, radius, c0, c1);
+}
+
+void EwPainter::drawVertRoundGradient(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t radius, ewColor_t c0, ewColor_t c1) {
+    GUI_DrawGradientRoundedV(x0, y0, x1, y1, radius, c0, c1);
+}
+
+void EwPainter::drawPixel(int32_t x, int32_t y) {
+    GUI_DrawPixel(x, y);
+}
+
+void EwPainter::drawPoint(int32_t x, int32_t y) {
+    GUI_DrawPoint(x, y);
+}
+
+void EwPainter::drawRect(int32_t x0, int32_t y0, int32_t x1, int32_t y1) {
+    GUI_DrawRect(x0, y0, x1, y1);
+}
+
+void EwPainter::drawRect(ewRect_t *pRect) {
+    GUI_DrawRectEx(pRect);
+}
+
+
+void EwPainter::drawRoundedFrame(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t radius, int32_t width) {
+    GUI_DrawRoundedFrame(x0, y0, x1, y1, radius, width);
+}
+
+void EwPainter::drawRoundedRect(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t radius) {
+    GUI_DrawRoundedRect(x0, y0, x1, y1, radius);
+}
+
+void EwPainter::fillRect(int32_t x0, int32_t y0, int32_t x1, int32_t y1) {
+    GUI_FillRect(x0, y0, x1, y1);
+}
+
+void EwPainter::fillRect(ewRect_t *pRect) {
+    GUI_FillRectEx(pRect);
+}
+
+void EwPainter::fillRoundedRect(int32_t x0, int32_t y0, int32_t x1, int32_t y1, int32_t radius) {
+    GUI_FillRoundedRect(x0, y0, x1, y1, radius);
+}
+
+void EwPainter::drawLine(int32_t x0, int32_t y0, int32_t x1, int32_t y1) {
+    GUI_DrawLine(x0, y0, x1, y1);
+}
+
+void EwPainter::drawLine(int32_t dx, int32_t dy) {
+    GUI_DrawLineRel(dx, dy);
+}
+
+void EwPainter::drawLineTo(int32_t x, int32_t y) {
+    GUI_DrawLineTo(x, y);
+}
+
+void EwPainter::drawHorizLine(int32_t y, int32_t x0, int32_t x1) {
+    GUI_DrawHLine(y, x0, x1);
+}
+
+void EwPainter::drawVertLine(int32_t x, int32_t y0, int32_t y1) {
+    GUI_DrawVLine(x, y0, y1);
+}
+
+void EwPainter::drawPolyLine(ewPoint_t* pPoints, int numPoints, int32_t x, int32_t y) {
+    GUI_DrawPolyLine(pPoints, numPoints, x, y);
+}
+
+ewLineStyle_t EwPainter::getLineStyle() {
+    return (ewLineStyle_t) GUI_GetLineStyle();
+}
+
+ewLineStyle_t EwPainter::setLineStyle(ewLineStyle_t style) {
+    return (ewLineStyle_t)GUI_SetLineStyle(style);
+}
+
+void EwPainter::drawPolygon(ewPoint_t* pPoints, int numPoints, int32_t x, int32_t y) {
+    GUI_DrawPolygon(pPoints, numPoints, x, y);
+}
+
+void EwPainter::enlargePolygon(ewPoint_t* pDest, ewPoint_t* pSrc, int numPoints, int32_t len) {
+    GUI_EnlargePolygon(pDest, pSrc, numPoints, len);
+}
+
+void EwPainter::magnifyPolygon(ewPoint_t* pDest, ewPoint_t* pSrc, int numPoints, int32_t mag) {
+    GUI_MagnifyPolygon(pDest, pSrc, numPoints, mag);
+}
+
+void EwPainter::rotatePolygon(ewPoint_t* pDest, ewPoint_t* pSrc, int numPoints, float angle) {
+    GUI_RotatePolygon(pDest, pSrc, numPoints, angle);
+}
+
+void EwPainter::fillPolygon(ewPoint_t* pPoints, int numPoints, int32_t x, int32_t y) {
+    GUI_FillPolygon(pPoints, numPoints, x, y);
+}
+
+void EwPainter::drawCircle(int32_t x0, int32_t y0, int32_t radius) {
+    GUI_DrawCircle(x0, y0, radius);
+}
+
+void EwPainter::fillCircle(int32_t x0, int32_t y0, int32_t radius) {
+    GUI_FillCircle(x0, y0, radius);
+}
+
+void EwPainter::drawEllipse(int32_t x0, int32_t y0, int32_t rx, int32_t ry) {
+    GUI_DrawEllipse(x0, y0, rx, ry);
+}
+
+void EwPainter::fillEllipse(int32_t x0, int32_t y0, int32_t rx, int32_t ry) {
+    GUI_FillEllipse(x0, y0, rx, ry);
+}
+
+void EwPainter::drawArc(int32_t xCenter, int32_t yCenter, int32_t rx, int32_t ry, int32_t a0, int32_t a1) {
+    GUI_DrawArc(xCenter, yCenter, rx, ry, a0, a1);
+}
+
+void EwPainter::drawGraph(int16_t* paY, int numPoints, int32_t x0, int32_t y0) {
+    GUI_DrawGraph(paY, numPoints, x0, y0);
+}
+
+void EwPainter::drawPie(int32_t x0, int32_t y0, int32_t radius, int32_t a0, int32_t a1) {
+    GUI_DrawPie(x0, y0, radius, a0, a1, 0);
+}
+
+void EwPainter::drawChar(uint16_t c) {
+    GUI_DispChar(c);
+}
+
+void EwPainter::drawChar(uint16_t c, int32_t x, int32_t y) {
+    GUI_DispCharAt(c, x, y);
+}
+
+void EwPainter::drawChars(uint16_t c, int32_t cnt) {
+    GUI_DispChars(c, cnt);
+}
+
+void EwPainter::newLine() {
+    GUI_DispNextLine();
+}
+
+void EwPainter::drawString(const char* s, int32_t maxLen) {
+    if (maxLen <= -1) {
+        GUI_DispString(s);
+    }
+    else {
+        GUI_DispStringLen(s, maxLen);
+    }
+}
+void EwPainter::drawString(const char* s, int32_t x, int32_t y) {
+    GUI_DispStringAt(s, x, y);
+}
+
+void EwPainter::drawStringClearEOL(const char* s, int32_t x, int32_t y) {
+    GUI_DispStringAtCEOL(s, x, y);
+}
+
+void EwPainter::drawStringHorizCenter(const char* s, int32_t x, int32_t y) {
+    GUI_DispStringHCenterAt(s, x, y);
+}
+
+void EwPainter::drawStringRect(const char* s, ewRect_t *pRect, ewTextAlign_t align, ewWrapMode_t wrap) {
+    if (wrap == WrapModeNone) {
+        GUI_DispStringInRect(s, pRect, align);
+    }
+    else {
+        GUI_DispStringInRectWrap(s, pRect, align, (GUI_WRAPMODE)wrap);
+    }
+}
+
+void EwPainter::drawStringRect(const char* s, ewRect_t *pRect, ewTextAlign_t align, int32_t maxLen, ewRotation_t rotation) {
+
+    GUI_ROTATION* ewRotation = GUI_ROTATE_0;
+    switch (rotation) {
+    case Rotation_0:
+        break;
+    case Rotation_180:
+        ewRotation = GUI_ROTATE_180;
+        break;
+    case Rotation_CCW:
+        ewRotation = GUI_ROTATE_CCW;
+        break;
+    case Rotation_CW:
+        ewRotation = GUI_ROTATE_CW;
+        break;
+    }
+
+    GUI_DispStringInRectEx(s, pRect, align, maxLen, ewRotation);
+}
+
+int32_t EwPainter::getNumWrapLines(const char* s, int32_t width, ewWrapMode_t wrap) {
+    return GUI_WrapGetNumLines(s, width, (GUI_WRAPMODE)wrap);
+}
+
+ewTextMode_t EwPainter::getTextMode() {
+    return (ewTextMode_t) GUI_GetTextMode();
+}
+
+void EwPainter::setTextMode(ewTextMode_t mode) {
+    GUI_SetTextMode(mode);
+}
+
+
+void EwPainter::setTextStyle(ewTextStyle_t style) {
+    GUI_SetTextStyle(style);
+}
+
+ewTextAlign_t EwPainter::getTextAlign() {
+    return (ewTextAlign_t) GUI_GetTextAlign();
+}
+
+void EwPainter::setTextAlign(ewTextAlign_t align) {
+    GUI_SetTextAlign(align);
+}
+
+bool EwPainter::setTextPosition(int32_t x, int32_t y) {
+    return (GUI_GotoXY(x, y) == 0);
+}
+
+void EwPainter::getTextPosition(int32_t &x, int32_t &y) {
+    x = GUI_GetDispPosX();
+    y = GUI_GetDispPosY();
+}
+
+const ewFont_t* EwPainter::setFont(const ewFont_t* pFont) {
+    return GUI_SetFont(pFont);
+}
+
+const ewFont_t* EwPainter::getFont() {
+    return GUI_GetFont();
+}
+
+int32_t EwPainter::getCharWidth(uint16_t c) {
+    return GUI_GetCharDistX(c);
+}
+
+int32_t EwPainter::getFontHeight() {
+    return GUI_GetFontSizeY();
+}
+
+int32_t EwPainter::getFontDistY() {
+    return GUI_GetFontDistY();
+}
+
+int32_t EwPainter::getLeadingBlankCols(uint16_t c) {
+    return GUI_GetLeadingBlankCols(c);
+}
+
+int32_t EwPainter::getTrailingBlankCols(uint16_t c) {
+    return GUI_GetTrailingBlankCols(c);
+}
+
+int32_t EwPainter::getStringWidth(const char* s) {
+    return GUI_GetStringDistX(s);
+}
+
+bool EwPainter::isCharInFont(const ewFont_t* pFont, uint16_t c) {
+    return (GUI_IsInFont(pFont, c) == 1);
+}
+
+void EwPainter::drawBitmap(const ewBitmap_t* pBm, int32_t x, int32_t y) {
+    GUI_DrawBitmap(pBm, x, y);
+}
+
+void EwPainter::drawBitmapMagnified(const ewBitmap_t* pBm, int32_t x, int32_t y, int32_t xMul, int32_t yMul) {
+    GUI_DrawBitmapMag(pBm, x, y, xMul, yMul);
+}
+
+void EwPainter::drawBitmapScaled(const ewBitmap_t* pBm, int32_t x, int32_t y, int32_t xCenter, int32_t yCenter, int32_t xMag, int32_t yMag) {
+    GUI_DrawBitmapEx(pBm, x, y, xCenter, yCenter, xMag, yMag);
+}
+
+void EwPainter::drawJpeg(const void* pData, int32_t dataSize, int32_t x, int32_t y) {
+    GUI_JPEG_Draw(pData, dataSize, x, y);
+}
+
+void EwPainter::drawJpegScaled(const void* pData, int32_t dataSize, int32_t x, int32_t y, int32_t num, int32_t denom) {
+    GUI_JPEG_DrawScaled(pData, dataSize, x, y, num, denom);
+}
+
+void EwPainter::getJpegSize(const void* pData, int32_t dataSize, int32_t &width, int32_t &height) {
+    GUI_JPEG_INFO info;
+    GUI_JPEG_GetInfo(pData, dataSize, &info);
+
+    width = info.XSize;
+    height = info.YSize;
+}
+
+void EwPainter::drawGif(const void* pData, int32_t dataSize, int32_t x, int32_t y, int32_t imgIdx) {
+    if (imgIdx < 0) {
+        GUI_GIF_Draw(pData, dataSize, x, y);
+    }
+    else {
+        GUI_GIF_DrawSub(pData, dataSize, x, y, imgIdx);
+    }
+}
+
+void EwPainter::drawGifScaled(const void* pData, int32_t dataSize, int32_t x, int32_t y, int32_t imgIdx, int32_t num, int32_t denom) {
+    GUI_GIF_DrawSubScaled(pData, dataSize, x, y, imgIdx, num, denom);
+}
+
+void EwPainter::getGifSize(const void* pData, int32_t dataSize, int32_t &width, int32_t &height) {
+    width = GUI_GIF_GetXSize(pData);
+    height = GUI_GIF_GetYSize(pData);
+}
+
+int32_t EwPainter::getGifNumImages(const void* pData, int32_t dataSize) {
+    GUI_GIF_INFO info;
+    GUI_GIF_GetInfo(pData, dataSize, &info);
+
+    return info.NumImages;
+}
+
+void EwPainter::drawPng(const void* pData, int32_t dataSize, int32_t x, int32_t y) {
+    GUI_PNG_Draw(pData, dataSize, x, y);
+}
+
+void EwPainter::getPngSize(const void* pData, int32_t dataSize, int32_t &width, int32_t &height) {
+    width = GUI_PNG_GetXSize(pData, dataSize);
+    height = GUI_PNG_GetYSize(pData, dataSize);;
+}
+
+
+void EwPainter::saveContext() {
+    GUI_SaveContext_W(&_context);
+    _contextSaved = true;
+}
+
+void EwPainter::restoreContext() {
+    if (!_contextSaved) return;
+
+    GUI_RestoreContext(&_context);
+
+    _contextSaved = false;
+}
+
+