From 62b44f37d84b16d554d6b88ddd5282f185bb1884 Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Wed, 2 Jul 2008 11:29:14 +0000 Subject: [PATCH] Add Theme fetcher from Massimiliano Calamelli (mcalamelli@gmail.com). SVN revision: 34979 --- src/modules/conf_theme/Makefile.am | 4 ++- src/modules/conf_theme/e_int_config_theme.c | 30 ++++++++++++++++++++- src/modules/conf_theme/e_mod_main.h | 2 ++ 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/modules/conf_theme/Makefile.am b/src/modules/conf_theme/Makefile.am index ac5faff7b..25f4445db 100644 --- a/src/modules/conf_theme/Makefile.am +++ b/src/modules/conf_theme/Makefile.am @@ -23,7 +23,9 @@ module_la_SOURCES = e_mod_main.c \ e_int_config_theme.c \ e_int_config_theme.h \ e_int_config_theme_import.c \ - e_int_config_theme_import.h + e_int_config_theme_import.h \ + e_int_config_theme_web.c \ + e_int_config_theme_web.h module_la_LIBADD = @e_libs@ @dlopen_libs@ module_la_LDFLAGS = -module -avoid-version diff --git a/src/modules/conf_theme/e_int_config_theme.c b/src/modules/conf_theme/e_int_config_theme.c index c7d63a05b..e45f7fa94 100644 --- a/src/modules/conf_theme/e_int_config_theme.c +++ b/src/modules/conf_theme/e_int_config_theme.c @@ -37,6 +37,7 @@ struct _E_Config_Dialog_Data /* Dialog */ E_Win *win_import; + E_Win *win_web; }; EAPI E_Config_Dialog * @@ -71,6 +72,15 @@ e_int_config_theme_import_done(E_Config_Dialog *dia) cfdata->win_import = NULL; } +EAPI void +e_int_config_theme_web_done(E_Config_Dialog *dia) +{ + E_Config_Dialog_Data *cfdata; + + cfdata = dia->cfdata; + cfdata->win_web = NULL; +} + EAPI void e_int_config_theme_update(E_Config_Dialog *dia, char *file) { @@ -246,6 +256,18 @@ _cb_import(void *data1, void *data2) cfdata->win_import = e_int_config_theme_import(cfdata->cfd); } +static void +_cb_web(void *data1, void *data2) +{ + E_Config_Dialog_Data *cfdata; + + cfdata = data1; + if (cfdata->win_web) + e_win_raise(cfdata->win_web); + else + cfdata->win_web = e_int_config_theme_web(cfdata->cfd); +} + static void _fill_data(E_Config_Dialog_Data *cfdata) { @@ -368,9 +390,15 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf of = e_widget_list_add(evas, 0, 0); il = e_widget_list_add(evas, 0, 1); - o = e_widget_button_add(evas, _("Import..."), "enlightenment/themes", + o = e_widget_button_add(evas, _(" Import..."), "enlightenment/themes", _cb_import, cfdata, NULL); e_widget_list_object_append(il, o, 1, 0, 0.5); + if (ecore_file_download_protocol_available("http://")) + { + o = e_widget_button_add(evas, _(" Online..."), "enlightenment/website", + _cb_web, cfdata, NULL); + e_widget_list_object_append(il, o, 1, 0, 0.5); + } e_widget_list_object_append(of, il, 1, 0, 0.0); { diff --git a/src/modules/conf_theme/e_mod_main.h b/src/modules/conf_theme/e_mod_main.h index a8e19d348..0a7669986 100644 --- a/src/modules/conf_theme/e_mod_main.h +++ b/src/modules/conf_theme/e_mod_main.h @@ -7,9 +7,11 @@ #define E_TYPEDEFS 1 #include "e_int_config_theme.h" #include "e_int_config_theme_import.h" +#include "e_int_config_theme_web.h" #undef E_TYPEDEFS #include "e_int_config_theme.h" #include "e_int_config_theme_import.h" +#include "e_int_config_theme_web.h" EAPI extern E_Module_Api e_modapi;