Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_ipc.c e_ipc.h e_remote_main.c 


Log Message:


some ipc is in to handle key and mouse bindings. right now you can just list
them (so now you know what the defaults are!) :) need to add add/del handling
on both the e and e_remote sides.

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_ipc.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -3 -r1.18 -r1.19
--- e_ipc.c     3 May 2005 10:06:42 -0000       1.18
+++ e_ipc.c     3 May 2005 16:27:46 -0000       1.19
@@ -15,6 +15,8 @@
 ECORE_IPC_ENC_EVAS_LIST_PROTO(_e_ipc_font_fallback_list_enc);
 ECORE_IPC_ENC_EVAS_LIST_PROTO(_e_ipc_font_default_list_enc);
 ECORE_IPC_ENC_STRUCT_PROTO(_e_ipc_font_default_enc);
+ECORE_IPC_ENC_EVAS_LIST_PROTO(_e_ipc_mouse_binding_enc);
+ECORE_IPC_ENC_EVAS_LIST_PROTO(_e_ipc_key_binding_enc);
 
 /* local subsystem globals */
 static Ecore_Ipc_Server *_e_ipc_server  = NULL;
@@ -447,6 +449,54 @@
             free(data);
          }
        break;
+      case E_IPC_OP_BINDING_MOUSE_LIST:
+         {
+            Evas_List *bindings;
+            int bytes;
+            char *data;
+            
+            bindings = e_config->mouse_bindings;
+            data = _e_ipc_mouse_binding_enc(bindings, &bytes);
+            ecore_ipc_client_send(e->client,
+                                  E_IPC_DOMAIN_REPLY,
+                                  E_IPC_OP_BINDING_MOUSE_LIST_REPLY,
+                                  0/*ref*/, 0/*ref_to*/, 0/*response*/,
+                                  data, bytes);
+            free(data);
+         }
+       break;
+      case E_IPC_OP_BINDING_MOUSE_ADD:
+         {
+         }
+       break;
+      case E_IPC_OP_BINDING_MOUSE_DEL:
+         {
+         }
+       break;
+      case E_IPC_OP_BINDING_KEY_LIST:
+         {
+            Evas_List *bindings;
+            int bytes;
+            char *data;
+            
+            bindings = e_config->key_bindings;
+            data = _e_ipc_key_binding_enc(bindings, &bytes);
+            ecore_ipc_client_send(e->client,
+                                  E_IPC_DOMAIN_REPLY,
+                                  E_IPC_OP_BINDING_KEY_LIST_REPLY,
+                                  0/*ref*/, 0/*ref_to*/, 0/*response*/,
+                                  data, bytes);
+            free(data);
+         }
+       break;
+      case E_IPC_OP_BINDING_KEY_ADD:
+         {
+         }
+       break;
+      case E_IPC_OP_BINDING_KEY_DEL:
+         {
+         }
+       break;
       default:
        break;
      }
@@ -625,9 +675,54 @@
    ECORE_IPC_ENC_STRUCT_HEAD(E_Font_Default, 
        ECORE_IPC_SLEN(l1, text_class) +
        ECORE_IPC_SLEN(l2, font) +
-       4);                
+       4);
    ECORE_IPC_PUTS(text_class, l1);
    ECORE_IPC_PUTS(font, l2);
    ECORE_IPC_PUT32(size);
    ECORE_IPC_ENC_STRUCT_FOOT();
 }
+
+ECORE_IPC_ENC_EVAS_LIST_PROTO(_e_ipc_mouse_binding_enc)
+{
+    ECORE_IPC_ENC_EVAS_LIST_HEAD_START(E_Config_Binding_Mouse);
+       ECORE_IPC_CNT32();
+       ECORE_IPC_CNT32();
+       ECORE_IPC_CNTS(action);
+       ECORE_IPC_CNTS(params);
+       ECORE_IPC_CNT8();
+       ECORE_IPC_CNT8();
+    ECORE_IPC_ENC_EVAS_LIST_HEAD_FINISH();
+       int l1, l2;
+       ECORE_IPC_PUT32(context);
+       ECORE_IPC_PUT32(modifiers);
+       ECORE_IPC_SLEN(l1, action);
+       ECORE_IPC_SLEN(l2, params);
+       ECORE_IPC_PUTS(action, l1);
+       ECORE_IPC_PUTS(params, l2);
+       ECORE_IPC_PUT8(button);
+       ECORE_IPC_PUT8(any_mod);
+    ECORE_IPC_ENC_EVAS_LIST_FOOT();
+}
+
+ECORE_IPC_ENC_EVAS_LIST_PROTO(_e_ipc_key_binding_enc)
+{
+    ECORE_IPC_ENC_EVAS_LIST_HEAD_START(E_Config_Binding_Key);
+       ECORE_IPC_CNT32();
+       ECORE_IPC_CNT32();
+       ECORE_IPC_CNTS(key);
+       ECORE_IPC_CNTS(action);
+       ECORE_IPC_CNTS(params);
+       ECORE_IPC_CNT8();
+    ECORE_IPC_ENC_EVAS_LIST_HEAD_FINISH();
+       int l1, l2, l3;
+       ECORE_IPC_PUT32(context);
+       ECORE_IPC_PUT32(modifiers);
+       ECORE_IPC_SLEN(l1, key);
+       ECORE_IPC_SLEN(l2, action);
+       ECORE_IPC_SLEN(l3, params);
+       ECORE_IPC_PUTS(key, l1);
+       ECORE_IPC_PUTS(action, l2);
+       ECORE_IPC_PUTS(params, l3);
+       ECORE_IPC_PUT8(any_mod);
+    ECORE_IPC_ENC_EVAS_LIST_FOOT();
+}
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_ipc.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- e_ipc.h     3 May 2005 08:06:50 -0000       1.12
+++ e_ipc.h     3 May 2005 16:27:46 -0000       1.13
@@ -51,6 +51,14 @@
    E_IPC_OP_LANG_SET,
    E_IPC_OP_LANG_GET,
    E_IPC_OP_LANG_GET_REPLY,
+   E_IPC_OP_BINDING_MOUSE_LIST,
+   E_IPC_OP_BINDING_MOUSE_LIST_REPLY,
+   E_IPC_OP_BINDING_MOUSE_ADD,
+   E_IPC_OP_BINDING_MOUSE_DEL,
+   E_IPC_OP_BINDING_KEY_LIST,
+   E_IPC_OP_BINDING_KEY_LIST_REPLY,
+   E_IPC_OP_BINDING_KEY_ADD,
+   E_IPC_OP_BINDING_KEY_DEL,
    E_IPC_OP_LAST
 } E_Ipc_Op;
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_remote_main.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -3 -r1.15 -r1.16
--- e_remote_main.c     3 May 2005 08:06:50 -0000       1.15
+++ e_remote_main.c     3 May 2005 16:27:46 -0000       1.16
@@ -27,6 +27,8 @@
 
 static void _e_help(void);
 
+static const char *_e_ipc_context_str(int context);
+static const char *_e_ipc_modifier_str(int mod);
 static Evas_List *_e_ipc_str_list_dec(char *data, int bytes);
     
 ECORE_IPC_DEC_EVAS_LIST_PROTO(_e_ipc_module_list_dec);
@@ -34,6 +36,8 @@
 ECORE_IPC_DEC_EVAS_LIST_PROTO(_e_ipc_font_fallback_list_dec);
 ECORE_IPC_DEC_EVAS_LIST_PROTO(_e_ipc_font_default_list_dec);
 ECORE_IPC_DEC_STRUCT_PROTO(_e_ipc_font_default_dec);
+ECORE_IPC_DEC_EVAS_LIST_PROTO(_e_ipc_mouse_binding_dec);
+ECORE_IPC_DEC_EVAS_LIST_PROTO(_e_ipc_key_binding_dec);
 
 /* local subsystem globals */
 static Ecore_Ipc_Server *_e_ipc_server  = NULL;
@@ -77,7 +81,9 @@
    OREQ("-shutdown", "Shutdown E17", E_IPC_OP_SHUTDOWN, 0),
    OREQ("-lang-get", "Get the current language", E_IPC_OP_LANG_GET, 1),
    OREQ("-lang-list", "List all available languages", E_IPC_OP_LANG_LIST, 1),
-   OSTR("-lang-set", "Set the current language", E_IPC_OP_LANG_SET, 0)
+   OSTR("-lang-set", "Set the current language", E_IPC_OP_LANG_SET, 0),
+   OREQ("-binding-mouse-list", "List all mouse bindings", 
E_IPC_OP_BINDING_MOUSE_LIST, 1),
+   OREQ("-binding-key-list", "List all key bindings", 
E_IPC_OP_BINDING_KEY_LIST, 1)
 };
 
 /* externally accessible functions */
@@ -471,6 +477,56 @@
             printf("REPLY: %s\n", e->data);
          }
        break;
+      case E_IPC_OP_BINDING_MOUSE_LIST_REPLY:
+        if (e->data)
+          {
+            Evas_List *bindings;
+            E_Config_Binding_Mouse *eb;
+            
+            bindings = _e_ipc_mouse_binding_dec(e->data, e->size);
+            while (bindings)
+              {
+                 eb = bindings->data;
+                 printf("REPLY: BINDING CONTEXT=%s MODIFIERS=%s BUTTON=%i 
ANY_MOD=%i ACTION=\"%s\" PARAMS=\"%s\"\n", 
+                        _e_ipc_context_str(eb->context),
+                        _e_ipc_modifier_str(eb->modifiers),
+                        eb->button,
+                        eb->any_mod,
+                        eb->action,
+                        eb->params
+                        );
+                  bindings = evas_list_remove_list(bindings, bindings);
+                 E_FREE(eb);
+              }
+          }
+        else
+          printf("REPLY: AVAILABLE NONE\n"); 
+        break;   
+      case E_IPC_OP_BINDING_KEY_LIST_REPLY:
+        if (e->data)
+          {
+            Evas_List *bindings;
+            E_Config_Binding_Key *eb;
+            
+            bindings = _e_ipc_key_binding_dec(e->data, e->size);
+            while (bindings)
+              {
+                 eb = bindings->data;
+                 printf("REPLY: BINDING CONTEXT=%s MODIFIERS=%s KEY=\"%s\" 
ANY_MOD=%i ACTION=\"%s\" PARAMS=\"%s\"\n", 
+                        _e_ipc_context_str(eb->context),
+                        _e_ipc_modifier_str(eb->modifiers),
+                        eb->key,
+                        eb->any_mod,
+                        eb->action,
+                        eb->params
+                        );
+                  bindings = evas_list_remove_list(bindings, bindings);
+                 E_FREE(eb);
+              }
+          }
+        else
+          printf("REPLY: AVAILABLE NONE\n"); 
+        break;   
       default:
        break;
      }
@@ -524,6 +580,46 @@
 }
 
 /* generic encoding functions */
+static const char *
+_e_ipc_context_str(int context)
+{
+   if (context == E_BINDING_CONTEXT_NONE) return "NONE";
+   if (context == E_BINDING_CONTEXT_UNKNOWN) return "UNKNOWN";
+   if (context == E_BINDING_CONTEXT_BORDER) return "BORDER";
+   if (context == E_BINDING_CONTEXT_ZONE) return "ZONE";
+   if (context == E_BINDING_CONTEXT_MANAGER) return "MANAGER";
+   if (context == E_BINDING_CONTEXT_ANY) return "ANY";
+   return "";
+}
+
+static char _mod_buf[256];
+static const char *
+_e_ipc_modifier_str(int mod)
+{
+   _mod_buf[0] = 0;
+   if (mod & E_BINDING_MODIFIER_SHIFT)
+     {
+       if (_mod_buf[0] != 0) strcat(_mod_buf, "|");
+       strcat(_mod_buf, "SHIFT");
+     }
+   if (mod & E_BINDING_MODIFIER_CTRL)
+     {
+       if (_mod_buf[0] != 0) strcat(_mod_buf, "|");
+       strcat(_mod_buf, "CTRL");
+     }
+   if (mod & E_BINDING_MODIFIER_ALT)
+     {
+       if (_mod_buf[0] != 0) strcat(_mod_buf, "|");
+       strcat(_mod_buf, "ALT");
+     }
+   if (mod & E_BINDING_MODIFIER_WIN)
+     {
+       if (_mod_buf[0] != 0) strcat(_mod_buf, "|");
+       strcat(_mod_buf, "WIN");
+     }
+   return _mod_buf;
+}
+
 static Evas_List *
 _e_ipc_str_list_dec(char *data, int bytes)
 {
@@ -585,3 +681,27 @@
    ECORE_IPC_GET32(size);
    ECORE_IPC_DEC_STRUCT_FOOT();
 }
+
+ECORE_IPC_DEC_EVAS_LIST_PROTO(_e_ipc_mouse_binding_dec)
+{
+   ECORE_IPC_DEC_EVAS_LIST_HEAD(E_Config_Binding_Mouse);
+   ECORE_IPC_GET32(context);
+   ECORE_IPC_GET32(modifiers);
+   ECORE_IPC_GETS(action);
+   ECORE_IPC_GETS(params);
+   ECORE_IPC_GET8(button);
+   ECORE_IPC_GET8(any_mod);
+   ECORE_IPC_DEC_EVAS_LIST_FOOT();
+}
+
+ECORE_IPC_DEC_EVAS_LIST_PROTO(_e_ipc_key_binding_dec)
+{
+   ECORE_IPC_DEC_EVAS_LIST_HEAD(E_Config_Binding_Key);
+   ECORE_IPC_GET32(context);
+   ECORE_IPC_GET32(modifiers);
+   ECORE_IPC_GETS(key);
+   ECORE_IPC_GETS(action);
+   ECORE_IPC_GETS(params);
+   ECORE_IPC_GET8(any_mod);
+   ECORE_IPC_DEC_EVAS_LIST_FOOT();
+}




-------------------------------------------------------
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