Enlightenment CVS committal
Author : raster
Project : e17
Module : libs/ecore
Dir : e17/libs/ecore/src/lib/ecore_fb
Modified Files:
Makefile.am ecore_fb.c
Added Files:
ecore_fb_keytab.h
Log Message:
newq fb keytable
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_fb/Makefile.am,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- Makefile.am 2 Nov 2004 04:03:26 -0000 1.5
+++ Makefile.am 14 Dec 2004 16:12:05 -0000 1.6
@@ -15,7 +15,8 @@
libecore_fb_la_SOURCES = \
ecore_fb.c \
-ecore_fb_private.h
+ecore_fb_private.h \
+ecore_fb_keytab.h
libecore_fb_la_LIBADD = \
$(top_builddir)/src/lib/ecore/libecore.la
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_fb/ecore_fb.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- ecore_fb.c 23 Aug 2004 22:59:00 -0000 1.7
+++ ecore_fb.c 14 Dec 2004 16:12:05 -0000 1.8
@@ -114,6 +114,8 @@
static int _ecore_fb_current_vt = 0;
static int _ecore_fb_ctrl = 0;
static int _ecore_fb_alt = 0;
+static int _ecore_fb_shift = 0;
+static int _ecore_fb_lock = 0;
static void (*_ecore_fb_func_fb_lost) (void *data) = NULL;
static void *_ecore_fb_func_fb_lost_data = NULL;
@@ -126,136 +128,9 @@
static double _ecore_fb_double_click_time = 0.25;
-static char *_ecore_fb_kbd_syms[128] =
+static char *_ecore_fb_kbd_syms[128 * 6] =
{
- "0x00",
- "Escape",
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "0",
- "-",
- "=",
- "BackSpace",
- "Rab",
- "q",
- "w",
- "e",
- "r",
- "t",
- "y",
- "u",
- "i",
- "o",
- "p",
- "bracketleft",
- "bracketright",
- "Return",
- "Control_L",
- "a",
- "s",
- "d",
- "f",
- "g",
- "h",
- "j",
- "k",
- "l",
- "semicolon",
- "apostrophe",
- "0x29",
- "Shift_L",
- "backslash",
- "z",
- "x",
- "c",
- "v",
- "b",
- "n",
- "m",
- "comma",
- "period",
- "slash",
- "Shift_R",
- "KP_Multiply",
- "Alt_L",
- "space",
- "Caps_Lock",
- "F1",
- "F2",
- "F3",
- "F4",
- "F5",
- "F6",
- "F7",
- "F8",
- "F9",
- "F10",
- "Num_Lock",
- "Scroll_Lock",
- "KP_Home",
- "KP_Up",
- "KP_Prior",
- "KP_Subtract",
- "KP_Left",
- "KP_Begin",
- "KP_Right",
- "KP_Add",
- "KP_End",
- "KP_Down",
- "KP_Next",
- "KP_Insert",
- "KP_Delete",
- "0x54",
- "0x55",
- "0x56",
- "F11",
- "F12",
- "0x59",
- "0x5a",
- "0x5b",
- "0x5c",
- "0x5d",
- "0x5e",
- "0x5f",
- "KP_Enter",
- "Control_R",
- "KP_Divide",
- "Print",
- "Alt_R",
- "0x65",
- "Home",
- "Up",
- "Prior",
- "Left",
- "right",
- "End",
- "Down",
- "Next",
- "Insert",
- "Delete",
- "0x70",
- "0x71",
- "0x72",
- "0x73",
- "0x74",
- "0x75",
- "0x76",
- "Pause",
- "0x78",
- "0x79",
- "0x7a",
- "0x7b",
- "0x7c",
- "Super_L",
- "Super_R",
- "0x7f"
+#include "ecore_fb_keytab.h"
};
static char *_ecore_fb_btn_syms[128] =
@@ -999,7 +874,15 @@
e = calloc(1, sizeof(Ecore_Fb_Event_Key_Down));
if (!e) goto retry;
if (_ecore_fb_kbd_fd == _ecore_fb_tty_fd)
- e->keyname = strdup(_ecore_fb_kbd_syms[buf & 0x7f]);
+ {
+ int add = 0;
+
+ if (_ecore_fb_shift) add = 1;
+ else if (_ecore_fb_lock) add = 2;
+ e->keyname = strdup(_ecore_fb_kbd_syms[(buf & 0x7f) * 6]);
+ e->keysymbol = strdup(_ecore_fb_kbd_syms[((buf & 0x7f) * 6) +
add]);
+ e->key_compose = strdup(_ecore_fb_kbd_syms[((buf & 0x7f) * 6)
+ 3 + add]);
+ }
else
e->keyname = strdup(_ecore_fb_btn_syms[buf & 0x7f]);
if (!e->keyname)
@@ -1010,12 +893,18 @@
ecore_event_add(ECORE_FB_EVENT_KEY_DOWN, e,
_ecore_fb_event_free_key_down, NULL);
if (!strcmp(e->keyname, "Control_L"))
_ecore_fb_ctrl++;
- if (!strcmp(e->keyname, "Control_R"))
+ else if (!strcmp(e->keyname, "Control_R"))
_ecore_fb_ctrl++;
else if (!strcmp(e->keyname, "Alt_L"))
_ecore_fb_alt++;
else if (!strcmp(e->keyname, "Alt_R"))
_ecore_fb_alt++;
+ else if (!strcmp(e->keyname, "Shift_L"))
+ _ecore_fb_shift++;
+ else if (!strcmp(e->keyname, "Shift_R"))
+ _ecore_fb_shift++;
+ else if (!strcmp(e->keyname, "Caps_Lock"))
+ _ecore_fb_lock++;
else if (!strcmp(e->keyname, "F1")) vt_switch = 0;
else if (!strcmp(e->keyname, "F2")) vt_switch = 1;
else if (!strcmp(e->keyname, "F3")) vt_switch = 2;
@@ -1043,7 +932,15 @@
e = calloc(1, sizeof(Ecore_Fb_Event_Key_Up));
if (!e) goto retry;
if (_ecore_fb_kbd_fd == _ecore_fb_tty_fd)
- e->keyname = strdup(_ecore_fb_kbd_syms[buf & 0x7f]);
+ {
+ int add = 0;
+
+ if (_ecore_fb_shift) add = 1;
+ else if (_ecore_fb_lock) add = 2;
+ e->keyname = strdup(_ecore_fb_kbd_syms[(buf & 0x7f) * 6]);
+ e->keysymbol = strdup(_ecore_fb_kbd_syms[((buf & 0x7f) * 6) +
add]);
+ e->key_compose = strdup(_ecore_fb_kbd_syms[((buf & 0x7f) * 6)
+ 3 + add]);
+ }
else
e->keyname = strdup(_ecore_fb_btn_syms[buf & 0x7f]);
if (!e->keyname)
@@ -1054,14 +951,22 @@
ecore_event_add(ECORE_FB_EVENT_KEY_UP, e,
_ecore_fb_event_free_key_up, NULL);
if (!strcmp(e->keyname, "Control_L"))
_ecore_fb_ctrl--;
- if (!strcmp(e->keyname, "Control_R"))
+ else if (!strcmp(e->keyname, "Control_R"))
_ecore_fb_ctrl--;
else if (!strcmp(e->keyname, "Alt_L"))
_ecore_fb_alt--;
else if (!strcmp(e->keyname, "Alt_R"))
_ecore_fb_alt--;
+ else if (!strcmp(e->keyname, "Shift_L"))
+ _ecore_fb_shift--;
+ else if (!strcmp(e->keyname, "Shift_R"))
+ _ecore_fb_shift--;
+ else if (!strcmp(e->keyname, "Caps_Lock"))
+ _ecore_fb_lock--;
if (_ecore_fb_ctrl < 0) _ecore_fb_ctrl = 0;
if (_ecore_fb_alt < 0) _ecore_fb_alt = 0;
+ if (_ecore_fb_shift < 0) _ecore_fb_shift = 0;
+ if (_ecore_fb_lock < 0) _ecore_fb_lock = 0;
}
retry:
;
@@ -1184,6 +1089,8 @@
e = ev;
free(e->keyname);
+ if (e->keysymbol) free(e->keysymbol);
+ if (e->key_compose) free(e->key_compose);
free(e);
}
@@ -1194,6 +1101,8 @@
e = ev;
free(e->keyname);
+ if (e->keysymbol) free(e->keysymbol);
+ if (e->key_compose) free(e->key_compose);
free(e);
}
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs