docs: Move documentation to inline comments: gdkkeys
This commit is contained in:
		 Javier Jardón
					Javier Jardón
				
			
				
					committed by
					
						 Tristan Van Berkom
						Tristan Van Berkom
					
				
			
			
				
	
			
			
			 Tristan Van Berkom
						Tristan Van Berkom
					
				
			
						parent
						
							0b61aaacd1
						
					
				
				
					commit
					145fe4bdc0
				
			
							
								
								
									
										1
									
								
								docs/reference/gdk/tmpl/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								docs/reference/gdk/tmpl/.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -6,6 +6,7 @@ gdkdisplay.sgml | |||||||
| gdkdisplaymanager.sgml | gdkdisplaymanager.sgml | ||||||
| gdkscreen.sgml | gdkscreen.sgml | ||||||
| gdktesting.sgml | gdktesting.sgml | ||||||
|  | keys.sgml | ||||||
| pixbufs.sgml | pixbufs.sgml | ||||||
| regions.sgml | regions.sgml | ||||||
| windows.sgml | windows.sgml | ||||||
|  | |||||||
| @ -1,345 +0,0 @@ | |||||||
| <!-- ##### SECTION Title ##### --> |  | ||||||
| Key Values |  | ||||||
|  |  | ||||||
| <!-- ##### SECTION Short_Description ##### --> |  | ||||||
| Functions for manipulating keyboard codes |  | ||||||
|  |  | ||||||
| <!-- ##### SECTION Long_Description ##### --> |  | ||||||
| <para> |  | ||||||
| Key values are the codes which are sent whenever a key is pressed or released. |  | ||||||
| They appear in the <structfield>keyval</structfield> field of the |  | ||||||
| #GdkEventKey structure, which is passed to signal handlers for the |  | ||||||
| "key-press-event" and "key-release-event" signals. |  | ||||||
| The complete list of key values can be found in the <filename><gdk/gdkkeysyms.h></filename> |  | ||||||
| header file. |  | ||||||
| </para> |  | ||||||
| <para> |  | ||||||
| Key values are regularly updated from the upstream X.org X11 implementation, |  | ||||||
| so new values are added regularly. They will be prefixed with GDK_KEY_ rather |  | ||||||
| than XF86XK_ or XK_ (for older symbols). |  | ||||||
| </para> |  | ||||||
| <para> |  | ||||||
| Key values can be converted into a string representation using |  | ||||||
| gdk_keyval_name(). The reverse function, converting a string to a key value, |  | ||||||
| is provided by gdk_keyval_from_name(). |  | ||||||
| </para> |  | ||||||
| <para> |  | ||||||
| The case of key values can be determined using gdk_keyval_is_upper() and |  | ||||||
| gdk_keyval_is_lower(). Key values can be converted to upper or lower case |  | ||||||
| using gdk_keyval_to_upper() and gdk_keyval_to_lower(). |  | ||||||
| </para> |  | ||||||
| <para> |  | ||||||
| When it makes sense, key values can be converted to and from |  | ||||||
| Unicode characters with gdk_keyval_to_unicode() and gdk_unicode_to_keyval(). |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
| <para id="key-group-explanation"> |  | ||||||
| One #GdkKeymap object exists for each user display. gdk_keymap_get_default()  |  | ||||||
| returns the #GdkKeymap for the default display; to obtain keymaps for other  |  | ||||||
| displays, use gdk_keymap_get_for_display(). A keymap |  | ||||||
| is a mapping from #GdkKeymapKey to key values. You can think of a #GdkKeymapKey |  | ||||||
| as a representation of a symbol printed on a physical keyboard key. That is, it |  | ||||||
| contains three pieces of information. First, it contains the hardware keycode; |  | ||||||
| this is an identifying number for a physical key. Second, it contains the |  | ||||||
| <firstterm>level</firstterm> of the key. The level indicates which symbol on the |  | ||||||
| key will be used, in a vertical direction. So on a standard US keyboard, the key |  | ||||||
| with the number "1" on it also has the exclamation point ("!") character on |  | ||||||
| it. The level indicates whether to use the "1" or the "!" symbol.  The letter |  | ||||||
| keys are considered to have a lowercase letter at level 0, and an uppercase |  | ||||||
| letter at level 1, though only the uppercase letter is printed.  Third, the |  | ||||||
| #GdkKeymapKey contains a group; groups are not used on standard US keyboards, |  | ||||||
| but are used in many other countries. On a keyboard with groups, there can be 3 |  | ||||||
| or 4 symbols printed on a single key. The group indicates movement in a |  | ||||||
| horizontal direction. Usually groups are used for two different languages.  In |  | ||||||
| group 0, a key might have two English characters, and in group 1 it might have |  | ||||||
| two Hebrew characters. The Hebrew characters will be printed on the key next to |  | ||||||
| the English characters. |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
| <para> |  | ||||||
| In order to use a keymap to interpret a key event, it's necessary to first |  | ||||||
| convert the keyboard state into an effective group and level. This is done via a |  | ||||||
| set of rules that varies widely according to type of keyboard and user |  | ||||||
| configuration. The function gdk_keymap_translate_keyboard_state() accepts a |  | ||||||
| keyboard state -- consisting of hardware keycode pressed, active modifiers, and |  | ||||||
| active group -- applies the appropriate rules, and returns the group/level to be |  | ||||||
| used to index the keymap, along with the modifiers which did not affect the |  | ||||||
| group and level. i.e. it returns "unconsumed modifiers." The keyboard group may |  | ||||||
| differ from the effective group used for keymap lookups because some keys don't |  | ||||||
| have multiple groups - e.g. the Enter key is always in group 0 regardless of |  | ||||||
| keyboard state. |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
| <para> |  | ||||||
| Note that gdk_keymap_translate_keyboard_state() also returns the keyval, i.e. it |  | ||||||
| goes ahead and performs the keymap lookup in addition to telling you which |  | ||||||
| effective group/level values were used for the lookup.  #GdkEventKey already |  | ||||||
| contains this keyval, however, so you don't normally need to call |  | ||||||
| gdk_keymap_translate_keyboard_state() just to get the keyval. |  | ||||||
|  |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
| <!-- ##### SECTION See_Also ##### --> |  | ||||||
| <para> |  | ||||||
|  |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
| <!-- ##### SECTION Stability_Level ##### --> |  | ||||||
|  |  | ||||||
|  |  | ||||||
| <!-- ##### SECTION Image ##### --> |  | ||||||
|  |  | ||||||
|  |  | ||||||
| <!-- ##### STRUCT GdkKeymap ##### --> |  | ||||||
| <para> |  | ||||||
| A <structname>GdkKeymap</structname> defines the translation from keyboard state |  | ||||||
| (including a hardware key, a modifier mask, and active keyboard group) |  | ||||||
| to a keyval. This translation has two phases. The first phase is |  | ||||||
| to determine the effective keyboard group and level for the keyboard |  | ||||||
| state; the second phase is to look up the keycode/group/level triplet |  | ||||||
| in the keymap and see what keyval it corresponds to. |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
|  |  | ||||||
| <!-- ##### SIGNAL GdkKeymap::direction-changed ##### --> |  | ||||||
| <para> |  | ||||||
|  |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
| @keymap: the object which received the signal. |  | ||||||
|  |  | ||||||
| <!-- ##### SIGNAL GdkKeymap::keys-changed ##### --> |  | ||||||
| <para> |  | ||||||
|  |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
| @keymap: the object which received the signal. |  | ||||||
|  |  | ||||||
| <!-- ##### SIGNAL GdkKeymap::state-changed ##### --> |  | ||||||
| <para> |  | ||||||
|  |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
| @gdkkeymap: the object which received the signal. |  | ||||||
|  |  | ||||||
| <!-- ##### STRUCT GdkKeymapKey ##### --> |  | ||||||
| <para> |  | ||||||
| A <structname>GdkKeymapKey</structname> is a hardware key that can  |  | ||||||
| be mapped to a keyval. |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
| @keycode: the hardware keycode. This is an identifying number for a  |  | ||||||
|   physical key. |  | ||||||
| @group: indicates movement in a horizontal direction. Usually groups are used  |  | ||||||
|   for two different languages. In group 0, a key might have two English  |  | ||||||
|   characters, and in group 1 it might have two Hebrew characters. The Hebrew  |  | ||||||
|   characters will be printed on the key next to the English characters. |  | ||||||
| @level: indicates which symbol on the key will be used, in a vertical direction.  So on a standard US keyboard, the key with the number "1" on it also has the  |  | ||||||
|   exclamation point ("!") character on it. The level indicates whether to use  |  | ||||||
|   the "1" or the "!" symbol. The letter keys are considered to have a lowercase |  | ||||||
|   letter at level 0, and an uppercase letter at level 1, though only the  |  | ||||||
|   uppercase letter is printed. |  | ||||||
|  |  | ||||||
| <!-- ##### FUNCTION gdk_keymap_get_default ##### --> |  | ||||||
| <para> |  | ||||||
|  |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
| @void:  |  | ||||||
| @Returns:  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| <!-- ##### FUNCTION gdk_keymap_get_for_display ##### --> |  | ||||||
| <para> |  | ||||||
|  |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
| @display:  |  | ||||||
| @Returns:  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| <!-- ##### FUNCTION gdk_keymap_lookup_key ##### --> |  | ||||||
| <para> |  | ||||||
|  |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
| @keymap:  |  | ||||||
| @key:  |  | ||||||
| @Returns:  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| <!-- ##### FUNCTION gdk_keymap_translate_keyboard_state ##### --> |  | ||||||
| <para> |  | ||||||
|  |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
| @keymap:  |  | ||||||
| @hardware_keycode:  |  | ||||||
| @state:  |  | ||||||
| @group:  |  | ||||||
| @keyval:  |  | ||||||
| @effective_group:  |  | ||||||
| @level:  |  | ||||||
| @consumed_modifiers:  |  | ||||||
| @Returns:  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| <!-- ##### FUNCTION gdk_keymap_get_entries_for_keyval ##### --> |  | ||||||
| <para> |  | ||||||
|  |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
| @keymap:  |  | ||||||
| @keyval:  |  | ||||||
| @keys:  |  | ||||||
| @n_keys:  |  | ||||||
| @Returns:  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| <!-- ##### FUNCTION gdk_keymap_get_entries_for_keycode ##### --> |  | ||||||
| <para> |  | ||||||
|  |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
| @keymap:  |  | ||||||
| @hardware_keycode:  |  | ||||||
| @keys:  |  | ||||||
| @keyvals:  |  | ||||||
| @n_entries:  |  | ||||||
| @Returns:  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| <!-- ##### FUNCTION gdk_keymap_get_direction ##### --> |  | ||||||
| <para> |  | ||||||
| Returns the direction of the keymap.  |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
| @keymap: a #GdkKeymap or %NULL to use the default keymap. |  | ||||||
| Returns: %PANGO_DIRECTION_LTR or %PANGO_DIRECTION_RTL. |  | ||||||
| @Returns: the direction of the keymap. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| <!-- ##### FUNCTION gdk_keymap_have_bidi_layouts ##### --> |  | ||||||
| <para> |  | ||||||
|  |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
| @keymap:  |  | ||||||
| @Returns:  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| <!-- ##### FUNCTION gdk_keymap_get_caps_lock_state ##### --> |  | ||||||
| <para> |  | ||||||
|  |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
| @keymap:  |  | ||||||
| @Returns:  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| <!-- ##### FUNCTION gdk_keymap_get_num_lock_state ##### --> |  | ||||||
| <para> |  | ||||||
|  |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
| @keymap:  |  | ||||||
| @Returns:  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| <!-- ##### FUNCTION gdk_keymap_add_virtual_modifiers ##### --> |  | ||||||
| <para> |  | ||||||
|  |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
| @keymap:  |  | ||||||
| @state:  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| <!-- ##### FUNCTION gdk_keymap_map_virtual_modifiers ##### --> |  | ||||||
| <para> |  | ||||||
|  |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
| @keymap:  |  | ||||||
| @state:  |  | ||||||
| @Returns:  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| <!-- ##### FUNCTION gdk_keyval_from_name ##### --> |  | ||||||
| <para> |  | ||||||
| Converts a key name to a key value. |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
| @keyval_name: a key name. |  | ||||||
| @Returns: the corresponding key value, or %GDK_VoidSymbol if the key name is |  | ||||||
| not a valid key. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| <!-- ##### FUNCTION gdk_keyval_convert_case ##### --> |  | ||||||
| <para> |  | ||||||
|  |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
| @symbol:  |  | ||||||
| @lower:  |  | ||||||
| @upper:  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| <!-- ##### FUNCTION gdk_keyval_to_upper ##### --> |  | ||||||
| <para> |  | ||||||
| Converts a key value to upper case, if applicable. |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
| @keyval: a key value. |  | ||||||
| @Returns: the upper case form of @keyval, or @keyval itself if it is already |  | ||||||
| in upper case or it is not subject to case conversion. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| <!-- ##### FUNCTION gdk_keyval_to_lower ##### --> |  | ||||||
| <para> |  | ||||||
| Converts a key value to lower case, if applicable. |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
| @keyval: a key value. |  | ||||||
| @Returns: the lower case form of @keyval, or @keyval itself if it is already |  | ||||||
| in lower case or it is not subject to case conversion. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| <!-- ##### FUNCTION gdk_keyval_is_upper ##### --> |  | ||||||
| <para> |  | ||||||
| Returns %TRUE if the given key value is in upper case. |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
| @keyval: a key value. |  | ||||||
| @Returns: %TRUE if @keyval is in upper case, or if @keyval is not subject to |  | ||||||
| case conversion. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| <!-- ##### FUNCTION gdk_keyval_is_lower ##### --> |  | ||||||
| <para> |  | ||||||
| Returns %TRUE if the given key value is in lower case. |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
| @keyval: a key value. |  | ||||||
| @Returns: %TRUE if @keyval is in lower case, or if @keyval is not subject to |  | ||||||
| case conversion. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| <!-- ##### FUNCTION gdk_keyval_to_unicode ##### --> |  | ||||||
| <para> |  | ||||||
|  |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
| @keyval:  |  | ||||||
| @Returns:  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| <!-- ##### FUNCTION gdk_unicode_to_keyval ##### --> |  | ||||||
| <para> |  | ||||||
|  |  | ||||||
| </para> |  | ||||||
|  |  | ||||||
| @wc:  |  | ||||||
| @Returns:  |  | ||||||
|  |  | ||||||
|  |  | ||||||
							
								
								
									
										111
									
								
								gdk/gdkkeys.c
									
									
									
									
									
								
							
							
						
						
									
										111
									
								
								gdk/gdkkeys.c
									
									
									
									
									
								
							| @ -31,6 +31,76 @@ | |||||||
| #include "gdkdisplay.h" | #include "gdkdisplay.h" | ||||||
|  |  | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * SECTION:keys | ||||||
|  |  * @Short_description: Functions for manipulating keyboard codes | ||||||
|  |  * @Title: Key Values | ||||||
|  |  * | ||||||
|  |  * Key values are the codes which are sent whenever a key is pressed or released. | ||||||
|  |  * They appear in the #GdkEventKey.keyval field of the | ||||||
|  |  * #GdkEventKey structure, which is passed to signal handlers for the | ||||||
|  |  * #GtkWidget::key-press-event and #GtkWidget::key-release-event signals. | ||||||
|  |  * The complete list of key values can be found in the | ||||||
|  |  * <filename><gdk/gdkkeysyms.h></filename> header file. | ||||||
|  |  * | ||||||
|  |  * Key values are regularly updated from the upstream X.org X11 implementation, | ||||||
|  |  * so new values are added regularly. They will be prefixed with GDK_KEY_ rather | ||||||
|  |  * than XF86XK_ or XK_ (for older symbols). | ||||||
|  |  * | ||||||
|  |  * Key values can be converted into a string representation using | ||||||
|  |  * gdk_keyval_name(). The reverse function, converting a string to a key value, | ||||||
|  |  * is provided by gdk_keyval_from_name(). | ||||||
|  |  * | ||||||
|  |  * The case of key values can be determined using gdk_keyval_is_upper() and | ||||||
|  |  * gdk_keyval_is_lower(). Key values can be converted to upper or lower case | ||||||
|  |  * using gdk_keyval_to_upper() and gdk_keyval_to_lower(). | ||||||
|  |  * | ||||||
|  |  * When it makes sense, key values can be converted to and from | ||||||
|  |  * Unicode characters with gdk_keyval_to_unicode() and gdk_unicode_to_keyval(). | ||||||
|  |  * | ||||||
|  |  * <para id="key-group-explanation"> | ||||||
|  |  * One #GdkKeymap object exists for each user display. gdk_keymap_get_default() | ||||||
|  |  * returns the #GdkKeymap for the default display; to obtain keymaps for other | ||||||
|  |  * displays, use gdk_keymap_get_for_display(). A keymap | ||||||
|  |  * is a mapping from #GdkKeymapKey to key values. You can think of a #GdkKeymapKey | ||||||
|  |  * as a representation of a symbol printed on a physical keyboard key. That is, it | ||||||
|  |  * contains three pieces of information. First, it contains the hardware keycode; | ||||||
|  |  * this is an identifying number for a physical key. Second, it contains the | ||||||
|  |  * <firstterm>level</firstterm> of the key. The level indicates which symbol on the | ||||||
|  |  * key will be used, in a vertical direction. So on a standard US keyboard, the key | ||||||
|  |  * with the number "1" on it also has the exclamation point ("!") character on | ||||||
|  |  * it. The level indicates whether to use the "1" or the "!" symbol.  The letter | ||||||
|  |  * keys are considered to have a lowercase letter at level 0, and an uppercase | ||||||
|  |  * letter at level 1, though only the uppercase letter is printed.  Third, the | ||||||
|  |  * #GdkKeymapKey contains a group; groups are not used on standard US keyboards, | ||||||
|  |  * but are used in many other countries. On a keyboard with groups, there can be 3 | ||||||
|  |  * or 4 symbols printed on a single key. The group indicates movement in a | ||||||
|  |  * horizontal direction. Usually groups are used for two different languages.  In | ||||||
|  |  * group 0, a key might have two English characters, and in group 1 it might have | ||||||
|  |  * two Hebrew characters. The Hebrew characters will be printed on the key next to | ||||||
|  |  * the English characters. | ||||||
|  |  * </para> | ||||||
|  |  * | ||||||
|  |  * In order to use a keymap to interpret a key event, it's necessary to first | ||||||
|  |  * convert the keyboard state into an effective group and level. This is done via a | ||||||
|  |  * set of rules that varies widely according to type of keyboard and user | ||||||
|  |  * configuration. The function gdk_keymap_translate_keyboard_state() accepts a | ||||||
|  |  * keyboard state -- consisting of hardware keycode pressed, active modifiers, and | ||||||
|  |  * active group -- applies the appropriate rules, and returns the group/level to be | ||||||
|  |  * used to index the keymap, along with the modifiers which did not affect the | ||||||
|  |  * group and level. i.e. it returns "unconsumed modifiers." The keyboard group may | ||||||
|  |  * differ from the effective group used for keymap lookups because some keys don't | ||||||
|  |  * have multiple groups - e.g. the Enter key is always in group 0 regardless of | ||||||
|  |  * keyboard state. | ||||||
|  |  * | ||||||
|  |  * Note that gdk_keymap_translate_keyboard_state() also returns the keyval, i.e. it | ||||||
|  |  * goes ahead and performs the keymap lookup in addition to telling you which | ||||||
|  |  * effective group/level values were used for the lookup. #GdkEventKey already | ||||||
|  |  * contains this keyval, however, so you don't normally need to call | ||||||
|  |  * gdk_keymap_translate_keyboard_state() just to get the keyval. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  |  | ||||||
| enum { | enum { | ||||||
|   DIRECTION_CHANGED, |   DIRECTION_CHANGED, | ||||||
|   KEYS_CHANGED, |   KEYS_CHANGED, | ||||||
| @ -255,6 +325,15 @@ gdk_keyval_convert_case (guint symbol, | |||||||
| } | } | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * gdk_keyval_to_upper: | ||||||
|  |  * @keyval: a key value. | ||||||
|  |  * | ||||||
|  |  * Converts a key value to upper case, if applicable. | ||||||
|  |  * | ||||||
|  |  * Returns: the upper case form of @keyval, or @keyval itself if it is already | ||||||
|  |  *   in upper case or it is not subject to case conversion. | ||||||
|  |  */ | ||||||
| guint | guint | ||||||
| gdk_keyval_to_upper (guint keyval) | gdk_keyval_to_upper (guint keyval) | ||||||
| { | { | ||||||
| @ -265,6 +344,15 @@ gdk_keyval_to_upper (guint keyval) | |||||||
|   return result; |   return result; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * gdk_keyval_to_lower: | ||||||
|  |  * @keyval: a key value. | ||||||
|  |  * | ||||||
|  |  * Converts a key value to lower case, if applicable. | ||||||
|  |  * | ||||||
|  |  * Returns: the lower case form of @keyval, or @keyval itself if it is already | ||||||
|  |  *  in lower case or it is not subject to case conversion. | ||||||
|  |  */ | ||||||
| guint | guint | ||||||
| gdk_keyval_to_lower (guint keyval) | gdk_keyval_to_lower (guint keyval) | ||||||
| { | { | ||||||
| @ -275,6 +363,15 @@ gdk_keyval_to_lower (guint keyval) | |||||||
|   return result; |   return result; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * gdk_keyval_is_upper: | ||||||
|  |  * @keyval: a key value. | ||||||
|  |  * | ||||||
|  |  * Returns %TRUE if the given key value is in upper case. | ||||||
|  |  * | ||||||
|  |  * Returns: %TRUE if @keyval is in upper case, or if @keyval is not subject to | ||||||
|  |  *  case conversion. | ||||||
|  |  */ | ||||||
| gboolean | gboolean | ||||||
| gdk_keyval_is_upper (guint keyval) | gdk_keyval_is_upper (guint keyval) | ||||||
| { | { | ||||||
| @ -288,6 +385,15 @@ gdk_keyval_is_upper (guint keyval) | |||||||
|   return FALSE; |   return FALSE; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * gdk_keyval_is_lower: | ||||||
|  |  * @keyval: a key value. | ||||||
|  |  * | ||||||
|  |  * Returns %TRUE if the given key value is in lower case. | ||||||
|  |  * | ||||||
|  |  * Returns: %TRUE if @keyval is in lower case, or if @keyval is not | ||||||
|  |  *   subject to case conversion. | ||||||
|  |  */ | ||||||
| gboolean | gboolean | ||||||
| gdk_keyval_is_lower (guint keyval) | gdk_keyval_is_lower (guint keyval) | ||||||
| { | { | ||||||
| @ -303,10 +409,11 @@ gdk_keyval_is_lower (guint keyval) | |||||||
|  |  | ||||||
| /**  | /**  | ||||||
|  * gdk_keymap_get_default: |  * gdk_keymap_get_default: | ||||||
|  * @returns: the #GdkKeymap attached to the default display. |  | ||||||
|  * |  * | ||||||
|  * Returns the #GdkKeymap attached to the default display. |  * Returns the #GdkKeymap attached to the default display. | ||||||
|  **/ |  * | ||||||
|  |  * Returns: the #GdkKeymap attached to the default display. | ||||||
|  |  */ | ||||||
| GdkKeymap* | GdkKeymap* | ||||||
| gdk_keymap_get_default (void) | gdk_keymap_get_default (void) | ||||||
| { | { | ||||||
|  | |||||||
| @ -35,9 +35,26 @@ | |||||||
|  |  | ||||||
| G_BEGIN_DECLS | G_BEGIN_DECLS | ||||||
|  |  | ||||||
|  |  | ||||||
| typedef struct _GdkKeymapKey GdkKeymapKey; | typedef struct _GdkKeymapKey GdkKeymapKey; | ||||||
|  |  | ||||||
| /* GdkKeymapKey is a hardware key that can be mapped to a keyval */ | /** | ||||||
|  |  * GdkKeymapKey: | ||||||
|  |  * @keycode: the hardware keycode. This is an identifying number for a | ||||||
|  |  *   physical key. | ||||||
|  |  * @group: indicates movement in a horizontal direction. Usually groups are used | ||||||
|  |  *   for two different languages. In group 0, a key might have two English | ||||||
|  |  *   characters, and in group 1 it might have two Hebrew characters. The Hebrew | ||||||
|  |  *   characters will be printed on the key next to the English characters. | ||||||
|  |  * @level: indicates which symbol on the key will be used, in a vertical direction. | ||||||
|  |  *   So on a standard US keyboard, the key with the number "1" on it also has the | ||||||
|  |  *   exclamation point ("!") character on it. The level indicates whether to use | ||||||
|  |  *   the "1" or the "!" symbol. The letter keys are considered to have a lowercase | ||||||
|  |  *   letter at level 0, and an uppercase letter at level 1, though only the | ||||||
|  |  *   uppercase letter is printed. | ||||||
|  |  * | ||||||
|  |  * A #GdkKeymapKey is a hardware key that can be mapped to a keyval. | ||||||
|  |  */ | ||||||
| struct _GdkKeymapKey | struct _GdkKeymapKey | ||||||
| { | { | ||||||
|   guint keycode; |   guint keycode; | ||||||
| @ -45,16 +62,6 @@ struct _GdkKeymapKey | |||||||
|   gint  level; |   gint  level; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| /* A GdkKeymap defines the translation from keyboard state |  | ||||||
|  * (including a hardware key, a modifier mask, and active keyboard group) |  | ||||||
|  * to a keyval. This translation has two phases. The first phase is |  | ||||||
|  * to determine the effective keyboard group and level for the keyboard |  | ||||||
|  * state; the second phase is to look up the keycode/group/level triplet |  | ||||||
|  * in the keymap and see what keyval it corresponds to. |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| typedef struct _GdkKeymap      GdkKeymap; |  | ||||||
| typedef struct _GdkKeymapClass GdkKeymapClass; |  | ||||||
|  |  | ||||||
| #define GDK_TYPE_KEYMAP              (gdk_keymap_get_type ()) | #define GDK_TYPE_KEYMAP              (gdk_keymap_get_type ()) | ||||||
| #define GDK_KEYMAP(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_KEYMAP, GdkKeymap)) | #define GDK_KEYMAP(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_KEYMAP, GdkKeymap)) | ||||||
| @ -63,6 +70,19 @@ typedef struct _GdkKeymapClass GdkKeymapClass; | |||||||
| #define GDK_IS_KEYMAP_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_KEYMAP)) | #define GDK_IS_KEYMAP_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_KEYMAP)) | ||||||
| #define GDK_KEYMAP_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_KEYMAP, GdkKeymapClass)) | #define GDK_KEYMAP_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_KEYMAP, GdkKeymapClass)) | ||||||
|  |  | ||||||
|  | typedef struct _GdkKeymap      GdkKeymap; | ||||||
|  | typedef struct _GdkKeymapClass GdkKeymapClass; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * GdkKeymap: | ||||||
|  |  * | ||||||
|  |  * A #GdkKeymap defines the translation from keyboard state | ||||||
|  |  * (including a hardware key, a modifier mask, and active keyboard group) | ||||||
|  |  * to a keyval. This translation has two phases. The first phase is | ||||||
|  |  * to determine the effective keyboard group and level for the keyboard | ||||||
|  |  * state; the second phase is to look up the keycode/group/level triplet | ||||||
|  |  * in the keymap and see what keyval it corresponds to. | ||||||
|  |  */ | ||||||
| struct _GdkKeymap | struct _GdkKeymap | ||||||
| { | { | ||||||
|   GObject     parent_instance; |   GObject     parent_instance; | ||||||
| @ -105,6 +125,16 @@ gboolean       gdk_keymap_get_entries_for_keycode  (GdkKeymap           *keymap, | |||||||
| 						    GdkKeymapKey       **keys, | 						    GdkKeymapKey       **keys, | ||||||
| 						    guint              **keyvals, | 						    guint              **keyvals, | ||||||
| 						    gint                *n_entries); | 						    gint                *n_entries); | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * gdk_keymap_get_direction: | ||||||
|  |  * @keymap: a #GdkKeymap or %NULL to use the default keymap. | ||||||
|  |  * | ||||||
|  |  * Returns the direction of the keymap. | ||||||
|  |  * | ||||||
|  |  * Returns: the direction of the keymap, %PANGO_DIRECTION_LTR or | ||||||
|  |  *   %PANGO_DIRECTION_RTL. | ||||||
|  |  */ | ||||||
| PangoDirection gdk_keymap_get_direction            (GdkKeymap           *keymap); | PangoDirection gdk_keymap_get_direction            (GdkKeymap           *keymap); | ||||||
| gboolean       gdk_keymap_have_bidi_layouts        (GdkKeymap           *keymap); | gboolean       gdk_keymap_have_bidi_layouts        (GdkKeymap           *keymap); | ||||||
| gboolean       gdk_keymap_get_caps_lock_state      (GdkKeymap           *keymap); | gboolean       gdk_keymap_get_caps_lock_state      (GdkKeymap           *keymap); | ||||||
| @ -117,6 +147,16 @@ gboolean       gdk_keymap_map_virtual_modifiers    (GdkKeymap           *keymap, | |||||||
| /* Key values | /* Key values | ||||||
|  */ |  */ | ||||||
| gchar*   gdk_keyval_name         (guint        keyval) G_GNUC_CONST; | gchar*   gdk_keyval_name         (guint        keyval) G_GNUC_CONST; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * gdk_keyval_from_name: | ||||||
|  |  * @keyval_name: a key name. | ||||||
|  |  * | ||||||
|  |  * Converts a key name to a key value. | ||||||
|  |  * | ||||||
|  |  * Returns: the corresponding key value, or %GDK_VoidSymbol if the key name is | ||||||
|  |  *  not a valid key. | ||||||
|  |  */ | ||||||
| guint    gdk_keyval_from_name    (const gchar *keyval_name); | guint    gdk_keyval_from_name    (const gchar *keyval_name); | ||||||
| void     gdk_keyval_convert_case (guint        symbol, | void     gdk_keyval_convert_case (guint        symbol, | ||||||
| 				  guint       *lower, | 				  guint       *lower, | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user