Enlightenment CVS committal Author : devilhorns Project : e_modules Module : slideshow
Dir : e_modules/slideshow Modified Files: e_mod_main.h e_mod_main.c e_mod_config.c Log Message: Add an option to slideshow module for setting wallpaper on all desktops, or just the current one. =================================================================== RCS file: /cvs/e/e_modules/slideshow/e_mod_main.h,v retrieving revision 1.18 retrieving revision 1.19 diff -u -3 -r1.18 -r1.19 --- e_mod_main.h 28 Jul 2006 00:02:17 -0000 1.18 +++ e_mod_main.h 10 Dec 2006 01:00:07 -0000 1.19 @@ -21,6 +21,7 @@ int disable_timer; int random_order; + int all_desks; double poll_time; const char *dir; }; =================================================================== RCS file: /cvs/e/e_modules/slideshow/e_mod_main.c,v retrieving revision 1.38 retrieving revision 1.39 diff -u -3 -r1.38 -r1.39 --- e_mod_main.c 17 Sep 2006 16:15:35 -0000 1.38 +++ e_mod_main.c 10 Dec 2006 01:00:07 -0000 1.39 @@ -271,6 +271,7 @@ ci->id = evas_stringshare_add(id); ci->poll_time = 60.0; ci->disable_timer = 0; + ci->all_desks = 0; ci->dir = evas_stringshare_add(buf); slide_config->items = evas_list_append(slide_config->items, ci); @@ -298,7 +299,8 @@ E_CONFIG_VAL(D, T, poll_time, DOUBLE); E_CONFIG_VAL(D, T, disable_timer, INT); E_CONFIG_VAL(D, T, random_order, INT); - + E_CONFIG_VAL(D, T, all_desks, INT); + conf_edd = E_CONFIG_DD_NEW("Slideshow_Config", Config); #undef T #undef D @@ -321,6 +323,7 @@ ci->poll_time = 60.0; ci->disable_timer = 0; ci->random_order = 0; + ci->all_desks = 0; slide_config->items = evas_list_append(slide_config->items, ci); } slide_config->module = m; @@ -400,8 +403,7 @@ ss->slide_obj = edje_object_add(evas); if (!e_theme_edje_object_set - (ss->slide_obj, "base/theme/modules/slideshow", - "modules/slideshow/main")) + (ss->slide_obj, "base/theme/modules/slideshow", "modules/slideshow/main")) edje_object_file_set(ss->slide_obj, buf, "modules/slideshow/main"); evas_object_show(ss->slide_obj); @@ -531,13 +533,36 @@ { Instance *inst; Config_Item *ci; + E_Container *con; + E_Desk *d; + E_Zone *z; char buf[4096]; inst = data; ci = _slide_config_item_get(inst->gcc->id); - snprintf (buf, sizeof (buf), "enlightenment_remote -default-bg-set %s/%s", - ci->dir, bg); - system(buf); + snprintf (buf, sizeof (buf), "%s/%s", ci->dir, bg); + + if (ci->all_desks == 0) + { + con = e_container_current_get(e_manager_current_get()); + z = e_zone_current_get(con); + d = e_desk_current_get(z); + e_bg_del(con->num, z->num, d->x, d->y); + e_bg_add(con->num, z->num, d->x, d->y, buf); + } + else if (ci->all_desks == 1) + { + while (e_config->desktop_backgrounds) + { + E_Config_Desktop_Background *cfbg; + + cfbg = e_config->desktop_backgrounds->data; + e_bg_del(cfbg->container, cfbg->zone, cfbg->desk_x, cfbg->desk_y); + } + e_bg_default_set(buf); + } + + e_bg_update(); } static void @@ -555,9 +580,9 @@ bg = ecore_list_goto_index(inst->bg_list, inst->index); snprintf(buf, sizeof (buf), "%s/%s", ci->dir, bg); - if (!e_util_edje_collection_exists (buf, "desktop/background")) return; + if (!e_util_edje_collection_exists (buf, "e/desktop/background")) return; if (ss->bg_obj) evas_object_del(ss->bg_obj); ss->bg_obj = edje_object_add(e_livethumb_evas_get (ss->img_obj)); - edje_object_file_set(ss->bg_obj, buf, "desktop/background"); + edje_object_file_set(ss->bg_obj, buf, "e/desktop/background"); e_livethumb_thumb_set(ss->img_obj, ss->bg_obj); } =================================================================== RCS file: /cvs/e/e_modules/slideshow/e_mod_config.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -3 -r1.29 -r1.30 --- e_mod_config.c 17 Sep 2006 16:15:35 -0000 1.29 +++ e_mod_config.c 10 Dec 2006 01:00:07 -0000 1.30 @@ -3,143 +3,145 @@ struct _E_Config_Dialog_Data { - int disable_timer; - int random_order; - double poll_time; - char *dir; + int disable_timer; + int random_order; + int all_desks; + double poll_time; + char *dir; }; /* Protos */ -static void *_create_data (E_Config_Dialog * cfd); -static void _free_data (E_Config_Dialog * cfd, E_Config_Dialog_Data * cfdata); -static Evas_Object *_basic_create_widgets (E_Config_Dialog * cfd, Evas * evas, - E_Config_Dialog_Data * cfdata); -static int _basic_apply_data (E_Config_Dialog * cfd, - E_Config_Dialog_Data * cfdata); +static void *_create_data (E_Config_Dialog * cfd); +static void _free_data (E_Config_Dialog * cfd, E_Config_Dialog_Data * cfdata); +static Evas_Object *_basic_create_widgets (E_Config_Dialog * cfd, Evas * evas, E_Config_Dialog_Data * cfdata); +static int _basic_apply_data (E_Config_Dialog * cfd, E_Config_Dialog_Data * cfdata); void -_config_slideshow_module (Config_Item * ci) +_config_slideshow_module(Config_Item * ci) { - E_Config_Dialog *cfd; - E_Config_Dialog_View *v; - E_Container *con; - char buf[4096]; - - v = E_NEW (E_Config_Dialog_View, 1); - - v->create_cfdata = _create_data; - v->free_cfdata = _free_data; - v->basic.apply_cfdata = _basic_apply_data; - v->basic.create_widgets = _basic_create_widgets; - - snprintf (buf, sizeof (buf), "%s/module.edj", - e_module_dir_get (slide_config->module)); - con = e_container_current_get (e_manager_current_get ()); - cfd = - e_config_dialog_new (con, D_ ("Slideshow Configuration"), "SlideShow", "_e_modules_slideshow_config_dialog", buf, 0, v, ci); - slide_config->config_dialog = cfd; + E_Config_Dialog *cfd; + E_Config_Dialog_View *v; + E_Container *con; + char buf[4096]; + + v = E_NEW (E_Config_Dialog_View, 1); + + v->create_cfdata = _create_data; + v->free_cfdata = _free_data; + v->basic.apply_cfdata = _basic_apply_data; + v->basic.create_widgets = _basic_create_widgets; + + snprintf (buf, sizeof (buf), "%s/module.edj", e_module_dir_get(slide_config->module)); + con = e_container_current_get (e_manager_current_get ()); + cfd = + e_config_dialog_new (con, D_ ("Slideshow Configuration"), "SlideShow", "_e_modules_slideshow_config_dialog", buf, 0, v, ci); + slide_config->config_dialog = cfd; } static void -_fill_data (Config_Item * ci, E_Config_Dialog_Data * cfdata) +_fill_data(Config_Item * ci, E_Config_Dialog_Data * cfdata) { - char buf[PATH_MAX]; + char buf[PATH_MAX]; - cfdata->poll_time = ci->poll_time; - cfdata->disable_timer = ci->disable_timer; - cfdata->random_order = ci->random_order; - if (ci->dir) - cfdata->dir = strdup (ci->dir); - else - { - snprintf (buf, sizeof (buf), "%s/.e/e/backgrounds", - e_user_homedir_get ()); - cfdata->dir = strdup (buf); - } + cfdata->poll_time = ci->poll_time; + cfdata->disable_timer = ci->disable_timer; + cfdata->random_order = ci->random_order; + cfdata->all_desks = ci->all_desks; + if (ci->dir) + cfdata->dir = strdup(ci->dir); + else + { + snprintf(buf, sizeof (buf), "%s/.e/e/backgrounds", e_user_homedir_get()); + cfdata->dir = strdup(buf); + } } static void * -_create_data (E_Config_Dialog * cfd) +_create_data(E_Config_Dialog * cfd) { - E_Config_Dialog_Data *cfdata; - Config_Item *ci; + E_Config_Dialog_Data *cfdata; + Config_Item *ci; - ci = cfd->data; - cfdata = E_NEW (E_Config_Dialog_Data, 1); + ci = cfd->data; + cfdata = E_NEW (E_Config_Dialog_Data, 1); - _fill_data (ci, cfdata); - return cfdata; + _fill_data (ci, cfdata); + return cfdata; } static void -_free_data (E_Config_Dialog * cfd, E_Config_Dialog_Data * cfdata) +_free_data(E_Config_Dialog * cfd, E_Config_Dialog_Data * cfdata) { - if (!slide_config) - return; - - slide_config->config_dialog = NULL; - free (cfdata); + if (!slide_config) return; + slide_config->config_dialog = NULL; + free(cfdata); } static Evas_Object * -_basic_create_widgets (E_Config_Dialog * cfd, Evas * evas, - E_Config_Dialog_Data * cfdata) +_basic_create_widgets(E_Config_Dialog * cfd, Evas * evas, E_Config_Dialog_Data * cfdata) { - Evas_Object *o, *ob, *of, *ot; - - o = e_widget_list_add (evas, 0, 0); - of = e_widget_framelist_add (evas, D_ ("Cycle Time"), 0); - ob = - e_widget_check_add (evas, D_ ("Disable Timer"), &(cfdata->disable_timer)); - e_widget_framelist_object_append (of, ob); - ob = - e_widget_slider_add (evas, 1, 0, D_ ("%3.0f seconds"), 5.0, 300.0, 1.0, 0, - &(cfdata->poll_time), NULL, 200); - 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_ ("Directory"), 0); - ot = e_widget_table_add (evas, 1); - ob = e_widget_label_add (evas, D_ ("Sub-directory to use for backgrounds")); - e_widget_table_object_append (ot, ob, 0, 0, 1, 1, 0, 0, 1, 0); - ob = e_widget_entry_add (evas, &cfdata->dir); - e_widget_table_object_append (ot, ob, 0, 1, 1, 1, 1, 0, 1, 0); - e_widget_framelist_object_append (of, ot); - e_widget_list_object_append (o, of, 1, 1, 0.5); - - of = e_widget_framelist_add (evas, D_ ("Extra"), 0); - ob = e_widget_check_add (evas, D_ ("Randomize order"), &(cfdata->random_order)); - e_widget_framelist_object_append (of, ob); - e_widget_list_object_append (o, of, 1, 1, 0.5); + Evas_Object *o, *ob, *of, *ot; + E_Radio_Group *rg; + + o = e_widget_list_add (evas, 0, 0); + of = e_widget_framelist_add (evas, D_ ("Cycle Time"), 0); + ob = + e_widget_check_add (evas, D_ ("Disable Timer"), &(cfdata->disable_timer)); + e_widget_framelist_object_append (of, ob); + ob = + e_widget_slider_add (evas, 1, 0, D_ ("%3.0f seconds"), 5.0, 300.0, 1.0, 0, + &(cfdata->poll_time), NULL, 200); + 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_ ("Directory"), 0); + ot = e_widget_table_add (evas, 1); + ob = e_widget_label_add (evas, D_ ("Sub-directory to use for backgrounds")); + e_widget_table_object_append (ot, ob, 0, 0, 1, 1, 0, 0, 1, 0); + ob = e_widget_entry_add (evas, &cfdata->dir); + e_widget_table_object_append (ot, ob, 0, 1, 1, 1, 1, 0, 1, 0); + e_widget_framelist_object_append (of, ot); + e_widget_list_object_append (o, of, 1, 1, 0.5); + + of = e_widget_framelist_add (evas, D_ ("Extra"), 0); + ob = e_widget_check_add (evas, D_ ("Randomize order"), &(cfdata->random_order)); + e_widget_framelist_object_append (of, ob); + rg = e_widget_radio_group_new(&(cfdata->all_desks)); + ob = e_widget_radio_add(evas, _("Set wallpaper on all desktops"), 1, rg); + e_widget_framelist_object_append (of, ob); + ob = e_widget_radio_add(evas, _("Set wallpaper on current desktop"), 0, rg); + e_widget_framelist_object_append (of, ob); + e_widget_list_object_append (o, of, 1, 1, 0.5); - return o; + return o; } static int -_basic_apply_data (E_Config_Dialog * cfd, E_Config_Dialog_Data * cfdata) +_basic_apply_data(E_Config_Dialog * cfd, E_Config_Dialog_Data * cfdata) { - Config_Item *ci; - char buf[4096]; + Config_Item *ci; + char buf[4096]; - ci = cfd->data; - ci->poll_time = cfdata->poll_time; - ci->disable_timer = cfdata->disable_timer; -ci->random_order = cfdata->random_order; - - if (ci->dir) - evas_stringshare_del (ci->dir); - - if (cfdata->dir != NULL) - ci->dir = evas_stringshare_add (cfdata->dir); - else - { - snprintf (buf, sizeof (buf), "%s/.e/e/backgrounds", - e_user_homedir_get ()); - ci->dir = evas_stringshare_add (buf); - } + ci = cfd->data; + ci->poll_time = cfdata->poll_time; + ci->disable_timer = cfdata->disable_timer; + ci->random_order = cfdata->random_order; + ci->all_desks = cfdata->all_desks; + + if (ci->dir) + evas_stringshare_del (ci->dir); + + if (cfdata->dir != NULL) + ci->dir = evas_stringshare_add (cfdata->dir); + else + { + snprintf (buf, sizeof (buf), "%s/.e/e/backgrounds", + e_user_homedir_get ()); + ci->dir = evas_stringshare_add (buf); + } - e_config_save_queue (); + e_config_save_queue (); - _slide_config_updated (ci->id); - return 1; + _slide_config_updated (ci->id); + return 1; } ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs