Graphical demo for the LPC4088 Experiment Base Board with one of the Display Expansion Kits. This program displays how to use the emWin library from Segger.

Dependencies:   EALib ewgui mbed

This program requires the emWin library. Instructions and more information.

Committer:
embeddedartists
Date:
Tue Jul 14 11:34:15 2015 +0000
Revision:
0:7f5765fcd048
First version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
embeddedartists 0:7f5765fcd048 1 #include "mbed.h"
embeddedartists 0:7f5765fcd048 2
embeddedartists 0:7f5765fcd048 3 #include "MyWindow.h"
embeddedartists 0:7f5765fcd048 4 #include "EwPainter.h"
embeddedartists 0:7f5765fcd048 5
embeddedartists 0:7f5765fcd048 6 MyWindow::MyWindow(EwWindow* parent) :
embeddedartists 0:7f5765fcd048 7 EwWindow(5, 2, 300, 250, parent),
embeddedartists 0:7f5765fcd048 8 _changeBtn(130, 200, 40, 20, this),
embeddedartists 0:7f5765fcd048 9 _checkBox(0, 0, 80, 25, this),
embeddedartists 0:7f5765fcd048 10 _dropDownLst(0, 0, 100, 50, this){
embeddedartists 0:7f5765fcd048 11
embeddedartists 0:7f5765fcd048 12 _changeBtn.setText("Click");
embeddedartists 0:7f5765fcd048 13 _changeBtn.setClickedListener(this, &MyWindow::clickListener);
embeddedartists 0:7f5765fcd048 14
embeddedartists 0:7f5765fcd048 15 _checkBox.setText("CheckBox");
embeddedartists 0:7f5765fcd048 16 _checkBox.setChangedListener(this, &MyWindow::checkedListener);
embeddedartists 0:7f5765fcd048 17
embeddedartists 0:7f5765fcd048 18 _dropDownLst.addString("First");
embeddedartists 0:7f5765fcd048 19 _dropDownLst.addString("Second");
embeddedartists 0:7f5765fcd048 20 _dropDownLst.addString("Third");
embeddedartists 0:7f5765fcd048 21
embeddedartists 0:7f5765fcd048 22 _clickCnt = 0;
embeddedartists 0:7f5765fcd048 23 _pressed = false;
embeddedartists 0:7f5765fcd048 24 _pressX = 0;
embeddedartists 0:7f5765fcd048 25 _pressY = 0;
embeddedartists 0:7f5765fcd048 26
embeddedartists 0:7f5765fcd048 27 resizeTo(parent->getWidth()-15, parent->getHeight()-35);
embeddedartists 0:7f5765fcd048 28 _changeBtn.moveTo(getWidth()/2-_changeBtn.getWidth()/2,
embeddedartists 0:7f5765fcd048 29 getHeight()-_changeBtn.getHeight()-5);
embeddedartists 0:7f5765fcd048 30
embeddedartists 0:7f5765fcd048 31 _checkBox.moveTo(5, 35);
embeddedartists 0:7f5765fcd048 32
embeddedartists 0:7f5765fcd048 33 _dropDownLst.move(getWidth()-_dropDownLst.getWidth()-5, 5);
embeddedartists 0:7f5765fcd048 34 }
embeddedartists 0:7f5765fcd048 35
embeddedartists 0:7f5765fcd048 36 bool MyWindow::paintEvent() {
embeddedartists 0:7f5765fcd048 37 char buf[30];
embeddedartists 0:7f5765fcd048 38 EwPainter painter;
embeddedartists 0:7f5765fcd048 39
embeddedartists 0:7f5765fcd048 40 painter.setBackgroundColor(EW_LIGHTGRAY);
embeddedartists 0:7f5765fcd048 41 painter.clear();
embeddedartists 0:7f5765fcd048 42
embeddedartists 0:7f5765fcd048 43 if (_clickCnt > 0) {
embeddedartists 0:7f5765fcd048 44 painter.setColor(EW_BLUE);
embeddedartists 0:7f5765fcd048 45 if (_clickCnt == 1) {
embeddedartists 0:7f5765fcd048 46 sprintf(buf, "Clicked %d time", _clickCnt);
embeddedartists 0:7f5765fcd048 47 }
embeddedartists 0:7f5765fcd048 48 else {
embeddedartists 0:7f5765fcd048 49 sprintf(buf, "Clicked %d times", _clickCnt);
embeddedartists 0:7f5765fcd048 50 }
embeddedartists 0:7f5765fcd048 51 painter.drawStringClearEOL(buf, 5, 5);
embeddedartists 0:7f5765fcd048 52 }
embeddedartists 0:7f5765fcd048 53
embeddedartists 0:7f5765fcd048 54 if (_pressed) {
embeddedartists 0:7f5765fcd048 55 painter.setColor(GUI_DARKRED);
embeddedartists 0:7f5765fcd048 56 sprintf(buf, "Touch at %d,%d", _pressX, _pressY);
embeddedartists 0:7f5765fcd048 57 painter.drawStringClearEOL(buf, 5, 15);
embeddedartists 0:7f5765fcd048 58 }
embeddedartists 0:7f5765fcd048 59
embeddedartists 0:7f5765fcd048 60 return true;
embeddedartists 0:7f5765fcd048 61 }
embeddedartists 0:7f5765fcd048 62
embeddedartists 0:7f5765fcd048 63 bool MyWindow::touchEvent(int x, int y, EwTouchState_t state) {
embeddedartists 0:7f5765fcd048 64
embeddedartists 0:7f5765fcd048 65 if (state == TouchStatePressed) {
embeddedartists 0:7f5765fcd048 66 _pressed = true;
embeddedartists 0:7f5765fcd048 67 _pressX = x;
embeddedartists 0:7f5765fcd048 68 _pressY = y;
embeddedartists 0:7f5765fcd048 69 }
embeddedartists 0:7f5765fcd048 70 else {
embeddedartists 0:7f5765fcd048 71 _pressed = false;
embeddedartists 0:7f5765fcd048 72 }
embeddedartists 0:7f5765fcd048 73
embeddedartists 0:7f5765fcd048 74 invalidate();
embeddedartists 0:7f5765fcd048 75
embeddedartists 0:7f5765fcd048 76 return true;
embeddedartists 0:7f5765fcd048 77 }
embeddedartists 0:7f5765fcd048 78
embeddedartists 0:7f5765fcd048 79 void MyWindow::clickListener(EwWindow* w) {
embeddedartists 0:7f5765fcd048 80 _clickCnt++;
embeddedartists 0:7f5765fcd048 81 invalidate();
embeddedartists 0:7f5765fcd048 82 }
embeddedartists 0:7f5765fcd048 83
embeddedartists 0:7f5765fcd048 84 void MyWindow::checkedListener(EwWindow* w) {
embeddedartists 0:7f5765fcd048 85 EwCheckBox* b = (EwCheckBox*)w;
embeddedartists 0:7f5765fcd048 86
embeddedartists 0:7f5765fcd048 87 ewCheckBoxState_t state = b->getState();
embeddedartists 0:7f5765fcd048 88
embeddedartists 0:7f5765fcd048 89 if (state == CheckBoxStateUnchecked) {
embeddedartists 0:7f5765fcd048 90 b->setText("Unchecked");
embeddedartists 0:7f5765fcd048 91 }
embeddedartists 0:7f5765fcd048 92 else {
embeddedartists 0:7f5765fcd048 93 b->setText("Checked");
embeddedartists 0:7f5765fcd048 94 }
embeddedartists 0:7f5765fcd048 95
embeddedartists 0:7f5765fcd048 96 }
embeddedartists 0:7f5765fcd048 97