Alright... trying this again. Here is the said new_xml_format_plus.diff patch again (in its entirety this time).
On 12/21/2007 00:02, Ravenlock wrote: > Hello, > > Some short while ago the forecasts module ceased to function properly. > Seems yahoo has changed their xml output ever so slightly. Either of > the patches attached will fix this. > > The difference between the two patches is as follows: > > new_xml_format.diff: simply takes into account the new format, and gets > the module back up on its feet. > > new_xml_format_plus.diff: handles the new format AND adds a new option > which allows a person to choose if the forecast popup is realized on a > mouse over, or a mouse click. (I prefer a mouse click) > > I'm hoping the new_xml_format_plus.diff is allowed to go in. I think > others will benefit as well. Though admittedly my motivation is selfish > here, as I get tired of applying the patch to my own copy. :) > > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > > > ------------------------------------------------------------------------ > > _______________________________________________ > enlightenment-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Regards, Ravenlock
Index: e_mod_config.c
===================================================================
RCS file: /cvs/e/e_modules/forecasts/e_mod_config.c,v
retrieving revision 1.8
diff -u -r1.8 e_mod_config.c
--- e_mod_config.c 12 Nov 2007 08:14:24 -0000 1.8
+++ e_mod_config.c 21 Dec 2007 06:07:16 -0000
@@ -8,6 +8,7 @@
int degrees;
char *code;
int show_text;
+ int popup_on_hover;
};
static void *_create_data(E_Config_Dialog * cfd);
@@ -50,6 +51,7 @@
if (ci->code)
cfdata->code = strdup(ci->code);
cfdata->show_text = ci->show_text;
+ cfdata->popup_on_hover = ci->popup_on_hover;
}
static void *
@@ -94,6 +96,8 @@
e_widget_framelist_object_append(of, ob);
ob = e_widget_check_add(evas, D_("Show Description"), &(cfdata->show_text));
e_widget_framelist_object_append(of, ob);
+ ob = e_widget_check_add(evas, _("Popup on mouse over"), &(cfdata->popup_on_hover));
+ e_widget_framelist_object_append(of, ob);
e_widget_list_object_append(o, of, 1, 1, 0.5);
of = e_widget_framelist_add(evas, D_("Unit Settings"), 0);
@@ -142,6 +146,7 @@
*t = toupper(*t);
ci->code = evas_stringshare_add(t);
ci->show_text = cfdata->show_text;
+ ci->popup_on_hover = cfdata->popup_on_hover;
e_config_save_queue();
_forecasts_config_updated(ci);
Index: e_mod_main.c
===================================================================
RCS file: /cvs/e/e_modules/forecasts/e_mod_main.c,v
retrieving revision 1.14
diff -u -r1.14 e_mod_main.c
--- e_mod_main.c 12 Nov 2007 04:15:51 -0000 1.14
+++ e_mod_main.c 21 Dec 2007 06:07:16 -0000
@@ -362,7 +362,8 @@
ci->host = evas_stringshare_add("xml.weather.yahoo.com");
ci->code = evas_stringshare_add("BUXX0005");
ci->show_text = 1;
-
+ ci->popup_on_hover = 1;
+
forecasts_config->items = evas_list_append(forecasts_config->items, ci);
return ci;
}
@@ -393,6 +394,7 @@
E_CONFIG_VAL(D, T, host, STR);
E_CONFIG_VAL(D, T, code, STR);
E_CONFIG_VAL(D, T, show_text, INT);
+ E_CONFIG_VAL(D, T, popup_on_hover, INT);
conf_edd = E_CONFIG_DD_NEW("Forecasts_Config", Config);
#undef T
@@ -415,6 +417,7 @@
ci->code = evas_stringshare_add("BUXX0005");
ci->id = evas_stringshare_add("0");
ci->show_text = 1;
+ ci->popup_on_hover = 1;
forecasts_config->items = evas_list_append(forecasts_config->items, ci);
}
@@ -646,7 +649,7 @@
char city[256];
char region[256];
char location[512];
- int visibility;
+ float visibility;
int i;
inst = data;
@@ -694,7 +697,7 @@
sscanf(needle, "\"%3[^\"]\"", inst->units.speed);
/* Current conditions */
- needle = strstr(inst->buffer, "<yweather:condition text=");
+ needle = strstr(inst->buffer, "<yweather:condition text=");
if (!needle) goto error;
needle = strstr(needle, "\"");
sscanf(needle, "\"%255[^\"]\"", inst->condition.desc);
@@ -734,8 +737,8 @@
needle = strstr(needle, "visibility=\"");
if (!needle) goto error;
needle = strstr(needle, "\"");
- sscanf(needle, "\"%d\"", &visibility);
- inst->details.atmosphere.visibility = (float) visibility / 100;
+ sscanf(needle, "\"%f\"", &visibility);
+ inst->details.atmosphere.visibility = visibility;
needle = strstr(needle, "pressure=\"");
if (!needle) goto error;
needle = strstr(needle, "\"");
@@ -1068,13 +1071,19 @@
e_object_del(E_OBJECT(inst->popup));
}
-static void
+static void
_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
Instance *inst;
Evas_Event_Mouse_Down *ev;
- inst = data;
+ if (!(inst = data)) return;
+ if (!inst->ci->popup_on_hover)
+ {
+ e_gadcon_popup_show(inst->popup);
+ return;
+ }
+
ev = event_info;
if (ev->button == 1)
{
@@ -1086,17 +1095,21 @@
_cb_mouse_in(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
Instance *inst;
-
+
if (!(inst = data)) return;
+ if (!inst->ci->popup_on_hover) return;
+
e_gadcon_popup_show(inst->popup);
}
-static void
+static void
_cb_mouse_out(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
Instance *inst;
-
+
if (!(inst = data)) return;
+
+ if (inst->popup->pinned) return;
e_gadcon_popup_hide(inst->popup);
}
Index: e_mod_main.h
===================================================================
RCS file: /cvs/e/e_modules/forecasts/e_mod_main.h,v
retrieving revision 1.6
diff -u -r1.6 e_mod_main.h
--- e_mod_main.h 1 Nov 2007 10:41:41 -0000 1.6
+++ e_mod_main.h 21 Dec 2007 06:07:16 -0000
@@ -27,6 +27,7 @@
int degrees;
const char *host, *code;
int show_text;
+ int popup_on_hover;
};
EAPI extern E_Module_Api e_modapi;
signature.asc
Description: OpenPGP digital signature
------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
