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

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