Enlightenment CVS committal Author : devilhorns Project : e_modules Module : slideshow
Dir : e_modules/slideshow Modified Files: e_mod_config.c e_mod_main.h e_mod_main.c Log Message: Fix couple of bugs in slideshow. -Setting timer to 0 did not get saved in config. -Make option to disable timer. -Fix for not able to change desktop 2 background after disabling module. =================================================================== RCS file: /cvsroot/enlightenment/e_modules/slideshow/e_mod_config.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- e_mod_config.c 24 Dec 2005 20:19:59 -0000 1.3 +++ e_mod_config.c 31 Dec 2005 23:45:33 -0000 1.4 @@ -7,6 +7,7 @@ struct _cfdata { + int disable_timer; double cycle_time; #ifdef WANT_OSIRIS char *theme; @@ -84,7 +85,9 @@ o = e_widget_list_add(evas, 0, 0); of = e_widget_framelist_add(evas, _("Cycle Time"), 0); - ob = e_widget_slider_add(evas, 1, 0, _("%3.0f seconds"), 0.0, 600.0, 1.0, 0, &(cfdata->cycle_time), NULL, 200); + ob = e_widget_check_add(evas, _("Disable Timer"), &(cfdata->disable_timer)); + e_widget_framelist_object_append(of, ob); + ob = e_widget_slider_add(evas, 1, 0, _("%3.0f seconds"), 5.0, 600.0, 1.0, 0, &(cfdata->cycle_time), NULL, 200); e_widget_framelist_object_append(of, ob); e_widget_list_object_append(o, of, 1, 1, 0.5); @@ -112,6 +115,7 @@ /* Actually take our cfdata settings and apply them in real life */ e_border_button_bindings_ungrab_all(); s->conf->cycle_time = cfdata->cycle_time; + s->conf->disable_timer = cfdata->disable_timer; #ifdef WANT_OSIRIS if (cfdata->theme != NULL) { =================================================================== RCS file: /cvsroot/enlightenment/e_modules/slideshow/e_mod_main.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- e_mod_main.h 27 Dec 2005 21:21:19 -0000 1.3 +++ e_mod_main.h 31 Dec 2005 23:45:33 -0000 1.4 @@ -8,6 +8,7 @@ struct _Config { + int disable_timer; double cycle_time; #ifdef WANT_OSIRIS char *theme; @@ -29,14 +30,10 @@ Config *conf; E_Config_DD *conf_edd; - - Ecore_Event_Handler *ev_handler_zone_desk_count_set; - Ecore_Event_Handler *ev_handler_desk_show; }; struct _Slide_Face { - E_Zone *zone; Evas *evas; E_Container *con; Slide *slide; @@ -49,8 +46,6 @@ Evas_Object *event_object; E_Gadman_Client *gmc; - int numx,numy; - int desk_x_current, desk_y_current; }; EAPI extern E_Module_Api e_modapi; =================================================================== RCS file: /cvsroot/enlightenment/e_modules/slideshow/e_mod_main.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- e_mod_main.c 30 Dec 2005 14:37:45 -0000 1.4 +++ e_mod_main.c 31 Dec 2005 23:45:33 -0000 1.5 @@ -27,8 +27,6 @@ static void _slide_face_cb_mouse_down(void *data, Evas *e, Evas_Object *obj,void *event_info); static void _slide_face_cb_gmc_change(void *data, E_Gadman_Client *gmc, E_Gadman_Change change); -static int _slide_cb_event_zone_desk_count_set(void *data, int type, void *event); -static int _slide_cb_event_desk_show(void *data, int type, void *event); static int _slide_cb_check(void *data); static void get_bg_count(); @@ -173,6 +171,7 @@ #ifdef WANT_OSIRIS E_CONFIG_VAL(D, T, theme, STR); #endif + E_CONFIG_VAL(D, T, disable_timer, INT); E_CONFIG_VAL(D, T, cycle_time, DOUBLE); e->conf = e_config_domain_load("module.slideshow", e->conf_edd); @@ -182,6 +181,7 @@ #ifdef WANT_OSIRIS e->conf->theme = (char *)evas_stringshare_add(""); #endif + e->conf->disable_timer = 0; e->conf->cycle_time = 600; } @@ -189,10 +189,6 @@ _slide_config_menu_new(e); - /* Setup Event Handlers */ - e->ev_handler_zone_desk_count_set = ecore_event_handler_add(E_EVENT_ZONE_DESK_COUNT_SET, _slide_cb_event_zone_desk_count_set, e); - e->ev_handler_desk_show = ecore_event_handler_add(E_EVENT_DESK_SHOW, _slide_cb_event_desk_show, e); - /* Managers */ managers = e_manager_list (); for (l = managers; l; l = l->next) @@ -203,13 +199,9 @@ for (l2 = man->containers; l2; l2 = l2->next) { E_Container *con; - E_Zone *zone; Slide_Face *ef; con = l2->data; - zone = e_zone_current_get(con); - if (!zone) return NULL; - ef = E_NEW(Slide_Face, 1); if (ef) { @@ -223,7 +215,6 @@ e->face = ef; ef->slide = e; ef->con = con; - ef->zone = zone; ef->evas = con->bg_evas; ef->conf = E_NEW(Config_Face, 1); @@ -256,7 +247,6 @@ } } } - return e; } @@ -267,17 +257,12 @@ _slide_face_free(e->face); - if (e->cycle_timer) - e->cycle_timer = ecore_timer_del(e->cycle_timer); - - if (e->ev_handler_zone_desk_count_set) - ecore_event_handler_del(e->ev_handler_zone_desk_count_set); + if (e->cycle_timer) + { + e->cycle_timer = ecore_timer_del(e->cycle_timer); + e->cycle_timer = NULL; + } - if (e->ev_handler_desk_show) - ecore_event_handler_del(e->ev_handler_desk_show); - #ifdef WANT_OSIRIS - //evas_stringshare_del(e->conf->theme); - #endif free(e->conf); E_CONFIG_DD_FREE(e->conf_edd); free(e); @@ -297,11 +282,6 @@ { Evas_Object *o; - sf->desk_x_current = sf->zone->desk_x_current; - sf->desk_y_current = sf->zone->desk_y_current; - - e_object_ref(E_OBJECT(sf->zone)); - evas_event_freeze(sf->evas); o = edje_object_add(sf->evas); sf->slide_object = o; @@ -341,7 +321,6 @@ if (ef->slide_object) evas_object_del(ef->slide_object); if (ef->gmc) e_gadman_client_save(ef->gmc); if (ef->gmc) e_object_del(E_OBJECT(ef->gmc)); - if (ef->zone) e_object_unref(E_OBJECT(ef->zone)); E_FREE(ef->conf); E_FREE(ef); @@ -373,20 +352,32 @@ e_config_save_queue(); evas_object_show(face->slide_object); evas_object_show(face->event_object); - if (face->slide->cycle_timer) - { - if (face->slide->conf->cycle_time != 0) + if (!face->slide->conf->disable_timer) + { + if (face->slide->cycle_timer) { - ecore_timer_interval_set(face->slide->cycle_timer, face->slide->conf->cycle_time); + if (face->slide->conf->cycle_time != 0) + { + ecore_timer_interval_set(face->slide->cycle_timer, face->slide->conf->cycle_time); + } + else + { + face->slide->cycle_timer = ecore_timer_del(face->slide->cycle_timer); + face->slide->cycle_timer = NULL; + } } else { - face->slide->cycle_timer = ecore_timer_del(face->slide->cycle_timer); + face->slide->cycle_timer = ecore_timer_add(face->slide->conf->cycle_time, _slide_cb_check, face); } } - else + else { - face->slide->cycle_timer = ecore_timer_add(face->slide->conf->cycle_time, _slide_cb_check, face); + if (face->slide->cycle_timer) + { + face->slide->cycle_timer = ecore_timer_del(face->slide->cycle_timer); + face->slide->cycle_timer = NULL; + } } } @@ -397,8 +388,11 @@ e_config_save_queue(); evas_object_hide(face->slide_object); evas_object_hide(face->event_object); - if (face->slide->cycle_timer) - face->slide->cycle_timer = ecore_timer_del(face->slide->cycle_timer); + if (face->slide->cycle_timer) + { + face->slide->cycle_timer = ecore_timer_del(face->slide->cycle_timer); + face->slide->cycle_timer = NULL; + } } static void @@ -441,11 +435,15 @@ if (ev->button == 3) { - e_menu_activate_mouse(ef->menu, ef->zone, ev->output.x, ev->output.y, 1, 1, E_MENU_POP_DIRECTION_DOWN, ev->timestamp); - e_util_container_fake_mouse_up_all_later(ef->zone->container); + E_Zone *zone; + + zone = e_zone_current_get(ef->con); + e_menu_activate_mouse(ef->menu, zone, ev->output.x, ev->output.y, 1, 1, E_MENU_POP_DIRECTION_DOWN, ev->timestamp); + e_util_container_fake_mouse_up_all_later(ef->con); } else if (ev->button == 2) { + if (es->conf->disable_timer) return; if (es->cycle_timer) { es->cycle_timer = ecore_timer_del(es->cycle_timer); @@ -479,10 +477,8 @@ if (!ef) return 0; if (!ef->conf) return 0; if (!ef->con) return 0; - if (!ef->zone) return 0; if (idx > bg_count) idx = 0; - if (idx <= bg_count) { bg = ecore_list_goto_index(list, idx); @@ -537,73 +533,12 @@ bg_count++; } -int -get_desk_x_count(E_Zone * zone) -{ - int desks_x, desks_y; - - e_zone_desk_count_get(zone, &desks_x, &desks_y); - return desks_x; -} - -int -get_desk_y_count(E_Zone * zone) -{ - int desks_x, desks_y; - - e_zone_desk_count_get(zone, &desks_x, &desks_y); - return desks_y; -} - -static int -_slide_cb_event_zone_desk_count_set(void *data, int type, void *event) -{ - E_Event_Zone_Desk_Count_Set *ev; - Slide *slide; - Slide_Face *face; - int desks_x, desks_y; - - slide = data; - ev = event; - - face = slide->face; - if (face->zone != ev->zone) return 1; - e_zone_desk_count_get(ev->zone, &desks_x, &desks_y); - if ((face->numx == desks_x) && (face->numy == desks_y)) return 1; - face->zone = ev->zone; - face->numx = desks_x; - face->numy = desks_y; - - return 1; -} - -static int -_slide_cb_event_desk_show(void *data, int type, void *event) -{ - E_Event_Desk_Show *ev; - Slide *slide; - Slide_Face *face; - - slide = data; - ev = event; - - face = slide->face; - if (face->zone != ev->desk->zone) return 1; - face->zone = ev->desk->zone; - face->desk_x_current = ev->desk->zone->desk_x_current; - face->desk_y_current = ev->desk->zone->desk_y_current; - - return 1; -} - static void _set_bg(char *bg, Slide_Face *sf) { char buffer[4096]; char *home; - E_Zone *zone; - zone = sf->zone; home = e_user_homedir_get(); #ifdef WANT_OSIRIS @@ -621,16 +556,7 @@ snprintf(buffer, sizeof(buffer), "%s/.e/e/backgrounds/%s", home, bg); #endif - if ((zone->container->num == 0) && (zone->num == 0) && - (zone->desk_x_current == 0) && (zone->desk_y_current == 0)) - { - if (buffer) e_lib_background_set(strdup(buffer)); - } - else - { - e_lib_desktop_background_del(zone->container->num, zone->num, zone->desk_x_current, zone->desk_y_current); - e_lib_desktop_background_add(zone->container->num, zone->num, zone->desk_x_current, zone->desk_y_current, strdup(buffer)); - } + if (buffer) e_lib_background_set(strdup(buffer)); } static void @@ -649,14 +575,33 @@ Slide *s; s = data; + if (s->conf->disable_timer == 1) + { + if (s->cycle_timer) + { + s->cycle_timer = ecore_timer_del(s->cycle_timer); + s->cycle_timer = NULL; + } + return; + } + if (s->conf->cycle_time == 0) { - if (s->cycle_timer) - s->cycle_timer = ecore_timer_del(s->cycle_timer); + if (s->cycle_timer) + { + s->cycle_timer = ecore_timer_del(s->cycle_timer); + s->cycle_timer = NULL; + } } else { - if (s->cycle_timer) ecore_timer_interval_set(s->cycle_timer, s->conf->cycle_time); + if (s->cycle_timer) + { + ecore_timer_interval_set(s->cycle_timer, s->conf->cycle_time); + } + else + { + s->cycle_timer = ecore_timer_add(s->conf->cycle_time, _slide_cb_check, s->face); + } } } - ------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs