static void create_main_view(appdata_s *ad) { Evas_Object *genlist; Evas_Object *circle_genlist; Evas_Object *btn; Evas_Object *nf = ad->nf; Elm_Object_Item *nf_it; Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new(); Elm_Genlist_Item_Class *ttc = elm_genlist_item_class_new(); Elm_Genlist_Item_Class *ptc = elm_genlist_item_class_new(); item_data *id; int index = 0; /* Genlist */ genlist = elm_genlist_add(nf); elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS); evas_object_smart_callback_add(genlist, "selected", gl_selected_cb, NULL); circle_genlist = eext_circle_object_genlist_add(genlist, ad->circle_surface); eext_circle_object_genlist_scroller_policy_set(circle_genlist, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO); eext_rotary_object_event_activated_set(circle_genlist, EINA_TRUE); /* Genlist Title Item style */ ttc->item_style = "title"; ttc->func.text_get = _gl_menu_title_text_get; ttc->func.del = _gl_menu_del; /* Genlist Item style */ itc->item_style = "default"; itc->func.text_get = _gl_menu_text_get; itc->func.del = _gl_menu_del; /* Genlist Padding Item style */ ptc->item_style = "padding"; ptc->func.del = _gl_menu_del; /* Title Items Here */ elm_genlist_item_append(genlist, ttc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); /* Main Menu Items Here */ id = (item_data *)calloc(sizeof(item_data), 1); id->index = index++; id->item = elm_genlist_item_append(genlist, itc, id, NULL, ELM_GENLIST_ITEM_NONE, index_cb, ad); id = (item_data *)calloc(sizeof(item_data), 1); id->index = index++; id->item = elm_genlist_item_append(genlist, itc, id, NULL, ELM_GENLIST_ITEM_NONE, index_cb, ad); elm_genlist_item_append(genlist, ptc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); elm_genlist_item_class_free(itc); elm_genlist_item_class_free(ttc); elm_genlist_item_class_free(ptc); /* This button is set for devices which doesn't have H/W back key. */ btn = elm_button_add(nf); elm_object_style_set(btn, "naviframe/end_btn/default"); nf_it = elm_naviframe_item_push(nf, NULL, btn, NULL, genlist, "empty"); elm_naviframe_item_pop_cb_set(nf_it, naviframe_pop_cb, ad->win); }
static void _genlist_renew(Evas_Object *obj, const char *style) { Elm_Genlist_Item_Class *ic; int i; if (!obj) return; elm_genlist_clear(obj); ic = elm_genlist_item_class_new(); ic->item_style = style; ic->func.text_get = _item_label_get; if (!strcmp(style, "progress")) ic->func.content_get = _item_content_get_progress; else ic->func.content_get = _item_content_get_default; ic->func.state_get = NULL; ic->func.del = NULL; for (i = 0; i < N_ITEMS; i++) elm_genlist_item_append(obj, ic, (void *)i, NULL, ELM_GENLIST_ITEM_NONE, _item_sel_cb, NULL); elm_genlist_item_class_free(ic); }
static void _minictrl_add(const char *name, unsigned int width, unsigned int height, minicontrol_priority_e priority, void *data) { qp_item_data *qid = NULL; Elm_Genlist_Item_Class *itc = NULL; struct _viewer_item *vit = NULL; qp_item_type_e type; struct appdata *ad; Evas_Object *viewer = NULL; retif(!name, , "name is NULL"); retif(!data, , "data is NULL"); ad = data; retif(!ad->list, , "list is NULL"); if (g_prov_table) { struct _viewer_item *found = NULL; found = g_hash_table_lookup(g_prov_table, name); if (found) { ERR("already have it : %s", name); return; } } else { ERR("g_prov_table is NULL"); return; } /* elm_plug receives 'server_del' event, * if it repeats connect and disconnect frequently. * */ viewer = minicontrol_viewer_add(ad->list, name); if (!viewer) { ERR("fail to add viewer - %s", name); return; } evas_object_ref(viewer); evas_object_size_hint_min_set(viewer, width, height); itc = _minictrl_gl_style_get(); if (!itc) { ERR("fail to _minictrl_gl_style_get()"); evas_object_del(viewer); return; } vit = malloc(sizeof(struct _viewer_item)); if (!vit) { ERR("fail to alloc vit"); evas_object_del(viewer); elm_genlist_item_class_free(itc); return; } type = _minictrl_priority_to_type(priority); qid = quickpanel_list_util_item_new(type, vit); if (!qid) { ERR("fail to alloc vit"); evas_object_del(viewer); elm_genlist_item_class_free(itc); free(vit); return; } vit->name = strdup(name); vit->width = width; vit->height = height; vit->priority = priority; vit->viewer = viewer; vit->data = data; vit->it = quickpanel_list_util_sort_insert(ad->list, itc, qid, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); g_hash_table_insert(g_prov_table, g_strdup(name), vit); INFO("success to add %s", name); elm_genlist_item_class_free(itc); quickpanel_ui_update_height(ad); }
static void __common_utils_separator_del(void *data, Evas_Object *obj) { elm_genlist_item_class_free(data); return; }
GenlistItemClass::~GenlistItemClass() { elm_genlist_item_class_free(m_pClass); }