Revert "Device/Driver/LX: Add small delay after baud rate change"
[xcsoar.git] / test / src / RunTerminal.cpp
blobc93ee4aed0863ba06384259eb0f378237e6338e1
1 /*
2 Copyright_License {
4 XCSoar Glide Computer - http://www.xcsoar.org/
5 Copyright (C) 2000-2013 The XCSoar Project
6 A detailed list of copyright holders can be found in the file "AUTHORS".
8 This program is free software; you can redistribute it and/or
9 modify it under the terms of the GNU General Public License
10 as published by the Free Software Foundation; either version 2
11 of the License, or (at your option) any later version.
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
24 #define ENABLE_SCREEN
26 #include "Main.hpp"
27 #include "Screen/SingleWindow.hpp"
28 #include "Screen/TerminalWindow.hpp"
29 #include "Screen/Timer.hpp"
30 #include "Look/TerminalLook.hpp"
32 class TestWindow : public SingleWindow {
33 TerminalWindow terminal;
35 WindowTimer timer;
37 public:
38 TestWindow(const TerminalLook &look)
39 :terminal(look), timer(*this) {}
41 void Create(PixelSize size) {
42 SingleWindow::Create(_T("RunTerminal"), size);
44 PixelRect rc = GetClientRect();
46 terminal.Create(*this, rc);
49 protected:
50 virtual void OnCreate() override {
51 SingleWindow::OnCreate();
52 timer.Schedule(10);
55 virtual void OnDestroy() override {
56 timer.Cancel();
57 SingleWindow::OnDestroy();
60 virtual bool OnTimer(WindowTimer &_timer) override {
61 if (_timer == timer) {
62 unsigned r = rand();
63 char ch;
64 if ((r % 16) == 0)
65 ch = '\n';
66 else
67 ch = 0x20 + ((r / 16) % 0x60);
68 terminal.Write(&ch, 1);
69 return true;
70 } else
71 return SingleWindow::OnTimer(_timer);
75 static void
76 Main()
78 TerminalLook look;
79 look.Initialise(monospace_font);
81 TestWindow window(look);
82 window.Create({400, 400});
83 window.Show();
85 window.RunEventLoop();