Sample GUI for LPC4088. Base code to begin dev
Dependencies: DMBasicGUI DMSupport
Fork of lpc4088_displaymodule_shipped_demo by
AppNetworkSettings.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_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 |