Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        E.h conf.h config.c menus.c setup.c 


Log Message:
Make keys used for menu navigation configurable.
(patch from Alan Schmitt <[EMAIL PROTECTED]>).

===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/E.h,v
retrieving revision 1.323
retrieving revision 1.324
diff -u -3 -r1.323 -r1.324
--- E.h 20 Aug 2004 21:13:55 -0000      1.323
+++ E.h 25 Aug 2004 16:03:12 -0000      1.324
@@ -1104,6 +1104,10 @@
    } hints;
    struct
    {
+      KeySym              left, right, up, down, escape, ret;
+   } menukeys;
+   struct
+   {
       char                enable;
       char                zoom;
       char                title;
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/conf.h,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -3 -r1.34 -r1.35
--- conf.h      3 Jul 2004 00:58:19 -0000       1.34
+++ conf.h      25 Aug 2004 16:03:13 -0000      1.35
@@ -155,6 +155,8 @@
 #define CONTROL_ST_PAGER 1383
 #define CONTROL_ST_WARPLIST 1384
 
+#define CONTROL_MENU_NAVIGATION_KEYS 1390
+
 #define ICLASS_NAME 350
 #define ICLASS_NORMAL 351
 #define ICLASS_CLICKED 352
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/config.c,v
retrieving revision 1.113
retrieving revision 1.114
diff -u -3 -r1.113 -r1.114
--- config.c    3 Aug 2004 02:43:50 -0000       1.113
+++ config.c    25 Aug 2004 16:03:13 -0000      1.114
@@ -648,6 +648,7 @@
     */
 
    char                s[FILEPATH_LEN_MAX];
+   char                s2[FILEPATH_LEN_MAX];
    int                 i1, i2, i3, fields;
    float               f1;
 
@@ -984,6 +985,30 @@
          case CONTROL_DOCKAPP_SUPPORT:
             Conf.dockapp_support = i2;
             break;
+         case CONTROL_MENU_NAVIGATION_KEYS:
+            sscanf(s, "%*i %*i %s", s2);
+            switch (i2)
+              {
+              case 0:
+                 Conf.menukeys.left = XStringToKeysym(s2);
+                 break;
+              case 1:
+                 Conf.menukeys.right = XStringToKeysym(s2);
+                 break;
+              case 2:
+                 Conf.menukeys.up = XStringToKeysym(s2);
+                 break;
+              case 3:
+                 Conf.menukeys.down = XStringToKeysym(s2);
+                 break;
+              case 4:
+                 Conf.menukeys.escape = XStringToKeysym(s2);
+                 break;
+              case 5:
+                 Conf.menukeys.ret = XStringToKeysym(s2);
+                 break;
+              }
+            break;
          default:
             RecoverUserConfig();
             Alert(_("Warning: unable to determine what to do with\n"
@@ -3918,6 +3943,17 @@
        fprintf(autosavefile, "1383 %i\n", (int)Conf.st_trans.pager);
        fprintf(autosavefile, "1384 %i\n", (int)Conf.st_trans.warplist);
 #endif
+       fprintf(autosavefile, "1390 0 %s\n",
+               XKeysymToString(Conf.menukeys.left));
+       fprintf(autosavefile, "1390 1 %s\n",
+               XKeysymToString(Conf.menukeys.right));
+       fprintf(autosavefile, "1390 2 %s\n", XKeysymToString(Conf.menukeys.up));
+       fprintf(autosavefile, "1390 3 %s\n",
+               XKeysymToString(Conf.menukeys.down));
+       fprintf(autosavefile, "1390 4 %s\n",
+               XKeysymToString(Conf.menukeys.escape));
+       fprintf(autosavefile, "1390 5 %s\n",
+               XKeysymToString(Conf.menukeys.ret));
 #ifdef  HAS_XINERAMA
        fprintf(autosavefile, "2013 %i\n", (int)Conf.extra_head);
 #endif
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/menus.c,v
retrieving revision 1.152
retrieving revision 1.153
diff -u -3 -r1.152 -r1.153
--- menus.c     13 Aug 2004 20:41:25 -0000      1.152
+++ menus.c     25 Aug 2004 16:03:13 -0000      1.153
@@ -2196,6 +2196,27 @@
    return FindEwinSpawningMenu(m);
 }
 
+static              KeySym
+MenuKeyPressConversion(KeySym key)
+{
+   if (key == Conf.menukeys.left)
+      return XK_Left;
+   if (key == Conf.menukeys.right)
+      return XK_Right;
+   if (key == Conf.menukeys.up)
+      return XK_Up;
+   if (key == Conf.menukeys.down)
+      return XK_Down;
+   if (key == Conf.menukeys.escape)
+      return XK_Escape;
+   if (key == Conf.menukeys.ret)
+      return XK_Return;
+
+   /* The key does not correspond to any set, use the default behavior 
+    * associated to the key */
+   return key;
+}
+
 int
 MenusEventKeyPress(XEvent * ev)
 {
@@ -2219,7 +2240,7 @@
    /* NB! m != NULL */
 
    key = XLookupKeysym(&ev->xkey, 0);
-   switch (key)
+   switch (MenuKeyPressConversion(key))
      {
      case XK_Escape:
        MenusHide();
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/setup.c,v
retrieving revision 1.139
retrieving revision 1.140
diff -u -3 -r1.139 -r1.140
--- setup.c     25 Jul 2004 09:34:43 -0000      1.139
+++ setup.c     25 Aug 2004 16:03:14 -0000      1.140
@@ -456,6 +456,13 @@
    Conf.st_trans.warplist = ICLASS_ATTR_BG;
 #endif
 
+   Conf.menukeys.left = XK_Left;
+   Conf.menukeys.right = XK_Right;
+   Conf.menukeys.up = XK_Up;
+   Conf.menukeys.down = XK_Down;
+   Conf.menukeys.escape = XK_Escape;
+   Conf.menukeys.ret = XK_Return;
+
    ScreenInit();
 
    MenusInit();




-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to