widget: added custom gengrid sample - grid check style.

This commit is contained in:
Daniel Juyung Seo 2012-12-03 00:55:59 +09:00
parent 99c5750f61
commit f44099726a
2 changed files with 52 additions and 2 deletions

18
gui.c
View File

@ -145,6 +145,21 @@ _nf_prev_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
elm_naviframe_item_pop(data);
}
static void
_style_list_gengrid_grid_check_sel_cb(void *data, Evas_Object *obj,
void *event_info)
{
_viewer_box_obj_del();
_viewer_box_obj_add("gengrid", "h9 grid-check-style");
}
static void
_custom_styles_add(Evas_Object *list)
{
elm_list_item_append(list, "Grid Check Style", NULL, NULL,
_style_list_gengrid_grid_check_sel_cb, NULL);
}
static void
_widget_list_sel_cb(void *data, Evas_Object *obj, void *event_info)
{
@ -169,6 +184,9 @@ _widget_list_sel_cb(void *data, Evas_Object *obj, void *event_info)
elm_list_item_append(li, style, NULL, NULL, _style_list_sel_cb, sd);
}
// add additional hacky custom styles for special reasons
_custom_styles_add(li);
elm_list_go(li);
prev_btn = elm_button_add(win);

View File

@ -171,6 +171,35 @@ _widget_gengrid_text_get(void *data, Evas_Object *obj, const char *part)
return strdup(buf);
}
static Evas_Object *
_widget_gengrid_grid_check_content_get(void *data, Evas_Object *obj,
const char *part)
{
Evas_Object *o = NULL;
char buf[PATH_MAX] = {0, };
int i = ((int)(long)data % 4) + 1;
if (!strcmp(part, "elm.swallow.icon"))
{
o = elm_bg_add(obj);
snprintf(buf, sizeof(buf),
"%s/images/sky_0%d.jpg", elm_app_data_dir_get(), i);
elm_bg_file_set(o, buf, NULL);
evas_object_size_hint_aspect_set(o, EVAS_ASPECT_CONTROL_VERTICAL,
1, 1);
evas_object_show(o);
}
else if (!strcmp(part, "elm.swallow.end"))
{
o = elm_check_add(obj);
elm_object_style_set(o, "grid");
evas_object_propagate_events_set(o, EINA_FALSE);
evas_object_show(o);
}
return o;
}
static Evas_Object *
_widget_gengrid_content_get(void *data, Evas_Object *obj, const char *part)
{
@ -183,7 +212,6 @@ _widget_gengrid_content_get(void *data, Evas_Object *obj, const char *part)
o = elm_bg_add(obj);
snprintf(buf, sizeof(buf),
"%s/images/sky_0%d.jpg", elm_app_data_dir_get(), i);
printf("%s\n", buf);
elm_bg_file_set(o, buf, NULL);
evas_object_size_hint_aspect_set(o, EVAS_ASPECT_CONTROL_VERTICAL,
@ -214,7 +242,6 @@ _widget_gengrid_create(const char *orig_style, const char *style)
ic = elm_gengrid_item_class_new();
ic->func.text_get = _widget_gengrid_text_get;
ic->func.content_get = _widget_gengrid_content_get;
ic->func.state_get = NULL;
ic->func.del = NULL;
@ -224,6 +251,11 @@ _widget_gengrid_create(const char *orig_style, const char *style)
else
elm_object_style_set(o, style);
if (!strcmp("h9 grid-check-style", orig_style))
ic->func.content_get = _widget_gengrid_grid_check_content_get;
else
ic->func.content_get = _widget_gengrid_content_get;
for (i = 0; i < 50; i++)
{
elm_gengrid_item_append(o, ic, (void *)(long)i, NULL, NULL);