Cornelius Bezuidenhout / Mbed OS Heiko

Dependencies:   BSP_DISCO_F746NG F746_GUI LCD_DISCO_F746NG SDFileSystem TS_DISCO_F746NG ResistiveTouchController Map CYS8218Controller MedianFilter

Screens/ChangeValScreen.cpp

Committer:
Generic
Date:
2016-10-26
Revision:
62:58e846621435
Parent:
26:f57db8d6d79e

File content as of revision 62:58e846621435:

#include "ChangeValScreen.hpp"

ChangeValScreen::ChangeValScreen(int *nextScreen, int prevScreen, float *valueToChange, string title) :
  Screen(),
  _lbTitle( SCREEN_W/2, 0, title, Label::CENTER, Font24),
  _btBack( 0, SCREEN_H-30, 100, 30, "Back"),
  _btSave( SCREEN_W-100, SCREEN_H-30, 100, 30, "Save"),
  _npValue( 0, 48, SCREEN_W, SCREEN_H-83),
  _nlbValue(SCREEN_W/2, 26, "%.3f", *valueToChange, Label::CENTER, Font20)
{
  _nextScreen = nextScreen;
  _prevScreen = prevScreen;
  _value = valueToChange;
}

void ChangeValScreen::Draw()
{
  Clear();
  _lbTitle.Draw();
  _btBack.Draw();
  _btSave.Draw();
  _nlbValue.Draw();
  _npValue.Draw();
  _nlbValue.Draw();
}

void ChangeValScreen::Process()
{
  if( _btBack.Touched() )
    *_nextScreen = _prevScreen;

  if( _btSave.Touched() )
  {
    *_value =  _npValue.GetVal();
    *_nextScreen = _prevScreen;
  }

  if( _npValue.Touched() )
  {
    _nlbValue.Draw("%.3f",_npValue.GetVal() );
    Thread::wait(200);
  }

  if( _btSave.Touched() )
  {
    *_value = _npValue.GetVal();
    *_nextScreen = _prevScreen;
  }
}