Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_actions.c e_bindings.c e_border.c e_border.h e_menu.c 
        e_zone.c 


Log Message:


a whole wad more bindings... i'll stop here. it's now a matter of slow, over
time, expansion of actions and systems to hook in.

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_actions.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- e_actions.c 30 Apr 2005 04:21:55 -0000      1.5
+++ e_actions.c 30 Apr 2005 07:03:31 -0000      1.6
@@ -115,15 +115,34 @@
 {
    if (!obj) obj = E_OBJECT(e_border_focused_get());
    if (!obj) return;
-   if (obj->type != E_BORDER_TYPE) return;
-   e_border_act_menu_begin((E_Border *)obj, NULL);
+   if (obj->type != E_BORDER_TYPE)
+     {
+       obj = E_OBJECT(e_border_focused_get());
+       if (!obj) return;
+     }
+   e_border_act_menu_begin((E_Border *)obj, NULL, 0);
 }
 ACT_FN_GO_MOUSE(window_menu)
 {
    if (!obj) obj = E_OBJECT(e_border_focused_get());
    if (!obj) return;
-   if (obj->type != E_BORDER_TYPE) return;
-   e_border_act_menu_begin((E_Border *)obj, ev);
+   if (obj->type != E_BORDER_TYPE)
+     {
+       obj = E_OBJECT(e_border_focused_get());
+       if (!obj) return;
+     }
+   e_border_act_menu_begin((E_Border *)obj, ev, 0);
+}
+ACT_FN_GO_KEY(window_menu)
+{
+   if (!obj) obj = E_OBJECT(e_border_focused_get());
+   if (!obj) return;
+   if (obj->type != E_BORDER_TYPE)
+     {
+       obj = E_OBJECT(e_border_focused_get());
+       if (!obj) return;
+     }
+   e_border_act_menu_begin((E_Border *)obj, NULL, 1);
 }
 
 /***************************************************************************/
@@ -166,6 +185,95 @@
 }
 
 /***************************************************************************/
+ACT_FN_GO(window_kill)
+{
+   if (!obj) obj = E_OBJECT(e_border_focused_get());
+   if (!obj) return;
+   if (obj->type != E_BORDER_TYPE)
+     {
+       obj = E_OBJECT(e_border_focused_get());
+       if (!obj) return;
+     }
+   e_border_act_kill_begin((E_Border *)obj);
+}
+
+/***************************************************************************/
+ACT_FN_GO(window_sticky_toggle)
+{
+   if (!obj) obj = E_OBJECT(e_border_focused_get());
+   if (!obj) return;
+   if (obj->type != E_BORDER_TYPE)
+     {
+       obj = E_OBJECT(e_border_focused_get());
+       if (!obj) return;
+     }
+     {
+       E_Border *bd;
+       
+       bd = (E_Border *)obj;
+       if (bd->sticky) e_border_unstick(bd);
+        else e_border_stick(bd);
+     }
+}
+
+/***************************************************************************/
+ACT_FN_GO(window_iconic_toggle)
+{
+   if (!obj) obj = E_OBJECT(e_border_focused_get());
+   if (!obj) return;
+   if (obj->type != E_BORDER_TYPE)
+     {
+       obj = E_OBJECT(e_border_focused_get());
+       if (!obj) return;
+     }
+     {
+       E_Border *bd;
+       
+       bd = (E_Border *)obj;
+       if (bd->iconic) e_border_uniconify(bd);
+        else e_border_iconify(bd);
+     }
+}
+
+/***************************************************************************/
+ACT_FN_GO(window_maximized_toggle)
+{
+   if (!obj) obj = E_OBJECT(e_border_focused_get());
+   if (!obj) return;
+   if (obj->type != E_BORDER_TYPE)
+     {
+       obj = E_OBJECT(e_border_focused_get());
+       if (!obj) return;
+     }
+     {
+       E_Border *bd;
+       
+       bd = (E_Border *)obj;
+       if (bd->maximized) e_border_unmaximize(bd);
+        else e_border_maximize(bd);
+     }
+}
+
+/***************************************************************************/
+ACT_FN_GO(window_shaded_toggle)
+{
+   if (!obj) obj = E_OBJECT(e_border_focused_get());
+   if (!obj) return;
+   if (obj->type != E_BORDER_TYPE)
+     {
+       obj = E_OBJECT(e_border_focused_get());
+       if (!obj) return;
+     }
+     {
+       E_Border *bd;
+       
+       bd = (E_Border *)obj;
+       if (bd->shaded) e_border_unshade(bd, E_DIRECTION_UP);
+        else e_border_shade(bd, E_DIRECTION_UP);
+     }
+}
+
+/***************************************************************************/
 ACT_FN_GO(desk_flip_by)
 {
    E_Zone *zone;
@@ -245,6 +353,141 @@
      }
 }
 
+/***************************************************************************/
+static void
+_e_actions_cb_menu_end(void *data, E_Menu *m)
+{
+   e_object_del(E_OBJECT(m));
+}
+static E_Menu *
+_e_actions_menu_find(char *name)
+{
+   if (!strcmp(name, "main")) return e_int_menus_main_new();
+   else if (!strcmp(name, "favorites")) return e_int_menus_favorite_apps_new();
+   else if (!strcmp(name, "clients")) return e_int_menus_clients_new();
+   return NULL;
+}
+ACT_FN_GO(menu_show)
+{
+   E_Zone *zone;
+
+   /* menu is active - abort */
+   if (e_menu_grab_window_get()) return;
+   if (!obj) return;
+   if (obj->type == E_MANAGER_TYPE)
+     {
+       zone = e_util_zone_current_get((E_Manager *)obj);
+       if (zone)
+         {
+            if (params)
+              {
+                 E_Menu *m = NULL;
+                 
+                 m = _e_actions_menu_find(params);     
+                 if (m)
+                   {
+                      int x, y;
+                      
+                      /* FIXME: this is a bit of a hack... setting m->con - 
bad hack */
+                      m->zone = zone;
+                      ecore_x_pointer_xy_get(zone->container->win, &x, &y);
+                      e_menu_post_deactivate_callback_set(m, 
_e_actions_cb_menu_end, NULL);
+                      e_menu_activate_mouse(m, zone, x, y, 1, 1,
+                                            E_MENU_POP_DIRECTION_DOWN);
+                   }
+              }
+         }
+     }
+}
+ACT_FN_GO_MOUSE(menu_show)
+{
+   E_Zone *zone;
+
+   /* menu is active - abort */
+   if (e_menu_grab_window_get()) return;
+   if (!obj) return;
+   if (obj->type == E_MANAGER_TYPE)
+     {
+       zone = e_util_zone_current_get((E_Manager *)obj);
+       if (zone)
+         {
+            if (params)
+              {
+                 E_Menu *m = NULL;
+                 
+                 m = _e_actions_menu_find(params);     
+                 if (m)
+                   {
+                      int x, y;
+                      
+                      /* FIXME: this is a bit of a hack... setting m->con - 
bad hack */
+                      m->zone = zone;
+                      x = ev->root.x;
+                      y = ev->root.y;
+                      x -= zone->container->x;
+                      y -= zone->container->y;
+                      e_menu_post_deactivate_callback_set(m, 
_e_actions_cb_menu_end, NULL);
+                      e_menu_activate_mouse(m, zone, x, y, 1, 1,
+                                            E_MENU_POP_DIRECTION_DOWN);
+                   }
+              }
+         }
+     }
+}
+ACT_FN_GO_KEY(menu_show)
+{
+   E_Zone *zone;
+
+   /* menu is active - abort */
+   if (e_menu_grab_window_get()) return;
+   if (!obj) return;
+   if (obj->type == E_MANAGER_TYPE)
+     {
+       zone = e_util_zone_current_get((E_Manager *)obj);
+       if (zone)
+         {
+            if (params)
+              {
+                 E_Menu *m = NULL;
+                 
+                 m = _e_actions_menu_find(params);     
+                 if (m)
+                   {
+                      int x, y;
+                      
+                      /* FIXME: this is a bit of a hack... setting m->con - 
bad hack */
+                      m->zone = zone;
+                      ecore_x_pointer_xy_get(zone->container->win, &x, &y);
+                      e_menu_post_deactivate_callback_set(m, 
_e_actions_cb_menu_end, NULL);
+                      e_menu_activate_key(m, zone, x, y, 1, 1,
+                                          E_MENU_POP_DIRECTION_DOWN);
+                   }
+              }
+         }
+     }
+}
+
+/***************************************************************************/
+ACT_FN_GO(exec)
+{
+   E_Zone *zone;
+   
+   if (!obj) return;
+   if (obj->type != E_MANAGER_TYPE) return;
+   zone = e_util_zone_current_get((E_Manager *)obj);
+   if (zone)
+     {
+       if (params)
+         {
+            Ecore_Exe *exe;
+            
+            exe = ecore_exe_run(params, NULL);
+            if (exe) ecore_exe_free(exe);
+         }
+     }
+}
+
+
 /* local subsystem globals */
 static Evas_Hash *actions = NULL;
 
@@ -267,12 +510,24 @@
   
    ACT_GO(window_menu);
    ACT_GO_MOUSE(window_menu);
+   ACT_GO_KEY(window_menu);
 
    ACT_GO(window_raise);
 
    ACT_GO(window_lower);
+   
    ACT_GO(window_close);
 
+   ACT_GO(window_kill);
+   
+   ACT_GO(window_sticky_toggle);
+   
+   ACT_GO(window_iconic_toggle);
+   
+   ACT_GO(window_maximized_toggle);
+   
+   ACT_GO(window_shaded_toggle);
+   
    ACT_GO(desk_flip_by);
 
    ACT_GO(desk_flip_to);
@@ -280,6 +535,12 @@
    ACT_GO(desk_linear_flip_by);
    
    ACT_GO(desk_linear_flip_to);
+
+   ACT_GO(menu_show);
+   ACT_GO_MOUSE(menu_show);
+   ACT_GO_KEY(menu_show);
+
+   ACT_GO(exec);
    
    return 1;
 }
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_bindings.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- e_bindings.c        30 Apr 2005 05:07:27 -0000      1.8
+++ e_bindings.c        30 Apr 2005 07:03:34 -0000      1.9
@@ -61,6 +61,7 @@
    e_bindings_mouse_add(E_BINDING_CONTEXT_BORDER,
                        3, E_BINDING_MODIFIER_ALT, 0,
                        "window_menu", "");
+   
    e_bindings_key_add(E_BINDING_CONTEXT_ANY,
                      "Left", E_BINDING_MODIFIER_SHIFT | 
E_BINDING_MODIFIER_ALT, 0,
                      "desk_flip_by", "-1 0");
@@ -83,6 +84,25 @@
                      "x", E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT, 0,
                      "window_close", "");
    e_bindings_key_add(E_BINDING_CONTEXT_ANY,
+                     "k", E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT, 0,
+                     "window_kill", "");
+   e_bindings_key_add(E_BINDING_CONTEXT_ANY,
+                     "w", E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT, 0,
+                     "window_menu", "");
+   e_bindings_key_add(E_BINDING_CONTEXT_ANY,
+                     "s", E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT, 0,
+                     "window_sticky_toggle", "");
+   e_bindings_key_add(E_BINDING_CONTEXT_ANY,
+                     "i", E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT, 0,
+                     "window_iconic_toggle", "");
+   e_bindings_key_add(E_BINDING_CONTEXT_ANY,
+                     "f", E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT, 0,
+                     "window_maximized_toggle", "");
+   e_bindings_key_add(E_BINDING_CONTEXT_ANY,
+                     "r", E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT, 0,
+                     "window_shaded_toggle", "");
+   
+   e_bindings_key_add(E_BINDING_CONTEXT_ANY,
                      "Left", E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT, 
0,
                      "desk_linear_flip_by", "-1");
    e_bindings_key_add(E_BINDING_CONTEXT_ANY,
@@ -124,6 +144,46 @@
    e_bindings_key_add(E_BINDING_CONTEXT_ANY,
                      "F12", E_BINDING_MODIFIER_ALT, 0,
                      "desk_linear_flip_to", "11");
+   e_bindings_key_add(E_BINDING_CONTEXT_ANY,
+                     "m", E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT, 0,
+                     "menu_show", "main");
+   e_bindings_key_add(E_BINDING_CONTEXT_ANY,
+                     "a", E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT, 0,
+                     "menu_show", "favorites");
+   e_bindings_key_add(E_BINDING_CONTEXT_ANY,
+                     "Menu", 0, 0,
+                     "menu_show", "main");
+   e_bindings_key_add(E_BINDING_CONTEXT_ANY,
+                     "Menu", E_BINDING_MODIFIER_CTRL, 0,
+                     "menu_show", "clients");
+   e_bindings_key_add(E_BINDING_CONTEXT_ANY,
+                     "Menu", E_BINDING_MODIFIER_ALT, 0,
+                     "menu_show", "favorites");
+
+   e_bindings_key_add(E_BINDING_CONTEXT_ANY,
+                     "Insert", E_BINDING_MODIFIER_CTRL | 
E_BINDING_MODIFIER_ALT, 0,
+                     "exec", "Eterm");
+   
+   /* shoudl do these - can't yet due to other things missing... */
+   
+   /* need a yes/no dialog for these - to stop accidental logouts. for this
+    * i'd make a special case that can ask u to log out, restart or shut down
+    * or even reboot (if you have permissions to do so)
+    */
+   /* CTRL+ALT Delete - logout */
+   /* CTRL+ALT End    - restart */
+   
+   /* need a way to display all focused windows nicely - subsystem for
+    * this that also grabs the modifier on activate (if there are any) so
+    * on release of modifier(s) OR on any new action this list aborts display
+    */
+   /* ALT Tab         - next window focus */
+   /* ALT_SHIFT Tab   - prev window focus */
+   
+   /* need to support fullscreen anyway for this - ie netwm and the border
+    * system need to handle this as well as possibly using xrandr/xvidmode
+    */
+   /* ALT Return      - fullscreen window */
    return 1;
 }
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.170
retrieving revision 1.171
diff -u -3 -r1.170 -r1.171
--- e_border.c  30 Apr 2005 05:07:27 -0000      1.170
+++ e_border.c  30 Apr 2005 07:03:34 -0000      1.171
@@ -68,7 +68,7 @@
 static int  _e_border_shade_animator(void *data);
 
 static void _e_border_cb_border_menu_end(void *data, E_Menu *m);
-static void _e_border_menu_show(E_Border *bd, Evas_Coord x, Evas_Coord y);
+static void _e_border_menu_show(E_Border *bd, Evas_Coord x, Evas_Coord y, int 
key);
 static void _e_border_menu_cb_close(void *data, E_Menu *m, E_Menu_Item *mi);
 static void _e_border_menu_cb_iconify(void *data, E_Menu *m, E_Menu_Item *mi);
 static void _e_border_menu_cb_maximize(void *data, E_Menu *m, E_Menu_Item *mi);
@@ -1270,18 +1270,20 @@
 }
 
 void
-e_border_act_menu_begin(E_Border *bd, Ecore_X_Event_Mouse_Button_Down *ev)
+e_border_act_menu_begin(E_Border *bd, Ecore_X_Event_Mouse_Button_Down *ev, int 
key)
 {
    if (ev)
      {
-       _e_border_menu_show(bd, bd->x + ev->x, bd->y + ev->y);
+       _e_border_menu_show(bd,
+                           bd->x + ev->x - bd->zone->container->x,
+                           bd->y + ev->y - bd->zone->container->y, key);
      }
    else
      {
        int x, y;
        
-       ecore_x_pointer_last_xy_get(&x, &y);
-       _e_border_menu_show(bd, x, y);
+       ecore_x_pointer_xy_get(bd->zone->container->win, &x, &y);
+       _e_border_menu_show(bd, x, y, key);
      }
 }
 
@@ -1300,6 +1302,15 @@
      }
 }
 
+void
+e_border_act_kill_begin(E_Border *bd)
+{
+   ecore_x_kill(bd->client.win);
+   ecore_x_sync();
+   e_border_hide(bd, 0);
+   e_object_del(E_OBJECT(bd));
+}
+
 /* local subsystem functions */
 static void
 _e_border_free(E_Border *bd)
@@ -2172,7 +2183,7 @@
        Evas_Coord x, y;
 
        evas_pointer_canvas_xy_get(bd->bg_evas , &x, &y);
-       _e_border_menu_show(bd, x + bd->x, y + bd->y);
+       _e_border_menu_show(bd, x + bd->x, y + bd->y, 0);
      }
    else if (!strcmp(source, "lower"))
      {
@@ -3632,7 +3643,7 @@
 }
 
 static void
-_e_border_menu_show(E_Border *bd, Evas_Coord x, Evas_Coord y)
+_e_border_menu_show(E_Border *bd, Evas_Coord x, Evas_Coord y, int key)
 {
    E_Menu *m;
    E_Menu_Item *mi;
@@ -3744,9 +3755,12 @@
        e_menu_item_callback_set(mi, _e_border_menu_cb_icon_edit, buf);
      }
 
-   e_menu_activate_mouse(m, bd->zone, x, y, 1, 1,
+   if (key)
+     e_menu_activate_key(m, bd->zone, x, y, 1, 1,
                         E_MENU_POP_DIRECTION_DOWN);
-
+   else
+     e_menu_activate_mouse(m, bd->zone, x, y, 1, 1,
+                          E_MENU_POP_DIRECTION_DOWN);
 }
 
 static void
@@ -3773,7 +3787,7 @@
    E_Border *bd;
 
    bd = data;
-   if (bd->maximized) e_border_uniconify(bd);
+   if (bd->iconic) e_border_uniconify(bd);
    else e_border_iconify(bd);
 }
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.h,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -3 -r1.40 -r1.41
--- e_border.h  30 Apr 2005 05:07:28 -0000      1.40
+++ e_border.h  30 Apr 2005 07:03:35 -0000      1.41
@@ -352,9 +352,10 @@
 EAPI void e_border_act_move_end(E_Border *bd, Ecore_X_Event_Mouse_Button_Up 
*ev);
 EAPI void e_border_act_resize_begin(E_Border *bd, 
Ecore_X_Event_Mouse_Button_Down *ev);
 EAPI void e_border_act_resize_end(E_Border *bd, Ecore_X_Event_Mouse_Button_Up 
*ev);
-EAPI void e_border_act_menu_begin(E_Border *bd, 
Ecore_X_Event_Mouse_Button_Down *ev);
+EAPI void e_border_act_menu_begin(E_Border *bd, 
Ecore_X_Event_Mouse_Button_Down *ev, int key);
 EAPI void e_border_act_close_begin(E_Border *bd);
-  
+EAPI void e_border_act_kill_begin(E_Border *bd);
+    
 extern EAPI int E_EVENT_BORDER_RESIZE;
 extern EAPI int E_EVENT_BORDER_MOVE;
 extern EAPI int E_EVENT_BORDER_ADD;
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_menu.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -3 -r1.23 -r1.24
--- e_menu.c    27 Apr 2005 23:29:12 -0000      1.23
+++ e_menu.c    30 Apr 2005 07:03:35 -0000      1.24
@@ -151,8 +151,8 @@
    E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE);
    _e_menu_activate_time = 0.0;
    _e_menu_activate_internal(m, zone);
-   m->cur.x = 200;
-   m->cur.y = 200;
+   m->cur.x = x + w;
+   m->cur.y = y + h;
    _e_menu_activate_first();
 }
 
@@ -167,8 +167,8 @@
    E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE);
    _e_menu_activate_time = ecore_time_get();
    _e_menu_activate_internal(m, zone);
-   m->cur.x = x;
-   m->cur.y = y;
+   m->cur.x = x + w;
+   m->cur.y = y + h;
        
    pmi = _e_menu_item_active_get();
    if (pmi) e_menu_item_active_set(pmi, 0);
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_zone.c,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -3 -r1.41 -r1.42
--- e_zone.c    30 Apr 2005 05:07:28 -0000      1.41
+++ e_zone.c    30 Apr 2005 07:03:35 -0000      1.42
@@ -202,8 +202,8 @@
    else
      {
        int x, y;
-       
-       ecore_x_pointer_last_xy_get(&x, &y);
+
+       ecore_x_pointer_xy_get(con->win, &x, &y);
        for (l = con->zones; l; l = l->next)
          {
             E_Zone *zone;
@@ -618,7 +618,7 @@
 
    zone = data;
 
-   ecore_x_pointer_last_xy_get(&x, &y);
+   ecore_x_pointer_xy_get(zone->container->win, &x, &y);
 
    switch (zone->flip.direction)
      {




-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.
Get your fingers limbered up and give it your best shot. 4 great events, 4
opportunities to win big! Highest score wins.NEC IT Guy Games. Play to
win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to