GUI parts for DISCO-F746NG. GuiBase, Button, ButtonGroup, Label, BlinkLabel, NumericLabel, SeekBar, SeekbarGroup

Dependents:   F746_SD_GraphicEqualizer_ren0620

Fork of F746_GUI by 不韋 呂

GuiBase.hpp

Committer:
MikamiUitOpen
Date:
2016-04-12
Revision:
6:b8f197b0012c
Parent:
0:a2686ef737c2

File content as of revision 6:b8f197b0012c:

//-----------------------------------------------------------
//  GuiBase class (abstract base class) ---- Header
//      
//  2016/04/10, Copyright (c) 2016 MIKAMI, Naoki
//-----------------------------------------------------------

#ifndef F746_GUI_BASE_HPP
#define F746_GUI_BASE_HPP

#include "mbed.h"
#include <string>
#include "TS_DISCO_F746NG.h"
#include "LCD_DISCO_F746NG.h"

namespace Mikami
{
    class GuiBase
    {
    public:                    
        static LCD_DISCO_F746NG* GetLcdPtr() { return &lcd_; }
        static TS_DISCO_F746NG* GetTsPtr() { return &ts_; }

        // If panel touched, return true
        static bool PanelTouched();
        // Get touch panel state
        static TS_StateTypeDef GetTsState() { return state_; }

        enum { ENUM_TEXT = 0xFFFFFFFF, ENUM_BACK = 0xFF003538,
               ENUM_CREATED = 0xFF0068B7, ENUM_TOUCHED = 0xFF7F7FFF,
               ENUM_INACTIVE = 0xD0003538, ENUM_INACTIVE_TEXT = 0xFF808080};

    protected:
        static LCD_DISCO_F746NG lcd_;  // for LCD display
        static TS_DISCO_F746NG ts_;    // for touch pannel

        static TS_StateTypeDef state_;
        static bool multiTouch_;

        const uint16_t X_, Y_;
        sFONT *const FONTS_;

        const uint32_t TEXT_COLOR_;
        const uint32_t BACK_COLOR_;
        const uint32_t CREATED_COLOR_;
        const uint32_t TOUCHED_COLOR_;
        const uint32_t INACTIVE_COLOR_;
        const uint32_t INACTIVE_TEXT_COLOR_;

        // Constructor
        GuiBase(uint16_t x =0, uint16_t y =0,
                sFONT &fonts = Font12,
                uint32_t textColor         = GuiBase::ENUM_TEXT,
                uint32_t backColor         = GuiBase::ENUM_BACK,
                uint32_t createdColor      = GuiBase::ENUM_CREATED,
                uint32_t touchedColor      = GuiBase::ENUM_TOUCHED,
                uint32_t inactiveColor     = GuiBase::ENUM_INACTIVE,
                uint32_t inactiveTextColor = GuiBase::ENUM_INACTIVE_TEXT);

        void DrawString(uint16_t x, uint16_t y, const string str)
        { lcd_.DisplayStringAt(x, y, (uint8_t *)str.c_str(), LEFT_MODE); }

    private:
        static bool first_;
        
        // disallow copy constructor and assignment operator
        GuiBase(const GuiBase&);
        GuiBase& operator=(const GuiBase&);
    };
}
#endif  // F746_GUI_BASE_HPP