static void 
_tclock_cb_mouse_in(void *data, Evas *e, Evas_Object *obj, void *event_info) 
{
   Instance *inst = NULL;
   char buf[1024];
   time_t current_time;
   struct tm *local_time;
 

   if (!(inst = data)) return;
   if (!inst->ci->show_tip) return;
   if (inst->tip) return;

   inst->tip = e_gadcon_popup_new(inst->gcc);


   current_time = time(NULL);

   local_time = localtime(&current_time);
   memset(buf, 0, sizeof(buf));
   strftime(buf, 1024, inst->ci->tip_format, local_time);
   inst->o_tip = e_widget_label_add(inst->tip->win->evas, buf);

   e_gadcon_popup_content_set(inst->tip, inst->o_tip);
   e_gadcon_popup_show(inst->tip);
}
Example #2
0
static void
_empris_popup_create (Instance * inst, const char *dir)
{
   Evas *evas;
   Evas_Object *o_popup;
   char buf[4096];
  
   if (inst->ci->show_popup)
     {
	inst->popup = e_gadcon_popup_new (inst->gcc);
	evas = inst->popup->win->evas;
	o_popup = edje_object_add (evas);
	if (!e_theme_edje_object_set
	    (o_popup, "base/theme/modules/empris", "modules/empris/popup"))
	  {
	     if (dir)
	       {
		  edje_object_file_set (o_popup, dir, "modules/empris/popup");
	       }
	     else
	       {
		  snprintf(buf, sizeof(buf), "%s/empris.edj",
			   e_module_dir_get(empris_config->module));
		  edje_object_file_set(o_popup, buf, "modules/empris/popup");
	       }
	  }
	evas_object_show (o_popup);
	e_gadcon_popup_content_set (inst->popup, o_popup);
	edje_object_size_min_calc (o_popup, NULL, NULL);
	inst->o_popup = o_popup;
	edje_object_signal_callback_add (o_popup, "empris,play", "",
					 _empris_cb_play, inst);
	edje_object_signal_callback_add (o_popup, "empris,stop", "",
					 _empris_cb_stop, inst);
	edje_object_signal_callback_add (o_popup, "empris,pause", "",
					 _empris_cb_pause, inst);
	edje_object_signal_callback_add (o_popup, "empris,next", "",
					 _empris_cb_next, inst);
	edje_object_signal_callback_add (o_popup, "empris,previous", "",
					 _empris_cb_previous, inst);
     }
   else
     {
	inst->popup = NULL;
	inst->o_popup = NULL;
     }
}
Example #3
0
static void
_mail_cb_mouse_in (void *data, Evas * e, Evas_Object * obj, void *event_info)
{
  Instance    *inst = data;
  Evas_Object *list;
  Eina_List   *l;
  char         buf[256];
  char path[PATH_MAX];

  if (!inst)
    return;
  edje_object_signal_emit (inst->mail_obj, "label_active", "");

  if (inst->popup) return;
  if ((!inst->ci->show_popup) || (!inst->ci->boxes)) return;

  inst->popup = e_gadcon_popup_new (inst->gcc);
  snprintf (path, sizeof (path), "%s/mail.edj",
	    e_module_dir_get (mail_config->module));
  list = e_ilist_add (inst->popup->win->evas);
  for (l = inst->ci->boxes; l; l = l->next)
    {
       Config_Box *cb;

       cb = l->data;
       if (!cb) continue;
       if ((!inst->ci->show_popup_empty) && (!cb->num_new)) continue;
       snprintf (buf, sizeof (buf), "%s: %d/%d", cb->name, cb->num_new,
	         cb->num_total);
       e_ilist_append (list, NULL, NULL, buf, 0, NULL, NULL, NULL, NULL);
    }
  if (e_ilist_count (list))
    {
       Evas_Coord mw, mh;

       e_ilist_size_min_get (list, &mw, &mh);
       evas_object_size_hint_min_set(list, mw, mh);
       e_gadcon_popup_content_set (inst->popup, list);
       e_gadcon_popup_show (inst->popup);
    }
  else
    {
       e_object_del (E_OBJECT (inst->popup));
       inst->popup = NULL;
    }
}
static void
_forecasts_popup_content_create(Instance *inst)
{
   Evas_Object *o, *ol, *of, *ob, *oi;
   Evas *evas;
   char buf[4096];
   int row = 0, i;
   Evas_Coord w, h, mw, mh;

   if (!inst->location) return;

   inst->popup = e_gadcon_popup_new(inst->gcc);

   evas = inst->popup->win->evas;
   o = e_widget_list_add(evas, 0, 0);
   snprintf(buf, sizeof(buf), D_("%s: Current Conditions"), inst->location);
   of = e_widget_frametable_add(evas, buf, 0);

   snprintf(buf, sizeof(buf), "%s: %d°%c", inst->condition.desc, inst->condition.temp, inst->units.temp);
   ob = e_widget_label_add(evas, buf);
   e_widget_frametable_object_append(of, ob, 0, row, 2, 1, 0, 1, 1, 0);

   oi = _forecasts_popup_icon_create(inst->popup->win->evas, inst->condition.code);
   edje_object_size_max_get(oi, &w, &h);
   DEBUG("Icon size %dx%d", w, h);
   if (w > 160) w = 160;  /* For now there is a limit to how big the icon should be */
   if (h > 160) h = 160;  /* In the future, the icon should be set from the theme, not part of the table */
   ob = e_widget_image_add_from_object(evas, oi, w, h);
   e_widget_frametable_object_append(of, ob, 2, row, 1, 2, 1, 0, 1, 1);

   ob = e_widget_label_add(evas, D_("Wind Chill"));
   e_widget_frametable_object_append(of, ob, 0, ++row, 1, 1, 1, 0, 0, 0);
   snprintf(buf, sizeof(buf), "%d°%c", inst->details.wind.chill, inst->units.temp);
   ob = e_widget_label_add(evas, buf);
   e_widget_frametable_object_append(of, ob, 1, row, 1, 1, 1, 0, 0, 0);

   ob = e_widget_label_add(evas, D_("Wind Speed"));
   e_widget_frametable_object_append(of, ob, 0, ++row, 1, 1, 1, 0, 0, 0);
   snprintf(buf, sizeof(buf), "%d %s", inst->details.wind.speed, inst->units.speed);
   ob = e_widget_label_add(evas, buf);
   e_widget_frametable_object_append(of, ob, 1, row, 1, 1, 1, 0, 0, 0);

   ob = e_widget_label_add(evas, D_("Humidity"));
   e_widget_frametable_object_append(of, ob, 0, ++row, 1, 1, 1, 0, 0, 0);
   snprintf(buf, sizeof(buf), "%d %%", inst->details.atmosphere.humidity);
   ob = e_widget_label_add(evas, buf);
   e_widget_frametable_object_append(of, ob, 1, row, 1, 1, 1, 0, 0, 0);

   ob = e_widget_label_add(evas, D_("Visibility"));
   e_widget_frametable_object_append(of, ob, 0, ++row, 1, 1, 1, 0, 0, 0);
   snprintf(buf, sizeof(buf), "%.2f %s", inst->details.atmosphere.visibility, inst->units.distance);
   ob = e_widget_label_add(evas, buf);
   e_widget_frametable_object_append(of, ob, 1, row, 1, 1, 1, 0, 0, 0);

   ob = e_widget_label_add(evas, D_("Pressure"));
   e_widget_frametable_object_append(of, ob, 0, ++row, 1, 1, 1, 0, 0, 0);
   snprintf(buf, sizeof(buf), "%.2f %s", inst->details.atmosphere.pressure, inst->units.pressure);
   ob = e_widget_label_add(evas, buf);
   e_widget_frametable_object_append(of, ob, 1, row, 1, 1, 1, 0, 0, 0);

   if (inst->details.atmosphere.rising == 1)
     snprintf(buf, sizeof(buf), D_("Rising"));
   else if (inst->details.atmosphere.rising == 2)
     snprintf(buf, sizeof(buf), D_("Falling"));
   else
     snprintf(buf, sizeof(buf), D_("Steady"));
   ob = e_widget_label_add(evas, buf);
   e_widget_frametable_object_append(of, ob, 2, row, 1, 1, 1, 0, 1, 0);

   ob = e_widget_label_add(evas, D_("Sunrise / Sunset"));
   e_widget_frametable_object_append(of, ob, 0, ++row, 1, 1, 1, 0, 0, 0);
   snprintf(buf, sizeof(buf), "%s", inst->details.astronomy.sunrise);
   ob = e_widget_label_add(evas, buf);
   e_widget_frametable_object_append(of, ob, 1, row, 1, 1, 1, 0, 1, 0);

   snprintf(buf, sizeof(buf), "%s", inst->details.astronomy.sunset);
   ob = e_widget_label_add(evas, buf);
   e_widget_frametable_object_append(of, ob, 2, row, 1, 1, 1, 0, 1, 0);

   e_widget_list_object_append(o, of, 1, 1, 0.5);
   ol = e_widget_list_add(evas, 1, 1);

   for (i = 0; i < inst->ci->days / 5; i++)
     {
        int row = 0;

        if (!i)
          snprintf(buf, sizeof(buf), D_("Today"));
        else if (i == 1)
          snprintf(buf, sizeof(buf), D_("Tomorrow"));
        else
          snprintf(buf, sizeof(buf), "%s", inst->forecast[i].date);
        of = e_widget_frametable_add(evas, buf, 0);

        ob = e_widget_label_add(evas, inst->forecast[i].desc);
        e_widget_frametable_object_append(of, ob, 0, row, 3, 1, 0, 1, 1, 1);

        ob = e_widget_label_add(evas, D_("High"));
        e_widget_frametable_object_append(of, ob, 0, ++row, 1, 1, 1, 0, 1, 0);
        snprintf(buf, sizeof(buf), "%d°%c", inst->forecast[i].high, inst->units.temp);
        ob = e_widget_label_add(evas, buf);
        e_widget_frametable_object_append(of, ob, 1, row, 1, 1, 1, 0, 1, 0);

        ob = e_widget_image_add_from_object(evas,
                                            _forecasts_popup_icon_create(inst->popup->win->evas,
                                                                         inst->forecast[i].code), 0, 0);
        e_widget_frametable_object_append(of, ob, 2, row, 1, 2, 1, 1, 0, 0);

        ob = e_widget_label_add(evas, D_("Low"));
        e_widget_frametable_object_append(of, ob, 0, ++row, 1, 1, 1, 0, 1, 0);
        snprintf(buf, sizeof(buf), "%d°%c", inst->forecast[i].low, inst->units.temp);
        ob = e_widget_label_add(evas, buf);
        e_widget_frametable_object_append(of, ob, 1, row, 1, 1, 1, 0, 1, 0);
        e_widget_list_object_append(ol, of, 1, 1, 0.5);
     }

   e_widget_list_object_append(o, ol, 1, 1, 0.5);
   e_widget_size_min_get(o, &mw, &mh);
   if ((double)mw / mh > GOLDEN_RATIO)
     mh = mw / GOLDEN_RATIO;
   else if ((double)mw / mh < GOLDEN_RATIO - (double)1)
     mw = mh * (GOLDEN_RATIO - (double)1);
   e_widget_size_min_set(o, mw, mh);

   e_gadcon_popup_content_set(inst->popup, o);
}