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/EwCheckBox.h	Mon Dec 16 07:03:22 2013 +0000
@@ -0,0 +1,116 @@
+
+#ifndef EWCHECKBOX_H
+#define EWCHECKBOX_H
+
+#include "EwPainter.h"
+#include "EwWindow.h"
+#include "EwFunctionPointer.h"
+
+#include "CHECKBOX.h"
+
+enum ewCheckBoxColorIndex_t {
+    CheckBoxColorIndexDisabled = CHECKBOX_CI_DISABLED,
+    CheckBoxColorIndexEnabled = CHECKBOX_CI_ENABLED,
+};
+
+enum ewCheckBoxBitmapIndex_t {
+    CheckBoxBitmapInactiveUnchecked = CHECKBOX_BI_INACTIV_UNCHECKED,
+    CheckBoxBitmapActiveUnchecked = CHECKBOX_BI_ACTIV_UNCHECKED,
+    CheckBoxBitmapInactiveChecked = CHECKBOX_BI_INACTIV_CHECKED,
+    CheckBoxBitmapActiveChecked = CHECKBOX_BI_ACTIV_CHECKED,
+    CheckBoxBitmapInactive3State = CHECKBOX_BI_INACTIV_3STATE,
+    CheckBoxBitmapActive3State = CHECKBOX_BI_ACTIV_3STATE
+};
+
+enum ewCheckBoxState_t {
+    CheckBoxStateUnchecked = 0,
+    CheckBoxStateChecked,
+    CheckBoxStateTristate
+};
+
+/**
+ * This is wrapper class for the emwin CHECKBOX interface.
+ */
+class EwCheckBox : public EwWindow {
+public:
+
+    EwCheckBox(EwWindow* parent = 0);
+    EwCheckBox(int x, int y, int width, int height, EwWindow* parent = 0);
+
+
+
+
+    ewCheckBoxState_t getState();
+    void setState(ewCheckBoxState_t state);
+
+    void setTristate(bool on = true);
+    bool isTristate();
+
+    void setText(const char* text);
+    void getText(char* pBuf, int bufSz);
+
+    void setBackgroundColor(ewColor_t c);
+    void setBoxBackgroundColor(ewColor_t c, ewCheckBoxColorIndex_t idx);
+    void setFont(const ewFont_t* pFont);
+
+    void setTextAlign(ewTextAlign_t align);
+    void setTextColor(ewColor_t c);
+
+    void setFocusColor(ewColor_t c);
+
+    void setImage(ewBitmap_t* pBitmap, ewCheckBoxBitmapIndex_t idx);
+    void setSpacing(int32_t spacing);
+
+    /**
+     * Register a member function that will called when the checkbox
+     * state has changed
+     *
+     * @param tptr pointer to the object to call the member function on
+     * @param mptr pointer to the member function to be called
+     */
+    template<typename T>
+    void setChangedListener(T* tptr, void (T::*mptr)(EwWindow* w)) {
+        if((mptr != NULL) && (tptr != NULL)) {
+            _changedListener.attach(tptr, mptr);
+        }
+    }
+
+    /**
+     * Register a function that will called when the checkbox
+     * state has changed
+     *
+     * @param fptr A pointer to a void function that will be called
+     * when the checkbox state has changed
+     */
+    void setChangedListener(void (*fptr)(EwWindow* w));
+
+
+    static ewColor_t getDefaultBackgroundColor();
+    static void setDefaultBackgroundColor(ewColor_t c);
+    static const ewFont_t* getDefaultFont();
+    static void setDefaultFont(const ewFont_t* pFont);
+    static ewColor_t getDefaultTextColor();
+    static void setDefaultTextColor(ewColor_t c);
+    static void setDefaultFocusColor(ewColor_t c);
+
+    static int32_t getDefaultSpacing();
+    static void setDefaultSpacing(int32_t spacing);
+
+    static void setDefaultImage(ewBitmap_t* pBitmap, ewCheckBoxBitmapIndex_t idx);
+
+
+private:
+
+
+    bool _isTristate;
+    EwFunctionPointer _changedListener;
+
+    void init(int x, int y, int width, int height, EwWindow* parent);
+    void handleStateChanged();
+
+    static void _callback(WM_MESSAGE* pMsg, EwWindow* w);
+
+
+};
+
+#endif