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(¤t_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); }
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; } }
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); }