widget: added custom gengrid sample - grid check style.
This commit is contained in:
parent
99c5750f61
commit
f44099726a
18
gui.c
18
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);
|
||||
|
|
36
widget.c
36
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);
|
||||
|
|
Loading…
Reference in New Issue