Sample GUI for LPC4088. Base code to begin dev
Dependencies: DMBasicGUI DMSupport
Fork of lpc4088_displaymodule_shipped_demo by
AppRTCSettings.h@4:a7cbb22e4348, 2015-04-28 (annotated)
- Committer:
- alindvall
- Date:
- Tue Apr 28 12:21:14 2015 +0000
- Revision:
- 4:a7cbb22e4348
- Parent:
- 0:b94e330c98ac
Updated to latest version of the DMSupport and DMBasicGUI libraries
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
alindvall | 0:b94e330c98ac | 1 | /* |
alindvall | 0:b94e330c98ac | 2 | * Copyright 2014 Embedded Artists AB |
alindvall | 0:b94e330c98ac | 3 | * |
alindvall | 0:b94e330c98ac | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
alindvall | 0:b94e330c98ac | 5 | * you may not use this file except in compliance with the License. |
alindvall | 0:b94e330c98ac | 6 | * You may obtain a copy of the License at |
alindvall | 0:b94e330c98ac | 7 | * |
alindvall | 0:b94e330c98ac | 8 | * http://www.apache.org/licenses/LICENSE-2.0 |
alindvall | 0:b94e330c98ac | 9 | * |
alindvall | 0:b94e330c98ac | 10 | * Unless required by applicable law or agreed to in writing, software |
alindvall | 0:b94e330c98ac | 11 | * distributed under the License is distributed on an "AS IS" BASIS, |
alindvall | 0:b94e330c98ac | 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
alindvall | 0:b94e330c98ac | 13 | * See the License for the specific language governing permissions and |
alindvall | 0:b94e330c98ac | 14 | * limitations under the License. |
alindvall | 0:b94e330c98ac | 15 | */ |
alindvall | 0:b94e330c98ac | 16 | |
alindvall | 0:b94e330c98ac | 17 | #ifndef APP_RTC_SETTINGS_H |
alindvall | 0:b94e330c98ac | 18 | #define APP_RTC_SETTINGS_H |
alindvall | 0:b94e330c98ac | 19 | |
alindvall | 0:b94e330c98ac | 20 | #include "App.h" |
alindvall | 0:b94e330c98ac | 21 | #include "DMBoard.h" |
alindvall | 0:b94e330c98ac | 22 | #include "lpc_swim.h" |
alindvall | 0:b94e330c98ac | 23 | #include "ImageButton.h" |
alindvall | 0:b94e330c98ac | 24 | #include "DigitButton.h" |
alindvall | 0:b94e330c98ac | 25 | #include "Resource.h" |
alindvall | 0:b94e330c98ac | 26 | |
alindvall | 0:b94e330c98ac | 27 | /** |
alindvall | 0:b94e330c98ac | 28 | * An App example. Allows changing the real time clock (RTC). |
alindvall | 0:b94e330c98ac | 29 | * |
alindvall | 0:b94e330c98ac | 30 | * The purpose of this example is to show some of the graphics primitives in |
alindvall | 0:b94e330c98ac | 31 | * the SWIM library. |
alindvall | 0:b94e330c98ac | 32 | */ |
alindvall | 0:b94e330c98ac | 33 | class AppRTCSettings : public App { |
alindvall | 0:b94e330c98ac | 34 | public: |
alindvall | 0:b94e330c98ac | 35 | |
alindvall | 0:b94e330c98ac | 36 | AppRTCSettings(); |
alindvall | 0:b94e330c98ac | 37 | virtual ~AppRTCSettings(); |
alindvall | 0:b94e330c98ac | 38 | |
alindvall | 0:b94e330c98ac | 39 | virtual bool setup(); |
alindvall | 0:b94e330c98ac | 40 | virtual void runToCompletion(); |
alindvall | 0:b94e330c98ac | 41 | virtual bool teardown(); |
alindvall | 0:b94e330c98ac | 42 | |
alindvall | 0:b94e330c98ac | 43 | void modifyValue(int mod); |
alindvall | 0:b94e330c98ac | 44 | void changeActiveField(bool next); |
alindvall | 0:b94e330c98ac | 45 | void setActiveField(uint32_t newField); |
alindvall | 0:b94e330c98ac | 46 | |
alindvall | 0:b94e330c98ac | 47 | enum Resources { |
alindvall | 0:b94e330c98ac | 48 | Resource_Ok_button, |
alindvall | 0:b94e330c98ac | 49 | Resource_Cancel_button, |
alindvall | 0:b94e330c98ac | 50 | Resource_ArrowUp_button, |
alindvall | 0:b94e330c98ac | 51 | Resource_ArrowDown_button, |
alindvall | 0:b94e330c98ac | 52 | Resource_ArrowLeft_button, |
alindvall | 0:b94e330c98ac | 53 | Resource_ArrowRight_button, |
alindvall | 0:b94e330c98ac | 54 | Resource_Digits, |
alindvall | 0:b94e330c98ac | 55 | NumResources, |
alindvall | 0:b94e330c98ac | 56 | }; |
alindvall | 0:b94e330c98ac | 57 | |
alindvall | 0:b94e330c98ac | 58 | /** Specifies the resource to use |
alindvall | 0:b94e330c98ac | 59 | * |
alindvall | 0:b94e330c98ac | 60 | * Adds a resource for a specific id. This allows the |
alindvall | 0:b94e330c98ac | 61 | * user program to select e.g. which image to use and |
alindvall | 0:b94e330c98ac | 62 | * if it should be loaded from a file or an array. |
alindvall | 0:b94e330c98ac | 63 | * |
alindvall | 0:b94e330c98ac | 64 | * @param id the identifier |
alindvall | 0:b94e330c98ac | 65 | * @param res the resource |
alindvall | 0:b94e330c98ac | 66 | */ |
alindvall | 0:b94e330c98ac | 67 | void addResource(Resources id, Resource* res); |
alindvall | 0:b94e330c98ac | 68 | |
alindvall | 0:b94e330c98ac | 69 | private: |
alindvall | 0:b94e330c98ac | 70 | enum Buttons { |
alindvall | 0:b94e330c98ac | 71 | ButtonYear, |
alindvall | 0:b94e330c98ac | 72 | ButtonMonth, |
alindvall | 0:b94e330c98ac | 73 | ButtonDay, |
alindvall | 0:b94e330c98ac | 74 | ButtonHour, |
alindvall | 0:b94e330c98ac | 75 | ButtonMinute, |
alindvall | 0:b94e330c98ac | 76 | ButtonSecond, |
alindvall | 0:b94e330c98ac | 77 | ButtonOk, |
alindvall | 0:b94e330c98ac | 78 | ButtonCancel, |
alindvall | 0:b94e330c98ac | 79 | ButtonUp, |
alindvall | 0:b94e330c98ac | 80 | ButtonDown, |
alindvall | 0:b94e330c98ac | 81 | ButtonLeft, |
alindvall | 0:b94e330c98ac | 82 | ButtonRight, |
alindvall | 0:b94e330c98ac | 83 | NumButtons, |
alindvall | 0:b94e330c98ac | 84 | NumFields = ButtonOk, |
alindvall | 0:b94e330c98ac | 85 | }; |
alindvall | 0:b94e330c98ac | 86 | |
alindvall | 0:b94e330c98ac | 87 | Display* _disp; |
alindvall | 0:b94e330c98ac | 88 | SWIM_WINDOW_T* _win; |
alindvall | 0:b94e330c98ac | 89 | void* _fb; |
alindvall | 0:b94e330c98ac | 90 | |
alindvall | 0:b94e330c98ac | 91 | Clickable* _buttons[NumButtons]; |
alindvall | 0:b94e330c98ac | 92 | |
alindvall | 0:b94e330c98ac | 93 | uint32_t _activeField; |
alindvall | 0:b94e330c98ac | 94 | uint32_t _values[NumFields]; |
alindvall | 0:b94e330c98ac | 95 | |
alindvall | 0:b94e330c98ac | 96 | Image::ImageData_t _digitImage; |
alindvall | 0:b94e330c98ac | 97 | |
alindvall | 0:b94e330c98ac | 98 | Resource* _res[NumResources]; |
alindvall | 0:b94e330c98ac | 99 | |
alindvall | 0:b94e330c98ac | 100 | void draw(); |
alindvall | 0:b94e330c98ac | 101 | void markField(int field, bool active); |
alindvall | 0:b94e330c98ac | 102 | void addDateFields(int xoff, int yoff); |
alindvall | 0:b94e330c98ac | 103 | void addTimeFields(int xoff, int yoff); |
alindvall | 0:b94e330c98ac | 104 | }; |
alindvall | 0:b94e330c98ac | 105 | |
alindvall | 0:b94e330c98ac | 106 | #endif |
alindvall | 0:b94e330c98ac | 107 | |
alindvall | 0:b94e330c98ac | 108 |