Remove 'user_data' arg from widget_set_handler
This commit is contained in:
@ -12,7 +12,6 @@ struct screen_t {
|
|||||||
// Private
|
// Private
|
||||||
SLIST_HEAD(widget_entries, widget_list_t) widget_entries;
|
SLIST_HEAD(widget_entries, widget_list_t) widget_entries;
|
||||||
widget_event_fn default_widget_handler;
|
widget_event_fn default_widget_handler;
|
||||||
void *default_user_data;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct screen_t *screen_create(char *name);
|
struct screen_t *screen_create(char *name);
|
||||||
@ -20,7 +19,7 @@ struct screen_t *screen_create_from_file(char *fn, widget_event_fn handler, void
|
|||||||
struct screen_t *screen_create_from_json(char *json, widget_event_fn handler, void *user_data);
|
struct screen_t *screen_create_from_json(char *json, widget_event_fn handler, void *user_data);
|
||||||
void screen_destroy(struct screen_t **s);
|
void screen_destroy(struct screen_t **s);
|
||||||
|
|
||||||
void screen_widget_set_handler(struct screen_t *s, widget_event_fn handler, void *user_data);
|
void screen_widget_set_handler(struct screen_t *s, widget_event_fn handler);
|
||||||
|
|
||||||
bool screen_widget_add(struct screen_t *s, struct widget_t *w);
|
bool screen_widget_add(struct screen_t *s, struct widget_t *w);
|
||||||
struct widget_t *screen_widget_add_from_file(struct screen_t *s, char *fn);
|
struct widget_t *screen_widget_add_from_file(struct screen_t *s, char *fn);
|
||||||
|
@ -45,7 +45,7 @@ struct widget_list_t {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct widget_t *widget_create(char *name, uint16_t x, uint16_t y, uint16_t w, uint16_t h);
|
struct widget_t *widget_create(char *name, uint16_t x, uint16_t y, uint16_t w, uint16_t h);
|
||||||
void widget_set_handler(struct widget_t *w, widget_event_fn handler, void *user_data);
|
void widget_set_handler(struct widget_t *w, widget_event_fn handler);
|
||||||
void widget_delete_handler(struct widget_t *w);
|
void widget_delete_handler(struct widget_t *w);
|
||||||
void widget_set_timer(struct widget_t *w, uint32_t timer_msec);
|
void widget_set_timer(struct widget_t *w, uint32_t timer_msec);
|
||||||
void widget_delete_timer(struct widget_t *w);
|
void widget_delete_timer(struct widget_t *w);
|
||||||
|
12
src/main.c
12
src/main.c
@ -63,30 +63,30 @@ void tft_demo(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
w = widget_create("name", 0, 0, 185, 20);
|
w = widget_create("name", 0, 0, 185, 20);
|
||||||
widget_set_handler(w, widget_name_ev, NULL);
|
widget_set_handler(w, widget_name_ev);
|
||||||
screen_widget_add(screen, w);
|
screen_widget_add(screen, w);
|
||||||
|
|
||||||
w = widget_create("network", 185, 0, 22, 20);
|
w = widget_create("network", 185, 0, 22, 20);
|
||||||
widget_set_handler(w, widget_network_ev, NULL);
|
widget_set_handler(w, widget_network_ev);
|
||||||
screen_widget_add(screen, w);
|
screen_widget_add(screen, w);
|
||||||
|
|
||||||
w = widget_create("wifi", 207, 0, 20, 20);
|
w = widget_create("wifi", 207, 0, 20, 20);
|
||||||
widget_set_handler(w, widget_wifi_ev, NULL);
|
widget_set_handler(w, widget_wifi_ev);
|
||||||
widget_set_timer(w, 5000);
|
widget_set_timer(w, 5000);
|
||||||
screen_widget_add(screen, w);
|
screen_widget_add(screen, w);
|
||||||
|
|
||||||
w = widget_create("battery", 227, 0, 13, 20);
|
w = widget_create("battery", 227, 0, 13, 20);
|
||||||
widget_set_handler(w, widget_battery_ev, NULL);
|
widget_set_handler(w, widget_battery_ev);
|
||||||
widget_set_timer(w, 10000);
|
widget_set_timer(w, 10000);
|
||||||
screen_widget_add(screen, w);
|
screen_widget_add(screen, w);
|
||||||
|
|
||||||
w = widget_create("time", 240, 0, 80, 20);
|
w = widget_create("time", 240, 0, 80, 20);
|
||||||
widget_set_handler(w, widget_time_ev, NULL);
|
widget_set_handler(w, widget_time_ev);
|
||||||
widget_set_timer(w, 1000);
|
widget_set_timer(w, 1000);
|
||||||
screen_widget_add(screen, w);
|
screen_widget_add(screen, w);
|
||||||
|
|
||||||
w = widget_create("topbar", 0, 21, 320, 2);
|
w = widget_create("topbar", 0, 21, 320, 2);
|
||||||
widget_set_handler(w, widget_topbar_ev, NULL);
|
widget_set_handler(w, widget_topbar_ev);
|
||||||
screen_widget_add(screen, w);
|
screen_widget_add(screen, w);
|
||||||
|
|
||||||
LOG(LL_INFO, ("Screen '%s' has %d widgets", screen->name, screen_get_num_widgets(screen)));
|
LOG(LL_INFO, ("Screen '%s' has %d widgets", screen->name, screen_get_num_widgets(screen)));
|
||||||
|
@ -44,7 +44,7 @@ struct screen_t *screen_create_from_json(char *json, widget_event_fn handler, vo
|
|||||||
screen = screen_create(screen_name);
|
screen = screen_create(screen_name);
|
||||||
if (!screen)
|
if (!screen)
|
||||||
return NULL;
|
return NULL;
|
||||||
screen_widget_set_handler(screen, handler, user_data);
|
screen_widget_set_handler(screen, handler);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
// Traverse Object
|
// Traverse Object
|
||||||
@ -59,7 +59,7 @@ struct screen_t *screen_create_from_json(char *json, widget_event_fn handler, vo
|
|||||||
// printf("[%d]: [%.*s]\n", idx, val.len, val.ptr);
|
// printf("[%d]: [%.*s]\n", idx, val.len, val.ptr);
|
||||||
if (val.len>0 && val.ptr) {
|
if (val.len>0 && val.ptr) {
|
||||||
widget = widget_create_from_json(val.ptr);
|
widget = widget_create_from_json(val.ptr);
|
||||||
widget_set_handler(widget, screen->default_widget_handler, screen->default_user_data);
|
widget_set_handler(widget, screen->default_widget_handler);
|
||||||
if (!screen_widget_add(screen, widget)) {
|
if (!screen_widget_add(screen, widget)) {
|
||||||
LOG(LL_ERROR, ("Could not add widget to screen"));
|
LOG(LL_ERROR, ("Could not add widget to screen"));
|
||||||
}
|
}
|
||||||
@ -98,7 +98,7 @@ struct widget_t *screen_widget_add_from_file(struct screen_t *s, char *fn) {
|
|||||||
w = widget_create_from_file(fn);
|
w = widget_create_from_file(fn);
|
||||||
if (!w)
|
if (!w)
|
||||||
return NULL;
|
return NULL;
|
||||||
widget_set_handler(w, s->default_widget_handler, s->default_user_data);
|
widget_set_handler(w, s->default_widget_handler);
|
||||||
screen_widget_add(s, w);
|
screen_widget_add(s, w);
|
||||||
return w;
|
return w;
|
||||||
}
|
}
|
||||||
@ -146,10 +146,9 @@ struct widget_t *screen_widget_find_by_xy(struct screen_t *s, uint16_t x, uint16
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void screen_widget_set_handler(struct screen_t *s, widget_event_fn handler, void *user_data) {
|
void screen_widget_set_handler(struct screen_t *s, widget_event_fn handler) {
|
||||||
if (!s)
|
if (!s)
|
||||||
return;
|
return;
|
||||||
s->default_widget_handler=handler;
|
s->default_widget_handler=handler;
|
||||||
s->default_user_data=user_data;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -107,11 +107,10 @@ struct widget_t *widget_create_from_file(const char *fn) {
|
|||||||
return widget;
|
return widget;
|
||||||
}
|
}
|
||||||
|
|
||||||
void widget_set_handler(struct widget_t *w, widget_event_fn handler, void *user_data) {
|
void widget_set_handler(struct widget_t *w, widget_event_fn handler) {
|
||||||
if (!w)
|
if (!w)
|
||||||
return;
|
return;
|
||||||
w->handler = handler;
|
w->handler = handler;
|
||||||
w->user_data = user_data;
|
|
||||||
if (!w->create_called && w->handler)
|
if (!w->create_called && w->handler)
|
||||||
handler(EV_WIDGET_CREATE, w, NULL);
|
handler(EV_WIDGET_CREATE, w, NULL);
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ static int test_widget_create_from_file(void) {
|
|||||||
ASSERT(_mgos_timers==1, "timer not found");
|
ASSERT(_mgos_timers==1, "timer not found");
|
||||||
|
|
||||||
LOG(LL_INFO, ("widget_set_handler()"));
|
LOG(LL_INFO, ("widget_set_handler()"));
|
||||||
widget_set_handler(w, test_widget_default_ev, NULL);
|
widget_set_handler(w, test_widget_default_ev);
|
||||||
|
|
||||||
|
|
||||||
LOG(LL_INFO, ("widget_delete_timer()"));
|
LOG(LL_INFO, ("widget_delete_timer()"));
|
||||||
|
Reference in New Issue
Block a user