diff options
Diffstat (limited to 'src/comet.c')
| -rw-r--r-- | src/comet.c | 44 |
1 files changed, 25 insertions, 19 deletions
diff --git a/src/comet.c b/src/comet.c index a6d94e8..a3a9167 100644 --- a/src/comet.c +++ b/src/comet.c @@ -24,17 +24,6 @@ static gboolean mainloop_draw(gpointer data) return G_SOURCE_CONTINUE; } -static gboolean date_update(gpointer data) -{ - Button *btn = data; - g_free(btn->text); - GDateTime *time = g_date_time_new_now_local(); - btn->text = g_date_time_format(time, "%A %d %H:%M"); - g_assert(btn->text != NULL); - log_debug("Updated date"); - return G_SOURCE_CONTINUE; -} - static void log_handler(const char *log_domain, GLogLevelFlags level, const char *message, @@ -51,11 +40,28 @@ static void log_handler(const char *log_domain, g_print("%s\n", message); } -static void action(Button *btn) +static gboolean date_update(gpointer data) +{ + Button *btn = data; + g_free(btn->text); + GDateTime *time = g_date_time_new_now_local(); + btn->text = g_date_time_format(time, "%A %d %H:%M"); + g_assert(btn->text != NULL); + log_debug("Updated date"); + return G_SOURCE_CONTINUE; +} + +static void show_action(Button *btn) { log_info("Called action: %s", btn->text); } +static void quit_action(Button *btn) +{ + log_info("Quit button pressed"); + g_main_loop_quit(btn->action_data); +} + int main(int argc, char **argv) { g_log_set_default_handler(log_handler, (gpointer)G_LOG_LEVEL_DEBUG); @@ -89,18 +95,18 @@ int main(int argc, char **argv) char text[] = { '1' + i, '\0' }; Button *btn = button_create(text, PANGO_ALIGN_LEFT); button_set_colors(btn, background, foreground, stroke); - button_set_action(btn, action); + button_set_action(btn, show_action, NULL); state_add_button(state, btn); } Button *long_btn = button_create("long button", PANGO_ALIGN_RIGHT); button_set_colors(long_btn, background, foreground, stroke); - button_set_action(long_btn, action); + button_set_action(long_btn, show_action, NULL); state_add_button(state, long_btn); Button *date_btn = button_create("date", PANGO_ALIGN_CENTER); button_set_colors(date_btn, background, foreground, stroke); - button_set_action(date_btn, action); + button_set_action(date_btn, show_action, NULL); state_add_button(state, date_btn); date_update(date_btn); @@ -108,10 +114,10 @@ int main(int argc, char **argv) // purple Color background2 = { 0.502, 0.168, 0.886, 1 }; - Button *u_btn = button_create("U", PANGO_ALIGN_RIGHT); - button_set_colors(u_btn, background2, foreground, stroke); - button_set_action(u_btn, action); - state_add_button(state, u_btn); + Button *q_btn = button_create("Q", PANGO_ALIGN_RIGHT); + button_set_colors(q_btn, background2, foreground, stroke); + button_set_action(q_btn, quit_action, mainloop); + state_add_button(state, q_btn); draw_compute_layout(draw, win, state->btns); |
