struct rtb_button * rtb_button_new(const rtb_utf8_t *label) { struct rtb_button *self = calloc(1, sizeof(*self)); rtb_button_init(self); if (label) rtb_button_set_label(self, label); return self; }
int main(int argc, char **argv) { struct rutabaga *delicious; struct rtb_window *win; struct rtb_button click_me; delicious = rtb_new(); assert(delicious); win = rtb_window_open(delicious, 600, 700, "rtb basic demo"); assert(win); rtb_elem_set_size_cb(RTB_ELEMENT(win), rtb_size_hfit_children); rtb_elem_set_layout(RTB_ELEMENT(win), rtb_layout_hpack_center); rtb_label_init(&click_counter); rtb_button_init(&click_me); click_counter.align = RTB_ALIGN_MIDDLE; click_me.align = RTB_ALIGN_MIDDLE; click_me.flags |= RTB_ELEM_CLICK_FOCUS; rtb_button_set_label(&click_me, "click me"); update_label(); rtb_register_handler(RTB_ELEMENT(&click_me), RTB_BUTTON_CLICK, button_clicked, NULL); rtb_elem_add_child(RTB_ELEMENT(win), RTB_ELEMENT(&click_counter), RTB_ADD_TAIL); rtb_elem_add_child(RTB_ELEMENT(win), RTB_ELEMENT(&click_me), RTB_ADD_TAIL); rtb_event_loop(delicious); rtb_window_lock(win); rtb_label_fini(&click_counter); rtb_window_close(delicious->win); rtb_free(delicious); }