fini

Dependencies:   F746_GUI mbed

Committer:
MikamiUitOpen
Date:
Thu Mar 31 07:33:36 2016 +0000
Revision:
0:629ff18592b9
Child:
1:b4bcb6fa2a1d
1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:629ff18592b9 1 //---------------------------------------------------------------------
MikamiUitOpen 0:629ff18592b9 2 // GuiBase とその派生クラスのデモプログラム
MikamiUitOpen 0:629ff18592b9 3 // Demo program for GuiBase class and its derivertive classes
MikamiUitOpen 0:629ff18592b9 4 // GuiBase, Button, ButtonGroup, Label, NumericLabel, SeekBar
MikamiUitOpen 0:629ff18592b9 5 //
MikamiUitOpen 0:629ff18592b9 6 // 2016/03/31, Copyright (c) 2016 MIKAMI, Naoki
MikamiUitOpen 0:629ff18592b9 7 //---------------------------------------------------------------------
MikamiUitOpen 0:629ff18592b9 8
MikamiUitOpen 0:629ff18592b9 9 #include "NumericLabel.hpp"
MikamiUitOpen 0:629ff18592b9 10 #include "ButtonGroup.hpp"
MikamiUitOpen 0:629ff18592b9 11 #include "SeekBar.hpp"
MikamiUitOpen 0:629ff18592b9 12
MikamiUitOpen 0:629ff18592b9 13 using namespace Mikami;
MikamiUitOpen 0:629ff18592b9 14
MikamiUitOpen 0:629ff18592b9 15 Ticker timer;
MikamiUitOpen 0:629ff18592b9 16 NumericLabel<float> obj2(10, 150, Label::LEFT, Font16, LCD_COLOR_YELLOW);
MikamiUitOpen 0:629ff18592b9 17
MikamiUitOpen 0:629ff18592b9 18 void TimerIsr()
MikamiUitOpen 0:629ff18592b9 19 {
MikamiUitOpen 0:629ff18592b9 20 static int sec = 0;
MikamiUitOpen 0:629ff18592b9 21 obj2.Draw("%6.1f [s]", (float)(sec++)/10.0f);
MikamiUitOpen 0:629ff18592b9 22 }
MikamiUitOpen 0:629ff18592b9 23
MikamiUitOpen 0:629ff18592b9 24 int main()
MikamiUitOpen 0:629ff18592b9 25 {
MikamiUitOpen 0:629ff18592b9 26 Label obj10(240, 4, "Test: GUI parts", Label::CENTER, Font16);
MikamiUitOpen 0:629ff18592b9 27 Label obj11(240, 20, "Label, NumericLabel, Button, ButtonGroup, SeekBar",
MikamiUitOpen 0:629ff18592b9 28 Label::CENTER);
MikamiUitOpen 0:629ff18592b9 29
MikamiUitOpen 0:629ff18592b9 30 Button button1(10, 50, 50, 40, "1");
MikamiUitOpen 0:629ff18592b9 31 Button button2(62, 50, 50, 40, "2");
MikamiUitOpen 0:629ff18592b9 32
MikamiUitOpen 0:629ff18592b9 33 button1.Erase();
MikamiUitOpen 0:629ff18592b9 34 wait(0.5f);
MikamiUitOpen 0:629ff18592b9 35 button1.Draw();
MikamiUitOpen 0:629ff18592b9 36
MikamiUitOpen 0:629ff18592b9 37 const int NUMBER_BUTTONS = 4;
MikamiUitOpen 0:629ff18592b9 38 const string STR1[NUMBER_BUTTONS] = {"Button1", "Button2", "Button3", "Button4"};
MikamiUitOpen 0:629ff18592b9 39 ButtonGroup bGroup1(160, 50, 66, 40, NUMBER_BUTTONS, STR1, 5, 5, 3, 1,
MikamiUitOpen 0:629ff18592b9 40 Font12, LCD_COLOR_WHITE, 0xFF003538, 0xFFB70068, 0xFFFF7FFF);
MikamiUitOpen 0:629ff18592b9 41
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 0:629ff18592b9 44
MikamiUitOpen 0:629ff18592b9 45 // 引数にデフォルト値を使う場合(横方向)
MikamiUitOpen 0:629ff18592b9 46 SeekBar bar(20, 240, 200, -5, 5, 0);
MikamiUitOpen 0:629ff18592b9 47 NumericLabel<float> numLabel1(20, 200, "%5.1f", bar.GetValue());
MikamiUitOpen 0:629ff18592b9 48 NumericLabel<int> numLabel2(90, 200, "%3d", (int)bar.GetValue());
MikamiUitOpen 0:629ff18592b9 49 NumericLabel<int> numLabel3(120, 200);
MikamiUitOpen 0:629ff18592b9 50
MikamiUitOpen 0:629ff18592b9 51 SeekBar bar2(440, 100, 150, -5, 5, 2, SeekBar::Vertical, LCD_COLOR_GREEN);
MikamiUitOpen 0:629ff18592b9 52 NumericLabel<float> numLabel4(440, 70, "%4.1f", bar2.GetValue(), Label::CENTER);
MikamiUitOpen 0:629ff18592b9 53
MikamiUitOpen 0:629ff18592b9 54 timer.attach(&TimerIsr, 0.1f);
MikamiUitOpen 0:629ff18592b9 55
MikamiUitOpen 0:629ff18592b9 56 while (true)
MikamiUitOpen 0:629ff18592b9 57 {
MikamiUitOpen 0:629ff18592b9 58 if (button1.Touched()) button2.Draw();
MikamiUitOpen 0:629ff18592b9 59 if (button2.Touched()) button1.Draw();
MikamiUitOpen 0:629ff18592b9 60
MikamiUitOpen 0:629ff18592b9 61 int num;
MikamiUitOpen 0:629ff18592b9 62 if (bGroup1.GetTouchedNumber(num))
MikamiUitOpen 0:629ff18592b9 63 printf("Button%d touched\r\n", num+1);
MikamiUitOpen 0:629ff18592b9 64
MikamiUitOpen 0:629ff18592b9 65 if (bGroup2.Touched(0))
MikamiUitOpen 0:629ff18592b9 66 {
MikamiUitOpen 0:629ff18592b9 67 button1.Activate();
MikamiUitOpen 0:629ff18592b9 68 bGroup1.Activate(1);
MikamiUitOpen 0:629ff18592b9 69 }
MikamiUitOpen 0:629ff18592b9 70
MikamiUitOpen 0:629ff18592b9 71 if (bGroup2.Touched(1))
MikamiUitOpen 0:629ff18592b9 72 {
MikamiUitOpen 0:629ff18592b9 73 button1.Inactivate();
MikamiUitOpen 0:629ff18592b9 74 bGroup1.Inactivate(1);
MikamiUitOpen 0:629ff18592b9 75 }
MikamiUitOpen 0:629ff18592b9 76
MikamiUitOpen 0:629ff18592b9 77 if (bar.Slide())
MikamiUitOpen 0:629ff18592b9 78 {
MikamiUitOpen 0:629ff18592b9 79 numLabel1.Draw("%5.1f", bar.GetValue());
MikamiUitOpen 0:629ff18592b9 80 int8_t x = (int8_t)bar.GetValue();
MikamiUitOpen 0:629ff18592b9 81 numLabel2.Draw("%3d", x);
MikamiUitOpen 0:629ff18592b9 82
MikamiUitOpen 0:629ff18592b9 83 numLabel3.Draw("%3d", bar.GetIntValue());
MikamiUitOpen 0:629ff18592b9 84 }
MikamiUitOpen 0:629ff18592b9 85
MikamiUitOpen 0:629ff18592b9 86 if (bar2.Slide()) { numLabel4.Draw("%4.1f", bar2.GetValue()); }
MikamiUitOpen 0:629ff18592b9 87
MikamiUitOpen 0:629ff18592b9 88 wait(0.02f);
MikamiUitOpen 0:629ff18592b9 89 }
MikamiUitOpen 0:629ff18592b9 90 }