Automate écran capacitif
Dependencies: BSP_DISCO_F469NI LCD_DISCO_F469NI SeeedStudioTFTv2 TFT_fonts mbed
Fork of DISCO-F469NI_LCD_demo by
Diff: F469_GUI/ButtonGroup.hpp
- Revision:
- 2:2182df2d7810
diff -r 63e8edd5d29a -r 2182df2d7810 F469_GUI/ButtonGroup.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/F469_GUI/ButtonGroup.hpp Fri Mar 31 15:36:26 2017 +0000 @@ -0,0 +1,80 @@ +//----------------------------------------------------------- +// ButtonGroup class -- Header +// +// 2016/07/12, Copyright (c) 2016 MIKAMI, Naoki +//----------------------------------------------------------- + +#ifndef F746_BUTTON_GROUP_HPP +#define F746_BUTTON_GROUP_HPP + +#include "Button.hpp" + +namespace Mikami +{ + class ButtonGroup : public GuiBase + { + public: + // Constructor + ButtonGroup(uint16_t x0, uint16_t y0, + uint16_t width, uint16_t height, + uint16_t number, const string str[], + uint16_t spaceX = 0, uint16_t spaceY = 0, + uint16_t column = 1, + int touched = -1, // number for button initially touched-color + 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); + + // Destructor + virtual ~ButtonGroup(); + + // Draw button + bool Draw(int num, uint32_t color, uint32_t textColor); + bool Draw(int num) { return Draw(num, CREATED_COLOR_, TEXT_COLOR_); } + + // Change to touched color + bool TouchedColor(int num); + + // Draw all buttons + void DrawAll(uint32_t color, uint32_t textColor) + { for (int n=0; n<number_; n++) Draw(n, color, textColor); } + void DrawAll() { DrawAll(CREATED_COLOR_, TEXT_COLOR_); } + + // Erase button + bool Erase(int num); + void EraseAll() + { for (int n=0; n<number_; n++) Erase(n); } + + // Check touch detected for specified button + bool Touched(int num); + + // Get touched number + bool GetTouchedNumber(int &num); + + // Activate and inactivate button(s) + bool Activate(int num); + void ActivateAll() + { for (int n=0; n<number_; n++) Activate(n); } + bool Inactivate(int num); + void InactivateAll() + { for (int n=0; n<number_; n++) Inactivate(n); } + + private: + Button **buttons_; + int number_; + __IO int prevNum_; + + // Check range of argument + bool Range(int n) + { return ((n >= 0) && (n < number_)); } + + // disallow copy constructor and assignment operator + ButtonGroup(const ButtonGroup&); + ButtonGroup& operator=(const ButtonGroup&); + }; +} +#endif // F746_BUTTON_GROUP_HPP