static void key_handler(void *data, Evas * evas, Evas_Object * obj, void *event_info) { eoi_help_info_t *info = data; if (!info->navigation) { char *app; if (!asprintf(&app, "help/%s", info->application)) err(1, "asprintf"); info->navigation = keys_alloc(app); free(app); } if (!info->keys) info->keys = keys_alloc("eoi_help"); const char *action = keys_lookup_by_event(info->navigation, eina_list_data_get(info->history), event_info); if (action && strlen(action)) { load_page(info, action); return; } action = keys_lookup_by_event(info->keys, "default", event_info); if (!action || !strlen(action)) return; if (!strcmp(action, "PageDown")) eoi_textbox_page_next(info->textbox); else if (!strcmp(action, "PageUp")) eoi_textbox_page_prev(info->textbox); else if (!strcmp(action, "Back")) { if (eina_list_prev(info->history)) { free(eina_list_data_get(info->history)); info->history = eina_list_prev(info->history); char *page = strdup(eina_list_data_get(info->history)); info->history = eina_list_remove_list(info->history, eina_list_next(info->history)); free(eina_list_data_get(info->history)); info->history = eina_list_prev(info->history); info->history = eina_list_remove_list(info->history, eina_list_next(info->history)); load_page(info, page); free(page); } else eoi_help_free(info->textbox); } else if (!strcmp(action, "Close")) eoi_help_free(info->textbox); }
static Eina_Bool _cb_alarms_ring_etimer(void *data) { Eina_List *l; double now; if (alarm_config->alarms_state == ALARM_STATE_OFF) { alarm_config->alarms_ring_etimer = NULL; return EINA_FALSE; } now = ecore_time_unix_get(); for(l=alarm_config->alarms; l; l=eina_list_next(l)) { Alarm *al; al = eina_list_data_get(l); if (al->state != ALARM_STATE_ON) continue; if (al->sched.date_epoch <= now) alarm_alarm_ring(al, 0); } return EINA_TRUE; }
static void _cb_feed_add(void *data, void *data2) { E_Config_Dialog_Data *cfdata; News_Item *ni; News_Feed *f; Eina_List *l; cfdata = data; ni = cfdata->ni; for (l=cfdata->ilist_feeds_sel; l; l=eina_list_next(l)) { f = l->data; if (f->item) continue; if (news_feed_attach(f, NULL, ni)) news_feed_obj_refresh(f, 1, 1); /* dont reselect this feed */ cfdata->ilist_feeds_sel = eina_list_remove(cfdata->ilist_feeds_sel, f); } news_item_refresh(ni, 1, 0, 0); news_feed_list_ui_refresh(); news_viewer_refresh(ni->viewer); news_config_save(); }
static void _cb_feed_down(void *data, void *data2) { E_Config_Dialog_Data *cfdata; News_Feed *f; News_Item *ni; News_Feed_Ref *ref; Eina_List *sel, *l, *lf; cfdata = data; ni = cfdata->ni; for (sel=eina_list_last(cfdata->ilist_selected_feeds_sel); sel; sel=eina_list_prev(sel)) { f = sel->data; ref = news_feed_ref_find(f, ni); if (!ref) return; l = eina_list_data_find_list(ni->config->feed_refs, ref); lf = eina_list_next(l); if (!lf) return; ni->config->feed_refs = eina_list_remove_list(ni->config->feed_refs, l); ni->config->feed_refs = eina_list_append_relative_list(ni->config->feed_refs, ref, lf); } news_item_refresh(ni, 1, 0, 0); news_config_dialog_item_content_refresh_selected_feeds(ni); }
static void _pager_place_desks(double scale) { int x, y; Eina_List *l = desks; int a = (1.0 - scale) * 255.0; for (y = 0; y < zone->desk_y_count; y++) { for (x = 0; x < zone->desk_x_count; x++) { double x1 = (x - initial_desk->x) * zone_w; double y1 = (y - initial_desk->y) * zone_h; double x2 = min_x + x * desk_w; double y2 = min_y + y * desk_h; double cur_x = (scale * x1) + (1.0 - scale) * x2; double cur_y = (scale * y1) + (1.0 - scale) * y2; Evas_Object *o = eina_list_data_get(l); int w = (scale * (zone->w)) + (1.0 - scale) * desk_w - OFFSET; int h = (scale * (zone->h)) + (1.0 - scale) * desk_h - OFFSET; evas_object_move(o, cur_x, cur_y); evas_object_resize(o, w, h); if (scale_conf->pager_fade_desktop) evas_object_color_set(o, a, a, a, a); l = eina_list_next(l); } } }
static Eina_Bool eina_list_accessor_get_at(Eina_Accessor_List *it, unsigned int idx, void **data) { const Eina_List *over; unsigned int middle; unsigned int i; EINA_MAGIC_CHECK_LIST_ACCESSOR(it, EINA_FALSE); if (idx >= eina_list_count(it->head)) return EINA_FALSE; if (it->index == idx) over = it->current; else if (idx > it->index) { /* After current position. */ middle = ((eina_list_count(it->head) - it->index) >> 1) + it->index; if (idx > middle) /* Go backward from the end. */ for (i = eina_list_count(it->head) - 1, over = eina_list_last(it->head); i > idx && over; --i, over = eina_list_prev(over)) ; else /* Go forward from current. */ for (i = it->index, over = it->current; i < idx && over; ++i, over = eina_list_next(over)) ; }
static void _cb_feed_change(void *data, Evas_Object *obj) { E_Config_Dialog_Data *cfdata; E_Ilist_Item *item; News_Feed *feed; Eina_List *sel, *items, *l; int i; cfdata = data; if (cfdata->ilist_feeds_sel) eina_list_free(cfdata->ilist_feeds_sel); sel = NULL; items = e_widget_ilist_items_get(cfdata->ilist_feeds); for (l=items, i=0; l; l=eina_list_next(l), i++) { item = l->data; if (item->header) continue; if (!item->selected) continue; feed = e_widget_ilist_nth_data_get(cfdata->ilist_feeds, i); sel = eina_list_append(sel, feed); } cfdata->ilist_feeds_sel = sel; if (e_widget_ilist_selected_get(cfdata->ilist_feeds) >= 0) { if (cfdata->button_add) e_widget_disabled_set(cfdata->button_add, 0); } else { if (cfdata->button_add) e_widget_disabled_set(cfdata->button_add, 1); } }
int main(int argc, char **argv) { Eina_List *list = NULL; Eina_List *l; void *list_data; eina_init(); list = eina_list_append(list, eina_stringshare_add("calvin")); list = eina_list_append(list, eina_stringshare_add("Leoben")); list = eina_list_append(list, eina_stringshare_add("D'Anna")); list = eina_list_append(list, eina_stringshare_add("Simon")); list = eina_list_append(list, eina_stringshare_add("Doral")); list = eina_list_append(list, eina_stringshare_add("Six")); list = eina_list_append(list, eina_stringshare_add("Sharon")); for(l = list; l; l = eina_list_next(l)) printf("%s\n", (char*)l->data); for(l = eina_list_last(list); l; l = eina_list_prev(l)) printf("%s\n", (char*)eina_list_data_get(l)); EINA_LIST_FREE(list, list_data) eina_stringshare_del(list_data); eina_shutdown(); return 0; }
Eina_Bool language_next(Language_XML *xml) { Eina_List *p_list; Language_XML_Node *parent, *cur; if (!xml) { DBG("One of values is NULL, returning with error."); return EINA_FALSE; } if (xml->current) { cur = xml->current; parent = cur->parent; if (parent) { p_list = parent->children; p_list = eina_list_data_find_list(p_list, xml->current); p_list = eina_list_next( p_list ); if (!(xml->current = eina_list_data_get(p_list))) { xml->current = cur; return EINA_FALSE; } } else xml->current = EINA_FALSE; } return xml->current ? EINA_TRUE : EINA_FALSE; }
void on_btn_save_clicked(Etk_Object *object, void *data) { Cover_Entry *ce; Eet_File *ef; Eina_List *list; char *cover_file; list = cover_changed; asprintf(&cover_file, "%s/.e/apps/emphasis/cover.eet", getenv("HOME")); ef = eet_open(cover_file, EET_FILE_MODE_READ_WRITE); if (!ef) { fprintf(stderr, "can't open %s\n", cover_file); free(cover_file); return; } while (cover_changed) { ce = eina_list_data_get(cover_changed); eet_write(ef, ce->key, ce->path, strlen(ce->path)+1, 0); eet_clearcache(); free(ce->key); free(ce->path); free(ce); cover_changed = eina_list_next(cover_changed); } eina_list_free(list); eet_close(ef); free(cover_file); }
static JSBool elixir_evas_objects_in_rectangle_get(JSContext *cx, uintN argc, jsval *vp) { JSObject *array; Eina_List *list; Eina_List *walker; Evas *evas; int x; int y; int w; int h; int include_pass_events_objects; int include_hidden_objects; int i; elixir_value_t val[7]; if (!elixir_params_check(cx, _evas_four_int_double_bool_params, val, argc, JS_ARGV(cx, vp))) return JS_FALSE; GET_PRIVATE(cx, val[0].v.obj, evas); x = val[1].v.num; y = val[2].v.num; w = val[3].v.num; h = val[4].v.num; include_pass_events_objects = val[5].v.bol; include_hidden_objects = val[6].v.bol; list = evas_objects_in_rectangle_get(evas, x, y, w, h, include_pass_events_objects, include_hidden_objects); if (!list) { JS_SET_RVAL(cx, vp, JSVAL_NULL); return JS_TRUE; } array = elixir_return_array(cx, vp); if (!array) { eina_list_free(list); return JS_FALSE; } for (i = 0, walker = list; walker; walker = eina_list_next(walker), ++i) { Evas_Object *obj; jsval js_obj; obj = eina_list_data_get(walker); evas_object_to_jsval(cx, obj, &js_obj); if (JS_SetElement(cx, array, i, &js_obj) == JS_FALSE) { eina_list_free(list); return JS_FALSE; } } return JS_TRUE; }
/** * Get the contents of a defined structure property and load it into the passed * C struct * @param key The name of the structure property to look up. * @param data The struct to write into. * @return @c ECORE_CONFIG_ERR_SUCC if the structure is written successfully. * @ingroup Ecore_Config_Struct_Group */ EAPI int ecore_config_struct_get(const char *key, void *data) { Ecore_Config_Prop *e, *f; Eina_List *l; unsigned char *ptr; long argb; e = ecore_config_get(key); if (!e) return ECORE_CONFIG_ERR_NODATA; l = e->data; ptr = data; while (l) { f = (Ecore_Config_Prop *) l->data; switch (f->type) { case ECORE_CONFIG_INT: *((int *) ptr) = _ecore_config_int_get(f); ptr += sizeof(int); break; case ECORE_CONFIG_BLN: *((int *) ptr) = _ecore_config_boolean_get(f); ptr += sizeof(int); break; case ECORE_CONFIG_FLT: *((float *) ptr) = _ecore_config_float_get(f); ptr += sizeof(float); break; case ECORE_CONFIG_STR: case ECORE_CONFIG_THM: *((char **) ptr) = _ecore_config_string_get(f); ptr += sizeof(char *); break; case ECORE_CONFIG_RGB: argb = _ecore_config_argbint_get(f); *((int *) ptr) = (argb >> 24) & 0xff; ptr += sizeof(int); *((int *) ptr) = (argb >> 16) & 0xff; ptr += sizeof(int); *((int *) ptr) = (argb >> 8) & 0xff; ptr += sizeof(int); *((int *) ptr) = argb & 0xff; ptr += sizeof(int); break; default: WRN("ARGH - STRUCT coding not implemented yet"); } l = eina_list_next(l); } return ECORE_CONFIG_ERR_SUCC; }
void alarm_edje_signal_emit(const char *source, const char *message) { Eina_List *l; for (l=alarm_config->instances; l; l=eina_list_next(l)) { Instance *inst; inst = eina_list_data_get(l); edje_object_signal_emit(inst->obj, source, message); } }
void alarm_edje_text_set(char *part, char *text) { Eina_List *l; for (l=alarm_config->instances; l; l=eina_list_next(l)) { Instance *inst; inst = eina_list_data_get(l); edje_object_part_text_set(inst->obj, part, text); } }
News_Config_Item * news_config_item_add(const char *id) { News_Config_Item *nic; Eina_List *l; char buf[128]; DCONF(("Item new config")); if (!id) { int num = 0; /* Create id */ if (news->config->items) { const char *p; nic = eina_list_last(news->config->items)->data; p = strrchr(nic->id, '.'); if (p) num = atoi(p + 1) + 1; } snprintf(buf, sizeof(buf), "%s.%d", _gc_name(), num); id = buf; } else { /* is there already an item config for this id ? */ for (l=news->config->items; l; l=eina_list_next(l)) { nic = eina_list_data_get(l); if (!strcmp(nic->id, id)) { DCONF(("config found ! %s", nic->id)); return nic; } } } DCONF(("config NOT found ! creating new one %s", id)); /* no, create a new item config */ nic = E_NEW(News_Config_Item, 1); nic->id = eina_stringshare_add(id); nic->view_mode = NEWS_ITEM_VIEW_MODE_DEFAULT; nic->openmethod = NEWS_ITEM_OPENMETHOD_DEFAULT; nic->browser_open_home = NEWS_ITEM_BROWSER_OPEN_HOME_DEFAULT; news->config->items = eina_list_append(news->config->items, nic); return nic; }
static Eina_Bool eina_list_iterator_next(Eina_Iterator_List *it, void **data) { EINA_MAGIC_CHECK_LIST_ITERATOR(it, EINA_FALSE); if (!it->current) return EINA_FALSE; *data = eina_list_data_get(it->current); it->current = eina_list_next(it->current); return EINA_TRUE; }
EAPI void e_layout_child_raise(Evas_Object *obj) { E_Layout_Item *li; li = evas_object_data_get(obj, "e_layout_data"); if (!li) return; if (!eina_list_data_find(li->sd->items, obj)) return; if ((li->sd->items) && eina_list_next(li->sd->items)) { li->sd->items = eina_list_remove(li->sd->items, obj); evas_object_raise(obj); li->sd->items = eina_list_append(li->sd->items, obj); } }
EAPI void e_layout_child_lower_below(Evas_Object *obj, Evas_Object *below) { E_Layout_Item *li; li = evas_object_data_get(obj, "e_layout_data"); if (!li) return; if (!eina_list_data_find(li->sd->items, below)) return; if (!eina_list_data_find(li->sd->items, obj)) return; if ((li->sd->items) && eina_list_next(li->sd->items)) { li->sd->items = eina_list_remove(li->sd->items, obj); evas_object_stack_below(obj, below); li->sd->items = eina_list_prepend_relative(li->sd->items, obj, below); } }
static JSBool elixir_evas_object_smart_members_get(JSContext *cx, uintN argc, jsval *vp) { Evas_Object *know = NULL; Eina_List *list; Eina_List *head; JSObject *array; int i; elixir_value_t val[1]; if (!elixir_params_check(cx, _evas_object_smart_params, val, argc, JS_ARGV(cx, vp))) return JS_FALSE; GET_PRIVATE(cx, val[0].v.obj, know); list = (Eina_List*) evas_object_smart_members_get(know); if (!list) { JS_SET_RVAL(cx, vp, JSVAL_NULL); return JS_TRUE; } array = elixir_return_array(cx, vp); if (!array) { eina_list_free(list); return JS_FALSE; } for (i = 0, head = list; list; list = eina_list_next(list), ++i) { Evas_Object *obj; jsval js_obj; obj = eina_list_data_get(list); evas_object_to_jsval(cx, obj, &js_obj); if (JS_SetElement(cx, array, i, &js_obj) == JS_FALSE) return JS_FALSE; } eina_list_free(head); return JS_TRUE; }
static char * stack_id(void) { char *id; int len; Eina_List *l; char *data; len = 0; EINA_LIST_FOREACH(stack, l, data) len += strlen(data) + 1; id = mem_alloc(len); id[0] = 0; EINA_LIST_FOREACH(stack, l, data) { strcat(id, data); if (eina_list_next(l)) strcat(id, "."); }
static JSBool elixir_evas_object_clipees_get(JSContext *cx, uintN argc, jsval *vp) { Evas_Object *know = NULL; JSObject *array; Eina_List *list; int i; elixir_value_t val[1]; if (!elixir_params_check(cx, _evas_object_params, val, argc, JS_ARGV(cx, vp))) return JS_FALSE; GET_PRIVATE(cx, val[0].v.obj, know); list = (Eina_List*) evas_object_clipees_get(know); if (!list) { JS_SET_RVAL(cx, vp, JSVAL_NULL); return JS_TRUE; } array = elixir_return_array(cx, vp); if (!array) { evas_render_method_list_free(list); return JS_FALSE; } for (i = 0; list; list = eina_list_next(list), ++i) { Evas_Object *obj; jsval js_obj; obj = eina_list_data_get(list); evas_object_to_jsval(cx, obj, &js_obj); if (JS_SetElement(cx, array, i, &js_obj) == JS_FALSE) return JS_FALSE; } /* FIXME: We have a little memory leak here. */ return JS_TRUE; }
News_Item * news_item_new(E_Gadcon_Client *gcc, Evas_Object *obj, const char *id) { News_Item *ni; News_Config_Item *nic; Evas_Object *view; Eina_List *l; ni = E_NEW(News_Item, 1); news_theme_edje_set(obj, NEWS_THEME_ITEM); nic = news_config_item_add(id); ni->gcc = gcc; ni->obj = obj; ni->config = nic; evas_object_event_callback_add(obj, EVAS_CALLBACK_MOUSE_DOWN, _cb_mouse_down, ni); evas_object_event_callback_add(obj, EVAS_CALLBACK_MOUSE_OUT, _cb_mouse_out, ni); /* attach feeds */ for (l=nic->feed_refs; l; l=eina_list_next(l)) { News_Feed_Ref *ref; ref = eina_list_data_get(l); news_feed_attach(NULL, ref, ni); } news_feed_list_ui_refresh(); /* main view */ view = e_box_add(gcc->gadcon->evas); e_box_homogenous_set(view, 1); e_box_orientation_set(view, 1); edje_object_part_swallow(ni->obj, "view", view); evas_object_show(view); ni->view.box = view; news_item_refresh(ni, 1, 1, 1); return ni; }
void alarm_edje_refresh_details(void) { Eina_List *l; Alarm *al; Alarm *first; double first_epoch; char buf[32]; first = NULL; first_epoch = LONG_MAX; for (l=alarm_config->alarms; l; l=eina_list_next(l)) { al = eina_list_data_get(l); if (al->state == ALARM_STATE_OFF) continue; if (al->sched.date_epoch < first_epoch) { first = al; first_epoch = al->sched.date_epoch; } } if (!first) { alarm_edje_text_set("alarm_txt_line", "-- --:--"); return; } else { struct tm *st; time_t t; char bufdate[32]; t = first_epoch - (first->sched.hour*3600) - (first->sched.minute*60); st = localtime(&t); strftime(bufdate, sizeof(bufdate), "%d", st); snprintf(buf, sizeof(buf), "%.2s %.2d:%.2d", bufdate, first->sched.hour, first->sched.minute); alarm_edje_text_set("alarm_txt_line", buf); } }
EAPI void e_font_apply(void) { char buf[1024]; Eina_List *l; E_Border *bd; E_Font_Default *efd; E_Font_Fallback *eff; int blen, len; /* setup edje fallback list */ blen = sizeof(buf) - 1; buf[0] = 0; buf[blen] = 0; l = e_config->font_fallbacks; if (l) { eff = eina_list_data_get(l); len = strlen(eff->name); if (len < blen) { strcpy(buf, eff->name); blen -= len; } EINA_LIST_FOREACH(eina_list_next(l), l, eff) { len = 1; if (len < blen) { strcat(buf, ","); blen -= len; } len = strlen(eff->name); if (len < blen) { strcat(buf, eff->name); blen -= len; } } edje_fontset_append_set(buf); }
void alarm_details_change(void) { Eina_List *l; for(l=alarm_config->instances; l; l=eina_list_next(l)) { Instance *i; i = eina_list_data_get(l); _gc_orient(i->gcc, -1); } if (alarm_config->alarms_details) { alarm_edje_refresh_details(); alarm_edje_signal_emit(EDJE_SIG_SEND_ALARM_DETAILS_ON); } else alarm_edje_signal_emit(EDJE_SIG_SEND_ALARM_DETAILS_OFF); }
static int _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) { News_Config_Item *nic, *nic2; News_Item *ni, *ni2; Eina_List *l; ni = cfdata->ni; nic = ni->config; if (!cfdata->apply_to_all) { nic->openmethod = cfdata->openmethod; nic->browser_open_home = cfdata->browser_open_home; if (nic->view_mode != cfdata->view_mode) { nic->view_mode = cfdata->view_mode; news_item_refresh(ni, 1, 0, 1); } } else { for (l=news->items; l; l=eina_list_next(l)) { ni2 = l->data; nic2 = ni2->config; nic2->openmethod = cfdata->openmethod; nic2->browser_open_home = cfdata->browser_open_home; if (nic2->view_mode != cfdata->view_mode) { nic2->view_mode = cfdata->view_mode; news_item_refresh(ni2, 1, 0, 1); } } } nic->apply_to_all = cfdata->apply_to_all; news_config_save(); return 1; }
int enna_util_has_suffix(char *str, Eina_List * patterns) { Eina_List *l; int result = 0; unsigned int i; char *tmp; if (!patterns || !str || !str[0]) return 0; for (l = patterns; l; l = eina_list_next(l)) { tmp = calloc(1, strlen(str) + 1); for (i = 0; i < strlen(str); i++) tmp[i] = tolower(str[i]); result |= enna_util_str_has_suffix(tmp, (char *)l->data); ENNA_FREE(tmp); } return result; }
static void _cb_feed_remove(void *data, void *data2) { E_Config_Dialog_Data *cfdata; News_Item *ni; News_Feed *f; Eina_List *l; cfdata = data; ni = cfdata->ni; for (l=cfdata->ilist_selected_feeds_sel; l; l=eina_list_next(l)) { f = l->data; news_feed_detach(f, 1); } news_item_refresh(ni, 1, 0, 0); news_config_dialog_item_content_refresh_selected_feeds(ni); news_viewer_refresh(ni->viewer); news_config_save(); }
void alarm_alarm_ring_stop(Alarm *al, int check) { Eina_List *l; if (al) { if (al->state != ALARM_STATE_RINGING) return; al->state = ALARM_STATE_ON; alarm_config->alarms_ringing_nb--; if (check) _alarm_check_date(al, 0); } else { for (l=alarm_config->alarms; l; l=eina_list_next(l)) { al = eina_list_data_get(l); if (al->state == ALARM_STATE_RINGING) { printf("Stop alarm %s\n", al->name); al->state = ALARM_STATE_ON; alarm_config->alarms_ringing_nb--; if (check) _alarm_check_date(al, 0); } } } if (alarm_config->alarms_ringing_nb == 0) { alarm_edje_signal_emit(EDJE_SIG_SEND_ALARM_STATE_ON); alarm_config->alarms_state = ALARM_STATE_ON; } e_config_save_queue(); }
END_TEST START_TEST(inherits_test) { Eina_List *compare = NULL, *itr1, *itr2; Eina_List *inherits_list = NULL; char *str1, *str2; eina_init(); compare = eina_list_append(compare, "MyBaseClass1"); compare = eina_list_append(compare, "MyBaseClass2"); eolian_database_init(); eolian_eo_class_desc_parse(EO_COMMENT); inherits_list = (Eina_List*) database_class_inherits_list_get("MyClassName"); fail_if(!inherits_list); ck_assert_int_eq(eina_list_count(inherits_list), 2); itr2 = compare; EINA_LIST_FOREACH(inherits_list, itr1, str1) { str2 = eina_list_data_get(itr2); ck_assert_str_eq(str1, str2); itr2 = eina_list_next(itr2); }