Cornelius Bezuidenhout / Mbed OS Heiko

Dependencies:   BSP_DISCO_F746NG F746_GUI LCD_DISCO_F746NG SDFileSystem TS_DISCO_F746NG ResistiveTouchController Map CYS8218Controller MedianFilter

Screens/ZeroPlateScreen.cpp

Committer:
Kerneels Bezuidenhout
Date:
2016-10-02
Revision:
8:366b49506187
Child:
9:355a59fd962b

File content as of revision 8:366b49506187:

#inclue "ZeroPlateScreen.hpp"

ZeroPlateScreen::ZeroPlateScreen(int *nextScreen, float *zeroAlpha, float *zeroBeta, bool *saved) :
  Screen(),
  _lbTitle( SCREEN_W/2, 0, "Zero Plate", Label::CENTER, Font24),
  _btBack( 0, SCREEN_H-30, 100, 30, "Back"),
  _btSave( SCREEN_W-100, SCREEN_H-30, 100, 30, "Save"),
  _btAlphaUp( (SCREEN_W/2)-26, 28, 72, 72, "▲"),
  _btAlphaDown( (SCREEN_W/2)-26, SCREEN_H-72, 72, 72, "▼"),
  _btBetaUp( (SCREEN_W/2)-103, (SCREEN_H/2)-26, 72, 72, "◄"),
  _btBetaDown( SCREEN_W/2)+77,(SCREEN_H/2)-26,72,72,"►")
{
  _nextScreen = nextScreen;
  _zeroAlpha = zeroAlpha;
  _zeroBeta = zeroBeta;
  _saved = saved;
}

void ZeroPlateScreen::Draw()
{
  Clear();
  _lbTitle();
  _btBack();
  _btSave.Draw();
  _btAlphaUp.Draw();
  _btAlphaDown.Draw();
  _btBetaUp.Draw();
  _btBetaDown.Draw();
}

void ZeroPlateScreen::Process()
{
  if( _btBack.Touched() )
    *_nextScreen = MAIN_SETTINGS_SCREEN;

  if( _btSave.Touched() )
    *_saved = true;

  if( _btAlphaUp.Touched() )
  {
    *_zeroAlpha += 1;
    _btAlphaUp.Draw();
    Thread::wait(200);
  }

  if( _btAlphaDown.Touched() )
  {
    *_zeroAlpha -= 1;
    _btAlphaDown.Draw();
    Thread::wait(200);
  }

  if( _btBetaUp.Touched() )
  {
    *_zeroBeta += 1;
    _btBetaUp.Draw();
    Thread::wait(200);
  }

  if( _btBetaDown.Draw() )
  {
    *_zeroBeta -= 1;
    _btBetaDown.Draw();
    Thrad::wait(200);
  }
}