Repository for import to local machine

Dependencies:   DMBasicGUI DMSupport

Committer:
jmitc91516
Date:
Mon Jul 31 15:37:57 2017 +0000
Revision:
8:26e49e6955bd
Parent:
6:dba3fbdfd5da
Method ramp scrolling improved, and more bitmaps moved to QSPI memory

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jmitc91516 1:a5258871b33d 1 #ifndef NUMERICKEYPADHANDLER_H
jmitc91516 1:a5258871b33d 2 #define NUMERICKEYPADHANDLER_H
jmitc91516 1:a5258871b33d 3
jmitc91516 1:a5258871b33d 4 #include "mbed.h"
jmitc91516 1:a5258871b33d 5 #include "DMBoard.h"
jmitc91516 1:a5258871b33d 6
jmitc91516 1:a5258871b33d 7 #include "USBHostGC.h"
jmitc91516 1:a5258871b33d 8
jmitc91516 1:a5258871b33d 9 #include "GuiLib.h"
jmitc91516 1:a5258871b33d 10
jmitc91516 1:a5258871b33d 11 typedef void (*ApplyFunctionPtr)(USBDeviceConnected* usbDevice, USBHostGC* usbHostGC);
jmitc91516 1:a5258871b33d 12
jmitc91516 1:a5258871b33d 13 /*
jmitc91516 1:a5258871b33d 14 This class handles user interaction with the easyGUI "NumericKeypadPage".
jmitc91516 1:a5258871b33d 15
jmitc91516 1:a5258871b33d 16 Note that this class is a singleton - we do not need or want there to be more than one instance of it
jmitc91516 1:a5258871b33d 17 (we will not show more than one "NumericKeypadPage" to the user at the same time).
jmitc91516 1:a5258871b33d 18 */
jmitc91516 1:a5258871b33d 19 class NumericKeypadPageHandler {
jmitc91516 1:a5258871b33d 20 public:
jmitc91516 1:a5258871b33d 21 /**
jmitc91516 1:a5258871b33d 22 * Static method to create (if necessary) and retrieve the single NumericKeypadPageHandler instance
jmitc91516 1:a5258871b33d 23 */
jmitc91516 1:a5258871b33d 24 static NumericKeypadPageHandler * GetInstance(USBDeviceConnected* newUsbDevice, USBHostGC* newUsbHostGC);
jmitc91516 1:a5258871b33d 25
jmitc91516 1:a5258871b33d 26 bool TouchAreaIsOnNumericKeypadPage(int touchAreaIndex);
jmitc91516 1:a5258871b33d 27
jmitc91516 1:a5258871b33d 28 bool DealWithTouch(int touchAreaIndex);
jmitc91516 1:a5258871b33d 29
jmitc91516 1:a5258871b33d 30 void StartEditing(int initialValue, unsigned int placesOfDecimals = 0, bool wantNegative = false);
jmitc91516 1:a5258871b33d 31 void StartEditing(char* initialValue, unsigned int placesOfDecimals = 0, bool wantNegative = false);
jmitc91516 1:a5258871b33d 32
jmitc91516 1:a5258871b33d 33 void StartEditingInLockMode(unsigned int newValidLockCode, int newPageToDisplayIfLockCodeValid,
jmitc91516 1:a5258871b33d 34 GuiConst_TEXT* newEasyGUIVariableForInvalidLockCodeMessage,
jmitc91516 1:a5258871b33d 35 char *newInvalidLockCodeMessage);
jmitc91516 1:a5258871b33d 36
jmitc91516 1:a5258871b33d 37 void SetEasyGUIVariableToEdit(GuiConst_TEXT* easyGUIVariable);
jmitc91516 1:a5258871b33d 38 void SetInternalVariableToEdit(unsigned int* internalVariable);
jmitc91516 1:a5258871b33d 39
jmitc91516 1:a5258871b33d 40 void SetEasyGUICallingPage(int newCallingPage);
jmitc91516 1:a5258871b33d 41
jmitc91516 1:a5258871b33d 42 void SetEditVariableRange(int min, int max);
jmitc91516 1:a5258871b33d 43
jmitc91516 1:a5258871b33d 44 void SetEditVariableName(char *name);
jmitc91516 1:a5258871b33d 45
jmitc91516 6:dba3fbdfd5da 46 void SetEditVariableUnits(const char *units);
jmitc91516 1:a5258871b33d 47
jmitc91516 1:a5258871b33d 48 void SetApplyFunctionPtr(ApplyFunctionPtr newApplyFunctionPtr);
jmitc91516 1:a5258871b33d 49
jmitc91516 1:a5258871b33d 50 void DisplayEasyGUIPage(void);
jmitc91516 1:a5258871b33d 51
jmitc91516 1:a5258871b33d 52
jmitc91516 1:a5258871b33d 53 private:
jmitc91516 1:a5258871b33d 54 static NumericKeypadPageHandler * theNumericKeypadPageHandlerInstance;
jmitc91516 1:a5258871b33d 55
jmitc91516 1:a5258871b33d 56 // singleton class -> constructor is private
jmitc91516 1:a5258871b33d 57 NumericKeypadPageHandler(USBDeviceConnected* newUsbDevice, USBHostGC* newUsbHostGC);
jmitc91516 1:a5258871b33d 58 ~NumericKeypadPageHandler();
jmitc91516 1:a5258871b33d 59
jmitc91516 1:a5258871b33d 60 USBDeviceConnected* usbDevice;
jmitc91516 1:a5258871b33d 61 USBHostGC* usbHostGC;
jmitc91516 1:a5258871b33d 62
jmitc91516 1:a5258871b33d 63 ApplyFunctionPtr applyFunctionPtr;
jmitc91516 1:a5258871b33d 64
jmitc91516 1:a5258871b33d 65 void DealWithDeleteKey(void);
jmitc91516 1:a5258871b33d 66
jmitc91516 1:a5258871b33d 67 void DealWithNumberKey(int touchAreaIndex);
jmitc91516 1:a5258871b33d 68
jmitc91516 1:a5258871b33d 69 void DealWithDotKey(void);
jmitc91516 1:a5258871b33d 70
jmitc91516 1:a5258871b33d 71 void DealWithPlusMinusKey(void);
jmitc91516 1:a5258871b33d 72
jmitc91516 1:a5258871b33d 73 void DealWithApplyKey(void);
jmitc91516 1:a5258871b33d 74
jmitc91516 1:a5258871b33d 75 void DealWithCancelKey(void);
jmitc91516 1:a5258871b33d 76
jmitc91516 1:a5258871b33d 77 void DealWithClearKey(void);
jmitc91516 1:a5258871b33d 78
jmitc91516 1:a5258871b33d 79 GuiConst_TEXT* easyGUIVariableToEdit;
jmitc91516 1:a5258871b33d 80 unsigned int* internalVariableToEdit;
jmitc91516 1:a5258871b33d 81 char editVariableUnits[40];
jmitc91516 1:a5258871b33d 82
jmitc91516 1:a5258871b33d 83 int easyGUICallingPage;
jmitc91516 1:a5258871b33d 84
jmitc91516 1:a5258871b33d 85 int minimumValue;
jmitc91516 1:a5258871b33d 86 int maximumValue;
jmitc91516 1:a5258871b33d 87
jmitc91516 1:a5258871b33d 88 unsigned int allowedDecimalPlaces;
jmitc91516 1:a5258871b33d 89 bool editingFractionalPart;
jmitc91516 1:a5258871b33d 90 unsigned int LengthOfFractionalPart(void);
jmitc91516 1:a5258871b33d 91 void PadFractionalPartWithZeroesIfNecessary(void);
jmitc91516 1:a5258871b33d 92
jmitc91516 1:a5258871b33d 93 bool allowNegativeNumbers;
jmitc91516 1:a5258871b33d 94
jmitc91516 1:a5258871b33d 95 bool inLockMode;
jmitc91516 1:a5258871b33d 96 unsigned int validLockCode;
jmitc91516 1:a5258871b33d 97 GuiConst_TEXT* easyGUIVariableForInvalidLockCodeMessage;
jmitc91516 1:a5258871b33d 98 char invalidLockCodeMessage[50];
jmitc91516 1:a5258871b33d 99 int pageToDisplayIfLockCodeValid;
jmitc91516 1:a5258871b33d 100 };
jmitc91516 1:a5258871b33d 101
jmitc91516 1:a5258871b33d 102 #endif // NUMERICKEYPADHANDLER_H