Enlightenment CVS committal Author : handyande Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_gadman.c e_gadman.h Log Message: Move the manipulation of user specified policy flags (ALLOW_OVERLAP and ALWAYS_ON_TOP (not used yet)) to the gadman edit menu, saves a LOT of code inside modules =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_gadman.c,v retrieving revision 1.52 retrieving revision 1.53 diff -u -3 -r1.52 -r1.53 --- e_gadman.c 2 Mar 2006 12:03:48 -0000 1.52 +++ e_gadman.c 12 Mar 2006 16:12:55 -0000 1.53 @@ -23,6 +23,7 @@ int edge; int zone; int use_autow, use_autoh; + int allow_overlap, always_on_top; struct { int w, h; Evas_List *others; @@ -74,6 +75,8 @@ static void _e_gadman_cb_auto_height(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_gadman_cb_center_vert(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_gadman_cb_allow_overlap(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_gadman_cb_always_on_top(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_gadman_cb_end_edit_mode(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_gadman_config_free(Gadman_Client_Config *cf); @@ -104,6 +107,8 @@ E_CONFIG_VAL(D, T, zone, INT); E_CONFIG_VAL(D, T, use_autow, INT); E_CONFIG_VAL(D, T, use_autoh, INT); + E_CONFIG_VAL(D, T, allow_overlap, INT); + E_CONFIG_VAL(D, T, always_on_top, INT); E_CONFIG_VAL(D, T, res.w, INT); E_CONFIG_VAL(D, T, res.h, INT); E_CONFIG_LIST(D, T, res.others, gadman_config_edd); @@ -328,6 +333,12 @@ gmc->edge = cf->edge; gmc->use_autow = cf->use_autow; gmc->use_autoh = cf->use_autoh; + gmc->allow_overlap = cf->allow_overlap; + if (gmc->allow_overlap) + gmc->policy |= E_GADMAN_POLICY_ALLOW_OVERLAP; + gmc->always_on_top = cf->always_on_top; + if (gmc->always_on_top) + gmc->policy |= E_GADMAN_POLICY_ALWAYS_ON_TOP; zone = e_container_zone_number_get(gmc->zone->container, cf->zone); if (zone) gmc->zone = zone; if (gmc->use_autow) @@ -729,6 +740,29 @@ mi = e_menu_item_new(m); e_menu_item_separator_set(mi, 1); } + + /* user configurable policy flags */ + mi = e_menu_item_new(m); + e_menu_item_label_set(mi, _("Allow Overlap")); + e_menu_item_check_set(mi, 1); + e_menu_item_toggle_set(mi, gmc->allow_overlap); + s = e_path_find(path_icons, "default.edj"), + e_menu_item_icon_edje_set(mi, s, "allow_overlap"); + if (s) evas_stringshare_del(s); + e_menu_item_callback_set(mi, _e_gadman_cb_allow_overlap, gmc); +/* Not used yet + mi = e_menu_item_new(m); + e_menu_item_label_set(mi, _("Always On Top")); + e_menu_item_check_set(mi, 1); + e_menu_item_toggle_set(mi, gmc->always_on_top); + s = e_path_find(path_icons, "default.edj"), + e_menu_item_icon_edje_set(mi, s, "always_on_top"); + if (s) evas_stringshare_del(s); + e_menu_item_callback_set(mi, _e_gadman_cb_always_on_top, gmc); +*/ + mi = e_menu_item_new(m); + e_menu_item_separator_set(mi, 1); + mi = e_menu_item_new(m); e_menu_item_label_set(mi, _("End Edit Mode")); e_menu_item_callback_set(mi, _e_gadman_cb_end_edit_mode, gmc); @@ -1983,6 +2017,44 @@ } static void +_e_gadman_cb_allow_overlap(void *data, E_Menu *m, E_Menu_Item *mi) +{ + E_Gadman_Client *gmc; + + gmc = data; + if (e_menu_item_toggle_get(mi)) + { + gmc->allow_overlap = 1; + gmc->policy |= E_GADMAN_POLICY_ALLOW_OVERLAP; + } + else + { + gmc->allow_overlap = 0; + gmc->policy &= ~E_GADMAN_POLICY_ALLOW_OVERLAP; + } + e_gadman_client_save(gmc); +} + +static void +_e_gadman_cb_always_on_top(void *data, E_Menu *m, E_Menu_Item *mi) +{ + E_Gadman_Client *gmc; + + gmc = data; + if (e_menu_item_toggle_get(mi)) + { + gmc->allow_overlap = 1; + gmc->policy |= E_GADMAN_POLICY_ALWAYS_ON_TOP; + } + else + { + gmc->allow_overlap = 0; + gmc->policy &= ~E_GADMAN_POLICY_ALWAYS_ON_TOP; + } + e_gadman_client_save(gmc); +} + +static void _e_gadman_cb_end_edit_mode(void *data, E_Menu *m, E_Menu_Item *mi) { E_Gadman_Client *gmc; @@ -2022,4 +2094,6 @@ cf->zone = gmc->zone->num; cf->use_autow = gmc->use_autow; cf->use_autoh = gmc->use_autoh; + cf->allow_overlap = gmc->allow_overlap; + cf->always_on_top = gmc->always_on_top; } =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_gadman.h,v retrieving revision 1.17 retrieving revision 1.18 diff -u -3 -r1.17 -r1.18 --- e_gadman.h 2 Mar 2006 12:03:48 -0000 1.17 +++ e_gadman.h 12 Mar 2006 16:12:56 -0000 1.18 @@ -83,6 +83,8 @@ Evas_Coord minw, minh, maxw, maxh; unsigned char use_autow : 1; unsigned char use_autoh : 1; + unsigned char allow_overlap : 1; + unsigned char always_on_top : 1; Evas_Coord autow, autoh; double ax, ay; double mina, maxa; ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs