si_t save_window_ok_button_callback(void* btn, void* msg) { union message* m = (union message*)msg; switch(m->base.type) { case MESSAGE_TYPE_MOUSE_SINGLE_CLICK: if(0 == save_file(text_line_get_buf(save_text_line), text_line_get_buf(file_context_text_line))) { sprintf(log_label->text, "save successfully!"); } else { sprintf(log_label->text, "failed to save file!"); } application_del_window(save_window); sprintf(file_label->text, "%s", text_line_get_buf(save_text_line)); save_window = NULL; save_text_line = NULL; break; default: button_default_callback(btn, msg); return 0; break; } label_repaint(log_label); label_show(log_label); return 0; }
static void label_handler(struct widget* subscriber, struct widget* publisher, si_t event) { struct scroll_bar* s = (struct scroll_bar*)publisher; struct label* l = (struct label*)subscriber; sprintf(l->text, "e:%3ld, %3ld, s:%3ld, %3ld", s->elevator_offset, s->elevator_height, s->total_len, s->cur_offset); label_repaint(l); label_show(l); }