parent
f5d8405bdf
commit
26cbbd6f9b
@ -0,0 +1,71 @@ |
|||||||
|
#include <stdio.h> |
||||||
|
#include "app_gui.h" |
||||||
|
#include "gui_event.h" |
||||||
|
#include "ds_rtc.h" |
||||||
|
#include "app_io.h" |
||||||
|
#include "lcd.h" |
||||||
|
|
||||||
|
static struct rtc_time time; |
||||||
|
static int cursor; |
||||||
|
|
||||||
|
void screen_set_time(GuiEvent event) |
||||||
|
{ |
||||||
|
char buf[100]; |
||||||
|
|
||||||
|
switch (event) { |
||||||
|
case GUI_EVENT_SCREEN_INIT: |
||||||
|
time.hour = 0; |
||||||
|
time.minute = 0; |
||||||
|
time.second = 0; |
||||||
|
cursor = 0; |
||||||
|
break; |
||||||
|
|
||||||
|
case GUI_EVENT_PAINT: |
||||||
|
LcdBuffer_Write(&lcd, 0, 0, "Zadejte přesný čas"); |
||||||
|
|
||||||
|
LcdBuffer_SetCursor(&lcd, 1, cursor + (cursor >= 2), (cursor < 4) ? CURSOR_BOTH : CURSOR_NONE); |
||||||
|
|
||||||
|
snprintf(buf, 100, "%02d:%02d", time.hour, time.minute); |
||||||
|
LcdBuffer_Write(&lcd, 1, 0, buf); |
||||||
|
|
||||||
|
LcdBuffer_Write(&lcd, 3, 0, "🅰Uložit 🅳Zrušit"); |
||||||
|
break; |
||||||
|
|
||||||
|
case GUI_EVENT_KEY_A: // Confirm
|
||||||
|
rtc_set_time(&time); |
||||||
|
switch_screen(screen_settings, false); |
||||||
|
break; |
||||||
|
|
||||||
|
case GUI_EVENT_KEY_D: // CANCEL
|
||||||
|
switch_screen(screen_settings, false); |
||||||
|
break; |
||||||
|
|
||||||
|
default: |
||||||
|
if (event >= '0' && event <= '9') { |
||||||
|
int digit = event - '0'; |
||||||
|
if (cursor == 0) { |
||||||
|
if (digit <= 2) { |
||||||
|
time.hour += digit * 10; |
||||||
|
cursor++; |
||||||
|
request_paint(); |
||||||
|
} |
||||||
|
} else if (cursor == 1) { |
||||||
|
if (time.hour < 20 || digit <= 3) { |
||||||
|
time.hour += digit; |
||||||
|
cursor++; |
||||||
|
request_paint(); |
||||||
|
} |
||||||
|
} else if (cursor == 2) { |
||||||
|
if (digit <= 5) { |
||||||
|
time.minute += digit * 10; |
||||||
|
cursor++; |
||||||
|
request_paint(); |
||||||
|
} |
||||||
|
} else if (cursor == 3) { |
||||||
|
time.minute += digit; |
||||||
|
cursor++; // cursor disappears
|
||||||
|
request_paint(); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue