|
|
@@ -2,20 +2,72 @@ |
|
|
|
#include "core/buttons.h" |
|
|
|
#include "core/display.h" |
|
|
|
#include <EPD.h> |
|
|
|
#include "ModeRunner.h" |
|
|
|
#include "ReaderMode.h" |
|
|
|
#include "MainMenuMode.h" |
|
|
|
|
|
|
|
static int baseY = 35; |
|
|
|
static int menuSkip = 20; |
|
|
|
static int x = 40; |
|
|
|
static int menu_options_size = 4; |
|
|
|
|
|
|
|
void draw_menu_option(char* text, int line, bool selected) |
|
|
|
{ |
|
|
|
EPD_print(text, CENTER, baseY + line * menuSkip); |
|
|
|
} |
|
|
|
|
|
|
|
void draw_menu_cursor(int cursor) |
|
|
|
{ |
|
|
|
EPD_drawRect(x, baseY + cursor * menuSkip, |
|
|
|
EPD_DISPLAY_WIDTH - 2*x, menuSkip + 1, 0x0F); |
|
|
|
} |
|
|
|
|
|
|
|
void MainMenuMode::start() |
|
|
|
{} |
|
|
|
{ |
|
|
|
display_refresh(); |
|
|
|
} |
|
|
|
|
|
|
|
void MainMenuMode::loop() |
|
|
|
{ |
|
|
|
display_clear(); |
|
|
|
EPD_setFont(COMIC24_FONT, NULL); |
|
|
|
EPD_print("Main Menu", CENTER, 0); |
|
|
|
|
|
|
|
int line = 0; |
|
|
|
EPD_setFont(DEJAVU18_FONT, NULL); |
|
|
|
draw_menu_option("Continue Reading", line, this->cursor == line); line++; |
|
|
|
draw_menu_option("Internal Memory", line, this->cursor == line); line++; |
|
|
|
draw_menu_option("SD Card", line, this->cursor == line); line++; |
|
|
|
draw_menu_option("Settings", line, this->cursor == line); line++; |
|
|
|
draw_menu_cursor(this->cursor); |
|
|
|
display_update(); |
|
|
|
|
|
|
|
while(1) { |
|
|
|
delay(5); |
|
|
|
if (buttons_pressed_ok()) { |
|
|
|
switch (this->cursor) { |
|
|
|
case 0: // reading |
|
|
|
display_refresh(); |
|
|
|
getModeRunner()->startInnerMode(new ReaderMode()); |
|
|
|
return; |
|
|
|
case 1: // memory |
|
|
|
// TODO |
|
|
|
break; |
|
|
|
case 2: // sd card |
|
|
|
// TODO |
|
|
|
break; |
|
|
|
case 3: // settings |
|
|
|
// TODO |
|
|
|
break; |
|
|
|
} |
|
|
|
break; |
|
|
|
} |
|
|
|
if (buttons_pressed_minus()) { |
|
|
|
this->cursor = (this->cursor + menu_options_size - 1) % menu_options_size; |
|
|
|
break; |
|
|
|
} |
|
|
|
if (buttons_pressed_plus()) { |
|
|
|
this->cursor = (this->cursor + 1) % menu_options_size; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|