EINTERN int e_msg_shutdown(void) { while (handlers) e_msg_handler_del(eina_list_data_get(handlers)); E_EVENT_MSG = 0; if (hand) ecore_event_handler_del(hand); hand = NULL; return 1; }
static void _evas_render2_all_sync(void) { // wait for ALL canvases to stop rendering Eo *eo_e; if (!_rendering) return; eo_e = eina_list_data_get(eina_list_last(_rendering)); _evas_render2_wait(eo_e); }
int main() { E_Notification_Daemon *d; E_Notification *n; Daemon_Data *dd; ecore_init(); dd = calloc(1, sizeof(Daemon_Data)); dd->open_notes = NULL; dd->history = NULL; dd->next_id = dd->history_start = 1; dd->max_history_length = 5; dd->default_timeout = 5; /* set up the daemon */ d = e_notification_daemon_add("e_notification_module", "Enlightenment"); e_notification_daemon_data_set(d, dd); dd->daemon = d; e_notification_daemon_callback_notify_set(d, cb_notify); e_notification_daemon_callback_close_notification_set(d, cb_close_notification); ecore_main_loop_begin(); while (dd->open_notes) { n = eina_list_data_get(dd->open_notes); e_notification_unref(n); dd->open_notes = eina_list_remove_list(dd->open_notes, dd->open_notes); } while (dd->history) { n = eina_list_data_get(dd->history); e_notification_unref(n); dd->history = eina_list_remove_list(dd->history, dd->history); } free(dd); e_notification_daemon_free(d); ecore_shutdown(); return 0; }
static JSBool elixir_evas_objects_at_xy_get(JSContext *cx, uintN argc, jsval *vp) { Eina_List *list; Eina_List *walker; JSObject *array; Evas *evas; int include_pass_events_objects; int include_hidden_objects; int x; int y; int i; elixir_value_t val[5]; if (!elixir_params_check(cx, _evas_double_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; include_pass_events_objects = val[3].v.bol; include_hidden_objects = val[4].v.bol; list = evas_objects_at_xy_get(evas, x, y, 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* eobj; jsval js_obj; eobj = eina_list_data_get(walker); evas_object_to_jsval(cx, eobj, &js_obj); if (JS_SetElement(cx, array, i, &js_obj) == JS_FALSE) { eina_list_free(list); return JS_FALSE; } } return JS_TRUE; }
Eina_Bool eli_highscore_entry_add(const char * game, const char * username, float points, pointsType type) { Eina_List * l = NULL; Eli_Highscore_Entry * entry; int (*list_sort) (const void *, const void *); int count = 0; if (!game || !username || !eet_file_name) return 0; entry = _eli_entry_new(username, points, type); l = eli_highscore_get(game); if (l) count = eina_list_count(l); else count = 0; /* select the right sorting function */ switch (type) { case POINTS_TYPE_INTEGER_BAD: case POINTS_TYPE_FLOAT_BAD: list_sort = _eli_highscore_list_sort_bad; break; default: list_sort = _eli_highscore_list_sort_good; break; } /* 10 entries should be enough */ if (count >= 10) { Eina_List * last_l; Eli_Highscore_Entry * last_e; last_l = eina_list_last(l); last_e = eina_list_data_get(last_l); if ( list_sort(last_e, entry) < 0) { free(entry->username); free(entry); return 0; } } l = eina_list_append(l, entry); if (count) l = eina_list_sort(l, (count + 1), list_sort); if (count >= 10) l = eina_list_remove_list(l, eina_list_last(l)); ecore_hash_set(hiscore_hash, strdup(game), l); _eli_highscore_write(game); return 1; }
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); } }
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); } }
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_prev(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_prev(it->current); return EINA_TRUE; }
Eina_Bool play_done(void *data, int type, void *event) { Ecore_Audio_Object *in = (Ecore_Audio_Object *)event; Eina_List *ins; fail_if(!in); ins = ecore_audio_output_inputs_get(out); fail_if(eina_list_count(ins) != 1); fail_if(eina_list_data_get(ins) != in); ecore_audio_output_input_del(ecore_audio_input_output_get(in), in); ecore_audio_input_del(in); ecore_audio_output_del(out); ecore_main_loop_quit(); }
void news_config_item_del(News_Config_Item *nic) { eina_stringshare_del(nic->id); while(eina_list_count(nic->feed_refs)) { News_Feed_Ref *fr; fr = eina_list_data_get(nic->feed_refs); eina_stringshare_del(fr->name); nic->feed_refs = eina_list_remove(nic->feed_refs, fr); } news->config->items = eina_list_remove(news->config->items, nic); free(nic); }
void language_xml_clear(Language_XML *xml) { Language_XML_Node *n_cur; if ((!xml) || (!xml->current)) { DBG("One of values is NULL, returning with error."); return; } xml->current = xml->top; n_cur = xml->current; if (!n_cur) { DBG("One of values is NULL, returning with error."); return; } n_cur = n_cur->parent; if (n_cur) { Language_XML_Node *c_parent = n_cur; Eina_List *c_list = c_parent->children; void *data; c_list = eina_list_data_find_list(c_list, xml->current); EINA_LIST_FREE(c_list, data) E_FREE(data); if (!(n_cur = eina_list_data_get(c_list))) if (!(n_cur = eina_list_last(c_list))) n_cur = c_parent; } else { xml->top = NULL; void *data; if (xml->current) { eina_hash_free(xml->current->attributes); EINA_LIST_FREE(xml->current->children, data) E_FREE(data); E_FREE(xml->current); } } xml->current = n_cur; }
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; }
/* *************************************************************************** * Internals * ***************************************************************************/ static void _eli_highscore_list_free(Eina_List * list) { while (list) { Eli_Highscore_Entry * entry; entry = (Eli_Highscore_Entry *) eina_list_data_get(list); if (entry) { if (entry->username) { free(entry->username); entry->username = NULL; } free(entry); } list = eina_list_remove_list(list, list); } }
static void _elm_code_widget_undo_prev_clear(Evas_Object *widget) { Elm_Code_Widget_Data *pd; Elm_Code_Widget_Change_Info *info; Eina_List *list; pd = efl_data_scope_get(widget, ELM_CODE_WIDGET_CLASS); if (!pd->undo_stack_ptr) return; for (list = eina_list_prev(pd->undo_stack_ptr); list; list = eina_list_prev(list)) { info = eina_list_data_get(list); free(info->content); free(info); } }
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; }
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; }
void run_default_handler(madshelf_state_t *state, const char *filename) { fileinfo_t *fileinfo = fileinfo_create(filename); openers_t *handlers_list = openers_get(fileinfo->mime_type); fileinfo_destroy(fileinfo); if (!handlers_list) return; tag_add(state->tags, "recent", filename); Efreet_Desktop* handler = eina_list_data_get(handlers_list->apps); Eina_List *l = eina_list_append(NULL, filename); efreet_desktop_exec(handler, l, NULL); eina_list_free(l); }
static void _utils_slide_delete_cb(void *data, Evas_Object *obj, void *event_info) { List_Item *item = (List_Item*) data; int i = 0; Eina_List *l; List_Item *_item; List_Item *item_prev = NULL; EINA_LIST_FOREACH(l_slides, l, _item) { if(item == _item) break; else { item_prev = _item; i++; } } //delete the slide eyelight_edit_slide_delete(eyelight_object_pres_get(pres), i); //remove the slide from the list slides_list_slide_delete(item); //remove the slide from the grid slides_grid_remove(item); //free the item l_slides = eina_list_remove(l_slides, item); free(item); //select an other slide if(item_prev) elm_genlist_item_selected_set(item_prev->item, 1); else if(l_slides) { List_Item *_item = eina_list_data_get(l_slides); elm_genlist_item_selected_set(_item->item,1); } evas_object_del(_inwin_delete_slide); }
unsigned int _ecore_xcb_cookie_get (void) { Ecore_Xcb_Data *data; unsigned int cookie; if (!_ecore_xcb_cookies) return 0; data = eina_list_data_get(_ecore_xcb_cookies); if (!data) return 0; _ecore_xcb_cookies = eina_list_remove_list(_ecore_xcb_cookies, _ecore_xcb_cookies); cookie = data->cookie; free(data); return cookie; } /* _ecore_xcb_cookie_get */
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); } }
Eina_Bool email_pop3_stat_read(Email *e, const unsigned char *recv, size_t size) { Email_Stat_Cb cb; int num; size_t len; cb = eina_list_data_get(e->cbs); if ((!email_op_ok((const unsigned char *)recv, size)) || (sscanf((char*)recv, "+OK %u %zu", &num, &len) != 2)) { ERR("Error with STAT"); if (cb) cb(e, 0, 0); return EINA_TRUE; } INF("STAT returned %u messages (%zu octets)", num, len); if (cb) cb(e, num, len); return EINA_TRUE; }
SH_API Eina_Bool _read_stdin_list(void *data, Ecore_Fd_Handler *fd_handler) { char **splitted; char *buffer; char c; int i = 0; int len = 0; Evas_Object *obj = data; if (!_stdin_prepare(fd_handler)) return 0; // allocate initial buffer buffer = malloc(sizeof(char)); // get the buffer do { c = getc(stdin); buffer[i] = c; buffer = realloc(buffer, i + sizeof(buffer)); i++; } while (c != EOF); // terminate the string. buffer[i - 1] = '\0'; // split and append splitted = eina_str_split_full(buffer, "\n", 0, &len); for (i = 0; i < len; i++) elm_list_item_append(obj, splitted[i], NULL, NULL, NULL, NULL); elm_object_item_del(eina_list_data_get(eina_list_last(elm_list_items_get(obj)))); elm_list_go(obj); // free the the pointers, delete handler when we don't need it E_FREE(splitted); E_FREE(buffer); ecore_main_fd_handler_del(fd_handler); return 0; }
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); }
EINTERN void e_xinerama_fake_screen_del(int num) { Eina_List *l; E_Screen *scr, *lscr; int n = 0, x = 0; /* this assumes X number of identical horizontal screens */ EINA_SAFETY_ON_NULL_RETURN(fake_screens); l = eina_list_nth_list(fake_screens, num); EINA_SAFETY_ON_NULL_RETURN(l); scr = eina_list_data_get(l); free(scr); fake_screens = eina_list_remove_list(fake_screens, l); EINA_LIST_FOREACH(fake_screens, l, lscr) { lscr->screen = n++; lscr->x = x; lscr->w = e_comp->w / eina_list_count(fake_screens); x = lscr->x + lscr->w; }
void epdf_index_item_delete(Epdf_Index_Item *item) { if (!item) return; if (item->title) free(item->title); if (item->children) { while (item->children) { Epdf_Index_Item *item; item = (Epdf_Index_Item *)eina_list_data_get(item->children); epdf_index_item_delete (item); item->children = eina_list_remove_list(item->children, item->children); } } free(item); }
Eina_Bool email_pop3_stat_read(Email *e, const unsigned char *recvbuf, size_t size) { Email_Stat_Cb cb; Email_Operation *op; int num; size_t len; op = eina_list_data_get(e->ops); cb = op->cb; if ((!email_op_pop_ok((const unsigned char *)recvbuf, size)) || (sscanf((char*)recvbuf, "+OK %u %zu", &num, &len) != 2)) { ERR("Error with STAT"); if (cb && (!op->deleted)) cb(op, 0, 0); return EINA_TRUE; } INF("STAT returned %u messages (%zu octets)", num, len); if (cb && (!op->deleted)) cb(op, num, len); return EINA_TRUE; }
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 void new_object(void) { char *id; int i; int handled = 0; id = stack_id(); for (i = 0; i < object_handler_num(); i++) { if (!strcmp(object_handlers[i].type, id)) { handled = 1; if (object_handlers[i].func) { object_handlers[i].func(); } break; } } if (!handled) { for (i = 0; i < statement_handler_num(); i++) { if (!strcmp(statement_handlers[i].type, id)) { free(id); return; } } } if (!handled) { ERR("%s: Error. %s:%i unhandled keyword %s", progname, file_in, line - 1, (char *)eina_list_data_get(eina_list_last(stack))); exit(-1); } free(id); }
void evas_font_free(Evas *eo_evas, void *font) { Eina_List *l; Fndat *fd; Evas_Public_Data *evas = eo_data_get(eo_evas, EVAS_CLASS); EINA_LIST_FOREACH(fonts_cache, l, fd) { if (fd->font == font) { fd->ref--; if (fd->ref == 0) { fonts_cache = eina_list_remove_list(fonts_cache, l); fonts_zero = eina_list_append(fonts_zero, fd); } break; } } while (fonts_zero && eina_list_count(fonts_zero) > 42) /* 42 is arbitrary */ { fd = eina_list_data_get(fonts_zero); if (fd->ref != 0) break; fonts_zero = eina_list_remove_list(fonts_zero, fonts_zero); if (fd->fdesc) evas_font_desc_unref(fd->fdesc); if (fd->source) eina_stringshare_del(fd->source); evas->engine.func->font_free(evas->engine.data.output, fd->font); #ifdef HAVE_FONTCONFIG if (fd->set) FcFontSetDestroy(fd->set); if (fd->p_nm) FcPatternDestroy(fd->p_nm); #endif free(fd); if (eina_list_count(fonts_zero) < 43) break; } }