Class library: Button class and ButtonGroup class for DISCO-F746NG. クラスライブラリ: DISCO-F746NG 用の,Button クラス,ButtonGroup クラス.

Dependents:   F746_SpectralAnalysis_NoPhoto F746_Fourier_series_of_square_wave_01 F746_ButtonGroup_Demo F746_Mandelbrot ... more

Committer:
MikamiUitOpen
Date:
Mon Nov 23 09:47:50 2015 +0000
Revision:
3:d99d9c0324b7
Parent:
1:57fe493e8db2
Child:
4:543ec60c2814
4

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:d3038879fed6 1 //-----------------------------------------------------------
MikamiUitOpen 0:d3038879fed6 2 // Button class -- Header
MikamiUitOpen 0:d3038879fed6 3 //
MikamiUitOpen 1:57fe493e8db2 4 // 2015/11/23, Copyright (c) 2015 MIKAMI, Naoki
MikamiUitOpen 0:d3038879fed6 5 //-----------------------------------------------------------
MikamiUitOpen 0:d3038879fed6 6
MikamiUitOpen 0:d3038879fed6 7 #ifndef F746_BUTTON_HPP
MikamiUitOpen 0:d3038879fed6 8 #define F746_BUTTON_HPP
MikamiUitOpen 0:d3038879fed6 9
MikamiUitOpen 0:d3038879fed6 10 #include "mbed.h"
MikamiUitOpen 0:d3038879fed6 11 #include <string>
MikamiUitOpen 0:d3038879fed6 12 #include "TS_DISCO_F746NG.h"
MikamiUitOpen 0:d3038879fed6 13 #include "LCD_DISCO_F746NG.h"
MikamiUitOpen 0:d3038879fed6 14
MikamiUitOpen 0:d3038879fed6 15 namespace Mikami
MikamiUitOpen 0:d3038879fed6 16 {
MikamiUitOpen 0:d3038879fed6 17 class Button
MikamiUitOpen 0:d3038879fed6 18 {
MikamiUitOpen 0:d3038879fed6 19 public:
MikamiUitOpen 0:d3038879fed6 20 // Constructor
MikamiUitOpen 0:d3038879fed6 21 Button(LCD_DISCO_F746NG &lcd, TS_DISCO_F746NG &ts,
MikamiUitOpen 0:d3038879fed6 22 uint16_t x, uint16_t y, uint16_t width, uint16_t height,
MikamiUitOpen 0:d3038879fed6 23 uint32_t color, uint32_t backColor,
MikamiUitOpen 3:d99d9c0324b7 24 const string str = "", sFONT &fonts = Font12,
MikamiUitOpen 0:d3038879fed6 25 uint32_t textColor = LCD_COLOR_WHITE)
MikamiUitOpen 0:d3038879fed6 26 : lcd_(lcd), ts_(ts), X_(x), Y_(y), W_(width), H_(height),
MikamiUitOpen 0:d3038879fed6 27 COLOR_(color), BACK_COLOR_(backColor),
MikamiUitOpen 0:d3038879fed6 28 STR_(str), FONTS_(&fonts)
MikamiUitOpen 0:d3038879fed6 29 { Draw(color, textColor); }
MikamiUitOpen 0:d3038879fed6 30
MikamiUitOpen 0:d3038879fed6 31 // Draw button
MikamiUitOpen 0:d3038879fed6 32 void Draw(uint32_t color, uint32_t textColor = LCD_COLOR_WHITE);
MikamiUitOpen 0:d3038879fed6 33
MikamiUitOpen 0:d3038879fed6 34 // Redraw button with original color
MikamiUitOpen 0:d3038879fed6 35 void Redraw(uint32_t textColor = LCD_COLOR_WHITE)
MikamiUitOpen 0:d3038879fed6 36 { Draw(COLOR_, textColor); }
MikamiUitOpen 0:d3038879fed6 37
MikamiUitOpen 0:d3038879fed6 38 // Erase button with selected color
MikamiUitOpen 0:d3038879fed6 39 void Erase()
MikamiUitOpen 0:d3038879fed6 40 { Draw(BACK_COLOR_, BACK_COLOR_); }
MikamiUitOpen 0:d3038879fed6 41
MikamiUitOpen 0:d3038879fed6 42 // Check touch detected
MikamiUitOpen 0:d3038879fed6 43 bool Touched();
MikamiUitOpen 0:d3038879fed6 44
MikamiUitOpen 0:d3038879fed6 45 // Check touch detected and redraw button
MikamiUitOpen 0:d3038879fed6 46 bool Touched(uint32_t color, uint32_t textColor = LCD_COLOR_WHITE);
MikamiUitOpen 0:d3038879fed6 47
MikamiUitOpen 0:d3038879fed6 48 // Get original color
MikamiUitOpen 0:d3038879fed6 49 uint32_t GetColor() { return COLOR_; }
MikamiUitOpen 0:d3038879fed6 50
MikamiUitOpen 0:d3038879fed6 51 private:
MikamiUitOpen 0:d3038879fed6 52 LCD_DISCO_F746NG &lcd_;
MikamiUitOpen 0:d3038879fed6 53 TS_DISCO_F746NG &ts_;
MikamiUitOpen 0:d3038879fed6 54 const uint16_t X_, Y_, W_, H_;
MikamiUitOpen 0:d3038879fed6 55 const uint32_t COLOR_; // original color
MikamiUitOpen 0:d3038879fed6 56 const uint32_t BACK_COLOR_; // back color of screen
MikamiUitOpen 0:d3038879fed6 57 const string STR_;
MikamiUitOpen 0:d3038879fed6 58 sFONT *const FONTS_;
MikamiUitOpen 0:d3038879fed6 59
MikamiUitOpen 0:d3038879fed6 60 // disallow copy constructor and assignment operator
MikamiUitOpen 0:d3038879fed6 61 Button(const Button&);
MikamiUitOpen 0:d3038879fed6 62 Button& operator=(const Button&);
MikamiUitOpen 0:d3038879fed6 63 };
MikamiUitOpen 0:d3038879fed6 64 }
MikamiUitOpen 0:d3038879fed6 65 #endif // F746_BUTTON_HPP
MikamiUitOpen 1:57fe493e8db2 66