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_NETWORK_SETTINGS_H
alindvall 0:b94e330c98ac 18 #define APP_NETWORK_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 "Button.h"
alindvall 0:b94e330c98ac 24 #include "ImageButton.h"
alindvall 0:b94e330c98ac 25 #include "DigitButton.h"
alindvall 0:b94e330c98ac 26 #include "Resource.h"
alindvall 0:b94e330c98ac 27
alindvall 0:b94e330c98ac 28 /**
alindvall 0:b94e330c98ac 29 * An App example. Allows changing IP Address, Netmask and Gateway.
alindvall 0:b94e330c98ac 30 *
alindvall 0:b94e330c98ac 31 * The purpose of this example is to show some of the graphics primitives in
alindvall 0:b94e330c98ac 32 * the SWIM library.
alindvall 0:b94e330c98ac 33 */
alindvall 0:b94e330c98ac 34 class AppNetworkSettings : public App {
alindvall 0:b94e330c98ac 35 public:
alindvall 0:b94e330c98ac 36
alindvall 0:b94e330c98ac 37 AppNetworkSettings();
alindvall 0:b94e330c98ac 38 virtual ~AppNetworkSettings();
alindvall 0:b94e330c98ac 39
alindvall 0:b94e330c98ac 40 virtual bool setup();
alindvall 0:b94e330c98ac 41 virtual void runToCompletion();
alindvall 0:b94e330c98ac 42 virtual bool teardown();
alindvall 0:b94e330c98ac 43
alindvall 0:b94e330c98ac 44 void modifyValue(int mod);
alindvall 0:b94e330c98ac 45 void changeActiveField(bool next);
alindvall 0:b94e330c98ac 46 void setActiveField(uint32_t newField);
alindvall 0:b94e330c98ac 47
alindvall 0:b94e330c98ac 48 enum Resources {
alindvall 0:b94e330c98ac 49 Resource_Ok_button,
alindvall 0:b94e330c98ac 50 Resource_Cancel_button,
alindvall 0:b94e330c98ac 51 Resource_ArrowUp_button,
alindvall 0:b94e330c98ac 52 Resource_ArrowDown_button,
alindvall 0:b94e330c98ac 53 Resource_ArrowLeft_button,
alindvall 0:b94e330c98ac 54 Resource_ArrowRight_button,
alindvall 0:b94e330c98ac 55 Resource_Digits,
alindvall 0:b94e330c98ac 56 NumResources,
alindvall 0:b94e330c98ac 57 };
alindvall 0:b94e330c98ac 58
alindvall 0:b94e330c98ac 59 /** Specifies the resource to use
alindvall 0:b94e330c98ac 60 *
alindvall 0:b94e330c98ac 61 * Adds a resource for a specific id. This allows the
alindvall 0:b94e330c98ac 62 * user program to select e.g. which image to use and
alindvall 0:b94e330c98ac 63 * if it should be loaded from a file or an array.
alindvall 0:b94e330c98ac 64 *
alindvall 0:b94e330c98ac 65 * @param id the identifier
alindvall 0:b94e330c98ac 66 * @param res the resource
alindvall 0:b94e330c98ac 67 */
alindvall 0:b94e330c98ac 68 void addResource(Resources id, Resource* res);
alindvall 0:b94e330c98ac 69
alindvall 0:b94e330c98ac 70 private:
alindvall 0:b94e330c98ac 71 enum Buttons {
alindvall 0:b94e330c98ac 72 ButtonIp0,
alindvall 0:b94e330c98ac 73 ButtonIp1,
alindvall 0:b94e330c98ac 74 ButtonIp2,
alindvall 0:b94e330c98ac 75 ButtonIp3,
alindvall 0:b94e330c98ac 76 ButtonMask0,
alindvall 0:b94e330c98ac 77 ButtonMask1,
alindvall 0:b94e330c98ac 78 ButtonMask2,
alindvall 0:b94e330c98ac 79 ButtonMask3,
alindvall 0:b94e330c98ac 80 ButtonGw0,
alindvall 0:b94e330c98ac 81 ButtonGw1,
alindvall 0:b94e330c98ac 82 ButtonGw2,
alindvall 0:b94e330c98ac 83 ButtonGw3,
alindvall 0:b94e330c98ac 84 ButtonOk,
alindvall 0:b94e330c98ac 85 ButtonCancel,
alindvall 0:b94e330c98ac 86 ButtonUp,
alindvall 0:b94e330c98ac 87 ButtonDown,
alindvall 0:b94e330c98ac 88 ButtonLeft,
alindvall 0:b94e330c98ac 89 ButtonRight,
alindvall 0:b94e330c98ac 90 NumButtons,
alindvall 0:b94e330c98ac 91 NumFields = ButtonOk,
alindvall 0:b94e330c98ac 92 };
alindvall 0:b94e330c98ac 93
alindvall 0:b94e330c98ac 94 Display* _disp;
alindvall 0:b94e330c98ac 95 SWIM_WINDOW_T* _win;
alindvall 0:b94e330c98ac 96 void* _fb;
alindvall 0:b94e330c98ac 97
alindvall 0:b94e330c98ac 98 Clickable* _buttons[NumButtons];
alindvall 0:b94e330c98ac 99
alindvall 0:b94e330c98ac 100 uint32_t _activeField;
alindvall 0:b94e330c98ac 101 uint32_t _values[NumFields];
alindvall 0:b94e330c98ac 102
alindvall 0:b94e330c98ac 103 Image::ImageData_t _digitImage;
alindvall 0:b94e330c98ac 104
alindvall 0:b94e330c98ac 105 Resource* _res[NumResources];
alindvall 0:b94e330c98ac 106
alindvall 0:b94e330c98ac 107 void draw();
alindvall 0:b94e330c98ac 108 void markField(int field, bool active);
alindvall 0:b94e330c98ac 109 void addIPField(int y, int idx, const char* lbl);
alindvall 0:b94e330c98ac 110 };
alindvall 0:b94e330c98ac 111
alindvall 0:b94e330c98ac 112 #endif
alindvall 0:b94e330c98ac 113
alindvall 0:b94e330c98ac 114