From: Enlightenment C. <no...@cv...> - 2008-03-08 00:24:05
|
Enlightenment CVS committal Author : lok Project : e_modules Module : notification Dir : e_modules/notification/src Modified Files: e_mod_main.c e_mod_popup.c Log Message: The theme can now specify the maximum size of the icon to show in the popup. =================================================================== RCS file: /cvs/e/e_modules/notification/src/e_mod_main.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- e_mod_main.c 7 Mar 2008 18:02:59 -0000 1.9 +++ e_mod_main.c 8 Mar 2008 00:24:03 -0000 1.10 @@ -127,7 +127,9 @@ o = edje_object_add(evas); snprintf(buf, sizeof(buf), "%s/e-module-notification.edj", e_module_dir_get(notification_mod)); - edje_object_file_set(o, buf, "icon"); + if (!e_theme_edje_object_set(o, "base/theme/modules/notification", + "icon")) + edje_object_file_set(o, buf, "icon"); return o; } =================================================================== RCS file: /cvs/e/e_modules/notification/src/e_mod_popup.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- e_mod_popup.c 7 Mar 2008 18:02:59 -0000 1.2 +++ e_mod_popup.c 8 Mar 2008 00:24:03 -0000 1.3 @@ -202,9 +202,10 @@ _notification_popup_refresh(Popup_Data *popup) { const char *icon_path; + const char *app_icon_max; char *msg; void *img; - int w, h; + int w, h, width = 80, height = 80; if (!popup) return; @@ -217,6 +218,26 @@ popup->app_icon = NULL; } + app_icon_max = edje_object_data_get(popup->theme, "app_icon_max"); + if (app_icon_max) + { + char *endptr; + + errno = 0; + width = strtol(app_icon_max, &endptr, 10); + if (errno != 0 && width == 0 || endptr == app_icon_max) + { + width = 80; + height = 80; + } + else + { + endptr++; + if (endptr) height = strtol(endptr, NULL, 10); + else height = 80; + } + } + /* Check if the app specify an icon either by a path or by a hint */ if ((icon_path = e_notification_app_icon_get(popup->notif)) && *icon_path) { @@ -224,23 +245,12 @@ popup->app_icon = evas_object_image_add(popup->e); evas_object_image_file_set(popup->app_icon, icon_path, NULL); evas_object_image_size_get(popup->app_icon, &w, &h); - if (w > 80 || h > 80) - { - int v; - v = w > h ? w : h; - h = h * 80 / v; - w = w * 80 / v; - } evas_object_image_fill_set(popup->app_icon, 0, 0, w, h); - edje_extern_object_min_size_set(popup->app_icon, w, h); - edje_extern_object_max_size_set(popup->app_icon, w, h); } else if ((img = e_notification_hint_icon_data_get(popup->notif))) { popup->app_icon = e_notification_image_evas_object_add(popup->e, img); evas_object_image_size_get(popup->app_icon, &w, &h); - edje_extern_object_min_size_set(popup->app_icon, w, h); - edje_extern_object_max_size_set(popup->app_icon, w, h); } else { @@ -251,11 +261,27 @@ if (!e_theme_edje_object_set(popup->app_icon, "base/theme/modules/notification", "modules/notification/logo")) edje_object_file_set(popup->app_icon, buf, "modules/notification/logo"); - evas_object_resize(popup->app_icon, 80, 80); - edje_extern_object_min_size_set(popup->app_icon, 80, 80); - edje_extern_object_max_size_set(popup->app_icon, 80, 80); + w = width; h = height; } + if (w > width || h > height) + { + int v; + v = w > h ? w : h; + h = h * height / v; + w = w * width / v; + evas_object_image_fill_set(popup->app_icon, 0, 0, w, h); + evas_object_resize(popup->app_icon, w, h); + edje_extern_object_min_size_set(popup->app_icon, w, h); + edje_extern_object_max_size_set(popup->app_icon, w, h); + } + else + { + evas_object_resize(popup->app_icon, w, h); + edje_extern_object_min_size_set(popup->app_icon, w, h); + edje_extern_object_max_size_set(popup->app_icon, w, h); + } + edje_object_calc_force(popup->theme); edje_object_part_swallow(popup->theme, "notification.swallow.app_icon", popup->app_icon); edje_object_signal_emit(popup->theme, "notification,icon", "notification"); |
From: Enlightenment C. <no...@cv...> - 2008-03-19 16:32:22
|
Enlightenment CVS committal Author : lok Project : e_modules Module : notification Dir : e_modules/notification/src Modified Files: e_mod_box.c e_mod_config_item.c e_mod_macro.h e_mod_main.c e_mod_main.h Log Message: Make the popup at mouse over and the focus when clicking on an notification icon optional. (For those which already have a notification config you need to reenable them in your configuration). =================================================================== RCS file: /cvs/e/e_modules/notification/src/e_mod_box.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- e_mod_box.c 7 Mar 2008 18:02:59 -0000 1.2 +++ e_mod_box.c 19 Mar 2008 16:32:21 -0000 1.3 @@ -229,6 +229,8 @@ ci = E_NEW(Config_Item, 1); ci->id = evas_stringshare_add(id); ci->show_label = 1; + ci->show_popup = 1; + ci->focus_window = 1; ci->store_low = 1; ci->store_normal = 1; ci->store_critical = 0; @@ -722,15 +724,18 @@ void *event_info __UNUSED__) { Notification_Box_Icon *ic; + Config_Item *ci; + + if (!(ic = data) || !ic->n_box || !ic->n_box->inst) return; + if (!(ci = ic->n_box->inst->ci)) return; - ic = data; _notification_box_icon_signal_emit(ic, "e,state,focused", "e"); - if (ic->n_box->inst->ci->show_label) + if (ci->show_label) { _notification_box_icon_fill_label(ic); _notification_box_icon_signal_emit(ic, "e,action,show,label", "e"); } - if (!ic->popup && !ic->mouse_in_timer) + if (ci->show_popup && !ic->popup && !ic->mouse_in_timer) ic->mouse_in_timer = ecore_timer_add(0.5, _notification_box_cb_icon_mouse_still_in, ic); } @@ -774,7 +779,7 @@ b = ic->n_box; if ((ev->button == 1)) { - if (ic->border) + if (b->inst->ci->focus_window && ic->border) { e_border_uniconify(ic->border); e_desk_show(ic->border->desk); =================================================================== RCS file: /cvs/e/e_modules/notification/src/e_mod_config_item.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- e_mod_config_item.c 2 Mar 2008 01:33:28 -0000 1.1 +++ e_mod_config_item.c 19 Mar 2008 16:32:21 -0000 1.2 @@ -3,6 +3,8 @@ struct _E_Config_Dialog_Data { int show_label; + int show_popup; + int focus_window; int store_low; int store_normal; int store_critical; @@ -42,6 +44,8 @@ _ci_fill_data(Config_Item *ci, E_Config_Dialog_Data *cfdata) { cfdata->show_label = ci->show_label; + cfdata->show_popup = ci->show_popup; + cfdata->focus_window = ci->focus_window; cfdata->store_low = ci->store_low; cfdata->store_normal = ci->store_normal; cfdata->store_critical = ci->store_critical; @@ -78,6 +82,10 @@ of = e_widget_framelist_add(evas, D_("General Settings"), 0); ob = e_widget_check_add(evas, D_("Show Icon Label"), &(cfdata->show_label)); e_widget_framelist_object_append(of, ob); + ob = e_widget_check_add(evas, D_("Show the popup on mouse over"), &(cfdata->show_popup)); + e_widget_framelist_object_append(of, ob); + ob = e_widget_check_add(evas, D_("Focus the source window when clicking"), &(cfdata->focus_window)); + 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_("Urgency"), 0); @@ -101,6 +109,8 @@ ci = cfd->data; ci->show_label = cfdata->show_label; + ci->show_popup = cfdata->show_popup; + ci->focus_window = cfdata->focus_window; ci->store_low = cfdata->store_low; ci->store_normal = cfdata->store_normal; ci->store_critical = cfdata->store_critical; =================================================================== RCS file: /cvs/e/e_modules/notification/src/e_mod_macro.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- e_mod_macro.h 7 Mar 2008 18:02:59 -0000 1.2 +++ e_mod_macro.h 19 Mar 2008 16:32:21 -0000 1.3 @@ -4,7 +4,7 @@ #define D_(str) dgettext(PACKAGE, str) #define MOD_CFG_FILE_EPOCH 0x0002 -#define MOD_CFG_FILE_GENERATION 0x0003 +#define MOD_CFG_FILE_GENERATION 0x0004 #define MOD_CFG_FILE_VERSION \ ((MOD_CFG_FILE_EPOCH << 16) | MOD_CFG_FILE_GENERATION) =================================================================== RCS file: /cvs/e/e_modules/notification/src/e_mod_main.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -3 -r1.10 -r1.11 --- e_mod_main.c 8 Mar 2008 00:24:03 -0000 1.10 +++ e_mod_main.c 19 Mar 2008 16:32:21 -0000 1.11 @@ -180,6 +180,8 @@ #define D conf_item_edd E_CONFIG_VAL(D, T, id, STR); E_CONFIG_VAL(D, T, show_label, INT); + E_CONFIG_VAL(D, T, show_popup, INT); + E_CONFIG_VAL(D, T, focus_window, INT); E_CONFIG_VAL(D, T, store_low, INT); E_CONFIG_VAL(D, T, store_normal, INT); E_CONFIG_VAL(D, T, store_critical, INT); =================================================================== RCS file: /cvs/e/e_modules/notification/src/e_mod_main.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- e_mod_main.h 2 Mar 2008 01:33:28 -0000 1.3 +++ e_mod_main.h 19 Mar 2008 16:32:21 -0000 1.4 @@ -54,6 +54,8 @@ { const char *id; int show_label; + int show_popup; + int focus_window; int store_low; int store_normal; int store_critical; |
From: Enlightenment C. <no...@cv...> - 2008-06-11 23:04:28
|
Enlightenment CVS committal Author : lok Project : e_modules Module : notification Dir : e_modules/notification/src Modified Files: e_mod_box.c Log Message: If the window name don't match try with the class name. =================================================================== RCS file: /cvs/e/e_modules/notification/src/e_mod_box.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- e_mod_box.c 19 Mar 2008 16:32:21 -0000 1.3 +++ e_mod_box.c 11 Jun 2008 23:04:23 -0000 1.4 @@ -628,7 +628,7 @@ if (!strncasecmp(bd->client.icccm.name, app_name, compare_len)) return bd; } - else if (bd->client.icccm.class) + if (bd->client.icccm.class) { compare_len = MIN_LEN(bd->client.icccm.class, app_name); if (!strncasecmp(bd->client.icccm.class, app_name, compare_len)) |
From: Enlightenment C. <no...@cv...> - 2008-07-03 10:56:58
|
Enlightenment CVS committal Author : lok Project : e_modules Module : notification Dir : e_modules/notification/src Modified Files: e_mod_box.c e_mod_box.h Log Message: Do not create a new icon in the shelf if a notification use replaces_id. =================================================================== RCS file: /cvs/e/e_modules/notification/src/e_mod_box.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- e_mod_box.c 11 Jun 2008 23:04:23 -0000 1.4 +++ e_mod_box.c 3 Jul 2008 10:56:53 -0000 1.5 @@ -13,14 +13,16 @@ /* Notification box icons protos */ static Notification_Box_Icon *_notification_box_icon_new (Notification_Box *b, E_Notification *n, - E_Border *bd); + E_Border *bd, + unsigned int id); static void _notification_box_icon_free (Notification_Box_Icon *ic); static void _notification_box_icon_fill (Notification_Box_Icon *ic, E_Notification *n); static void _notification_box_icon_fill_label (Notification_Box_Icon *ic); static void _notification_box_icon_empty (Notification_Box_Icon *ic); static Notification_Box_Icon *_notification_box_icon_find (Notification_Box *b, - E_Border *bd); + E_Border *bd, + unsigned int n_id); static void _notification_box_icon_signal_emit (Notification_Box_Icon *ic, char *sig, char *src); @@ -66,8 +68,8 @@ int notification_box_notify(E_Notification *n, - unsigned int replaces_id __UNUSED__, - unsigned int id __UNUSED__) + unsigned int replaces_id, + unsigned int id) { Evas_List *l, *n_box; E_Border *bd; @@ -81,19 +83,20 @@ Notification_Box_Icon *ic = NULL; b = l->data; - if (bd) - ic = _notification_box_icon_find(b, bd); + if (bd || replaces_id) + ic = _notification_box_icon_find(b, bd, replaces_id); if (ic) { e_notification_unref(ic->notif); e_notification_ref(n); ic->notif = n; + ic->n_id = id; _notification_box_icon_empty(ic); _notification_box_icon_fill(ic, n); } else { - ic = _notification_box_icon_new(b, n, bd); + ic = _notification_box_icon_new(b, n, bd, id); if (!ic) continue; b->icons = evas_list_append(b->icons, ic); e_box_pack_end(b->o_box, ic->o_holder); @@ -275,7 +278,7 @@ if (!(inst = l->data)) continue; b = inst->n_box; - ic = _notification_box_icon_find(b, ev->border); + ic = _notification_box_icon_find(b, ev->border, 0); if (!ic) continue; b->icons = evas_list_remove(b->icons, ic); _notification_box_icon_free(ic); @@ -333,7 +336,7 @@ ic = l->data; if (!ic) continue; - new_ic = _notification_box_icon_new(b, ic->notif, ic->border); + new_ic = _notification_box_icon_new(b, ic->notif, ic->border, ic->n_id); _notification_box_icon_free(ic); new_icons = evas_list_append(new_icons, new_ic); @@ -441,7 +444,7 @@ } static Notification_Box_Icon * -_notification_box_icon_new(Notification_Box *b, E_Notification *n, E_Border *bd) +_notification_box_icon_new(Notification_Box *b, E_Notification *n, E_Border *bd, unsigned int id) { Notification_Box_Icon *ic; @@ -450,6 +453,7 @@ e_notification_ref(n); ic->label = e_notification_app_name_get(n); ic->n_box = b; + ic->n_id = id; ic->border = bd; ic->notif = n; ic->o_holder = edje_object_add(evas_object_evas_get(b->o_box)); @@ -575,7 +579,7 @@ } static Notification_Box_Icon * -_notification_box_icon_find(Notification_Box *b, E_Border *bd) +_notification_box_icon_find(Notification_Box *b, E_Border *bd, unsigned int n_id) { Evas_List *l; @@ -584,7 +588,7 @@ Notification_Box_Icon *ic; if (!(ic = l->data)) continue; - if (ic->border == bd) + if (ic->border == bd || ic->n_id == n_id) return ic; } =================================================================== RCS file: /cvs/e/e_modules/notification/src/e_mod_box.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- e_mod_box.h 2 Mar 2008 01:33:28 -0000 1.1 +++ e_mod_box.h 3 Jul 2008 10:56:53 -0000 1.2 @@ -13,13 +13,14 @@ struct _Notification_Box_Icon { Notification_Box *n_box; - const char *label; - Evas_Object *o_holder; - Evas_Object *o_icon; - Evas_Object *o_holder2; - Evas_Object *o_icon2; - E_Border *border; - E_Notification *notif; + unsigned int n_id; + const char *label; + Evas_Object *o_holder; + Evas_Object *o_icon; + Evas_Object *o_holder2; + Evas_Object *o_icon2; + E_Border *border; + E_Notification *notif; int popup; Ecore_Timer *mouse_in_timer; |