add widget_ev_to_str(); Pass 'ed' through to EV_WIDGET_TOUCH_{UP,DOWN} calls
This commit is contained in:
@ -11,8 +11,8 @@ struct widget_t;
|
|||||||
#define EV_WIDGET_DRAW 3
|
#define EV_WIDGET_DRAW 3
|
||||||
#define EV_WIDGET_REDRAW 4
|
#define EV_WIDGET_REDRAW 4
|
||||||
#define EV_WIDGET_TIMER 5
|
#define EV_WIDGET_TIMER 5
|
||||||
#define EV_WIDGET_TOUCH_UP 6
|
#define EV_WIDGET_TOUCH_UP 6 // struct mgos_stmpe610_event_data *
|
||||||
#define EV_WIDGET_TOUCH_DOWN 7
|
#define EV_WIDGET_TOUCH_DOWN 7 // struct mgos_stmpe610_event_data *
|
||||||
|
|
||||||
enum widget_type_t {
|
enum widget_type_t {
|
||||||
WIDGET_TYPE_NONE =0,
|
WIDGET_TYPE_NONE =0,
|
||||||
@ -53,5 +53,8 @@ struct widget_t *widget_create_from_json(const char *json);
|
|||||||
struct widget_t *widget_create_from_file(const char *fn);
|
struct widget_t *widget_create_from_file(const char *fn);
|
||||||
void widget_destroy(struct widget_t **widget);
|
void widget_destroy(struct widget_t **widget);
|
||||||
|
|
||||||
|
// Convert ev in EV_WIDGET_* to string
|
||||||
|
void widget_ev_to_str(int ev, char *s, int slen);
|
||||||
|
|
||||||
|
|
||||||
#endif // __WIDGET_H
|
#endif // __WIDGET_H
|
||||||
|
10
src/main.c
10
src/main.c
@ -23,18 +23,14 @@ static void touch_handler(struct mgos_stmpe610_event_data *ed) {
|
|||||||
LOG(LL_INFO, ("Touch %s at (%d,%d) pressure=%d, length=%d", ed->direction==TOUCH_UP?"UP":"DOWN", x, y, ed->z, ed->length));
|
LOG(LL_INFO, ("Touch %s at (%d,%d) pressure=%d, length=%d", ed->direction==TOUCH_UP?"UP":"DOWN", x, y, ed->z, ed->length));
|
||||||
|
|
||||||
widget = screen_widget_find_by_xy(screen, x, y);
|
widget = screen_widget_find_by_xy(screen, x, y);
|
||||||
if (widget) {
|
|
||||||
LOG(LL_INFO, ("Widget '%s' found", widget->name));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ed->direction==TOUCH_DOWN) {
|
if (ed->direction==TOUCH_DOWN) {
|
||||||
widget_network_recv();
|
widget_network_recv();
|
||||||
if (widget && widget->handler)
|
if (widget && widget->handler)
|
||||||
widget->handler(EV_WIDGET_TOUCH_DOWN, widget, NULL);
|
widget->handler(EV_WIDGET_TOUCH_DOWN, widget, ed);
|
||||||
} else {
|
} else {
|
||||||
widget_network_send();
|
widget_network_send();
|
||||||
if (widget && widget->handler)
|
if (widget && widget->handler)
|
||||||
widget->handler(EV_WIDGET_TOUCH_UP, widget, NULL);
|
widget->handler(EV_WIDGET_TOUCH_UP, widget, ed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -47,7 +43,7 @@ void tft_demo(void)
|
|||||||
mgos_ili9341_setGammaCurve(DEFAULT_GAMMA_CURVE);
|
mgos_ili9341_setGammaCurve(DEFAULT_GAMMA_CURVE);
|
||||||
mgos_ili9341_setFont(DEFAULT_FONT, NULL);
|
mgos_ili9341_setFont(DEFAULT_FONT, NULL);
|
||||||
|
|
||||||
mgos_ili9341_jpg_image(CENTER, CENTER, 1, "mongoose-os.jpg", NULL, 0);
|
// mgos_ili9341_jpg_image(CENTER, CENTER, 1, "mongoose-os.jpg", NULL, 0);
|
||||||
// mgos_ili9341_jpg_image(200, 150, 2, "flower.jpg", NULL, 0);
|
// mgos_ili9341_jpg_image(200, 150, 2, "flower.jpg", NULL, 0);
|
||||||
|
|
||||||
screen = screen_create_from_file("/screen_main.json", widget_default_ev, NULL);
|
screen = screen_create_from_file("/screen_main.json", widget_default_ev, NULL);
|
||||||
|
29
src/widget.c
29
src/widget.c
@ -138,3 +138,32 @@ void widget_delete_timer(struct widget_t *w) {
|
|||||||
widget_set_timer(w, 0);
|
widget_set_timer(w, 0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void widget_ev_to_str(int ev, char *s, int slen) {
|
||||||
|
switch(ev) {
|
||||||
|
case EV_WIDGET_CREATE:
|
||||||
|
strncpy(s, "CREATE", slen);
|
||||||
|
break;
|
||||||
|
case EV_WIDGET_DRAW:
|
||||||
|
strncpy(s, "DRAW", slen);
|
||||||
|
break;
|
||||||
|
case EV_WIDGET_REDRAW:
|
||||||
|
strncpy(s, "REDRAW", slen);
|
||||||
|
break;
|
||||||
|
case EV_WIDGET_TIMER:
|
||||||
|
strncpy(s, "TIMER", slen);
|
||||||
|
break;
|
||||||
|
case EV_WIDGET_TOUCH_UP:
|
||||||
|
strncpy(s, "TOUCH_UP", slen);
|
||||||
|
break;
|
||||||
|
case EV_WIDGET_TOUCH_DOWN:
|
||||||
|
strncpy(s, "TOUCH_DOWN", slen);
|
||||||
|
break;
|
||||||
|
case EV_WIDGET_DESTROY:
|
||||||
|
strncpy(s, "DESTROY", slen);
|
||||||
|
break;
|
||||||
|
default: // EV_WIDGET_NONE
|
||||||
|
snprintf(s, slen, "EV%d", ev);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -3,10 +3,13 @@
|
|||||||
#include "mongoose-touch.h"
|
#include "mongoose-touch.h"
|
||||||
|
|
||||||
void widget_default_ev(int ev, struct widget_t *w, void *ev_data) {
|
void widget_default_ev(int ev, struct widget_t *w, void *ev_data) {
|
||||||
|
char evname[15];
|
||||||
|
|
||||||
if (!w)
|
if (!w)
|
||||||
return;
|
return;
|
||||||
|
widget_ev_to_str(ev, evname, sizeof(evname)-1);
|
||||||
|
|
||||||
LOG(LL_INFO, ("Event %d received for widget '%s'", ev, w->name));
|
LOG(LL_INFO, ("Event %s received for widget '%s'", evname, w->name));
|
||||||
|
|
||||||
switch(ev) {
|
switch(ev) {
|
||||||
case EV_WIDGET_CREATE:
|
case EV_WIDGET_CREATE:
|
||||||
|
@ -5,10 +5,14 @@
|
|||||||
extern int _mgos_timers;
|
extern int _mgos_timers;
|
||||||
|
|
||||||
static void test_screen_default_ev(int ev, struct widget_t *w, void *ev_data) {
|
static void test_screen_default_ev(int ev, struct widget_t *w, void *ev_data) {
|
||||||
|
char evname[15];
|
||||||
|
|
||||||
if (!w)
|
if (!w)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
LOG(LL_INFO, ("Event %d received for widget '%s'", ev, w->name));
|
widget_ev_to_str(ev, evname, sizeof(evname)-1);
|
||||||
|
|
||||||
|
LOG(LL_INFO, ("Event %s received for widget '%s'", evname, w->name));
|
||||||
|
|
||||||
switch(ev) {
|
switch(ev) {
|
||||||
case EV_WIDGET_CREATE:
|
case EV_WIDGET_CREATE:
|
||||||
|
@ -4,10 +4,14 @@
|
|||||||
extern int _mgos_timers;
|
extern int _mgos_timers;
|
||||||
|
|
||||||
static void test_widget_default_ev(int ev, struct widget_t *w, void *ev_data) {
|
static void test_widget_default_ev(int ev, struct widget_t *w, void *ev_data) {
|
||||||
|
char evname[15];
|
||||||
|
|
||||||
if (!w)
|
if (!w)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
LOG(LL_INFO, ("Event %d received for widget '%s'", ev, w->name));
|
widget_ev_to_str(ev, evname, sizeof(evname)-1);
|
||||||
|
|
||||||
|
LOG(LL_INFO, ("Event %s received for widget '%s'", evname, w->name));
|
||||||
|
|
||||||
switch(ev) {
|
switch(ev) {
|
||||||
case EV_WIDGET_CREATE:
|
case EV_WIDGET_CREATE:
|
||||||
|
Reference in New Issue
Block a user