Fabien MOULINNEUF
/
Projet
fini
main.cpp@4:4f73a3054a67, 2016-04-12 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Tue Apr 12 04:16:13 2016 +0000
- Revision:
- 4:4f73a3054a67
- Parent:
- 3:e92615be71c7
- Child:
- 6:ea30227e7db0
5
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MikamiUitOpen | 1:b4bcb6fa2a1d | 1 | //-------------------------------------------------------------------------------- |
MikamiUitOpen | 0:629ff18592b9 | 2 | // GuiBase とその派生クラスのデモプログラム |
MikamiUitOpen | 0:629ff18592b9 | 3 | // Demo program for GuiBase class and its derivertive classes |
MikamiUitOpen | 1:b4bcb6fa2a1d | 4 | // |
MikamiUitOpen | 4:4f73a3054a67 | 5 | // GuiBase, Button, ButtonGroup, Label, NumericLabel, BlinkLabel, SeekBar |
MikamiUitOpen | 0:629ff18592b9 | 6 | // |
MikamiUitOpen | 4:4f73a3054a67 | 7 | // 2016/04/12, Copyright (c) 2016 MIKAMI, Naoki |
MikamiUitOpen | 1:b4bcb6fa2a1d | 8 | //-------------------------------------------------------------------------------- |
MikamiUitOpen | 0:629ff18592b9 | 9 | |
MikamiUitOpen | 0:629ff18592b9 | 10 | #include "NumericLabel.hpp" |
MikamiUitOpen | 1:b4bcb6fa2a1d | 11 | #include "BlinkLabel.hpp" |
MikamiUitOpen | 0:629ff18592b9 | 12 | #include "ButtonGroup.hpp" |
MikamiUitOpen | 0:629ff18592b9 | 13 | #include "SeekBar.hpp" |
MikamiUitOpen | 0:629ff18592b9 | 14 | |
MikamiUitOpen | 0:629ff18592b9 | 15 | using namespace Mikami; |
MikamiUitOpen | 0:629ff18592b9 | 16 | |
MikamiUitOpen | 0:629ff18592b9 | 17 | Ticker timer; |
MikamiUitOpen | 3:e92615be71c7 | 18 | NumericLabel<float> obj2(10, 116, Label::LEFT, Font16, LCD_COLOR_YELLOW); |
MikamiUitOpen | 0:629ff18592b9 | 19 | |
MikamiUitOpen | 0:629ff18592b9 | 20 | void TimerIsr() |
MikamiUitOpen | 0:629ff18592b9 | 21 | { |
MikamiUitOpen | 0:629ff18592b9 | 22 | static int sec = 0; |
MikamiUitOpen | 0:629ff18592b9 | 23 | obj2.Draw("%6.1f [s]", (float)(sec++)/10.0f); |
MikamiUitOpen | 0:629ff18592b9 | 24 | } |
MikamiUitOpen | 0:629ff18592b9 | 25 | |
MikamiUitOpen | 0:629ff18592b9 | 26 | int main() |
MikamiUitOpen | 0:629ff18592b9 | 27 | { |
MikamiUitOpen | 4:4f73a3054a67 | 28 | Label obj10(240, 4, "Dome: GUI parts, 2016/04/12", Label::CENTER, Font16); |
MikamiUitOpen | 1:b4bcb6fa2a1d | 29 | Label obj11(240, 24, "Label, NumericLabel, BlinkLabel, Button, ButtonGroup, SeekBar", |
MikamiUitOpen | 0:629ff18592b9 | 30 | Label::CENTER); |
MikamiUitOpen | 0:629ff18592b9 | 31 | |
MikamiUitOpen | 2:b60c218a2432 | 32 | Button button1(10, 50, 50, 40, "1"); |
MikamiUitOpen | 0:629ff18592b9 | 33 | Button button2(62, 50, 50, 40, "2"); |
MikamiUitOpen | 0:629ff18592b9 | 34 | |
MikamiUitOpen | 0:629ff18592b9 | 35 | const int NUMBER_BUTTONS = 4; |
MikamiUitOpen | 0:629ff18592b9 | 36 | const string STR1[NUMBER_BUTTONS] = {"Button1", "Button2", "Button3", "Button4"}; |
MikamiUitOpen | 0:629ff18592b9 | 37 | ButtonGroup bGroup1(160, 50, 66, 40, NUMBER_BUTTONS, STR1, 5, 5, 3, 1, |
MikamiUitOpen | 0:629ff18592b9 | 38 | Font12, LCD_COLOR_WHITE, 0xFF003538, 0xFFB70068, 0xFFFF7FFF); |
MikamiUitOpen | 1:b4bcb6fa2a1d | 39 | NumericLabel<int> bTouch(234, 108, Label::LEFT, Font16, LCD_COLOR_MAGENTA); |
MikamiUitOpen | 0:629ff18592b9 | 40 | |
MikamiUitOpen | 3:e92615be71c7 | 41 | // Control status of bGroup1 |
MikamiUitOpen | 0:629ff18592b9 | 42 | const string STR2[3] = {"0", "1", "2"}; |
MikamiUitOpen | 0:629ff18592b9 | 43 | ButtonGroup bGroup2(160, 150, 66, 40, 3, STR2, 5, 5, 3); |
MikamiUitOpen | 1:b4bcb6fa2a1d | 44 | |
MikamiUitOpen | 3:e92615be71c7 | 45 | // Switching buttons to control barH active or inactive |
MikamiUitOpen | 3:e92615be71c7 | 46 | const string STR3[3] = {"ON", "OFF"}; |
MikamiUitOpen | 3:e92615be71c7 | 47 | ButtonGroup bGroup3(10, 150, 66, 40, 2, STR3, 0, 0, 2); |
MikamiUitOpen | 3:e92615be71c7 | 48 | bGroup3.TouchedColor(0); |
MikamiUitOpen | 3:e92615be71c7 | 49 | |
MikamiUitOpen | 1:b4bcb6fa2a1d | 50 | Button doNotTouch(250, 220, 120, 40, "Don't Touch", Font12, |
MikamiUitOpen | 1:b4bcb6fa2a1d | 51 | GuiBase::ENUM_TEXT, GuiBase::ENUM_BACK, |
MikamiUitOpen | 1:b4bcb6fa2a1d | 52 | LCD_COLOR_DARKGREEN, LCD_COLOR_RED); |
MikamiUitOpen | 0:629ff18592b9 | 53 | |
MikamiUitOpen | 1:b4bcb6fa2a1d | 54 | // Using default value for argument (Horisontal) |
MikamiUitOpen | 4:4f73a3054a67 | 55 | SeekBar barH(20, 250, 200, -5, 5, 0, "-5", "", "5"); |
MikamiUitOpen | 4:4f73a3054a67 | 56 | NumericLabel<float> numLabel1(80, 205, "%5.1f", barH.GetValue()); |
MikamiUitOpen | 4:4f73a3054a67 | 57 | NumericLabel<int> numLabel2(130, 205, "%3d", (int)barH.GetValue()); |
MikamiUitOpen | 4:4f73a3054a67 | 58 | NumericLabel<int> numLabel3(160, 205); |
MikamiUitOpen | 0:629ff18592b9 | 59 | |
MikamiUitOpen | 3:e92615be71c7 | 60 | // SeekBar (vertical) |
MikamiUitOpen | 3:e92615be71c7 | 61 | SeekBar barV(440, 100, 150, -5, 5, 2, SeekBar::Vertical, LCD_COLOR_GREEN); |
MikamiUitOpen | 3:e92615be71c7 | 62 | NumericLabel<float> numLabel4(440, 70, "%4.1f", barV.GetValue(), Label::CENTER); |
MikamiUitOpen | 0:629ff18592b9 | 63 | |
MikamiUitOpen | 0:629ff18592b9 | 64 | timer.attach(&TimerIsr, 0.1f); |
MikamiUitOpen | 0:629ff18592b9 | 65 | |
MikamiUitOpen | 0:629ff18592b9 | 66 | while (true) |
MikamiUitOpen | 0:629ff18592b9 | 67 | { |
MikamiUitOpen | 0:629ff18592b9 | 68 | if (button1.Touched()) button2.Draw(); |
MikamiUitOpen | 0:629ff18592b9 | 69 | if (button2.Touched()) button1.Draw(); |
MikamiUitOpen | 0:629ff18592b9 | 70 | |
MikamiUitOpen | 0:629ff18592b9 | 71 | int num; |
MikamiUitOpen | 0:629ff18592b9 | 72 | if (bGroup1.GetTouchedNumber(num)) |
MikamiUitOpen | 1:b4bcb6fa2a1d | 73 | bTouch.Draw("Button%d touched", num+1); |
MikamiUitOpen | 0:629ff18592b9 | 74 | |
MikamiUitOpen | 1:b4bcb6fa2a1d | 75 | if (bGroup2.GetTouchedNumber(num)) |
MikamiUitOpen | 1:b4bcb6fa2a1d | 76 | switch (num) |
MikamiUitOpen | 0:629ff18592b9 | 77 | { |
MikamiUitOpen | 1:b4bcb6fa2a1d | 78 | case 0: button1.Activate(); |
MikamiUitOpen | 1:b4bcb6fa2a1d | 79 | bGroup1.Activate(1); |
MikamiUitOpen | 1:b4bcb6fa2a1d | 80 | bGroup1.DrawAll(); |
MikamiUitOpen | 1:b4bcb6fa2a1d | 81 | break; |
MikamiUitOpen | 1:b4bcb6fa2a1d | 82 | case 1: button1.Inactivate(); |
MikamiUitOpen | 1:b4bcb6fa2a1d | 83 | bGroup1.Inactivate(1); |
MikamiUitOpen | 1:b4bcb6fa2a1d | 84 | break; |
MikamiUitOpen | 1:b4bcb6fa2a1d | 85 | case 2: for (int n=0; n<4; n++) bGroup1.Erase(n); |
MikamiUitOpen | 1:b4bcb6fa2a1d | 86 | break; |
MikamiUitOpen | 0:629ff18592b9 | 87 | } |
MikamiUitOpen | 0:629ff18592b9 | 88 | |
MikamiUitOpen | 3:e92615be71c7 | 89 | if (barH.Slide()) |
MikamiUitOpen | 0:629ff18592b9 | 90 | { |
MikamiUitOpen | 3:e92615be71c7 | 91 | numLabel1.Draw("%5.1f", barH.GetValue()); |
MikamiUitOpen | 3:e92615be71c7 | 92 | int8_t x = (int8_t)barH.GetValue(); |
MikamiUitOpen | 0:629ff18592b9 | 93 | numLabel2.Draw("%3d", x); |
MikamiUitOpen | 0:629ff18592b9 | 94 | |
MikamiUitOpen | 3:e92615be71c7 | 95 | numLabel3.Draw("%3d", barH.GetIntValue()); |
MikamiUitOpen | 0:629ff18592b9 | 96 | } |
MikamiUitOpen | 0:629ff18592b9 | 97 | |
MikamiUitOpen | 3:e92615be71c7 | 98 | if (barV.Slide()) { numLabel4.Draw("%4.1f", barV.GetValue()); } |
MikamiUitOpen | 1:b4bcb6fa2a1d | 99 | |
MikamiUitOpen | 1:b4bcb6fa2a1d | 100 | // If "doNotTouch" button touched, trapped into endless loop |
MikamiUitOpen | 1:b4bcb6fa2a1d | 101 | if (doNotTouch.Touched()) |
MikamiUitOpen | 1:b4bcb6fa2a1d | 102 | BlinkLabel warning(250, 200, "You must reset", Label::LEFT, Font16); |
MikamiUitOpen | 3:e92615be71c7 | 103 | |
MikamiUitOpen | 3:e92615be71c7 | 104 | // SeekBar active inactive switching |
MikamiUitOpen | 4:4f73a3054a67 | 105 | if (bGroup3.Touched(0)) |
MikamiUitOpen | 4:4f73a3054a67 | 106 | { |
MikamiUitOpen | 4:4f73a3054a67 | 107 | barH.Activate(); |
MikamiUitOpen | 4:4f73a3054a67 | 108 | barV.Activate(); |
MikamiUitOpen | 4:4f73a3054a67 | 109 | } |
MikamiUitOpen | 4:4f73a3054a67 | 110 | if (bGroup3.Touched(1)) |
MikamiUitOpen | 4:4f73a3054a67 | 111 | { |
MikamiUitOpen | 4:4f73a3054a67 | 112 | barH.Inactivate(); |
MikamiUitOpen | 4:4f73a3054a67 | 113 | barV.Inactivate(); |
MikamiUitOpen | 4:4f73a3054a67 | 114 | } |
MikamiUitOpen | 0:629ff18592b9 | 115 | |
MikamiUitOpen | 0:629ff18592b9 | 116 | wait(0.02f); |
MikamiUitOpen | 0:629ff18592b9 | 117 | } |
MikamiUitOpen | 0:629ff18592b9 | 118 | } |