コード例 #1
0
ファイル: efl_model_common.c プロジェクト: Stefan-Schmidt/efl
EAPI Eina_Accessor*
efl_model_list_slice(Eina_List *list, unsigned start, unsigned count)
{
   if (!list) return NULL;

   if ((start == 0) && (count == 0)) /* this is full data */
     {
        /*
         * children_accessor will be set to NULL by
         * eina_list_accessor_new if the later fails.
         */
       return eina_list_accessor_new(list);
     }

   Eo *child;
   Eina_List *l, *ln, *lr = NULL;
   ln = eina_list_nth_list(list, (start-1));
   if (!ln)
     {
        return NULL;
     }

   EINA_LIST_FOREACH(ln, l, child)
     {
        efl_ref(child);
        lr = eina_list_append(lr, child);
        if (eina_list_count(lr) == count)
          break;
     }
コード例 #2
0
ファイル: eina_list_03.c プロジェクト: RomainNaour/efl
int
main(int argc, char **argv)
{
   (void)argc;
   (void)argv;
   Eina_List *list = NULL, *r_list;
   Eina_List *l;
   Eina_Iterator *itr;
   void *list_data;

   eina_init();

   list = eina_list_append(list, "caprica");
   list = eina_list_append(list, "sagitarius");
   list = eina_list_append(list, "aerilon");
   list = eina_list_append(list, "gemenon");

   list = eina_list_promote_list(list, eina_list_nth_list(list, 2));
   list = eina_list_demote_list(list, eina_list_nth_list(list, 2));

   list = eina_list_remove(list, "sagitarius");

   l = eina_list_data_find_list(list, "aerilon");
   eina_list_data_set(l, "aquarius");

   printf("size: %d\n", eina_list_count(list));

   r_list = eina_list_reverse_clone(list);

   itr = eina_list_iterator_new(r_list);
   EINA_ITERATOR_FOREACH(itr, list_data)
     printf("%s\n", (char*)list_data);
   eina_iterator_free(itr);

   eina_list_free(list);
   eina_list_free(r_list);

   eina_shutdown();

   return 0;
}
コード例 #3
0
ファイル: e_xinerama.c プロジェクト: tasn/enlightenment
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;
     }
コード例 #4
0
/* callbacks */
static void
_enscribi_input_frame_cb_matches(void *data, Evas_Object *obj, const char *emission, const char *source)
{
    Match *match;
    Eina_List *matches, *l;
    int i;
    Edje_Message_String_Set *msg;
    Edje_Message_Int_Set *msg2;
    Smart_Data *sd;
    
    sd = data;
    matches = enscribi_canvas_matches_get(sd->canvas);
    if (!matches) return;
        
    msg = calloc(1, sizeof(Edje_Message_String_Set) + ((9-1) * sizeof(char *)));
    msg->count = 9;
    msg2 = calloc(1, sizeof(Edje_Message_String_Set) + ((9-1) * sizeof(int)));
    msg2->count = 9;
    for (i = 0; i < 8; i++) {
        l = eina_list_nth_list(matches, i);
        match = l->data;
        msg->str[i] = match->str;

        // Get and send the unicode value of the glyph as well
        int glyph;
        evas_string_char_next_get(match->str, 0, &(glyph));
        msg2->val[i] = glyph;

        printf("%s\t(%d)\n", msg->str[i], msg2->val[i]);
    }
    msg->str[8] = ""; // Why do we have to set a 9th element to not get scrap in 8th?
    msg2->val[8] = 0;

    edje_object_message_send(obj, EDJE_MESSAGE_STRING_SET, 1, msg);
    edje_object_message_send(obj, EDJE_MESSAGE_INT_SET, 1, msg2);
    free(msg);
    free(msg2);
}