void
news_config_dialog_item_content_refresh_selected_feeds(News_Item *ni)
{
   E_Config_Dialog_Data *cfdata;
   Evas_Object *ilist;
   int pos, iw, ih;
  
   if (!ni->config_dialog_content) return;
   cfdata = ni->config_dialog_content->cfdata;

   ilist = cfdata->ilist_selected_feeds;
   e_widget_ilist_freeze(ilist);
   /* disable the callback until we finish to refresh the list */
   e_widget_on_change_hook_set(ilist, NULL, NULL);

   e_widget_ilist_clear(ilist);
   if (cfdata->button_rem)
     {
        e_widget_disabled_set(cfdata->button_rem, 1);
        e_widget_disabled_set(cfdata->button_up, 1);
        e_widget_disabled_set(cfdata->button_down, 1);
     }

   cfdata->ilist_selected_feeds_inrefresh = 1;
   pos = -1;
   NEWS_ITEM_FEEDS_FOREACH_BEG(ni);
   {
      Evas_Object *ic = NULL;
      char buf[1024];
        
        if (_feed->icon && _feed->icon[0])
          {
             ic = e_icon_add(evas_object_evas_get(ilist));
             e_icon_file_set(ic, _feed->icon);
          }

        snprintf(buf, sizeof(buf), "%s%s", (_feed->important) ? "[i] " : "", _feed->name);

        e_widget_ilist_append(ilist, ic, buf, NULL, _feed, NULL);
	pos++;

	if (eina_list_data_find(cfdata->ilist_selected_feeds_sel, _feed))
          e_widget_ilist_multi_select(ilist, pos);
   }
   NEWS_ITEM_FEEDS_FOREACH_END();
   cfdata->ilist_selected_feeds_inrefresh = 0;

   e_widget_size_min_get(ilist, &iw, &ih);
   if (iw < 200) iw = 200;
   e_widget_size_min_set(ilist, iw, 250);
   
   e_widget_ilist_go(ilist);
   e_widget_ilist_thaw(ilist);
   _cb_selected_feed_change(cfdata, NULL);
   /* restore the callback */
   e_widget_on_change_hook_set(ilist, _cb_selected_feed_change, cfdata);
}
EAPI void
e_widget_config_list_append(Evas_Object *obj, const char *entry)
{
   E_Widget_Data *wd;
   int count;

   wd = e_widget_data_get(obj);
   e_widget_ilist_append(wd->gui.list, NULL, entry, NULL, NULL, NULL);
   e_widget_ilist_go(wd->gui.list);
   count = e_widget_ilist_count(wd->gui.list);
   e_widget_ilist_selected_set(wd->gui.list, count - 1);
}
Beispiel #3
0
/*
 * Populate the list of projections.
 * Note that this list is the same as the planet list -
 * its contents are replaced according to context.
 */
static void _fill_projection_ilist(Evas_Object *ilist, const char *value,
      E_Config_Dialog_Data *cfdata, int *store_item)
{
   Evas *evas;
   int count = -1;

   evas = evas_object_evas_get(ilist);
   evas_event_freeze(evas);
   edje_freeze();
   e_widget_ilist_freeze(ilist);
   e_widget_ilist_clear(ilist);

   _add_ilist_entry(ilist, "Ancient", "ancient", value, _cb_source, cfdata,
         ++count, store_item);
   _add_ilist_entry(ilist, "Azimuthal", "azimuthal", value, _cb_source, cfdata,
         ++count, store_item);
   _add_ilist_entry(ilist, "Bonne", "bonne", value, _cb_source, cfdata, ++count, store_item);
   _add_ilist_entry(ilist, "Equal Area", "equalarea", value, _cb_source,
         cfdata, ++count, store_item);
   _add_ilist_entry(ilist, "Gnomonic", "gnomonic", value, _cb_source, cfdata,
         ++count, store_item);
   _add_ilist_entry(ilist, "Hemisphere", "hemisphere", value, _cb_source,
         cfdata, ++count, store_item);
   _add_ilist_entry(ilist, "Icosagnomonic", "icosagnomonic", value, _cb_source,
         cfdata, ++count, store_item);
   _add_ilist_entry(ilist, "Lambert", "lambert", value, _cb_source, cfdata,
         ++count, store_item);
   _add_ilist_entry(ilist, "Mercator", "mercator", value, _cb_source, cfdata,
         ++count, store_item);
   _add_ilist_entry(ilist, "Mollweide", "mollweide", value, _cb_source, cfdata,
         ++count, store_item);
   _add_ilist_entry(ilist, "Orthographic", "orthographic", value, _cb_source,
         cfdata, ++count, store_item);
   _add_ilist_entry(ilist, "Peters", "peters", value, _cb_source, cfdata,
         ++count, store_item);
   _add_ilist_entry(ilist, "Polyconic", "polyconic", value, _cb_source, cfdata,
         ++count, store_item);
   _add_ilist_entry(ilist, "Rectangular", "rectangular", value, _cb_source,
         cfdata, ++count, store_item);

   e_widget_ilist_go(ilist);
   e_widget_ilist_thaw(ilist);
   edje_thaw();
   evas_event_thaw(evas);
}
static Evas_Object *
_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
{
   Evas_Object *o, *ob, *ol;
   Population *pop;

   pop = cfd->data;
   o = e_widget_list_add(evas, 0, 0);

   ob = e_widget_label_add(evas, D_("Number of penguins:"));
   e_widget_list_object_append(o, ob, 1, 1, 0.5);
   ob = e_widget_slider_add(evas, 1, 0, D_("%1.0f"), 1, 200, 1, 0, NULL, &(cfdata->penguins_count), 200);
   e_widget_list_object_append(o, ob, 1, 1, 0.5);

   ob = e_widget_label_add(evas, D_("Zoom factor:"));
   e_widget_list_object_append(o, ob, 1, 1, 0.5);
   ob = e_widget_slider_add(evas, 1, 0, D_("%1.1f X"), 0.2, 3, 0.2, 0, &(cfdata->zoom), NULL, 200);
   e_widget_list_object_append(o, ob, 1, 1, 0.5);

   ob = e_widget_label_add(evas, D_("Transparency:"));
   e_widget_list_object_append(o, ob, 1, 1, 0.5);
   ob = e_widget_slider_add(evas, 1, 0, D_("%1.0f"), 50, 255, 1, 0, NULL, &(cfdata->alpha), 200);
   e_widget_list_object_append(o, ob, 1, 1, 0.5);

   //Lista
   ob = e_widget_label_add(evas, D_("Select population:"));
   e_widget_list_object_append(o, ob, 1, 1, 0.5);
   ol = e_widget_ilist_add(evas, 24, 24, &(cfdata->theme));

   e_widget_ilist_clear(ol);

   Eina_List *l;
   int count;
   l = pop->themes;
   count = 0;
   while (l)
   {
      char *theme;
      char *name;
      Evas_Object *oi;
      theme = l->data;
      name = edje_file_data_get(theme, "PopulationName");
      if (name)
      {
         oi = edje_object_add(evas);
         edje_object_file_set(oi, theme, "icon");
         //printf("TEMA: %s (%s)\n", name, cfdata->theme);
         e_widget_ilist_append(ol, oi, name, NULL, theme, theme);
         if (strcmp(theme, cfdata->theme) == 0)
         {
            e_widget_ilist_selected_set(ol, count);
         }
         count++;
      }
      l = eina_list_next(l);
   }
   e_widget_ilist_go(ol);
   e_widget_size_min_set(ol, 155, 250);
   e_widget_list_object_append(o, ol, 1, 1, 0.5);

   return o;
}
void
news_config_dialog_item_content_refresh_feeds(News_Item *ni)
{
   E_Config_Dialog_Data *cfdata;
   Eina_List *l, *l2;
   Evas_Object *ilist;
   int pos;
   int iw, ih;
  
   if (!ni->config_dialog_content) return;
   cfdata = ni->config_dialog_content->cfdata;

   ilist = cfdata->ilist_feeds;
   e_widget_ilist_freeze(ilist);
   /* disable the callback until we finish to refresh the list */
   e_widget_on_change_hook_set(ilist, NULL, NULL);

   e_widget_ilist_clear(ilist);
   if (cfdata->button_add)
     e_widget_disabled_set(cfdata->button_add, 1);

   pos = -1;
   for(l=news->config->feed.categories; l; l=eina_list_next(l))
     {
        News_Feed_Category *cat;
        Evas_Object *iccat = NULL;

        cat = eina_list_data_get(l);

        if (!cat->feeds_visible)
          continue;

        if (cat->icon)
          {
             iccat = e_icon_add(evas_object_evas_get(ilist));
             e_icon_file_set(iccat, cat->icon);
          }

        e_widget_ilist_header_append(ilist, iccat, cat->name);
	pos++;

        for(l2=cat->feeds_visible; l2; l2=eina_list_next(l2))
          {
             Evas_Object *ic = NULL;
             News_Feed *f;
             char buf[1024];
             
             f = eina_list_data_get(l2);
             
             if (f->icon && f->icon[0])
               {
                  ic = e_icon_add(evas_object_evas_get(ilist));
                  e_icon_file_set(ic, f->icon);
               }
             
             snprintf(buf, sizeof(buf), "%s%s", (f->important) ? "[i] " : "", f->name);
             
             e_widget_ilist_append(ilist, ic, buf, NULL, f, NULL);
	     pos++;

	     if (eina_list_data_find(cfdata->ilist_feeds_sel, f))
               e_widget_ilist_multi_select(ilist, pos);
          }
     }
   e_widget_ilist_thaw(ilist);

   e_widget_size_min_get(ilist, &iw, &ih);
   if (iw < 200) iw = 200;
   e_widget_size_min_set(ilist, iw, 250);
   
   e_widget_ilist_go(ilist);
   _cb_feed_change(cfdata, NULL);
   /* restore the callback */
   e_widget_on_change_hook_set(ilist, _cb_feed_change, cfdata);
}
Beispiel #6
0
/*
 * Populate the list of planets
 * Note that this list is the same as the projection list -
 * its contents are replaced according to context.
 */
static void _fill_planet_ilist(Evas_Object *ilist, const char *value,
      void(*callback)(void *data), E_Config_Dialog_Data *cfdata, int *store_item)
{
   Evas *evas;
   int count = -1;

   evas = evas_object_evas_get(ilist);
   evas_event_freeze(evas);
   edje_freeze();
   e_widget_ilist_freeze(ilist);
   e_widget_ilist_clear(ilist);

   _add_ilist_entry(ilist, "Sun", "sun", value, callback, cfdata, ++count, store_item);
   _add_ilist_entry(ilist, "Mercury", "mercury", value, callback, cfdata,
         ++count, store_item);
   _add_ilist_entry(ilist, "Venus", "venus", value, callback, cfdata, ++count, store_item);
   _add_ilist_entry(ilist, "Earth", "earth", value, callback, cfdata, ++count, store_item);
   _add_ilist_entry(ilist, "   Moon", "moon", value, callback, cfdata, ++count, store_item);
   _add_ilist_entry(ilist, "Mars", "mars", value, callback, cfdata, ++count, store_item);
   _add_ilist_entry(ilist, "   Phobos", "phobos", value, callback, cfdata,
         ++count, store_item);
   _add_ilist_entry(ilist, "   Deimos", "deimos", value, callback, cfdata,
         ++count, store_item);
   _add_ilist_entry(ilist, "Jupiter", "jupiter", value, callback, cfdata,
         ++count, store_item);
   _add_ilist_entry(ilist, "   Io", "io", value, callback, cfdata, ++count, store_item);
   _add_ilist_entry(ilist, "   Europa", "europa", value, callback, cfdata,
         ++count, store_item);
   _add_ilist_entry(ilist, "   Ganymede", "ganymede", value, callback, cfdata,
         ++count, store_item);
   _add_ilist_entry(ilist, "   Callisto", "callisto", value, callback, cfdata,
         ++count, store_item);
   _add_ilist_entry(ilist, "Saturn", "saturn", value, callback, cfdata, ++count, store_item);
   _add_ilist_entry(ilist, "   Mimas", "mimas", value, callback, cfdata, ++count, store_item);
   _add_ilist_entry(ilist, "   Enceladus", "enceladus", value, callback,
         cfdata, ++count, store_item);
   _add_ilist_entry(ilist, "   Tethys", "tethys", value, callback, cfdata,
         ++count, store_item);
   _add_ilist_entry(ilist, "   Dione", "dione", value, callback, cfdata, ++count, store_item);
   _add_ilist_entry(ilist, "   Rhea", "rhea", value, callback, cfdata, ++count, store_item);
   _add_ilist_entry(ilist, "   Titan", "titan", value, callback, cfdata, ++count, store_item);
   _add_ilist_entry(ilist, "   Hyperion", "hyperion", value, callback, cfdata,
         ++count, store_item);
   _add_ilist_entry(ilist, "   Iapetus", "iapetus", value, callback, cfdata,
         ++count, store_item);
   _add_ilist_entry(ilist, "   Phoebe", "phoebe", value, callback, cfdata,
         ++count, store_item);
   _add_ilist_entry(ilist, "Uranus", "uranus", value, callback, cfdata, ++count, store_item);
   _add_ilist_entry(ilist, "   Miranda", "miranda", value, callback, cfdata,
         ++count, store_item);
   _add_ilist_entry(ilist, "   Ariel", "ariel", value, callback, cfdata, ++count, store_item);
   _add_ilist_entry(ilist, "   Umbriel", "umbriel", value, callback, cfdata,
         ++count, store_item);
   _add_ilist_entry(ilist, "   Titania", "titania", value, callback, cfdata,
         ++count, store_item);
   _add_ilist_entry(ilist, "   Oberon", "oberon", value, callback, cfdata,
         ++count, store_item);
   _add_ilist_entry(ilist, "Neptune", "neptune", value, callback, cfdata,
         ++count, store_item);
   _add_ilist_entry(ilist, "   Triton", "triton", value, callback, cfdata,
         ++count, store_item);
   _add_ilist_entry(ilist, "   Nereid", "nereid", value, callback, cfdata,
         ++count, store_item);
   _add_ilist_entry(ilist, "Pluto", "pluto", value, callback, cfdata, ++count, store_item);
   _add_ilist_entry(ilist, "   Charon", "charon", value, callback, cfdata,
         ++count, store_item);
   _add_ilist_entry(ilist, "Random", "random", value, callback, cfdata, ++count, store_item);

   e_widget_ilist_go(ilist);
   e_widget_ilist_thaw(ilist);
   edje_thaw();
   evas_event_thaw(evas);
}
/* Externally accessible functions */
EAPI Evas_Object *
e_widget_config_list_add(Evas *evas, Evas_Object * (*func_entry_add)(Evas * evas, char **val, void (*func)(void *data, void *data2), void *data, void *data2), const char *label, int listspan __UNUSED__)
{
   Evas_Object *obj, *o;
   E_Widget_Data *wd;
   Evas_Coord mw, mh;

   obj = e_widget_add(evas);
   e_widget_del_hook_set(obj, _e_wid_del_hook);
   e_widget_disable_hook_set(obj, _e_wid_disable_hook);
   wd = E_NEW(E_Widget_Data, 1);
   e_widget_data_set(obj, wd);

   o = e_widget_table_add(evas, 0);
   wd->gui.table = o;
   e_widget_sub_object_add(obj, o);

   o = e_widget_label_add(evas, label);
   e_widget_table_object_append(wd->gui.table, o, 0, 1, 2, 1, 1, 0, 1, 0);

   o = func_entry_add(evas, &(wd->cur_entry), NULL, NULL, NULL);
   wd->gui.entry = o;
   e_widget_disabled_set(o, 1);
   e_widget_size_min_set(o, 100, 25);
   e_widget_table_object_append(wd->gui.table, o, 0, 2, 2, 1, 1, 0, 1, 0);

   o = e_widget_button_add(evas, _("Add"), "list-add", _button_cb_add,
                           wd, obj);
   wd->gui.add = o;
   e_widget_disabled_set(o, 1);
   e_widget_table_object_append(wd->gui.table, o, 0, 3, 1, 1, 1, 0, 1, 0);

   o = e_widget_button_add(evas, _("Remove"), "list-remove",
                           _button_cb_remove, wd, obj);
   wd->gui.remove = o;
   e_widget_disabled_set(o, 1);
   e_widget_table_object_append(wd->gui.table, o, 1, 3, 1, 1, 1, 0, 1, 0);

   o = e_widget_ilist_add(evas, 0, 0, NULL);
   wd->gui.list = o;
   e_widget_disabled_set(o, 1);
   e_widget_size_min_set(o, 80, 40);
   e_widget_on_change_hook_set(o, _list_cb_change, wd);
   e_widget_ilist_go(o);
   e_widget_table_object_append(wd->gui.table, o, 0, 4, 2, 1, 1, 1, 1, 1);

   o = e_widget_button_add(evas, _("Up"), "go-up",
                           _button_cb_up, wd, NULL);
   wd->gui.up = o;
   e_widget_disabled_set(o, 1);
   e_widget_table_object_append(wd->gui.table, o, 0, 5, 1, 1, 1, 0, 1, 0);

   o = e_widget_button_add(evas, _("Down"), "go-down",
                           _button_cb_down, wd, NULL);
   wd->gui.down = o;
   e_widget_disabled_set(o, 1);
   e_widget_table_object_append(wd->gui.table, o, 1, 5, 1, 1, 1, 0, 1, 0);

   e_widget_size_min_get(wd->gui.table, &mw, &mh);
   e_widget_size_min_set(obj, mw, mh);
   e_widget_resize_object_set(obj, wd->gui.table);

   return obj;
}