Wakeup Light with touch user interface, anti-aliased Font, SD card access and RTC usage on STM32F746NG-DISCO board

Dependencies:   BSP_DISCO_F746NG_patch_fixed LCD_DISCO_F746NG TS_DISCO_F746NG FATFileSystem TinyJpgDec_interwork mbed-src

UI.h

Committer:
the_sz
Date:
2015-11-10
Revision:
6:aa51cc3b9f90
Parent:
5:13c70bcde7f6
Child:
7:dc29f6647486

File content as of revision 6:aa51cc3b9f90:

#ifndef __UI_h
#define __UI_h

#define UI_FLAG_TYPE_BOX_LIST           (0x01 | UI_FLAG_NEEDS_CHROME)
#define UI_FLAG_TYPE_MESSAGE_BOX        (0x02 | UI_FLAG_NEEDS_CHROME)
#define UI_FLAG_TYPE_CLOCK              0x04
#define UI_FLAG_TYPE_CLOCK_IN_WORDS     (0x08 | UI_FLAG_NEEDS_CHROME)
#define UI_FLAG_TYPE_VALUE_ADJUST       (0x10 | UI_FLAG_NEEDS_CHROME | UI_FLAG_HAS_BACK_BUTTON)
#define UI_FLAG_NEEDS_CHROME            0x20
#define UI_FLAG_HAS_BACK_BUTTON         0x40

typedef enum
{
    UR_CLICK,
    UR_TIMER,
    UR_SHOW,

} UI_REASON_ENUM;

struct UI_STRUCT_;
typedef void (*UI_HANDLER_CALLBACK)(UI_REASON_ENUM reason,int32_t index,UI_STRUCT_ *ui);

typedef struct
{
    char                                *name;
    uint8_t                             *image;

} UI_BOX_LIST_ITEM_STRUCT;
    
typedef struct UI_STRUCT_
{
    int8_t                              flags;      // UI_FLAG_...
    UI_HANDLER_CALLBACK                 handler;

    union
    {
        struct
        {
            UI_BOX_LIST_ITEM_STRUCT     *items;
            uint8_t                     count;

        } boxList;

        struct
        {
        } messageBox;

        struct
        {
            uint8_t                     count;
            uint32_t                    values[4];

        } valueAdjust;

    } data;

} UI_STRUCT;

extern UI_STRUCT                        uiClock;
extern UI_STRUCT                        uiClockInWords;
extern UI_STRUCT                        uiColorTest;
extern UI_STRUCT                        uiWakeup;
extern UI_STRUCT                        uiMain;

void UI_Init(void);
void UI_Poll(void);
void UI_Show(UI_STRUCT *ui);

void UI_MainHandler(UI_REASON_ENUM reason,int32_t index,UI_STRUCT *ui);

void UI_WakeupHandler(UI_REASON_ENUM reason,int32_t index,UI_STRUCT *ui);
void UI_ColorTestHandler(UI_REASON_ENUM reason,int32_t index,UI_STRUCT *ui);

#endif