Same as original
Diff: button.hpp
- Revision:
- 0:d3038879fed6
- Child:
- 1:57fe493e8db2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/button.hpp Sun Nov 22 10:07:55 2015 +0000 @@ -0,0 +1,65 @@ +//----------------------------------------------------------- +// Button class -- Header +// +// 2015/11/22, Copyright (c) 2015 MIKAMI, Naoki +//----------------------------------------------------------- + +#ifndef F746_BUTTON_HPP +#define F746_BUTTON_HPP + +#include "mbed.h" +#include <string> +#include "TS_DISCO_F746NG.h" +#include "LCD_DISCO_F746NG.h" + +namespace Mikami +{ + class Button + { + public: + // Constructor + Button(LCD_DISCO_F746NG &lcd, TS_DISCO_F746NG &ts, + uint16_t x, uint16_t y, uint16_t width, uint16_t height, + uint32_t color, uint32_t backColor, + string str = "", sFONT &fonts = Font12, + uint32_t textColor = LCD_COLOR_WHITE) + : lcd_(lcd), ts_(ts), X_(x), Y_(y), W_(width), H_(height), + COLOR_(color), BACK_COLOR_(backColor), + STR_(str), FONTS_(&fonts) + { Draw(color, textColor); } + + // Draw button + void Draw(uint32_t color, uint32_t textColor = LCD_COLOR_WHITE); + + // Redraw button with original color + void Redraw(uint32_t textColor = LCD_COLOR_WHITE) + { Draw(COLOR_, textColor); } + + // Erase button with selected color + void Erase() + { Draw(BACK_COLOR_, BACK_COLOR_); } + + // Check touch detected + bool Touched(); + + // Check touch detected and redraw button + bool Touched(uint32_t color, uint32_t textColor = LCD_COLOR_WHITE); + + // Get original color + uint32_t GetColor() { return COLOR_; } + + private: + LCD_DISCO_F746NG &lcd_; + TS_DISCO_F746NG &ts_; + const uint16_t X_, Y_, W_, H_; + const uint32_t COLOR_; // original color + const uint32_t BACK_COLOR_; // back color of screen + const string STR_; + sFONT *const FONTS_; + + // disallow copy constructor and assignment operator + Button(const Button&); + Button& operator=(const Button&); + }; +} +#endif // F746_BUTTON_HPP