Sample GUI for LPC4088. Base code to begin dev

Dependencies:   DMBasicGUI DMSupport

Fork of lpc4088_displaymodule_shipped_demo by Embedded Artists

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?

UserRevisionLine numberNew 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