The out-of-the-box demo application flashed on all display modules before they are shipped.

Dependencies:   DMBasicGUI DMSupport

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers AppRTCSettings.h Source File

AppRTCSettings.h

00001 /*
00002  *  Copyright 2014 Embedded Artists AB
00003  *
00004  *  Licensed under the Apache License, Version 2.0 (the "License");
00005  *  you may not use this file except in compliance with the License.
00006  *  You may obtain a copy of the License at
00007  *
00008  *    http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  *  Unless required by applicable law or agreed to in writing, software
00011  *  distributed under the License is distributed on an "AS IS" BASIS,
00012  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  *  See the License for the specific language governing permissions and
00014  *  limitations under the License.
00015  */
00016  
00017 #ifndef APP_RTC_SETTINGS_H
00018 #define APP_RTC_SETTINGS_H
00019 
00020 #include "App.h"
00021 #include "DMBoard.h"
00022 #include "lpc_swim.h"
00023 #include "ImageButton.h"
00024 #include "DigitButton.h"
00025 #include "Resource.h"
00026 
00027 /**
00028  * An App example. Allows changing the real time clock (RTC).
00029  *
00030  * The purpose of this example is to show some of the graphics primitives in
00031  * the SWIM library.
00032  */
00033 class AppRTCSettings : public App {
00034 public:
00035 
00036     AppRTCSettings();
00037     virtual ~AppRTCSettings();
00038 
00039     virtual bool setup();
00040     virtual void runToCompletion();
00041     virtual bool teardown();
00042 
00043     void modifyValue(int mod);
00044     void changeActiveField(bool next);
00045     void setActiveField(uint32_t newField);
00046 
00047     enum Resources {
00048         Resource_Ok_button,
00049         Resource_Cancel_button,
00050         Resource_ArrowUp_button,
00051         Resource_ArrowDown_button,
00052         Resource_ArrowLeft_button,
00053         Resource_ArrowRight_button,
00054         Resource_Digits,
00055         NumResources,
00056     };
00057 
00058     /** Specifies the resource to use
00059      *
00060      *  Adds a resource for a specific id. This allows the
00061      *  user program to select e.g. which image to use and
00062      *  if it should be loaded from a file or an array.
00063      *
00064      *  @param id  the identifier
00065      *  @param res the resource
00066      */
00067     void addResource(Resources id, Resource* res);
00068 
00069 private:
00070     enum Buttons {
00071       ButtonYear,
00072       ButtonMonth,
00073       ButtonDay,
00074       ButtonHour,
00075       ButtonMinute,
00076       ButtonSecond,
00077       ButtonOk,
00078       ButtonCancel,
00079       ButtonUp,
00080       ButtonDown,
00081       ButtonLeft,
00082       ButtonRight,
00083       NumButtons,
00084       NumFields = ButtonOk,
00085     };
00086 
00087     Display* _disp;
00088     SWIM_WINDOW_T* _win;
00089     void* _fb;
00090 
00091     Clickable* _buttons[NumButtons];
00092     
00093     uint32_t _activeField;
00094     uint32_t _values[NumFields];
00095     
00096     Image::ImageData_t _digitImage;
00097 
00098     Resource* _res[NumResources];
00099 
00100     void draw();
00101     void markField(int field, bool active);
00102     void addDateFields(int xoff, int yoff);
00103     void addTimeFields(int xoff, int yoff);
00104 };
00105 
00106 #endif
00107 
00108