Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: BSP_DISCO_F746NG F746_GUI LCD_DISCO_F746NG SDFileSystem TS_DISCO_F746NG ResistiveTouchController Map CYS8218Controller MedianFilter
ChangeValWholeScreen.cpp
00001 #include "ChangeValWholeScreen.hpp" 00002 00003 ChangeValWholeScreen::ChangeValWholeScreen(int *nextScreen, int prevScreen, float *valToChange, string title, bool negative, float min) : 00004 Screen(), 00005 _lbTitle( SCREEN_W/2, 0, title, Label::CENTER, Font24), 00006 _btBack( 0, SCREEN_H-30, 100, 30, "Back"), 00007 _btSave( SCREEN_W-100, SCREEN_H-30, 100, 30, "Save"), 00008 _btNeg( 110, SCREEN_H-100, SCREEN_W-220, 30, "-"), 00009 _btPos( 110, SCREEN_H-100, SCREEN_W-220, 30, "+"), 00010 _npValue( 0, 48, SCREEN_W, SCREEN_H-83), 00011 _nlbValue(SCREEN_W/2, 26, "%.0f", *valToChange, Label::CENTER, Font20) 00012 { 00013 _nextScreen = nextScreen; 00014 _prevScreen = prevScreen; 00015 _value = valToChange; 00016 _min = min; 00017 _neg = negative; 00018 _negVal = false; 00019 } 00020 00021 void ChangeValWholeScreen::Draw() 00022 { 00023 Clear(); 00024 _lbTitle.Draw(); 00025 _btBack.Draw(); 00026 _btSave.Draw(); 00027 _npValue.Draw(); 00028 _nlbValue.Draw(); 00029 00030 if( _neg ) 00031 { 00032 _btNeg.Draw(); 00033 } 00034 } 00035 00036 void ChangeValWholeScreen::Process() 00037 { 00038 if( _btBack.Touched() ) 00039 *_nextScreen = _prevScreen; 00040 00041 if( _btSave.Touched() ) 00042 { 00043 *_value = _tempVal; 00044 *_nextScreen = _prevScreen; 00045 } 00046 00047 if( _npValue.Touched() ) 00048 { 00049 Update(); 00050 Thread::wait(200); 00051 } 00052 00053 00054 if( _neg ) 00055 { 00056 if( _btNeg.IsActive() ) 00057 { 00058 if( _btNeg.Touched() ) 00059 { 00060 _negVal = true; 00061 _btNeg.Inactivate(); 00062 _btNeg.Erase(); 00063 00064 _btPos.Activate(); 00065 _btPos.Draw(); 00066 00067 Update(); 00068 Thread::wait(200); 00069 } 00070 } 00071 else if( _btPos.IsActive() ) 00072 { 00073 if( _btPos.Touched() ) 00074 { 00075 _negVal = false; 00076 _btPos.Inactivate(); 00077 _btPos.Erase(); 00078 00079 _btNeg.Activate(); 00080 _btNeg.Draw(); 00081 00082 Update(); 00083 Thread::wait(200); 00084 } 00085 } 00086 } 00087 } 00088 00089 void ChangeValWholeScreen::Update() 00090 { 00091 _tempVal = _npValue.GetFloat(); 00092 00093 if( _negVal ) 00094 _tempVal *= -1; 00095 00096 if( _tempVal < _min) 00097 _tempVal = _min; 00098 00099 _nlbValue.Draw("%.0f", _tempVal ); 00100 }
Generated on Wed Jul 13 2022 02:28:05 by
1.7.2