Elementary inwin widget

This sample code shows how to create and use the inwin widget from the Elementary library.
static void hide_inwin_cb(void *data, Evas_Object *obj, void *event) {
	Evas_Object *inwin = (Evas_Object *) data;
	if (inwin) {
		evas_object_hide(inwin);
	}
}

static void show_inwin_cb(void *data, Evas_Object *obj, void *event) {
	Evas_Object *inwin = (Evas_Object *) data;
	if (inwin) {
		elm_win_inwin_activate(inwin);
	}
}

static void inwin_test(appdata_s *ad) {
	
	//"Show inwin" button
	Evas_Object *show_button = elm_button_add(ad->win);
	elm_object_text_set(show_button, "Show inwin");
	evas_object_resize(show_button, 200, 50);
	evas_object_move(show_button, 125, 300);
	evas_object_show(show_button);

	//create the inwin
	Evas_Object* inwin = elm_win_inwin_add(ad->win);
	
	//set style of the inwin ("default", "minimal" or "minimal_vertical")
	elm_object_style_set(inwin, "minimal_vertical");

	//callback for showing the inwin
	evas_object_smart_callback_add(show_button, "clicked", show_inwin_cb, inwin);

	//create the contents of the inwin
	Evas_Object *box = elm_box_add(ad->win);
	evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, 0);
	evas_object_size_hint_align_set(box, EVAS_HINT_FILL, 0);
	elm_win_inwin_content_set(inwin, box);
	evas_object_show(box);

	Evas_Object *hide_button = elm_button_add(ad->win);
	elm_object_text_set(hide_button, "Hide inwin");
	evas_object_show(hide_button);
	evas_object_smart_callback_add(hide_button, "clicked", hide_inwin_cb, inwin);
	elm_box_pack_end(box, hide_button);
}

Responses

0 Replies