Repository for import to local machine
Dependencies: DMBasicGUI DMSupport
NumericKeypadPageHandler.h@8:26e49e6955bd, 2017-07-31 (annotated)
- 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?
User | Revision | Line number | New 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 |