From 17475003db82afa307493768afe85038c1a78e34 Mon Sep 17 00:00:00 2001 From: Christopher Michael Date: Sun, 2 Jul 2006 18:55:33 +0000 Subject: [PATCH] Module about dialogs now show the module icon in the dialog, and the border. Note: This breaks e_modules until I get them fixed. SVN revision: 23660 --- src/bin/e_border.c | 16 ++++++++++---- src/bin/e_border.h | 3 ++- src/bin/e_module.c | 31 +++++++++++++++++++++++++--- src/bin/e_module.h | 2 +- src/modules/battery/e_mod_main.c | 2 +- src/modules/clock/e_mod_main.c | 2 +- src/modules/cpufreq/e_mod_main.c | 2 +- src/modules/dropshadow/e_mod_main.c | 2 +- src/modules/ibar/e_mod_main.c | 2 +- src/modules/ibox/e_mod_main.c | 2 +- src/modules/itray/e_mod_main.c | 2 +- src/modules/pager/e_mod_main.c | 2 +- src/modules/start/e_mod_main.c | 2 +- src/modules/temperature/e_mod_main.c | 2 +- 14 files changed, 53 insertions(+), 19 deletions(-) diff --git a/src/bin/e_border.c b/src/bin/e_border.c index 0f6f90500..64140e904 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -2448,11 +2448,18 @@ e_border_icon_add(E_Border *bd, Evas *evas) if (bd->internal) { o = edje_object_add(evas); - if (!bd->internal_icon) + if ((!bd->internal_icon) && (!bd->module_eap)) e_util_edje_icon_set(o, "enlightenment/e"); - else - if (!e_util_edje_icon_set(o, bd->internal_icon)) - e_util_edje_icon_set(o, "enlightenment/e"); + else if (bd->internal_icon) + { + if (!e_util_edje_icon_set(o, bd->internal_icon)) + e_util_edje_icon_set(o, "enlightenment/e"); + } + else if (bd->module_eap) + { + if (!edje_object_file_set(o, bd->module_eap, "icon")) + e_util_edje_icon_set(o, "enlightenment/e"); + } return o; } if (e_config->use_app_icon) @@ -3030,6 +3037,7 @@ _e_border_free(E_Border *bd) if (bd->client.netwm.name) free(bd->client.netwm.name); if (bd->client.netwm.icon_name) free(bd->client.netwm.icon_name); e_object_del(E_OBJECT(bd->shape)); + if (bd->module_eap) evas_stringshare_del(bd->module_eap); if (bd->internal_icon) evas_stringshare_del(bd->internal_icon); if (bd->icon_object) evas_object_del(bd->icon_object); evas_object_del(bd->bg_object); diff --git a/src/bin/e_border.h b/src/bin/e_border.h index e4e3e6cec..efc8477f6 100644 --- a/src/bin/e_border.h +++ b/src/bin/e_border.h @@ -135,7 +135,8 @@ struct _E_Border Evas_Object *icon_object; Ecore_X_Window event_win; const char *internal_icon; - + const char *module_eap; + struct { Ecore_X_Window shell_win; Ecore_X_Window win; diff --git a/src/bin/e_module.c b/src/bin/e_module.c index 9bb785b1c..ffcf70f5d 100644 --- a/src/bin/e_module.c +++ b/src/bin/e_module.c @@ -26,6 +26,7 @@ static void _e_module_control_menu_configuration(void *data, E_Menu *m, E_Menu_I static void _e_module_control_menu_enabled(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_module_dialog_disable_show(const char *title, const char *body, E_Module *m); static void _e_module_cb_dialog_disable(void *data, E_Dialog *dia); +static void _e_module_dialog_icon_set(E_Dialog *dia, const char *icon); /* local subsystem globals */ static Evas_List *_e_modules = NULL; @@ -356,20 +357,30 @@ e_module_list(void) } EAPI void -e_module_dialog_show(const char *title, const char *body) +e_module_dialog_show(E_Module *m, const char *title, const char *body) { E_Dialog *dia; + E_Border *bd; + char eap[4096]; + + if (!m) return; + snprintf(eap, sizeof(eap), "%s/module.eap", e_module_dir_get(m)); + dia = e_dialog_new(e_container_current_get(e_manager_current_get())); if (!dia) return; e_dialog_title_set(dia, title); - e_dialog_icon_set(dia, "enlightenment/modules", 64); + _e_module_dialog_icon_set(dia, eap); e_dialog_text_set(dia, body); e_dialog_button_add(dia, _("OK"), NULL, NULL, NULL); e_dialog_button_focus_num(dia, 0); e_win_centered_set(dia->win, 1); e_dialog_show(dia); + if (!eap) return; + bd = dia->win->border; + if (!bd) return; + bd->module_eap = evas_stringshare_add(eap); } /* local subsystem functions */ @@ -421,7 +432,7 @@ _e_module_control_menu_new(E_Module *mod) m = e_menu_new(); mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("About…")); + e_menu_item_label_set(mi, _("About...")); e_menu_item_callback_set(mi, _e_module_control_menu_about, mod); mi = e_menu_item_new(m); @@ -529,3 +540,17 @@ _e_module_cb_dialog_disable(void *data, E_Dialog *dia) e_object_del(E_OBJECT(dia)); e_config_save_queue(); } + +static void +_e_module_dialog_icon_set(E_Dialog *dia, const char *icon) +{ + /* These should never happen, but just in case */ + if (!dia) return; + if (!icon) return; + + dia->icon_object = edje_object_add(e_win_evas_get(dia->win)); + edje_object_file_set(dia->icon_object, icon, "icon"); + edje_extern_object_min_size_set(dia->icon_object, 64, 64); + edje_object_part_swallow(dia->bg_object, "icon_swallow", dia->icon_object); + evas_object_show(dia->icon_object); +} diff --git a/src/bin/e_module.h b/src/bin/e_module.h index 789d92049..d7ec49e02 100644 --- a/src/bin/e_module.h +++ b/src/bin/e_module.h @@ -57,7 +57,7 @@ EAPI int e_module_enabled_get(E_Module *m); EAPI int e_module_save_all(void); EAPI E_Module *e_module_find(const char *name); EAPI Evas_List *e_module_list(void); -EAPI void e_module_dialog_show(const char *title, const char *body); +EAPI void e_module_dialog_show(E_Module *m, const char *title, const char *body); #endif #endif diff --git a/src/modules/battery/e_mod_main.c b/src/modules/battery/e_mod_main.c index ff335bf0e..1e07de9b8 100644 --- a/src/modules/battery/e_mod_main.c +++ b/src/modules/battery/e_mod_main.c @@ -1430,7 +1430,7 @@ e_modapi_save(E_Module *m) EAPI int e_modapi_about(E_Module *m) { - e_module_dialog_show(_("Enlightenment Battery Module"), + e_module_dialog_show(m, _("Enlightenment Battery Module"), _("A basic battery meter that uses either" "ACPI or APM
" "on Linux to monitor your battery and AC power adaptor
" diff --git a/src/modules/clock/e_mod_main.c b/src/modules/clock/e_mod_main.c index d7be1810c..0bf621165 100644 --- a/src/modules/clock/e_mod_main.c +++ b/src/modules/clock/e_mod_main.c @@ -146,7 +146,7 @@ e_modapi_save(E_Module *m) EAPI int e_modapi_about(E_Module *m) { - e_module_dialog_show(_("Enlightenment Clock Module"), + e_module_dialog_show(m, _("Enlightenment Clock Module"), _("A simple module to give E17 a clock.")); return 1; } diff --git a/src/modules/cpufreq/e_mod_main.c b/src/modules/cpufreq/e_mod_main.c index ee8c9ae34..45e4afe98 100644 --- a/src/modules/cpufreq/e_mod_main.c +++ b/src/modules/cpufreq/e_mod_main.c @@ -936,7 +936,7 @@ e_modapi_save(E_Module *m) EAPI int e_modapi_about(E_Module *m) { - e_module_dialog_show(_("CPU Frequency Controller Module"), + e_module_dialog_show(m, _("CPU Frequency Controller Module"), _("A simple module to control the frequency of the system CPU.
" "This is especially useful to save power on laptops.")); return 1; diff --git a/src/modules/dropshadow/e_mod_main.c b/src/modules/dropshadow/e_mod_main.c index 445e61753..b7b76c3a6 100644 --- a/src/modules/dropshadow/e_mod_main.c +++ b/src/modules/dropshadow/e_mod_main.c @@ -154,7 +154,7 @@ e_modapi_save(E_Module *m) EAPI int e_modapi_about(E_Module *m) { - e_module_dialog_show(_("Enlightenment Dropshadow Module"), + e_module_dialog_show(m, _("Enlightenment Dropshadow Module"), _("This is the dropshadow module that allows dropshadows to be cast
" "on the desktop background - without special X-Server extensions
" "or hardware acceleration.")); diff --git a/src/modules/ibar/e_mod_main.c b/src/modules/ibar/e_mod_main.c index 1e5dde435..db7021543 100644 --- a/src/modules/ibar/e_mod_main.c +++ b/src/modules/ibar/e_mod_main.c @@ -1377,7 +1377,7 @@ e_modapi_save(E_Module *m) EAPI int e_modapi_about(E_Module *m) { - e_module_dialog_show(_("Enlightenment IBar Module"), + e_module_dialog_show(m, _("Enlightenment IBar Module"), _("This is the IBar Application Launcher bar module for Enlightenment.
" "It is a first example module and is being used to flesh out several
" "interfaces in Enlightenment 0.17.0. It is under heavy development,
" diff --git a/src/modules/ibox/e_mod_main.c b/src/modules/ibox/e_mod_main.c index db71fa6a2..efd1941a0 100644 --- a/src/modules/ibox/e_mod_main.c +++ b/src/modules/ibox/e_mod_main.c @@ -1418,7 +1418,7 @@ e_modapi_save(E_Module *m) EAPI int e_modapi_about(E_Module *m) { - e_module_dialog_show(_("Enlightenment IBox Module"), + e_module_dialog_show(m, _("Enlightenment IBox Module"), _("This is the IBox Iconified Application module for Enlightenment.
" "It will hold minimized applications")); return 1; diff --git a/src/modules/itray/e_mod_main.c b/src/modules/itray/e_mod_main.c index c4b029947..83b867a0c 100644 --- a/src/modules/itray/e_mod_main.c +++ b/src/modules/itray/e_mod_main.c @@ -158,7 +158,7 @@ e_modapi_info(E_Module *m) EAPI int e_modapi_about(E_Module *m) { - e_module_dialog_show(_("Enlightenment ITray Module"), + e_module_dialog_show(m, _("Enlightenment ITray Module"), _("This is the ITray system tray module for Enlightenment.
" "It will hold system tray icons.
" "Beware that this can be buggy due to many systray providing
" diff --git a/src/modules/pager/e_mod_main.c b/src/modules/pager/e_mod_main.c index 844d38ce4..07e708a78 100644 --- a/src/modules/pager/e_mod_main.c +++ b/src/modules/pager/e_mod_main.c @@ -1825,7 +1825,7 @@ e_modapi_save(E_Module *m) EAPI int e_modapi_about(E_Module *m) { - e_module_dialog_show(_("Enlightenment Pager Module"), + e_module_dialog_show(m, _("Enlightenment Pager Module"), _("A pager module to navigate virtual desktops.")); return 1; } diff --git a/src/modules/start/e_mod_main.c b/src/modules/start/e_mod_main.c index 10317b600..8ea654a17 100644 --- a/src/modules/start/e_mod_main.c +++ b/src/modules/start/e_mod_main.c @@ -252,7 +252,7 @@ e_modapi_save(E_Module *m) EAPI int e_modapi_about(E_Module *m) { - e_module_dialog_show(_("Enlightenment Start Module"), + e_module_dialog_show(m, _("Enlightenment Start Module"), _("Experimental Button module for E17")); return 1; } diff --git a/src/modules/temperature/e_mod_main.c b/src/modules/temperature/e_mod_main.c index 20511e3bb..4feda2ca5 100644 --- a/src/modules/temperature/e_mod_main.c +++ b/src/modules/temperature/e_mod_main.c @@ -446,7 +446,7 @@ e_modapi_save(E_Module *m) EAPI int e_modapi_about(E_Module *m) { - e_module_dialog_show(_("Enlightenment Temperature Module"), + e_module_dialog_show(m, _("Enlightenment Temperature Module"), _("A module to measure the ACPI Thermal sensor on Linux.
" "It is especially useful for modern Laptops with high speed
" "CPUs that generate a lot of heat."));