Fabien MOULINNEUF
/
Projet
fini
main.cpp@25:586781d009dd, 2018-03-19 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Mon Mar 19 04:21:00 2018 +0000
- Revision:
- 25:586781d009dd
- Parent:
- 24:0191b2cbe7d9
- Child:
- 26:31abf8bdcddb
26
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MikamiUitOpen | 14:36859ef194d1 | 1 | //----------------------------------------------------------------------- |
MikamiUitOpen | 0:629ff18592b9 | 2 | // GuiBase とその派生クラスのデモプログラム |
MikamiUitOpen | 0:629ff18592b9 | 3 | // Demo program for GuiBase class and its derivertive classes |
MikamiUitOpen | 1:b4bcb6fa2a1d | 4 | // |
MikamiUitOpen | 8:8a55f2e374da | 5 | // GuiBase, Button, ButtonGroup, Label, NumericLabel, BlinkLabel, |
MikamiUitOpen | 25:586781d009dd | 6 | // SeekBar, SeekbarGroup, NumericUpDown |
MikamiUitOpen | 0:629ff18592b9 | 7 | // |
MikamiUitOpen | 25:586781d009dd | 8 | // <インポートしたライブラリのリビジョン> |
MikamiUitOpen | 25:586781d009dd | 9 | // F746_GUI 33 |
MikamiUitOpen | 25:586781d009dd | 10 | // mbed 161 |
MikamiUitOpen | 25:586781d009dd | 11 | // |
MikamiUitOpen | 25:586781d009dd | 12 | // 2018/03/12, Copyright (c) 2018 MIKAMI, Naoki |
MikamiUitOpen | 14:36859ef194d1 | 13 | //----------------------------------------------------------------------- |
MikamiUitOpen | 0:629ff18592b9 | 14 | |
MikamiUitOpen | 15:57ef81ebf5bd | 15 | #include "F746_GUI.hpp" |
MikamiUitOpen | 0:629ff18592b9 | 16 | |
MikamiUitOpen | 0:629ff18592b9 | 17 | int main() |
MikamiUitOpen | 0:629ff18592b9 | 18 | { |
MikamiUitOpen | 25:586781d009dd | 19 | Label obj10(240, 2, "Demo: GUI parts, 2018/03/12", Label::CENTER, Font16); |
MikamiUitOpen | 11:0195d802ab3d | 20 | Label obj11(240, 20, "Button, ButtonGroup, Label, NumericLabel, BlinkLabel,", |
MikamiUitOpen | 11:0195d802ab3d | 21 | Label::CENTER); |
MikamiUitOpen | 25:586781d009dd | 22 | Label obj12(240, 32, "SeekBar, SeekbarGroup, NumericUpDown", |
MikamiUitOpen | 0:629ff18592b9 | 23 | Label::CENTER); |
MikamiUitOpen | 0:629ff18592b9 | 24 | |
MikamiUitOpen | 25:586781d009dd | 25 | Button button1(10, 54, 30, 35, "1"); |
MikamiUitOpen | 25:586781d009dd | 26 | Button button2(42, 54, 30, 35, "2"); |
MikamiUitOpen | 0:629ff18592b9 | 27 | |
MikamiUitOpen | 0:629ff18592b9 | 28 | const int NUMBER_BUTTONS = 4; |
MikamiUitOpen | 7:5788d0406bfd | 29 | const string STR1[NUMBER_BUTTONS] = {"Button1", "Button2", "Button3", "Activate"}; |
MikamiUitOpen | 25:586781d009dd | 30 | ButtonGroup bGroup1(168, 54, 66, 35, NUMBER_BUTTONS, STR1, 2, 2, 3, 1, |
MikamiUitOpen | 0:629ff18592b9 | 31 | Font12, LCD_COLOR_WHITE, 0xFF003538, 0xFFB70068, 0xFFFF7FFF); |
MikamiUitOpen | 16:3aed2b59c2c4 | 32 | NumericLabel<int> bTouch(240, 112, "", Label::LEFT, Font12, LCD_COLOR_MAGENTA); |
MikamiUitOpen | 0:629ff18592b9 | 33 | |
MikamiUitOpen | 25:586781d009dd | 34 | // Control status of bGroup2 |
MikamiUitOpen | 25:586781d009dd | 35 | ButtonGroup bGroup2(168, 150, 66, 40, 3, (string[]){"0", "1", "2"}, 5, 5, 3); |
MikamiUitOpen | 7:5788d0406bfd | 36 | bGroup2.InactivateAll(); |
MikamiUitOpen | 1:b4bcb6fa2a1d | 37 | |
MikamiUitOpen | 3:e92615be71c7 | 38 | // Switching buttons to control barH active or inactive |
MikamiUitOpen | 25:586781d009dd | 39 | ButtonGroup bGroup3(78, 54, 40, 35, 2, (string[]){"ON", "OFF"}, 0, 0, 2); |
MikamiUitOpen | 3:e92615be71c7 | 40 | bGroup3.TouchedColor(0); |
MikamiUitOpen | 3:e92615be71c7 | 41 | |
MikamiUitOpen | 1:b4bcb6fa2a1d | 42 | Button doNotTouch(250, 220, 120, 40, "Don't Touch", Font12, |
MikamiUitOpen | 1:b4bcb6fa2a1d | 43 | GuiBase::ENUM_TEXT, GuiBase::ENUM_BACK, |
MikamiUitOpen | 1:b4bcb6fa2a1d | 44 | LCD_COLOR_DARKGREEN, LCD_COLOR_RED); |
MikamiUitOpen | 0:629ff18592b9 | 45 | |
MikamiUitOpen | 7:5788d0406bfd | 46 | // Using default value for argument (Horizontal) |
MikamiUitOpen | 4:4f73a3054a67 | 47 | SeekBar barH(20, 250, 200, -5, 5, 0, "-5", "", "5"); |
MikamiUitOpen | 4:4f73a3054a67 | 48 | NumericLabel<float> numLabel1(80, 205, "%5.1f", barH.GetValue()); |
MikamiUitOpen | 4:4f73a3054a67 | 49 | NumericLabel<int> numLabel2(130, 205, "%3d", (int)barH.GetValue()); |
MikamiUitOpen | 16:3aed2b59c2c4 | 50 | NumericLabel<int> numLabel3(160, 205, "%3d"); |
MikamiUitOpen | 0:629ff18592b9 | 51 | |
MikamiUitOpen | 8:8a55f2e374da | 52 | // SeekbarGroup (vertical) |
MikamiUitOpen | 12:262492b42b04 | 53 | SeekbarGroup barV(410, 130, 121, 2, 45, -6, 6, 2, |
MikamiUitOpen | 11:0195d802ab3d | 54 | SeekBar::Vertical, 0xFFA0FFC0); |
MikamiUitOpen | 21:61059fe1ec47 | 55 | |
MikamiUitOpen | 21:61059fe1ec47 | 56 | Array<NumericLabel<float> *> numLabel4(2); |
MikamiUitOpen | 8:8a55f2e374da | 57 | for (int n=0; n<2; n++) numLabel4[n] = |
MikamiUitOpen | 12:262492b42b04 | 58 | new NumericLabel<float>(410+n*45, 104, "%4.1f", barV.GetValue(n), Label::CENTER); |
MikamiUitOpen | 21:61059fe1ec47 | 59 | |
MikamiUitOpen | 12:262492b42b04 | 60 | NumericLabel<int> numLabel5(455, 92, "%1d", barV.GetIntValue(0), Label::CENTER); |
MikamiUitOpen | 8:8a55f2e374da | 61 | |
MikamiUitOpen | 12:262492b42b04 | 62 | // Test of left-, cenrer-, and right-justified |
MikamiUitOpen | 14:36859ef194d1 | 63 | Label leftJustified(420, 54, "ABC", Label::LEFT); |
MikamiUitOpen | 14:36859ef194d1 | 64 | Label centerJustified(420, 64, "ABC", Label::CENTER); |
MikamiUitOpen | 14:36859ef194d1 | 65 | Label rightJustified1(420, 74, "ABC", Label::RIGHT); |
MikamiUitOpen | 25:586781d009dd | 66 | |
MikamiUitOpen | 25:586781d009dd | 67 | // NumericalUpDown |
MikamiUitOpen | 25:586781d009dd | 68 | NumericUpDown nUd(3, 10, 190, 100, 999, 10); |
MikamiUitOpen | 0:629ff18592b9 | 69 | |
MikamiUitOpen | 0:629ff18592b9 | 70 | while (true) |
MikamiUitOpen | 0:629ff18592b9 | 71 | { |
MikamiUitOpen | 0:629ff18592b9 | 72 | if (button1.Touched()) button2.Draw(); |
MikamiUitOpen | 0:629ff18592b9 | 73 | if (button2.Touched()) button1.Draw(); |
MikamiUitOpen | 0:629ff18592b9 | 74 | |
MikamiUitOpen | 0:629ff18592b9 | 75 | int num; |
MikamiUitOpen | 0:629ff18592b9 | 76 | if (bGroup1.GetTouchedNumber(num)) |
MikamiUitOpen | 1:b4bcb6fa2a1d | 77 | bTouch.Draw("Button%d touched", num+1); |
MikamiUitOpen | 7:5788d0406bfd | 78 | if (num == 3) |
MikamiUitOpen | 7:5788d0406bfd | 79 | bGroup2.ActivateAll(); |
MikamiUitOpen | 0:629ff18592b9 | 80 | |
MikamiUitOpen | 1:b4bcb6fa2a1d | 81 | if (bGroup2.GetTouchedNumber(num)) |
MikamiUitOpen | 1:b4bcb6fa2a1d | 82 | switch (num) |
MikamiUitOpen | 0:629ff18592b9 | 83 | { |
MikamiUitOpen | 1:b4bcb6fa2a1d | 84 | case 0: button1.Activate(); |
MikamiUitOpen | 1:b4bcb6fa2a1d | 85 | bGroup1.Activate(1); |
MikamiUitOpen | 1:b4bcb6fa2a1d | 86 | bGroup1.DrawAll(); |
MikamiUitOpen | 1:b4bcb6fa2a1d | 87 | break; |
MikamiUitOpen | 1:b4bcb6fa2a1d | 88 | case 1: button1.Inactivate(); |
MikamiUitOpen | 1:b4bcb6fa2a1d | 89 | bGroup1.Inactivate(1); |
MikamiUitOpen | 1:b4bcb6fa2a1d | 90 | break; |
MikamiUitOpen | 13:270545d8d62e | 91 | case 2: bGroup1.EraseAll();//for (int n=0; n<4; n++) bGroup1.Erase(n); |
MikamiUitOpen | 8:8a55f2e374da | 92 | for (int n=0; n<2; n++) |
MikamiUitOpen | 8:8a55f2e374da | 93 | { |
MikamiUitOpen | 8:8a55f2e374da | 94 | barV.Draw(n, 0); // reset seekbar |
MikamiUitOpen | 8:8a55f2e374da | 95 | numLabel4[n]->Draw("%4.1f", barV.GetValue(n)); |
MikamiUitOpen | 8:8a55f2e374da | 96 | } |
MikamiUitOpen | 1:b4bcb6fa2a1d | 97 | break; |
MikamiUitOpen | 0:629ff18592b9 | 98 | } |
MikamiUitOpen | 0:629ff18592b9 | 99 | |
MikamiUitOpen | 3:e92615be71c7 | 100 | if (barH.Slide()) |
MikamiUitOpen | 0:629ff18592b9 | 101 | { |
MikamiUitOpen | 3:e92615be71c7 | 102 | numLabel1.Draw("%5.1f", barH.GetValue()); |
MikamiUitOpen | 3:e92615be71c7 | 103 | int8_t x = (int8_t)barH.GetValue(); |
MikamiUitOpen | 0:629ff18592b9 | 104 | numLabel2.Draw("%3d", x); |
MikamiUitOpen | 0:629ff18592b9 | 105 | |
MikamiUitOpen | 16:3aed2b59c2c4 | 106 | numLabel3.Draw(barH.GetIntValue()); |
MikamiUitOpen | 0:629ff18592b9 | 107 | } |
MikamiUitOpen | 0:629ff18592b9 | 108 | |
MikamiUitOpen | 8:8a55f2e374da | 109 | int sbNum; |
MikamiUitOpen | 8:8a55f2e374da | 110 | if (barV.GetSlidedNumber(sbNum)) |
MikamiUitOpen | 12:262492b42b04 | 111 | { |
MikamiUitOpen | 12:262492b42b04 | 112 | if (sbNum == 0) numLabel4[sbNum]->Draw("%4.1f", barV.GetValue(sbNum)); |
MikamiUitOpen | 12:262492b42b04 | 113 | else numLabel4[sbNum]->Draw("%4.1f", barV.GetValue(sbNum)); |
MikamiUitOpen | 12:262492b42b04 | 114 | if (sbNum == 1) numLabel5.Draw("%1d", barV.GetIntValue(sbNum)); |
MikamiUitOpen | 12:262492b42b04 | 115 | } |
MikamiUitOpen | 1:b4bcb6fa2a1d | 116 | // If "doNotTouch" button touched, trapped into endless loop |
MikamiUitOpen | 1:b4bcb6fa2a1d | 117 | if (doNotTouch.Touched()) |
MikamiUitOpen | 1:b4bcb6fa2a1d | 118 | BlinkLabel warning(250, 200, "You must reset", Label::LEFT, Font16); |
MikamiUitOpen | 3:e92615be71c7 | 119 | |
MikamiUitOpen | 3:e92615be71c7 | 120 | // SeekBar active inactive switching |
MikamiUitOpen | 4:4f73a3054a67 | 121 | if (bGroup3.Touched(0)) |
MikamiUitOpen | 4:4f73a3054a67 | 122 | { |
MikamiUitOpen | 4:4f73a3054a67 | 123 | barH.Activate(); |
MikamiUitOpen | 8:8a55f2e374da | 124 | barV.ActivateAll(); |
MikamiUitOpen | 4:4f73a3054a67 | 125 | } |
MikamiUitOpen | 4:4f73a3054a67 | 126 | if (bGroup3.Touched(1)) |
MikamiUitOpen | 4:4f73a3054a67 | 127 | { |
MikamiUitOpen | 4:4f73a3054a67 | 128 | barH.Inactivate(); |
MikamiUitOpen | 8:8a55f2e374da | 129 | barV.InactivateAll(); |
MikamiUitOpen | 4:4f73a3054a67 | 130 | } |
MikamiUitOpen | 25:586781d009dd | 131 | |
MikamiUitOpen | 25:586781d009dd | 132 | if (nUd.Touched()) {} // Example of NumericalUpDown |
MikamiUitOpen | 0:629ff18592b9 | 133 | |
MikamiUitOpen | 0:629ff18592b9 | 134 | wait(0.02f); |
MikamiUitOpen | 0:629ff18592b9 | 135 | } |
MikamiUitOpen | 0:629ff18592b9 | 136 | } |
MikamiUitOpen | 21:61059fe1ec47 | 137 |