HERO On Wed, Sep 5, 2012 at 10:46 AM, Enlightenment SVN <[email protected]> wrote: > Log: > add two new maximize modes: left and right > these will maximize a window to either the left or the right half of the > screen, respectively > work started by etrunko in ticket #1422 > > > Author: discomfitor > Date: 2012-09-05 06:46:15 -0700 (Wed, 05 Sep 2012) > New Revision: 76198 > Trac: http://trac.enlightenment.org/e/changeset/76198 > > Modified: > trunk/e/config/mobile/e.src trunk/e/config/standard/e.src > trunk/e/src/bin/e_actions.c trunk/e/src/bin/e_border.c > trunk/e/src/bin/e_border.h trunk/e/src/bin/e_int_border_menu.c > trunk/e/src/modules/conf_keybindings/e_int_config_keybindings.c > > Modified: trunk/e/config/mobile/e.src > =================================================================== > --- trunk/e/config/mobile/e.src 2012-09-05 13:25:12 UTC (rev 76197) > +++ trunk/e/config/mobile/e.src 2012-09-05 13:46:15 UTC (rev 76198) > @@ -556,6 +556,22 @@ > } > group "E_Config_Binding_Key" struct { > value "context" int: 9; > + value "modifiers" int: 8; > + value "key" string: "Left"; > + value "action" string: "window_maximized_toggle"; > + value "params" string: "default left"; > + value "any_mod" uchar: 0; > + } > + group "E_Config_Binding_Key" struct { > + value "context" int: 9; > + value "modifiers" int: 8; > + value "key" string: "Right"; > + value "action" string: "window_maximized_toggle"; > + value "params" string: "default right"; > + value "any_mod" uchar: 0; > + } > + group "E_Config_Binding_Key" struct { > + value "context" int: 9; > value "modifiers" int: 6; > value "key" string: "r"; > value "action" string: "window_shaded_toggle"; > > Modified: trunk/e/config/standard/e.src > =================================================================== > --- trunk/e/config/standard/e.src 2012-09-05 13:25:12 UTC (rev 76197) > +++ trunk/e/config/standard/e.src 2012-09-05 13:46:15 UTC (rev 76198) > @@ -1342,6 +1342,22 @@ > } > group "E_Config_Binding_Key" struct { > value "context" int: 9; > + value "modifiers" int: 8; > + value "key" string: "Left"; > + value "action" string: "window_maximized_toggle"; > + value "params" string: "default left"; > + value "any_mod" uchar: 0; > + } > + group "E_Config_Binding_Key" struct { > + value "context" int: 9; > + value "modifiers" int: 8; > + value "key" string: "Right"; > + value "action" string: "window_maximized_toggle"; > + value "params" string: "default right"; > + value "any_mod" uchar: 0; > + } > + group "E_Config_Binding_Key" struct { > + value "context" int: 9; > value "modifiers" int: 6; > value "key" string: "r"; > value "action" string: "window_shaded_toggle"; > > Modified: trunk/e/src/bin/e_actions.c > =================================================================== > --- trunk/e/src/bin/e_actions.c 2012-09-05 13:25:12 UTC (rev 76197) > +++ trunk/e/src/bin/e_actions.c 2012-09-05 13:46:15 UTC (rev 76198) > @@ -589,6 +589,20 @@ > else > goto maximize; > } > + else if (max == E_MAXIMIZE_LEFT) > + { > + if (bd->maximized & E_MAXIMIZE_LEFT) > + e_border_unmaximize(bd, E_MAXIMIZE_LEFT); > + else > + goto maximize; > + } > + else if (max == E_MAXIMIZE_RIGHT) > + { > + if (bd->maximized & E_MAXIMIZE_RIGHT) > + e_border_unmaximize(bd, E_MAXIMIZE_RIGHT); > + else > + goto maximize; > + } > else > e_border_unmaximize(bd, E_MAXIMIZE_BOTH); > } > @@ -3612,6 +3626,10 @@ > max = E_MAXIMIZE_HORIZONTAL; > else if (!strcmp(s2, "vertical")) > max = E_MAXIMIZE_VERTICAL; > + else if (!strcmp(s2, "left")) > + max = E_MAXIMIZE_LEFT; > + else if (!strcmp(s2, "right")) > + max = E_MAXIMIZE_RIGHT; > else > max = E_MAXIMIZE_BOTH; > } > > Modified: trunk/e/src/bin/e_border.c > =================================================================== > --- trunk/e/src/bin/e_border.c 2012-09-05 13:25:12 UTC (rev 76197) > +++ trunk/e/src/bin/e_border.c 2012-09-05 13:46:15 UTC (rev 76198) > @@ -2631,12 +2631,28 @@ > /* center y-direction */ > yy1 = bd->zone->y + (bd->zone->h - h) / 2; > > - if ((max & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_BOTH) > - e_border_move_resize(bd, x1, yy1, w, h); > - else if ((max & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_VERTICAL) > - e_border_move_resize(bd, bd->x, yy1, bd->w, h); > - else if ((max & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_HORIZONTAL) > - e_border_move_resize(bd, x1, bd->y, w, bd->h); > + switch (max & E_MAXIMIZE_DIRECTION) > + { > + case E_MAXIMIZE_BOTH: > + e_border_move_resize(bd, x1, yy1, w, h); > + break; > + > + case E_MAXIMIZE_VERTICAL: > + e_border_move_resize(bd, bd->x, yy1, bd->w, h); > + break; > + > + case E_MAXIMIZE_HORIZONTAL: > + e_border_move_resize(bd, x1, bd->y, w, bd->h); > + break; > + > + case E_MAXIMIZE_LEFT: > + e_border_move_resize(bd, bd->zone->x, bd->zone->y, w / 2, h); > + break; > + > + case E_MAXIMIZE_RIGHT: > + e_border_move_resize(bd, x1, bd->zone->y, w / 2, h); > + break; > + } > break; > > case E_MAXIMIZE_SMART: > @@ -2668,12 +2684,29 @@ > else // window normal position > yy1 = bd->y; > > - if ((max & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_BOTH) > - e_border_move_resize(bd, zx, zy, zw, zh); > - else if ((max & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_VERTICAL) > - e_border_move_resize(bd, x1, zy, w, zh); > - else if ((max & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_HORIZONTAL) > - e_border_move_resize(bd, zx, yy1, zw, h); > + switch (max & E_MAXIMIZE_DIRECTION) > + { > + case E_MAXIMIZE_BOTH: > + e_border_move_resize(bd, zx, zy, zw, zh); > + break; > + > + case E_MAXIMIZE_VERTICAL: > + e_border_move_resize(bd, x1, zy, w, zh); > + break; > + > + case E_MAXIMIZE_HORIZONTAL: > + e_border_move_resize(bd, zx, yy1, zw, h); > + break; > + > + case E_MAXIMIZE_LEFT: > + e_border_move_resize(bd, zx, zy, zw / 2, zh); > + break; > + > + case E_MAXIMIZE_RIGHT: > + e_border_move_resize(bd, zx + zw / 2, zy, zw / 2, zh); > + break; > + } > + > edje_object_signal_emit(bd->bg_object, "e,action,maximize", "e"); > break; > > @@ -2698,12 +2731,29 @@ > x1 = x1 + (pw - w) / 2; > /* center y-direction */ > yy1 = yy1 + (ph - h) / 2; > - if ((max & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_BOTH) > - e_border_move_resize(bd, x1, yy1, w, h); > - else if ((max & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_VERTICAL) > - e_border_move_resize(bd, bd->x, yy1, bd->w, h); > - else if ((max & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_HORIZONTAL) > - e_border_move_resize(bd, x1, bd->y, w, bd->h); > + > + switch (max & E_MAXIMIZE_DIRECTION) > + { > + case E_MAXIMIZE_BOTH: > + e_border_move_resize(bd, x1, yy1, w, h); > + break; > + > + case E_MAXIMIZE_VERTICAL: > + e_border_move_resize(bd, bd->x, yy1, bd->w, h); > + break; > + > + case E_MAXIMIZE_HORIZONTAL: > + e_border_move_resize(bd, x1, bd->y, w, bd->h); > + break; > + > + case E_MAXIMIZE_LEFT: > + e_border_move_resize(bd, bd->zone->x, bd->zone->y, w / 2, h); > + break; > + > + case E_MAXIMIZE_RIGHT: > + e_border_move_resize(bd, x1, bd->zone->y, w / 2, h); > + break; > + } > break; > } > } > @@ -2818,6 +2868,8 @@ > y = bd->saved.y + bd->zone->y; > bd->saved.h = bd->saved.y = 0; > bd->maximized &= ~E_MAXIMIZE_VERTICAL; > + bd->maximized &= ~E_MAXIMIZE_LEFT; > + bd->maximized &= ~E_MAXIMIZE_RIGHT; > } > if (max & E_MAXIMIZE_HORIZONTAL) > { > > Modified: trunk/e/src/bin/e_border.h > =================================================================== > --- trunk/e/src/bin/e_border.h 2012-09-05 13:25:12 UTC (rev 76197) > +++ trunk/e/src/bin/e_border.h 2012-09-05 13:46:15 UTC (rev 76198) > @@ -61,6 +61,8 @@ > E_MAXIMIZE_VERTICAL = 0x00000010, > E_MAXIMIZE_HORIZONTAL = 0x00000020, > E_MAXIMIZE_BOTH = 0x00000030, > + E_MAXIMIZE_LEFT = 0x00000060, > + E_MAXIMIZE_RIGHT = 0x00000090, > E_MAXIMIZE_DIRECTION = 0x000000f0 > } E_Maximize; > > > Modified: trunk/e/src/bin/e_int_border_menu.c > =================================================================== > --- trunk/e/src/bin/e_int_border_menu.c 2012-09-05 13:25:12 UTC (rev 76197) > +++ trunk/e/src/bin/e_int_border_menu.c 2012-09-05 13:46:15 UTC (rev 76198) > @@ -13,6 +13,8 @@ > static void _e_border_menu_cb_maximize(void *data, E_Menu *m, E_Menu_Item > *mi); > static void _e_border_menu_cb_maximize_vertically(void *data, E_Menu *m, > E_Menu_Item *mi); > static void _e_border_menu_cb_maximize_horizontally(void *data, E_Menu *m, > E_Menu_Item *mi); > +static void _e_border_menu_cb_maximize_left(void *data, E_Menu *m, > E_Menu_Item *mi); > +static void _e_border_menu_cb_maximize_right(void *data, E_Menu *m, > E_Menu_Item *mi); > static void _e_border_menu_cb_unmaximize(void *data, E_Menu *m, E_Menu_Item > *mi); > static void _e_border_menu_cb_shade(void *data, E_Menu *m, E_Menu_Item *mi); > static void _e_border_menu_cb_resistance(void *data, E_Menu *m, E_Menu_Item > *mi); > @@ -412,6 +414,28 @@ > "e/widgets/border/default/maximize"); > > submi = e_menu_item_new(subm); > + e_menu_item_label_set(submi, _("Maximize left")); > + e_menu_item_radio_set(submi, 1); > + e_menu_item_radio_group_set(submi, 3); > + e_menu_item_toggle_set(submi, (bd->maximized & E_MAXIMIZE_DIRECTION) > == E_MAXIMIZE_LEFT); > + e_menu_item_callback_set(submi, _e_border_menu_cb_maximize_left, bd); > + e_menu_item_icon_edje_set(submi, > + e_theme_edje_file_get("base/theme/borders", > + > "e/widgets/border/default/maximize"), > + "e/widgets/border/default/maximize"); > + > + submi = e_menu_item_new(subm); > + e_menu_item_label_set(submi, _("Maximize right")); > + e_menu_item_radio_set(submi, 1); > + e_menu_item_radio_group_set(submi, 3); > + e_menu_item_toggle_set(submi, (bd->maximized & E_MAXIMIZE_DIRECTION) > == E_MAXIMIZE_RIGHT); > + e_menu_item_callback_set(submi, _e_border_menu_cb_maximize_right, > bd); > + e_menu_item_icon_edje_set(submi, > + e_theme_edje_file_get("base/theme/borders", > + > "e/widgets/border/default/maximize"), > + "e/widgets/border/default/maximize"); > + > + submi = e_menu_item_new(subm); > e_menu_item_label_set(submi, _("Unmaximize")); > e_menu_item_radio_set(submi, 1); > e_menu_item_radio_group_set(submi, 3); > @@ -466,6 +490,36 @@ > } > > static void > +_e_border_menu_cb_maximize_left(void *data, E_Menu *m __UNUSED__, > E_Menu_Item *mi __UNUSED__) > +{ > + E_Border *bd; > + > + bd = data; > + if (!bd->lock_user_maximize) > + { > + if ((bd->maximized & E_MAXIMIZE_DIRECTION)) > + e_border_unmaximize(bd, bd->maximized & E_MAXIMIZE_DIRECTION); > + e_border_maximize(bd, (e_config->maximize_policy & E_MAXIMIZE_TYPE) | > + E_MAXIMIZE_LEFT); > + } > +} > + > +static void > +_e_border_menu_cb_maximize_right(void *data, E_Menu *m __UNUSED__, > E_Menu_Item *mi __UNUSED__) > +{ > + E_Border *bd; > + > + bd = data; > + if (!bd->lock_user_maximize) > + { > + if ((bd->maximized & E_MAXIMIZE_DIRECTION)) > + e_border_unmaximize(bd, bd->maximized & E_MAXIMIZE_DIRECTION); > + e_border_maximize(bd, (e_config->maximize_policy & E_MAXIMIZE_TYPE) | > + E_MAXIMIZE_RIGHT); > + } > +} > + > +static void > _e_border_menu_cb_unmaximize(void *data, E_Menu *m __UNUSED__, E_Menu_Item > *mi __UNUSED__) > { > E_Border *bd; > > Modified: trunk/e/src/modules/conf_keybindings/e_int_config_keybindings.c > =================================================================== > --- trunk/e/src/modules/conf_keybindings/e_int_config_keybindings.c > 2012-09-05 13:25:12 UTC (rev 76197) > +++ trunk/e/src/modules/conf_keybindings/e_int_config_keybindings.c > 2012-09-05 13:46:15 UTC (rev 76198) > @@ -531,6 +531,12 @@ > CFG_KEYBIND_DFLT(E_BINDING_CONTEXT_ANY, "F10", > E_BINDING_MODIFIER_CTRL, 0, > "window_maximized_toggle", "default horizontal"); > + CFG_KEYBIND_DFLT(E_BINDING_CONTEXT_ANY, "Left", > + E_BINDING_MODIFIER_WIN, 0, > + "window_maximized_toggle", "default left"); > + CFG_KEYBIND_DFLT(E_BINDING_CONTEXT_ANY, "Right", > + E_BINDING_MODIFIER_WIN, 0, > + "window_maximized_toggle", "default right"); > CFG_KEYBIND_DFLT(E_BINDING_CONTEXT_ANY, "r", > E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT, 0, > "window_shaded_toggle", NULL); > > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > enlightenment-svn mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn
-- Eduardo de Barros Lima ◤✠◢ [email protected] ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
