From f44099726a071d93b54bde5b397b0d5019ccac8c Mon Sep 17 00:00:00 2001 From: Daniel Juyung Seo Date: Mon, 3 Dec 2012 00:55:59 +0900 Subject: [PATCH] widget: added custom gengrid sample - grid check style. --- gui.c | 18 ++++++++++++++++++ widget.c | 36 ++++++++++++++++++++++++++++++++++-- 2 files changed, 52 insertions(+), 2 deletions(-) diff --git a/gui.c b/gui.c index ae4a46c..a88d2f2 100644 --- a/gui.c +++ b/gui.c @@ -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); diff --git a/widget.c b/widget.c index a39363a..42e7f48 100644 --- a/widget.c +++ b/widget.c @@ -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);