Demo program for GuiBase class and its derivertive classes. GuiBase とその派生クラスのデモプログラム. GuiBase, Button, ButtonGroup, Label, BlinkLabel, NumericLabel, SeekBar, SeekbarGroup, NumericUpDown

Dependencies:   F746_GUI mbed

Committer:
MikamiUitOpen
Date:
Sun Apr 02 07:05:27 2017 +0000
Revision:
24:0191b2cbe7d9
Parent:
23:6100b7d1de93
Child:
25:586781d009dd
25, F746_GUI ????BSP_DISCO_F746NG, LCD_DISCO_F746NG, TS_DISCO_F746NG ?????

Who changed what in which revision?

UserRevisionLine numberNew 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 8:8a55f2e374da 6 // SeekBar, SeekbarGroup
MikamiUitOpen 0:629ff18592b9 7 //
MikamiUitOpen 24:0191b2cbe7d9 8 // 2017/04/02, Copyright (c) 2017 MIKAMI, Naoki
MikamiUitOpen 14:36859ef194d1 9 //-----------------------------------------------------------------------
MikamiUitOpen 0:629ff18592b9 10
MikamiUitOpen 15:57ef81ebf5bd 11 #include "F746_GUI.hpp"
MikamiUitOpen 0:629ff18592b9 12
MikamiUitOpen 0:629ff18592b9 13 int main()
MikamiUitOpen 0:629ff18592b9 14 {
MikamiUitOpen 23:6100b7d1de93 15 Label obj10(240, 2, "Dome: GUI parts, 2017/03/17", Label::CENTER, Font16);
MikamiUitOpen 11:0195d802ab3d 16 Label obj11(240, 20, "Button, ButtonGroup, Label, NumericLabel, BlinkLabel,",
MikamiUitOpen 11:0195d802ab3d 17 Label::CENTER);
MikamiUitOpen 11:0195d802ab3d 18 Label obj12(240, 32, "SeekBar, SeekbarGroup",
MikamiUitOpen 0:629ff18592b9 19 Label::CENTER);
MikamiUitOpen 0:629ff18592b9 20
MikamiUitOpen 14:36859ef194d1 21 Button button1(10, 54, 50, 40, "1");
MikamiUitOpen 14:36859ef194d1 22 Button button2(62, 54, 50, 40, "2");
MikamiUitOpen 0:629ff18592b9 23
MikamiUitOpen 0:629ff18592b9 24 const int NUMBER_BUTTONS = 4;
MikamiUitOpen 7:5788d0406bfd 25 const string STR1[NUMBER_BUTTONS] = {"Button1", "Button2", "Button3", "Activate"};
MikamiUitOpen 14:36859ef194d1 26 ButtonGroup bGroup1(160, 54, 66, 40, NUMBER_BUTTONS, STR1, 5, 5, 3, 1,
MikamiUitOpen 0:629ff18592b9 27 Font12, LCD_COLOR_WHITE, 0xFF003538, 0xFFB70068, 0xFFFF7FFF);
MikamiUitOpen 16:3aed2b59c2c4 28 NumericLabel<int> bTouch(240, 112, "", Label::LEFT, Font12, LCD_COLOR_MAGENTA);
MikamiUitOpen 0:629ff18592b9 29
MikamiUitOpen 3:e92615be71c7 30 // Control status of bGroup1
MikamiUitOpen 15:57ef81ebf5bd 31 ButtonGroup bGroup2(160, 150, 66, 40, 3, (string[]){"0", "1", "2"}, 5, 5, 3);
MikamiUitOpen 7:5788d0406bfd 32 bGroup2.InactivateAll();
MikamiUitOpen 1:b4bcb6fa2a1d 33
MikamiUitOpen 3:e92615be71c7 34 // Switching buttons to control barH active or inactive
MikamiUitOpen 15:57ef81ebf5bd 35 ButtonGroup bGroup3(10, 150, 66, 40, 2, (string[]){"ON", "OFF"}, 0, 0, 2);
MikamiUitOpen 3:e92615be71c7 36 bGroup3.TouchedColor(0);
MikamiUitOpen 3:e92615be71c7 37
MikamiUitOpen 1:b4bcb6fa2a1d 38 Button doNotTouch(250, 220, 120, 40, "Don't Touch", Font12,
MikamiUitOpen 1:b4bcb6fa2a1d 39 GuiBase::ENUM_TEXT, GuiBase::ENUM_BACK,
MikamiUitOpen 1:b4bcb6fa2a1d 40 LCD_COLOR_DARKGREEN, LCD_COLOR_RED);
MikamiUitOpen 0:629ff18592b9 41
MikamiUitOpen 7:5788d0406bfd 42 // Using default value for argument (Horizontal)
MikamiUitOpen 4:4f73a3054a67 43 SeekBar barH(20, 250, 200, -5, 5, 0, "-5", "", "5");
MikamiUitOpen 4:4f73a3054a67 44 NumericLabel<float> numLabel1(80, 205, "%5.1f", barH.GetValue());
MikamiUitOpen 4:4f73a3054a67 45 NumericLabel<int> numLabel2(130, 205, "%3d", (int)barH.GetValue());
MikamiUitOpen 16:3aed2b59c2c4 46 NumericLabel<int> numLabel3(160, 205, "%3d");
MikamiUitOpen 0:629ff18592b9 47
MikamiUitOpen 8:8a55f2e374da 48 // SeekbarGroup (vertical)
MikamiUitOpen 12:262492b42b04 49 SeekbarGroup barV(410, 130, 121, 2, 45, -6, 6, 2,
MikamiUitOpen 11:0195d802ab3d 50 SeekBar::Vertical, 0xFFA0FFC0);
MikamiUitOpen 21:61059fe1ec47 51
MikamiUitOpen 21:61059fe1ec47 52 Array<NumericLabel<float> *> numLabel4(2);
MikamiUitOpen 8:8a55f2e374da 53 for (int n=0; n<2; n++) numLabel4[n] =
MikamiUitOpen 12:262492b42b04 54 new NumericLabel<float>(410+n*45, 104, "%4.1f", barV.GetValue(n), Label::CENTER);
MikamiUitOpen 21:61059fe1ec47 55
MikamiUitOpen 12:262492b42b04 56 NumericLabel<int> numLabel5(455, 92, "%1d", barV.GetIntValue(0), Label::CENTER);
MikamiUitOpen 8:8a55f2e374da 57
MikamiUitOpen 12:262492b42b04 58 // Test of left-, cenrer-, and right-justified
MikamiUitOpen 14:36859ef194d1 59 Label leftJustified(420, 54, "ABC", Label::LEFT);
MikamiUitOpen 14:36859ef194d1 60 Label centerJustified(420, 64, "ABC", Label::CENTER);
MikamiUitOpen 14:36859ef194d1 61 Label rightJustified1(420, 74, "ABC", Label::RIGHT);
MikamiUitOpen 0:629ff18592b9 62
MikamiUitOpen 0:629ff18592b9 63 while (true)
MikamiUitOpen 0:629ff18592b9 64 {
MikamiUitOpen 0:629ff18592b9 65 if (button1.Touched()) button2.Draw();
MikamiUitOpen 0:629ff18592b9 66 if (button2.Touched()) button1.Draw();
MikamiUitOpen 0:629ff18592b9 67
MikamiUitOpen 0:629ff18592b9 68 int num;
MikamiUitOpen 0:629ff18592b9 69 if (bGroup1.GetTouchedNumber(num))
MikamiUitOpen 1:b4bcb6fa2a1d 70 bTouch.Draw("Button%d touched", num+1);
MikamiUitOpen 7:5788d0406bfd 71 if (num == 3)
MikamiUitOpen 7:5788d0406bfd 72 bGroup2.ActivateAll();
MikamiUitOpen 0:629ff18592b9 73
MikamiUitOpen 1:b4bcb6fa2a1d 74 if (bGroup2.GetTouchedNumber(num))
MikamiUitOpen 1:b4bcb6fa2a1d 75 switch (num)
MikamiUitOpen 0:629ff18592b9 76 {
MikamiUitOpen 1:b4bcb6fa2a1d 77 case 0: button1.Activate();
MikamiUitOpen 1:b4bcb6fa2a1d 78 bGroup1.Activate(1);
MikamiUitOpen 1:b4bcb6fa2a1d 79 bGroup1.DrawAll();
MikamiUitOpen 1:b4bcb6fa2a1d 80 break;
MikamiUitOpen 1:b4bcb6fa2a1d 81 case 1: button1.Inactivate();
MikamiUitOpen 1:b4bcb6fa2a1d 82 bGroup1.Inactivate(1);
MikamiUitOpen 1:b4bcb6fa2a1d 83 break;
MikamiUitOpen 13:270545d8d62e 84 case 2: bGroup1.EraseAll();//for (int n=0; n<4; n++) bGroup1.Erase(n);
MikamiUitOpen 8:8a55f2e374da 85 for (int n=0; n<2; n++)
MikamiUitOpen 8:8a55f2e374da 86 {
MikamiUitOpen 8:8a55f2e374da 87 barV.Draw(n, 0); // reset seekbar
MikamiUitOpen 8:8a55f2e374da 88 numLabel4[n]->Draw("%4.1f", barV.GetValue(n));
MikamiUitOpen 8:8a55f2e374da 89 }
MikamiUitOpen 1:b4bcb6fa2a1d 90 break;
MikamiUitOpen 0:629ff18592b9 91 }
MikamiUitOpen 0:629ff18592b9 92
MikamiUitOpen 3:e92615be71c7 93 if (barH.Slide())
MikamiUitOpen 0:629ff18592b9 94 {
MikamiUitOpen 3:e92615be71c7 95 numLabel1.Draw("%5.1f", barH.GetValue());
MikamiUitOpen 3:e92615be71c7 96 int8_t x = (int8_t)barH.GetValue();
MikamiUitOpen 0:629ff18592b9 97 numLabel2.Draw("%3d", x);
MikamiUitOpen 0:629ff18592b9 98
MikamiUitOpen 16:3aed2b59c2c4 99 numLabel3.Draw(barH.GetIntValue());
MikamiUitOpen 0:629ff18592b9 100 }
MikamiUitOpen 0:629ff18592b9 101
MikamiUitOpen 8:8a55f2e374da 102 int sbNum;
MikamiUitOpen 8:8a55f2e374da 103 if (barV.GetSlidedNumber(sbNum))
MikamiUitOpen 12:262492b42b04 104 {
MikamiUitOpen 12:262492b42b04 105 if (sbNum == 0) numLabel4[sbNum]->Draw("%4.1f", barV.GetValue(sbNum));
MikamiUitOpen 12:262492b42b04 106 else numLabel4[sbNum]->Draw("%4.1f", barV.GetValue(sbNum));
MikamiUitOpen 12:262492b42b04 107 if (sbNum == 1) numLabel5.Draw("%1d", barV.GetIntValue(sbNum));
MikamiUitOpen 12:262492b42b04 108 }
MikamiUitOpen 1:b4bcb6fa2a1d 109 // If "doNotTouch" button touched, trapped into endless loop
MikamiUitOpen 1:b4bcb6fa2a1d 110 if (doNotTouch.Touched())
MikamiUitOpen 1:b4bcb6fa2a1d 111 BlinkLabel warning(250, 200, "You must reset", Label::LEFT, Font16);
MikamiUitOpen 3:e92615be71c7 112
MikamiUitOpen 3:e92615be71c7 113 // SeekBar active inactive switching
MikamiUitOpen 4:4f73a3054a67 114 if (bGroup3.Touched(0))
MikamiUitOpen 4:4f73a3054a67 115 {
MikamiUitOpen 4:4f73a3054a67 116 barH.Activate();
MikamiUitOpen 8:8a55f2e374da 117 barV.ActivateAll();
MikamiUitOpen 4:4f73a3054a67 118 }
MikamiUitOpen 4:4f73a3054a67 119 if (bGroup3.Touched(1))
MikamiUitOpen 4:4f73a3054a67 120 {
MikamiUitOpen 4:4f73a3054a67 121 barH.Inactivate();
MikamiUitOpen 8:8a55f2e374da 122 barV.InactivateAll();
MikamiUitOpen 4:4f73a3054a67 123 }
MikamiUitOpen 0:629ff18592b9 124
MikamiUitOpen 0:629ff18592b9 125 wait(0.02f);
MikamiUitOpen 0:629ff18592b9 126 }
MikamiUitOpen 0:629ff18592b9 127 }
MikamiUitOpen 21:61059fe1ec47 128