Enlightenment CVS committal Author : rephorm Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: Makefile.am e_bg.c e_bg.h e_includes.h e_int_config_desks.c Added Files: e_widget_aspect.c e_widget_aspect.h e_widget_desk_preview.c e_widget_desk_preview.h Log Message: add preview widget to Virtual Desktops dialog =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/Makefile.am,v retrieving revision 1.156 retrieving revision 1.157 diff -u -3 -r1.156 -r1.157 --- Makefile.am 8 Oct 2006 13:16:45 -0000 1.156 +++ Makefile.am 9 Oct 2006 19:06:43 -0000 1.157 @@ -172,7 +172,9 @@ e_sys.h \ e_obj_dialog.h \ e_int_config_transitions.h \ -e_fwin.h +e_fwin.h \ +e_widget_aspect.h \ +e_widget_desk_preview.h enlightenment_src = \ e_user.c \ @@ -321,6 +323,8 @@ e_int_config_transitions.c \ e_obj_dialog.c \ e_fwin.c \ +e_widget_aspect.c \ +e_widget_desk_preview.c \ $(ENLIGHTENMENTHEADERS) enlightenment_SOURCES = \ =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_bg.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -3 -r1.19 -r1.20 --- e_bg.c 8 Oct 2006 21:15:21 -0000 1.19 +++ e_bg.c 9 Oct 2006 19:06:43 -0000 1.20 @@ -10,22 +10,24 @@ /* externally accessible functions */ EAPI const char * -e_bg_file_get(E_Zone *zone) +e_bg_file_get(E_Zone *zone, E_Desk *desk) { Evas_List *l, *ll, *entries; int ok; const char *bgfile = ""; + + + if (!zone) zone = e_zone_current_get(e_container_current_get(e_manager_current_get())); + ok = 0; - for (l = e_config->desktop_backgrounds; l; l = l->next) + /* look for desk specific background. if desk is NULL this is skipped */ + for (l = e_config->desktop_backgrounds; desk && l; l = l->next) { E_Config_Desktop_Background *cfbg; - E_Desk *desk; cfbg = l->data; if ((cfbg->container >= 0) && (zone->container->num != cfbg->container)) continue; if ((cfbg->zone >= 0) && (zone->num != cfbg->zone)) continue; - desk = e_desk_current_get(zone); - if (!desk) continue; if ((cfbg->desk_x >= 0) && (cfbg->desk_x != desk->x)) continue; if ((cfbg->desk_y >= 0) && (cfbg->desk_y != desk->y)) continue; entries = edje_file_collection_list(cfbg->file); @@ -44,6 +46,7 @@ } break; } + /* fall back to default bg for zone */ if (!ok) { entries = edje_file_collection_list(e_config->desktop_default_background); @@ -80,7 +83,7 @@ else if (transition == E_BG_TRANSITION_CHANGE) trans = e_config->transition_change; if ((!trans) || (strlen(trans) < 1)) transition = E_BG_TRANSITION_NONE; - bgfile = e_bg_file_get(zone); + bgfile = e_bg_file_get(zone, e_desk_current_get(zone)); if (zone->bg_object) { =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_bg.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- e_bg.h 8 Oct 2006 21:15:21 -0000 1.5 +++ e_bg.h 9 Oct 2006 19:06:43 -0000 1.6 @@ -14,7 +14,7 @@ #ifndef E_BG_H #define E_BG_H -EAPI const char *e_bg_file_get(E_Zone *zone); +EAPI const char *e_bg_file_get(E_Zone *zone, E_Desk *desk); EAPI void e_bg_zone_update(E_Zone *zone, E_Bg_Transition transition); EAPI void e_bg_add(int container, int zone, int desk_x, int desk_y, char *file); EAPI void e_bg_del(int container, int zone, int desk_x, int desk_y); =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_includes.h,v retrieving revision 1.133 retrieving revision 1.134 diff -u -3 -r1.133 -r1.134 --- e_includes.h 3 Oct 2006 05:49:31 -0000 1.133 +++ e_includes.h 9 Oct 2006 19:06:43 -0000 1.134 @@ -149,3 +149,5 @@ #include "e_int_config_transitions.h" #include "e_obj_dialog.h" #include "e_fwin.h" +#include "e_widget_aspect.h" +#include "e_widget_desk_preview.h" =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_int_config_desks.c,v retrieving revision 1.23 retrieving revision 1.24 diff -u -3 -r1.23 -r1.24 --- e_int_config_desks.c 8 Oct 2006 08:04:17 -0000 1.23 +++ e_int_config_desks.c 9 Oct 2006 19:06:43 -0000 1.24 @@ -10,6 +10,7 @@ static int _advanced_apply_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 Evas_Object *_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata); +static void _cb_slider_change(void *data, Evas_Object *obj); /* Actual config data we will be playing with whil the dialog is active */ struct _E_Config_Dialog_Data @@ -28,6 +29,9 @@ int flip_mode; int flip_interp; double flip_speed; + + /*- GUI -*/ + Evas_Object *preview; }; /* a nice easy setup function that does the dirty work */ @@ -186,11 +190,19 @@ of = e_widget_framelist_add(evas, _("Number of Desktops"), 0); ot = e_widget_table_add(evas, 0); + + ob = e_widget_desk_preview_add(evas, cfdata->x, cfdata->y); + e_widget_table_object_append(ot, ob, 0, 0, 1, 1, 1, 1, 1, 1); + cfdata->preview = ob; + ob = e_widget_slider_add(evas, 0, 0, _("%1.0f"), 1.0, 12.0, 1.0, 0, NULL, &(cfdata->y), 150); + e_widget_on_change_hook_set(ob, _cb_slider_change, cfdata); e_widget_table_object_append(ot, ob, 1, 0, 1, 1, 0, 1, 0, 1); - ob = e_widget_slider_add(evas, 1, 0, _("%1.0f"), 1.0, 12.0, 1.0, 0, NULL, &(cfdata->x), 200); + ob = e_widget_slider_add(evas, 1, 0, _("%1.0f"), 1.0, 12.0, 1.0, 0, NULL, &(cfdata->x), 200); + e_widget_on_change_hook_set(ob, _cb_slider_change, cfdata); 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); @@ -252,4 +264,13 @@ e_widget_list_object_append(o, ott, 1, 1, 0.5); return o; +} + +static void +_cb_slider_change(void *data, Evas_Object *obj) +{ + E_Config_Dialog_Data *cfdata = data; + + e_widget_desk_preview_num_desks_set(cfdata->preview, cfdata->x, cfdata->y); + } ------------------------------------------------------------------------- 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