コード例 #1
0
ファイル: app.c プロジェクト: barbieri/barbieri-playground
static void
_populate(app_t *app)
{
    FILE *fp;

    if (app->infile) {
        fp = fopen(app->infile, "r");
        if (fp == NULL) {
            fprintf(stderr, "Could not open file for reading \"%s\": %s\n",
                    app->infile, strerror(errno));
            return;
        }
    } else {
        fprintf(stderr, "No input file provided, reading from stdin.\n");
        fp = stdin;
    }

    while (!feof(fp)) {
        Evas_Object *obj;
        Evas_Coord w, h;
        char *line;
        unsigned n;
        int i;

        n = 0;
        line = NULL;
        i = getline(&line, &n, fp);
        if (i < 0)
            break;

        if (i == 0) {
            free(line);
            continue;
        }
        line[i - 1] = '\0';

        obj = _new_list_item(app, line);
        e_box_pack_end(app->e_box, obj);
        edje_object_size_min_calc(obj, &w, &h);
        e_box_pack_options_set(obj, 1, 1, 1, 0, 0.0, 0.5, w, h, 9999, h);
        evas_object_show(obj);

        free(line);
    }

    if (fp != stdin)
        fclose(fp);

    e_box_align_set(app->e_box, 0.0, 1.0);
    app->current = 0;
}
コード例 #2
0
static void
_item_refresh_mode_feed(News_Item *ni, int important_only, int unread_only, int changed_order, int changed_content, int changed_state)
{
   Evas_Object *box;
   Evas_Object *obj;

   if (!eina_list_count(ni->config->feed_refs)) return;

   box = ni->view.box;

   NEWS_ITEM_FEEDS_FOREACH_BEG_LIST(ni->config->feed_refs);
   {
      obj = _feed->obj;

      if (important_only &&
          (!_feed->important))
        continue;
      if (unread_only &&
          (!_feed->doc || !_feed->doc->unread_count))
        continue;
      
      DITEM(("refresh : feed %s", _feed->name));
      
      if (!_feed->obj || changed_content || changed_state)
        {
           news_feed_obj_refresh(_feed, changed_content, changed_state);
           obj = _feed->obj;
        }
      
      if (!_feed->obj || changed_order)
        {
           /* insert in the box */
           
           e_box_pack_end(box, obj);
           e_box_pack_options_set(obj,
                                  1, 1, /* fill */
                                  1, 1, /* expand */
                                  0, 0, /* align */
                                  0, 0,
                                  -1, -1
                                  );
           evas_object_show(obj);
        }
      
      _feed->obj = obj;
   }
   NEWS_ITEM_FEEDS_FOREACH_END();
}
コード例 #3
0
static void
_item_refresh_mode_one(News_Item *ni, int changed_order, int changed_state)
{
   Evas_Object *box;
   Evas_Object *obj;

   box = ni->view.box;
   obj = ni->view.obj_mode_one;

   /* create obj */

   if (!obj)
     {
        obj = edje_object_add(ni->gcc->gadcon->evas);
        news_theme_edje_set(obj, NEWS_THEME_FEEDONE);
        edje_object_signal_callback_add(obj, "e,action,open", "e",
                                        _cb_item_open, ni);
     }

   if (!ni->view.obj_mode_one || changed_order)
     {
        e_box_pack_end(box, obj);
        e_box_pack_options_set(obj,
                               1, 1, /* fill */
                               1, 1, /* expand */
                               0, 0, /* align */
                               0, 0,
                               -1, -1
                               );
        evas_object_show(obj);
     }

   /* state */

   if (!ni->view.obj_mode_one || changed_state)
     {
        if (ni->unread_count)
          edje_object_signal_emit(obj, "e,state,new,set", "e");
        else
          edje_object_signal_emit(obj, "e,state,new,unset", "e");
     }

   ni->view.obj_mode_one = obj;
}
コード例 #4
0
ファイル: e_mod_main.c プロジェクト: Deepspeed/moksha
static void
_opinfo_op_registry_listener(void *data, const E_Fm2_Op_Registry_Entry *ere)
{
   Evas_Object *o = data;
   char *total, buf[4096];
   Edje_Message_Float msg;
   int mw, mh;

   if (!o || !ere) return;

   // Don't show if the operation keep less than 1 second
   if (!ere->needs_attention && (ere->start_time + 1.0 > ecore_loop_time_get()))
     return;
   
   // Update icon
   switch (ere->op)
   {
      case E_FM_OP_COPY:
        edje_object_signal_emit(o, "e,action,icon,copy", "e");
        break;

      case E_FM_OP_MOVE:
        edje_object_signal_emit(o, "e,action,icon,move", "e");
        break;

      case E_FM_OP_REMOVE:
        edje_object_signal_emit(o, "e,action,icon,delete", "e");
        break;

      case E_FM_OP_SECURE_REMOVE:
        edje_object_signal_emit(o, "e,action,icon,secure_delete", "e");
        break;

      default:
        edje_object_signal_emit(o, "e,action,icon,unknown", "e");
   }

   // Update information text
   switch (ere->status)
     {
      case E_FM2_OP_STATUS_ABORTED:
        switch (ere->op)
          {
           case E_FM_OP_COPY:
             snprintf(buf, sizeof(buf), _("Copying is aborted"));
             break;

           case E_FM_OP_MOVE:
             snprintf(buf, sizeof(buf), _("Moving is aborted"));
             break;

           case E_FM_OP_REMOVE:
             snprintf(buf, sizeof(buf), _("Deleting is aborted"));
             break;

           case E_FM_OP_SECURE_REMOVE:
             snprintf(buf, sizeof(buf), _("Secure deletion is aborted"));
             break;

           default:
             snprintf(buf, sizeof(buf), _("Unknown operation from slave is aborted"));
          }
        break;

      default:
        total = e_util_size_string_get(ere->total);
        switch (ere->op)
          {
           case E_FM_OP_COPY:
             if (ere->finished)
               snprintf(buf, sizeof(buf), _("Copy of %s done"), total);
             else
               snprintf(buf, sizeof(buf), _("Copying %s (eta: %s)"),
                             total, e_util_time_str_get(ere->eta));
             break;

           case E_FM_OP_MOVE:
             if (ere->finished)
               snprintf(buf, sizeof(buf), _("Move of %s done"), total);
             else
               snprintf(buf, sizeof(buf), _("Moving %s (eta: %s)"),
                             total, e_util_time_str_get(ere->eta));
             break;

           case E_FM_OP_REMOVE:
             if (ere->finished)
               snprintf(buf, sizeof(buf), _("Delete done"));
             else
               snprintf(buf, sizeof(buf), _("Deleting files..."));
             break;

           case E_FM_OP_SECURE_REMOVE:
             if (ere->finished)
               snprintf(buf, sizeof(buf), _("Secure delete done"));
             else
               snprintf(buf, sizeof(buf), _("Securely deleting files..."));
             break;

           default:
             snprintf(buf, sizeof(buf), _("Unknown operation from slave %d"), ere->id);
          }
        E_FREE(total);
     }
   edje_object_part_text_set(o, "e.text.info", buf);

   // Update spinner wheel
   if ((ere->finished) || (ere->status == E_FM2_OP_STATUS_ABORTED))
     {
        if (!evas_object_data_get(o, "stopped"))
          {
             evas_object_data_set(o, "stopped", o);
             edje_object_signal_emit(o, "e,state,busy,stop", "e");
          }
     }
   if (ere->percent > 0)
     {
        if (!evas_object_data_get(o, "started"))
          {
             evas_object_data_set(o, "started", o);
             edje_object_signal_emit(o, "e,state,busy,start", "e");
          }
     }

   // Show/hide the red attention led
   if (ere->needs_attention)
     {
        if (!evas_object_data_get(o, "attention_started"))
          {
             evas_object_data_set(o, "attention_started", o);
             edje_object_signal_emit(o, "e,state,attention,start", "e");
             if (evas_object_data_get(o, "attention_stopped"))
               evas_object_data_del(o, "attention_stopped");
          }
     }
   else
     {
        if (!evas_object_data_get(o, "attention_stopped"))
          {
             evas_object_data_set(o, "attention_stopped", o);
             edje_object_signal_emit(o, "e,state,attention,stop", "e");
             if (evas_object_data_get(o, "attention_started"))
               evas_object_data_del(o, "attention_started");
          }
     }

   // Update gauge
   edje_object_part_drag_size_set(o, "e.gauge.bar",
                                  ((double)(ere->percent)) / 100.0, 1.0);
   msg.val = ((double)(ere->percent)) / 100.0;
   edje_object_message_send(o, EDJE_MESSAGE_FLOAT, 1, &msg);

   // resize element to fit the box
   edje_object_size_min_calc(o, &mw, &mh);
   e_box_pack_options_set(o, 1, 0, 1, 0, 0.0, 0.0, mw, mh, 9999, mh);
   evas_object_show(o);
}
コード例 #5
0
ファイル: app2.c プロジェクト: barbieri/barbieri-playground
static void
setup_gui_list(app_t *app)
{
    Evas_Object *obj;
    int item_w, item_h, box_w, box_h, i, n_items;

    destroy_gui_list(app);

    obj = _new_list_item(app, NULL);
    edje_object_size_min_calc(obj, &item_w, &item_h);
    evas_object_del(obj);
    app->item_height = item_h;

    e_box_freeze(app->e_box);
    evas_object_geometry_get(app->e_box,
                             &app->box_x, &app->box_y,
                             &box_w, &box_h);

    app->box_y -= item_h;
    evas_object_move(app->e_box, app->box_x, app->box_y);

    n_items = box_h / item_h + 3;

    app->n_evas_items = n_items;
    app->evas_items = malloc(n_items * sizeof(Evas_Object *));
    for (i = 0; i < n_items; i++) {
        Evas_Object *obj;

        obj = _new_list_item(app, "");
        app->evas_items[i] = obj;
        e_box_pack_end(app->e_box, obj);
        edje_object_size_min_calc(obj, &item_w, &item_h);
        e_box_pack_options_set(obj, 1, 1, 1, 0, 0.0, 0.5,
                               item_w, item_h, 9999, item_h);
        evas_object_show(obj);
    }

    e_box_align_set(app->e_box, 0.0, 1.0);

    app->arrow_down = edje_object_part_object_get(app->edje_main,
                                                  "arrow_down");
    app->arrow_up = edje_object_part_object_get(app->edje_main,
                                                "arrow_up");

    evas_object_event_callback_add(app->arrow_up,
                                   EVAS_CALLBACK_MOUSE_DOWN,
                                   mouse_down_arrow_up,
                                   app);
    evas_object_event_callback_add(app->arrow_up,
                                   EVAS_CALLBACK_MOUSE_UP,
                                   mouse_up_arrow_up,
                                   app);

    evas_object_event_callback_add(app->arrow_down,
                                   EVAS_CALLBACK_MOUSE_DOWN,
                                   mouse_down_arrow_down,
                                   app);
    evas_object_event_callback_add(app->arrow_down,
                                   EVAS_CALLBACK_MOUSE_UP,
                                   mouse_up_arrow_down,
                                   app);

    fill_gui_list(app);
    e_box_thaw(app->e_box);
}