diff options
author | Havoc Pennington <hp@pobox.com> | 2000-12-06 05:31:30 +0000 |
---|---|---|
committer | Havoc Pennington <hp@src.gnome.org> | 2000-12-06 05:31:30 +0000 |
commit | 36aac0177bfe4dfed46cfcf8568256fe5b05f9b0 (patch) | |
tree | 5091a09100b1743bf733d47dde7db34e9b673fc6 /gdk/gdk.c | |
parent | 3bc53c742d676a974987ad084f8617a1ab6068fd (diff) | |
download | gdk-pixbuf-36aac0177bfe4dfed46cfcf8568256fe5b05f9b0.tar.gz |
add gdkkeys.[hc]
2000-12-03 Havoc Pennington <hp@pobox.com>
* gdk/Makefile.am: add gdkkeys.[hc]
* gdk/gdkkeys.h, gdk/gdkkeys.c: Move all the keyval stuff to these
files from gdk.h, gdk.c; add GdkKeymap type and operations on it.
* acconfig.h, configure.in: add checks and command line options
for XKB
* gdk/x11/gdkkeys-x11.c: Implement the above functions
* gdk/x11/gdkevents-x11.c (gdk_event_translate): Put the keycode
and group in the key event
* gdk/gdkevents.h (struct _GdkEventKey): Add a hardware_keycode
field with the low-level hardware key code, and a group
field with the keyboard group
* gdk/x11/gdkprivate-x11.h: include config.h for HAVE_XKB,
and declare a couple globals used for keymap handling
* gtk/gtkimcontextsimple.c: Implement ISO 14755 input method,
hold down Shift-Control and type a hex number to get a Unicode
character corresponding to the hex number
(gtk_im_context_simple_get_preedit_string): Fix cursor position
(return bytes not chars)
Diffstat (limited to 'gdk/gdk.c')
-rw-r--r-- | gdk/gdk.c | 178 |
1 files changed, 0 insertions, 178 deletions
@@ -507,184 +507,6 @@ gdk_error_trap_pop (void) return result; } -#ifndef HAVE_XCONVERTCASE -/* compatibility function from X11R6.3, since XConvertCase is not - * supplied by X11R5. - */ -void -gdk_keyval_convert_case (guint symbol, - guint *lower, - guint *upper) -{ - guint xlower = symbol; - guint xupper = symbol; - - switch (symbol >> 8) - { -#if defined (GDK_A) && defined (GDK_Ooblique) - case 0: /* Latin 1 */ - if ((symbol >= GDK_A) && (symbol <= GDK_Z)) - xlower += (GDK_a - GDK_A); - else if ((symbol >= GDK_a) && (symbol <= GDK_z)) - xupper -= (GDK_a - GDK_A); - else if ((symbol >= GDK_Agrave) && (symbol <= GDK_Odiaeresis)) - xlower += (GDK_agrave - GDK_Agrave); - else if ((symbol >= GDK_agrave) && (symbol <= GDK_odiaeresis)) - xupper -= (GDK_agrave - GDK_Agrave); - else if ((symbol >= GDK_Ooblique) && (symbol <= GDK_Thorn)) - xlower += (GDK_oslash - GDK_Ooblique); - else if ((symbol >= GDK_oslash) && (symbol <= GDK_thorn)) - xupper -= (GDK_oslash - GDK_Ooblique); - break; -#endif /* LATIN1 */ - -#if defined (GDK_Aogonek) && defined (GDK_tcedilla) - case 1: /* Latin 2 */ - /* Assume the KeySym is a legal value (ignore discontinuities) */ - if (symbol == GDK_Aogonek) - xlower = GDK_aogonek; - else if (symbol >= GDK_Lstroke && symbol <= GDK_Sacute) - xlower += (GDK_lstroke - GDK_Lstroke); - else if (symbol >= GDK_Scaron && symbol <= GDK_Zacute) - xlower += (GDK_scaron - GDK_Scaron); - else if (symbol >= GDK_Zcaron && symbol <= GDK_Zabovedot) - xlower += (GDK_zcaron - GDK_Zcaron); - else if (symbol == GDK_aogonek) - xupper = GDK_Aogonek; - else if (symbol >= GDK_lstroke && symbol <= GDK_sacute) - xupper -= (GDK_lstroke - GDK_Lstroke); - else if (symbol >= GDK_scaron && symbol <= GDK_zacute) - xupper -= (GDK_scaron - GDK_Scaron); - else if (symbol >= GDK_zcaron && symbol <= GDK_zabovedot) - xupper -= (GDK_zcaron - GDK_Zcaron); - else if (symbol >= GDK_Racute && symbol <= GDK_Tcedilla) - xlower += (GDK_racute - GDK_Racute); - else if (symbol >= GDK_racute && symbol <= GDK_tcedilla) - xupper -= (GDK_racute - GDK_Racute); - break; -#endif /* LATIN2 */ - -#if defined (GDK_Hstroke) && defined (GDK_Cabovedot) - case 2: /* Latin 3 */ - /* Assume the KeySym is a legal value (ignore discontinuities) */ - if (symbol >= GDK_Hstroke && symbol <= GDK_Hcircumflex) - xlower += (GDK_hstroke - GDK_Hstroke); - else if (symbol >= GDK_Gbreve && symbol <= GDK_Jcircumflex) - xlower += (GDK_gbreve - GDK_Gbreve); - else if (symbol >= GDK_hstroke && symbol <= GDK_hcircumflex) - xupper -= (GDK_hstroke - GDK_Hstroke); - else if (symbol >= GDK_gbreve && symbol <= GDK_jcircumflex) - xupper -= (GDK_gbreve - GDK_Gbreve); - else if (symbol >= GDK_Cabovedot && symbol <= GDK_Scircumflex) - xlower += (GDK_cabovedot - GDK_Cabovedot); - else if (symbol >= GDK_cabovedot && symbol <= GDK_scircumflex) - xupper -= (GDK_cabovedot - GDK_Cabovedot); - break; -#endif /* LATIN3 */ - -#if defined (GDK_Rcedilla) && defined (GDK_Amacron) - case 3: /* Latin 4 */ - /* Assume the KeySym is a legal value (ignore discontinuities) */ - if (symbol >= GDK_Rcedilla && symbol <= GDK_Tslash) - xlower += (GDK_rcedilla - GDK_Rcedilla); - else if (symbol >= GDK_rcedilla && symbol <= GDK_tslash) - xupper -= (GDK_rcedilla - GDK_Rcedilla); - else if (symbol == GDK_ENG) - xlower = GDK_eng; - else if (symbol == GDK_eng) - xupper = GDK_ENG; - else if (symbol >= GDK_Amacron && symbol <= GDK_Umacron) - xlower += (GDK_amacron - GDK_Amacron); - else if (symbol >= GDK_amacron && symbol <= GDK_umacron) - xupper -= (GDK_amacron - GDK_Amacron); - break; -#endif /* LATIN4 */ - -#if defined (GDK_Serbian_DJE) && defined (GDK_Cyrillic_yu) - case 6: /* Cyrillic */ - /* Assume the KeySym is a legal value (ignore discontinuities) */ - if (symbol >= GDK_Serbian_DJE && symbol <= GDK_Serbian_DZE) - xlower -= (GDK_Serbian_DJE - GDK_Serbian_dje); - else if (symbol >= GDK_Serbian_dje && symbol <= GDK_Serbian_dze) - xupper += (GDK_Serbian_DJE - GDK_Serbian_dje); - else if (symbol >= GDK_Cyrillic_YU && symbol <= GDK_Cyrillic_HARDSIGN) - xlower -= (GDK_Cyrillic_YU - GDK_Cyrillic_yu); - else if (symbol >= GDK_Cyrillic_yu && symbol <= GDK_Cyrillic_hardsign) - xupper += (GDK_Cyrillic_YU - GDK_Cyrillic_yu); - break; -#endif /* CYRILLIC */ - -#if defined (GDK_Greek_ALPHAaccent) && defined (GDK_Greek_finalsmallsigma) - case 7: /* Greek */ - /* Assume the KeySym is a legal value (ignore discontinuities) */ - if (symbol >= GDK_Greek_ALPHAaccent && symbol <= GDK_Greek_OMEGAaccent) - xlower += (GDK_Greek_alphaaccent - GDK_Greek_ALPHAaccent); - else if (symbol >= GDK_Greek_alphaaccent && symbol <= GDK_Greek_omegaaccent && - symbol != GDK_Greek_iotaaccentdieresis && - symbol != GDK_Greek_upsilonaccentdieresis) - xupper -= (GDK_Greek_alphaaccent - GDK_Greek_ALPHAaccent); - else if (symbol >= GDK_Greek_ALPHA && symbol <= GDK_Greek_OMEGA) - xlower += (GDK_Greek_alpha - GDK_Greek_ALPHA); - else if (symbol >= GDK_Greek_alpha && symbol <= GDK_Greek_omega && - symbol != GDK_Greek_finalsmallsigma) - xupper -= (GDK_Greek_alpha - GDK_Greek_ALPHA); - break; -#endif /* GREEK */ - } - - if (lower) - *lower = xlower; - if (upper) - *upper = xupper; -} -#endif - -guint -gdk_keyval_to_upper (guint keyval) -{ - guint result; - - gdk_keyval_convert_case (keyval, NULL, &result); - - return result; -} - -guint -gdk_keyval_to_lower (guint keyval) -{ - guint result; - - gdk_keyval_convert_case (keyval, &result, NULL); - - return result; -} - -gboolean -gdk_keyval_is_upper (guint keyval) -{ - if (keyval) - { - guint upper_val = 0; - - gdk_keyval_convert_case (keyval, NULL, &upper_val); - return upper_val == keyval; - } - return FALSE; -} - -gboolean -gdk_keyval_is_lower (guint keyval) -{ - if (keyval) - { - guint lower_val = 0; - - gdk_keyval_convert_case (keyval, &lower_val, NULL); - return lower_val == keyval; - } - return FALSE; -} - void gdk_threads_enter () { |