Initial stab at WIDGET_LOADSCREEN and navigation

This commit is contained in:
Pim van Pelt
2017-12-02 14:15:22 +01:00
parent 980ac4c7cf
commit ef4451b81f
9 changed files with 100 additions and 53 deletions

View File

@ -7,7 +7,7 @@
#include "fonts/FreeSerifBold9pt7b.h"
#include "fonts/FreeMonoBold9pt7b.h"
struct screen_t *screen = NULL;
struct screen_t *s_screen = NULL;
static void touch_handler(struct mgos_stmpe610_event_data *ed) {
struct widget_t *widget;
@ -31,7 +31,7 @@ static void touch_handler(struct mgos_stmpe610_event_data *ed) {
backlight_keepalive();
widget = screen_widget_find_by_xy(screen, ed->x, ed->y);
widget = screen_widget_find_by_xy(s_screen, ed->x, ed->y);
if (ed->direction==TOUCH_DOWN) {
widget_network_recv();
@ -46,8 +46,6 @@ static void touch_handler(struct mgos_stmpe610_event_data *ed) {
void tft_demo(void)
{
struct widget_t *w;
// mgos_ili9341_setRotation(mgos_sys_config_get_tft_orientation());
mgos_stmpe610_set_rotation(mgos_sys_config_get_tft_orientation());
mgos_stmpe610_set_handler(touch_handler);
@ -56,40 +54,13 @@ void tft_demo(void)
mgos_ili9341_set_fgcolor(0,0,0);
mgos_ili9341_fillScreen();
screen = screen_create_from_file("/screen_main.json", widget_default_ev, NULL);
if (!screen) {
s_screen = screen_create_from_file("/screen_main.json", widget_default_ev, NULL);
if (!s_screen) {
LOG(LL_ERROR, ("Could not load screen"));
return;
}
w = widget_create("name", 0, 0, 185, 20);
widget_set_handler(w, widget_name_ev);
screen_widget_add(screen, w);
w = widget_create("network", 185, 0, 22, 20);
widget_set_handler(w, widget_network_ev);
screen_widget_add(screen, w);
w = widget_create("wifi", 207, 0, 20, 20);
widget_set_handler(w, widget_wifi_ev);
widget_set_timer(w, 5000);
screen_widget_add(screen, w);
w = widget_create("battery", 227, 0, 13, 20);
widget_set_handler(w, widget_battery_ev);
widget_set_timer(w, 10000);
screen_widget_add(screen, w);
w = widget_create("time", 240, 0, 80, 20);
widget_set_handler(w, widget_time_ev);
widget_set_timer(w, 1000);
screen_widget_add(screen, w);
w = widget_create("topbar", 0, 21, 320, 2);
widget_set_handler(w, widget_topbar_ev);
screen_widget_add(screen, w);
LOG(LL_INFO, ("Screen '%s' has %d widgets", screen->name, screen_get_num_widgets(screen)));
screen_add_default_widgets(s_screen);
LOG(LL_INFO, ("Screen '%s' has %d widgets", s_screen->name, screen_get_num_widgets(s_screen)));
}
enum mgos_app_init_result mgos_app_init(void)