Пример #1
0
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;
}
Пример #2
0
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);
}