Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: BSP_DISCO_F746NG_patch_fixed LCD_DISCO_F746NG TS_DISCO_F746NG FATFileSystem TinyJpgDec_interwork mbed-src
Diff: UI.cpp
- Revision:
- 9:fe2c9b3a312b
- Parent:
- 7:dc29f6647486
- Child:
- 11:3c6366ea1021
--- a/UI.cpp Thu Nov 12 22:01:17 2015 +0000
+++ b/UI.cpp Sat Nov 14 02:43:33 2015 +0000
@@ -14,6 +14,9 @@
#define CLOCK_COLOR_BG ((uint32_t)0xFF000000)
#define CLOCK_COLOR_FG ((uint32_t)0xFF707070)
+#define SLIDESHOW_COLOR_BG ((uint32_t)0xFF000000)
+#define SLIDESHOW_COLOR_FG ((uint32_t)0xFF707070)
+
#define BUTTON_WIDTH 100
#define BUTTON_HEIGHT 60
#define BUTTON_SMALL_WIDTH 50
@@ -39,15 +42,17 @@
TS_DISCO_F746NG uiTs;
uint16_t uiLastTouchX;
uint16_t uiLastTouchY;
+int lastSlideshowTick=0;
UI_STRUCT *uiCurrent=NULL;
UI_STRUCT uiClock;
UI_STRUCT uiClockInWords;
UI_STRUCT uiColorTest;
UI_STRUCT uiWakeup;
+UI_STRUCT uiSlideshow;
UI_STRUCT uiMain;
static UI_BOX_LIST_ITEM_STRUCT uiMainItems[]=
{
- { "Clock", ic_query_builder_white_48dp_1x }, { "Clock\nWith Words", ic_query_builder_white_48dp_1x }, { "Adjust\nTimers", ic_notifications_none_white_48dp_1x }, { "Lights On", NULL }, { "Lights Off", NULL }, { "Color Test", NULL }
+ { "Clock", ic_query_builder_white_48dp_1x }, { "Clock\nWith Words", ic_query_builder_white_48dp_1x }, { "Slideshow", NULL }, { "Adjust\nTimers", ic_notifications_none_white_48dp_1x }, { "Lights On", NULL }, { "Lights Off", NULL }, { "Color Test", NULL }
};
//
@@ -325,28 +330,6 @@
}
//
-// message box
-//
-void UI_ShowMessageBox(bool initial)
-{
- if (initial==true)
- {
- // fill background
- UI_ShowClearClientRect();
- }
-}
-
-void UI_ClickMessageBox(uint16_t x,uint16_t y)
-{
- uint32_t index;
-
- // detect at which button was clicked
- index=0;
-
- uiCurrent->handler(UR_CLICK,index,uiCurrent);
-}
-
-//
// clock
//
void UI_ShowClock(bool initial)
@@ -416,6 +399,44 @@
}
//
+// slideshow
+//
+void UI_ShowSlideshow(bool initial)
+{
+ char buffer[100];
+ struct tm *tmStruct;
+ time_t timeValue;
+
+ timeValue=time(NULL);
+ tmStruct=localtime(&timeValue);
+
+ if (((tmStruct->tm_sec / 15)!=lastSlideshowTick) || (initial==true))
+ {
+ lastSlideshowTick=(tmStruct->tm_sec / 15);
+
+ // fill background
+ uiLcd.SetTextColor(SLIDESHOW_COLOR_BG);
+ uiLcd.FillRect(0,0,uiLcd.GetXSize(),uiLcd.GetYSize());
+
+ // show picture
+ SD_ShowRandomPicture();
+
+ // show clock
+ uiLcd.SetFont(&display_font_12x22);
+ uiLcd.SetBackColor(0x00000000);
+ uiLcd.SetTextColor(SLIDESHOW_COLOR_FG);
+ snprintf(buffer,sizeof(buffer),"%u:%02u",tmStruct->tm_hour,tmStruct->tm_min);
+ uiLcd.DisplayStringAt(30,220,(uint8_t *)buffer,RIGHT_MODE);
+ }
+}
+
+void UI_ClickSlideshow(uint16_t x,uint16_t y)
+{
+ // exit view
+ UI_Show(&uiMain);
+}
+
+//
// value adjust
//
void UI_ShowValueAdjust(bool initial)
@@ -631,6 +652,8 @@
uiMain.data.boxList.items=uiMainItems;
uiMain.data.boxList.count=COUNT_OF(uiMainItems);
+ uiSlideshow.flags=UI_FLAG_TYPE_SLIDESHOW;
+
UI_Show(&uiMain);
}
@@ -676,12 +699,12 @@
typeFlag=uiCurrent->flags & ~(UI_FLAG_NEEDS_CHROME | UI_FLAG_HAS_BACK_BUTTON);
if ((typeFlag & UI_FLAG_TYPE_BOX_LIST)!=0)
UI_ShowBoxList(initial);
- else if ((typeFlag & UI_FLAG_TYPE_MESSAGE_BOX)!=0)
- UI_ShowMessageBox(initial);
else if ((typeFlag & UI_FLAG_TYPE_CLOCK)!=0)
UI_ShowClock(initial);
else if ((typeFlag & UI_FLAG_TYPE_CLOCK_IN_WORDS)!=0)
UI_ShowClockInWords(initial);
+ else if ((typeFlag & UI_FLAG_TYPE_SLIDESHOW)!=0)
+ UI_ShowSlideshow(initial);
else if ((typeFlag & UI_FLAG_TYPE_VALUE_ADJUST)!=0)
UI_ShowValueAdjust(initial);
}
@@ -719,12 +742,12 @@
typeFlag=uiCurrent->flags & ~(UI_FLAG_NEEDS_CHROME | UI_FLAG_HAS_BACK_BUTTON);
if ((typeFlag & UI_FLAG_TYPE_BOX_LIST)!=0)
UI_ClickBoxList(x,y);
- else if ((typeFlag & UI_FLAG_TYPE_MESSAGE_BOX)!=0)
- UI_ClickMessageBox(x,y);
else if ((typeFlag & UI_FLAG_TYPE_CLOCK)!=0)
UI_ClickClock(x,y);
else if ((typeFlag & UI_FLAG_TYPE_CLOCK_IN_WORDS)!=0)
UI_ClickClockInWords(x,y);
+ else if ((typeFlag & UI_FLAG_TYPE_SLIDESHOW)!=0)
+ UI_ClickSlideshow(x,y);
else if ((typeFlag & UI_FLAG_TYPE_VALUE_ADJUST)!=0)
UI_ClickValueAdjust(x,y);
}