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

Dependents:   F746_SD_GraphicEqualizer_ren0620

Fork of F746_GUI by 不韋 呂

Committer:
edamame22
Date:
Wed Jun 22 03:49:51 2016 +0000
Revision:
14:95544440b46c
Parent:
8:8c5107c91d02
push area extended.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:a2686ef737c2 1 //-----------------------------------------------------------
MikamiUitOpen 0:a2686ef737c2 2 // ButtonGroup class -- Header
MikamiUitOpen 0:a2686ef737c2 3 //
MikamiUitOpen 8:8c5107c91d02 4 // 2016/04/21, Copyright (c) 2016 MIKAMI, Naoki
MikamiUitOpen 0:a2686ef737c2 5 //-----------------------------------------------------------
MikamiUitOpen 0:a2686ef737c2 6
MikamiUitOpen 0:a2686ef737c2 7 #ifndef F746_BUTTON_GROUP_HPP
MikamiUitOpen 0:a2686ef737c2 8 #define F746_BUTTON_GROUP_HPP
MikamiUitOpen 0:a2686ef737c2 9
MikamiUitOpen 0:a2686ef737c2 10 #include "Button.hpp"
MikamiUitOpen 0:a2686ef737c2 11
MikamiUitOpen 0:a2686ef737c2 12 namespace Mikami
MikamiUitOpen 0:a2686ef737c2 13 {
MikamiUitOpen 0:a2686ef737c2 14 class ButtonGroup : public GuiBase
MikamiUitOpen 0:a2686ef737c2 15 {
MikamiUitOpen 0:a2686ef737c2 16 public:
MikamiUitOpen 0:a2686ef737c2 17 // Constructor
MikamiUitOpen 0:a2686ef737c2 18 ButtonGroup(uint16_t x0, uint16_t y0,
MikamiUitOpen 0:a2686ef737c2 19 uint16_t width, uint16_t height,
MikamiUitOpen 0:a2686ef737c2 20 uint16_t number, const string str[],
MikamiUitOpen 0:a2686ef737c2 21 uint16_t spaceX = 0, uint16_t spaceY = 0,
MikamiUitOpen 0:a2686ef737c2 22 uint16_t column = 1,
MikamiUitOpen 0:a2686ef737c2 23 int touched = -1, // number for button initially touched-color
edamame22 14:95544440b46c 24 bool expanded = false,
MikamiUitOpen 0:a2686ef737c2 25 sFONT &fonts = Font12,
MikamiUitOpen 0:a2686ef737c2 26 uint32_t textColor = GuiBase::ENUM_TEXT,
MikamiUitOpen 0:a2686ef737c2 27 uint32_t backColor = GuiBase::ENUM_BACK,
MikamiUitOpen 0:a2686ef737c2 28 uint32_t createdColor = GuiBase::ENUM_CREATED,
MikamiUitOpen 0:a2686ef737c2 29 uint32_t touchedColor = GuiBase::ENUM_TOUCHED,
MikamiUitOpen 0:a2686ef737c2 30 uint32_t inactiveColor = GuiBase::ENUM_INACTIVE,
MikamiUitOpen 0:a2686ef737c2 31 uint32_t inactiveTextColor = GuiBase::ENUM_INACTIVE_TEXT);
MikamiUitOpen 0:a2686ef737c2 32
MikamiUitOpen 0:a2686ef737c2 33 // Destructor
MikamiUitOpen 0:a2686ef737c2 34 ~ButtonGroup();
MikamiUitOpen 0:a2686ef737c2 35
MikamiUitOpen 0:a2686ef737c2 36 // Draw button
MikamiUitOpen 0:a2686ef737c2 37 bool Draw(int num, uint32_t color, uint32_t textColor);
MikamiUitOpen 0:a2686ef737c2 38 bool Draw(int num) { return Draw(num, CREATED_COLOR_, TEXT_COLOR_); }
MikamiUitOpen 0:a2686ef737c2 39
MikamiUitOpen 3:fe6ff954824a 40 // Change to touched color
MikamiUitOpen 3:fe6ff954824a 41 bool TouchedColor(int num);
MikamiUitOpen 0:a2686ef737c2 42
MikamiUitOpen 0:a2686ef737c2 43 // Draw all buttons
MikamiUitOpen 0:a2686ef737c2 44 void DrawAll(uint32_t color, uint32_t textColor)
MikamiUitOpen 0:a2686ef737c2 45 {
MikamiUitOpen 0:a2686ef737c2 46 for (int n=0; n<numberOfButtons_; n++)
MikamiUitOpen 0:a2686ef737c2 47 buttons_[n]->Draw(color, textColor);
MikamiUitOpen 0:a2686ef737c2 48 }
MikamiUitOpen 0:a2686ef737c2 49 void DrawAll() { DrawAll(CREATED_COLOR_, TEXT_COLOR_); }
MikamiUitOpen 0:a2686ef737c2 50
MikamiUitOpen 2:d2f882d98f0a 51 // Erase button
MikamiUitOpen 0:a2686ef737c2 52 bool Erase(int num);
MikamiUitOpen 0:a2686ef737c2 53
MikamiUitOpen 0:a2686ef737c2 54 // Check touch detected for specified button
MikamiUitOpen 0:a2686ef737c2 55 bool Touched(int num);
MikamiUitOpen 0:a2686ef737c2 56
MikamiUitOpen 0:a2686ef737c2 57 // Get touched number
MikamiUitOpen 0:a2686ef737c2 58 bool GetTouchedNumber(int &num);
MikamiUitOpen 0:a2686ef737c2 59
MikamiUitOpen 0:a2686ef737c2 60 // Activate and inactivate
MikamiUitOpen 0:a2686ef737c2 61 bool Activate(int num);
MikamiUitOpen 0:a2686ef737c2 62 bool Inactivate(int num);
MikamiUitOpen 8:8c5107c91d02 63 void ActivateAll()
MikamiUitOpen 8:8c5107c91d02 64 {
MikamiUitOpen 8:8c5107c91d02 65 for (int n=0; n<numberOfButtons_; n++)
MikamiUitOpen 8:8c5107c91d02 66 buttons_[n]->Activate();
MikamiUitOpen 8:8c5107c91d02 67 }
MikamiUitOpen 8:8c5107c91d02 68 void InactivateAll()
MikamiUitOpen 8:8c5107c91d02 69 {
MikamiUitOpen 8:8c5107c91d02 70 for (int n=0; n<numberOfButtons_; n++)
MikamiUitOpen 8:8c5107c91d02 71 buttons_[n]->Inactivate();
MikamiUitOpen 8:8c5107c91d02 72 }
MikamiUitOpen 0:a2686ef737c2 73
MikamiUitOpen 0:a2686ef737c2 74 private:
MikamiUitOpen 0:a2686ef737c2 75 Button **buttons_;
MikamiUitOpen 0:a2686ef737c2 76 int numberOfButtons_;
MikamiUitOpen 0:a2686ef737c2 77 __IO int prevNum_;
MikamiUitOpen 0:a2686ef737c2 78
MikamiUitOpen 0:a2686ef737c2 79 // Check range of argument
MikamiUitOpen 0:a2686ef737c2 80 bool Range(int n)
MikamiUitOpen 0:a2686ef737c2 81 { return ((n >= 0) && (n < numberOfButtons_)); }
MikamiUitOpen 0:a2686ef737c2 82
MikamiUitOpen 0:a2686ef737c2 83 // disallow copy constructor and assignment operator
MikamiUitOpen 0:a2686ef737c2 84 ButtonGroup(const ButtonGroup&);
MikamiUitOpen 0:a2686ef737c2 85 ButtonGroup& operator=(const ButtonGroup&);
MikamiUitOpen 0:a2686ef737c2 86 };
MikamiUitOpen 0:a2686ef737c2 87 }
MikamiUitOpen 0:a2686ef737c2 88 #endif // F746_BUTTON_GROUP_HPP