示例#1
0
文件: basic.c 项目: wrl/rutabaga
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);
}
示例#2
0
文件: button.c 项目: artfwo/rutabaga
void
rtb_button_fini(struct rtb_button *self)
{
	rtb_label_fini(&self->label);
	rtb_elem_fini(RTB_ELEMENT(self));
}