コード例 #1
0
ファイル: flickr_sync.c プロジェクト: Limsik/e17
void
flickr_sync_update(Enlil_Album *album)
{
   Enlil_Album_Data *album_data = enlil_album_user_data_get(album);
   Evas_Object *fr, *tb2, *lbl, *bt, *sep, *pb, *pager;
   Evas_Object *inwin = album_data->netsync.inwin.win;
   Evas_Object *tb = album_data->netsync.inwin.tb;
   int i = 0;
   Eina_List *l;
   Enlil_Photo *photo;
   int nb_photos;
   char buf[1024];

   if (album_data->netsync.inwin.fr) evas_object_del(
                                                     album_data->netsync.inwin.fr);

   //
   fr = elm_frame_add(inwin);
   album_data->netsync.inwin.fr = fr;
   elm_object_text_set(fr, D_("Synchronise an album with flickr"));
   evas_object_size_hint_weight_set(fr, 1.0, 1.0);
   evas_object_size_hint_align_set(fr, -1.0, -1.0);
   evas_object_show(fr);
   elm_table_padding_set(tb, 1, 1);
   elm_table_pack(tb, fr, 0, 0, 3, 1);

   tb2 = elm_table_add(inwin);
   evas_object_size_hint_weight_set(tb2, 1.0, 0.0);
   evas_object_size_hint_align_set(tb2, -1.0, 1.0);
   elm_table_padding_set(tb2, 15, 5);
   evas_object_show(tb2);
   elm_object_content_set(fr, tb2);
   //

   if (album_data->netsync.album_netsync_notuptodate)
   {
      lbl = elm_label_add(inwin);
      elm_object_text_set(lbl, D_("Update the flickr album header."));
      evas_object_show(lbl);
      elm_table_pack(tb2, lbl, 0, i, 1, 1);

      bt = elm_button_add(inwin);
      album_data->netsync.inwin.bt1 = bt;
      elm_object_text_set(bt, D_("Update"));
      evas_object_smart_callback_add(bt, "clicked", _netsync_notuptodate_cb,
                                     album);
      evas_object_size_hint_align_set(bt, 0.5, 0.5);
      evas_object_size_hint_weight_set(bt, 1.0, 0.0);

      evas_object_show(bt);
      elm_table_pack(tb2, bt, 1, i, 1, 1);

      i++;

      sep = elm_separator_add(inwin);
      evas_object_show(sep);
      elm_table_pack(tb2, sep, 0, i, 2, 1);
      i++;
   }

   if (album_data->netsync.album_notinnetsync)
   {
      lbl = elm_label_add(inwin);
      elm_object_text_set(lbl, D_("The album is not in Flickr."));
      evas_object_show(lbl);
      elm_table_pack(tb2, lbl, 0, i, 1, 1);

      bt = elm_button_add(inwin);
      album_data->netsync.inwin.bt2 = bt;
      elm_object_text_set(bt, D_("Add the album in Flickr"));
      evas_object_size_hint_align_set(bt, 0.5, 0.5);
      evas_object_size_hint_weight_set(bt, 1.0, 0.0);

      evas_object_smart_callback_add(bt, "clicked", _album_notinnetsync_cb,
                                     album);
      evas_object_show(bt);
      elm_table_pack(tb2, bt, 1, i, 1, 1);

      i++;

      sep = elm_separator_add(inwin);
      evas_object_show(sep);
      elm_table_pack(tb2, sep, 0, i, 2, 1);
      i++;
   }

   if (album_data->netsync.album_local_notuptodate)
   {
      lbl = elm_label_add(inwin);
      elm_object_text_set(lbl, D_("Update the local album header."));
      evas_object_show(lbl);
      elm_table_pack(tb2, lbl, 0, i, 1, 1);

      bt = elm_button_add(inwin);
      album_data->netsync.inwin.bt3 = bt;
      evas_object_size_hint_align_set(bt, 0.5, 0.5);
      evas_object_size_hint_weight_set(bt, 1.0, 0.0);

      evas_object_smart_callback_add(bt, "clicked", _local_notuptodate_cb,
                                     album);
      elm_object_text_set(bt, D_("Update"));
      evas_object_show(bt);
      elm_table_pack(tb2, bt, 1, i, 1, 1);

      i++;

      sep = elm_separator_add(inwin);
      evas_object_show(sep);
      elm_table_pack(tb2, sep, 0, i, 2, 1);
      i++;
   }

   if (album_data->netsync.photos_notinlocal)
   {
      lbl = elm_label_add(inwin);
      elm_object_text_set(lbl, D_("Some photos are not in the local album."));
      evas_object_show(lbl);
      elm_table_pack(tb2, lbl, 0, i, 1, 1);

      pager = elm_naviframe_add(inwin);
      album_data->netsync.inwin.notinlocal.pager = pager;
      evas_object_size_hint_align_set(pager, 0.5, 0.5);
      evas_object_size_hint_weight_set(pager, 1.0, 0.0);
      evas_object_show(pager);
      elm_table_pack(tb2, pager, 1, i, 1, 1);
      elm_object_style_set(pager, "fade_invisible");

      bt = elm_button_add(inwin);
      album_data->netsync.inwin.notinlocal.bt = bt;
      album_data->netsync.inwin.bt4 = bt;
      evas_object_size_hint_align_set(bt, -1.0, 0.5);
      evas_object_size_hint_weight_set(bt, 1.0, 0.0);
      elm_object_text_set(bt, D_("Download Them All"));
      evas_object_smart_callback_add(bt, "clicked", _photos_notinlocal_cb,
                                     album);
      evas_object_show(bt);
      elm_naviframe_item_simple_push(pager, bt);

      pb = elm_progressbar_add(inwin);
      album_data->netsync.inwin.notinlocal.pb = pb;
      evas_object_size_hint_align_set(pb, -1.0, 0.5);
      evas_object_size_hint_weight_set(pb, 1.0, 0.0);
      elm_progressbar_pulse_set(pb, EINA_TRUE);
      elm_object_text_set(pb, D_("Downloads in progress ..."));
      evas_object_show(pb);
      elm_naviframe_item_simple_push(pager, pb);
      evas_object_size_hint_max_set(pb, 0, 0);

      if (album_data->netsync.inwin.notinlocal.is_updating)
      {
         elm_progressbar_pulse(pb, EINA_TRUE);
         elm_naviframe_item_simple_promote(pager, pb);
      }
      else
         elm_naviframe_item_simple_promote(pager, bt);

      i++;

      sep = elm_separator_add(inwin);
      evas_object_show(sep);
      elm_table_pack(tb2, sep, 0, i, 2, 1);
      i++;
   }

   nb_photos = 0;
   EINA_LIST_FOREACH(enlil_album_photos_get(album), l, photo)
   {
      Enlil_Photo_Data *photo_data = enlil_photo_user_data_get(photo);
      if (photo_data && photo_data->netsync.state == PHOTO_FLICKR_NOTINFLICKR)
      {
         nb_photos++;
      }
   }
コード例 #2
0
static void
_account_set_cb(void *data, Evas_Object *obj, void *event_info)
{
   Evas_Object *fr, *tb, *inwin, *lbl, *sc, *text, *bt, *hbox, *img, *entry;
   char buf[PATH_MAX];

   inwin = elm_win_inwin_add(enlil_data->win->win);
   set_account.inwin = inwin;
   evas_object_show(inwin);

   fr = elm_frame_add(enlil_data->win->win);
   elm_frame_label_set(fr, D_("Set the Flick account."));
   evas_object_size_hint_weight_set(fr, 1.0, 1.0);
   evas_object_size_hint_align_set(fr, 0.0, 0.0);
   evas_object_show(fr);

   tb = elm_table_add(enlil_data->win->win);
   elm_table_padding_set(tb, 10, 10);
   evas_object_size_hint_weight_set(tb, 1.0, 1.0);
   evas_object_size_hint_align_set(tb, -1.0, -1.0);
   evas_object_show(tb);

   //steps
   lbl = elm_label_add(enlil_data->win->win);
   elm_label_label_set(
                       lbl,
                       D_("<b>STEP 1 :</b> Open the web page in your favorite web browser."));
   evas_object_size_hint_weight_set(lbl, 0.0, 0.0);
   evas_object_size_hint_align_set(lbl, -1.0, 0.0);
   evas_object_show(lbl);
   elm_table_pack(tb, lbl, 0, 0, 2, 1);

   entry = elm_scrolled_entry_add(enlil_data->win->win);
   elm_scrolled_entry_single_line_set(entry, EINA_TRUE);
   elm_scrolled_entry_entry_set(entry, enlil_flickr_auth_url_get());
   evas_object_size_hint_weight_set(entry, 1.0, 0.0);
   evas_object_size_hint_align_set(entry, -1.0, 0.0);
   evas_object_show(entry);
   elm_table_pack(tb, entry, 0, 1, 2, 1);

   img = elm_image_add(obj);
   elm_image_file_set(img, Theme, "flickr/set_account_0");
   evas_object_size_hint_weight_set(img, 1.0, 1.0);
   evas_object_size_hint_align_set(img, -1.0, -1.0);
   evas_object_show(img);
   elm_table_pack(tb, img, 0, 2, 2, 1);

   snprintf(
            buf,
            PATH_MAX,
            D_("<b>STEP 2 :</b> Authorize Enki to access to your account."));
   lbl = elm_label_add(enlil_data->win->win);
   elm_label_label_set(lbl, buf);
   evas_object_size_hint_weight_set(lbl, 0.0, 0.0);
   evas_object_size_hint_align_set(lbl, -1.0, 0.0);
   evas_object_show(lbl);
   elm_table_pack(tb, lbl, 0, 3, 2, 1);

   img = elm_image_add(obj);
   elm_image_file_set(img, Theme, "flickr/set_account_1");
   evas_object_size_hint_weight_set(img, 0.0, EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(img, -1.0, -1.0);
   evas_object_show(img);
   elm_table_pack(tb, img, 0, 4, 2, 1);

   snprintf(
            buf,
            PATH_MAX,
            D_("<b>STEP 3 :</b> Copy the code in the followed text area."));
   lbl = elm_label_add(enlil_data->win->win);
   elm_label_label_set(lbl, buf);
   evas_object_size_hint_weight_set(lbl, 0.0, 0.0);
   evas_object_size_hint_align_set(lbl, -1.0, 0.0);
   evas_object_show(lbl);
   elm_table_pack(tb, lbl, 0, 5, 2, 1);
   //

   lbl = elm_label_add(enlil_data->win->win);
   elm_label_label_set(lbl, D_("The 9-digit code : "));
   evas_object_size_hint_weight_set(lbl, 0.0, 0.0);
   evas_object_size_hint_align_set(lbl, -1.0, 0.0);
   evas_object_show(lbl);
   elm_table_pack(tb, lbl, 0, 6, 1, 1);

   sc = elm_scroller_add(enlil_data->win->win);
   evas_object_size_hint_weight_set(sc, 1.0, 0.0);
   evas_object_size_hint_align_set(sc, EVAS_HINT_FILL, EVAS_HINT_FILL);
   elm_scroller_content_min_limit(sc, EINA_FALSE, EINA_TRUE);
   elm_scroller_policy_set(sc, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
   elm_scroller_bounce_set(sc, 0, 0);
   evas_object_show(sc);
   elm_table_pack(tb, sc, 1, 6, 1, 1);

   text = elm_entry_add(enlil_data->win->win);
   set_account.entry = text;
   elm_entry_entry_set(text, "");
   elm_entry_single_line_set(text, 1);
   evas_object_size_hint_weight_set(text, EVAS_HINT_EXPAND, 1.0);
   evas_object_size_hint_align_set(text, 1.0, 0.5);
   elm_scroller_content_set(sc, text);
   evas_object_show(text);

   hbox = elm_box_add(enlil_data->win->win);
   elm_box_horizontal_set(hbox, 1);
   evas_object_size_hint_weight_set(hbox, EVAS_HINT_EXPAND, 0.0);
   evas_object_size_hint_align_set(hbox, 1.0, 0.0);
   evas_object_show(hbox);
   elm_table_pack(tb, hbox, 1, 7, 1, 1);

   bt = elm_button_add(enlil_data->win->win);
   elm_button_label_set(bt, D_("Cancel"));
   evas_object_smart_callback_add(bt, "clicked", _account_set_cancel_cb, NULL);
   evas_object_size_hint_align_set(bt, 1.0, 0.0);
   evas_object_show(bt);
   elm_box_pack_end(hbox, bt);

   bt = elm_button_add(enlil_data->win->win);
   elm_button_label_set(bt, D_("Apply"));
   evas_object_smart_callback_add(bt, "clicked", _account_set_apply_cb, text);
   evas_object_size_hint_align_set(bt, 1.0, 0.0);
   evas_object_show(bt);
   elm_box_pack_end(hbox, bt);
   elm_object_disabled_set(bt, EINA_TRUE);

   evas_object_smart_callback_add(text, "changed",
                                  _account_set_entry_changed_cb, bt);

   elm_frame_content_set(fr, tb);
   elm_win_inwin_content_set(inwin, fr);
}