    class
    	EV_KEY_CONSTANTS

    General
    	cluster: interface
    	description:
    		"Eiffel Vision key constants. Each constant defined here
    		corresponds to a possible value of {EV_KEY}.code"
    	keywords: "key, code, constant"

    Ancestors
    	ANY

    Queries
    	Key_0: INTEGER_32
    	Key_1: INTEGER_32
    	Key_2: INTEGER_32
    	Key_3: INTEGER_32
    	Key_4: INTEGER_32
    	Key_5: INTEGER_32
    	Key_6: INTEGER_32
    	Key_7: INTEGER_32
    	Key_8: INTEGER_32
    	Key_9: INTEGER_32
    	Key_a: INTEGER_32
    	Key_alt: INTEGER_32
    	Key_b: INTEGER_32
    	Key_back_space: INTEGER_32
    	Key_backquote: INTEGER_32
    	Key_backslash: INTEGER_32
    	Key_c: INTEGER_32
    	Key_caps_lock: INTEGER_32
    	Key_close_bracket: INTEGER_32
    	key_code_from_key_string (key_string: STRING_GENERAL): INTEGER_32
    	Key_comma: INTEGER_32
    	Key_ctrl: INTEGER_32
    	Key_d: INTEGER_32
    	Key_dash: INTEGER_32
    	Key_delete: INTEGER_32
    	Key_down: INTEGER_32
    	Key_e: INTEGER_32
    	Key_end: INTEGER_32
    	Key_enter: INTEGER_32
    	Key_equal: INTEGER_32
    	Key_escape: INTEGER_32
    	Key_f: INTEGER_32
    	Key_f1: INTEGER_32
    	Key_f10: INTEGER_32
    	Key_f11: INTEGER_32
    	Key_f12: INTEGER_32
    	Key_f2: INTEGER_32
    	Key_f3: INTEGER_32
    	Key_f4: INTEGER_32
    	Key_f5: INTEGER_32
    	Key_f6: INTEGER_32
    	Key_f7: INTEGER_32
    	Key_f8: INTEGER_32
    	Key_f9: INTEGER_32
    	Key_g: INTEGER_32
    	Key_h: INTEGER_32
    	Key_home: INTEGER_32
    	Key_i: INTEGER_32
    	Key_insert: INTEGER_32
    	Key_j: INTEGER_32
    	Key_k: INTEGER_32
    	Key_l: INTEGER_32
    	Key_left: INTEGER_32
    	Key_left_meta: INTEGER_32
    	Key_m: INTEGER_32
    	Key_menu: INTEGER_32
    	Key_n: INTEGER_32
    	Key_num_lock: INTEGER_32
    	Key_numpad_0: INTEGER_32
    	Key_numpad_1: INTEGER_32
    	Key_numpad_2: INTEGER_32
    	Key_numpad_3: INTEGER_32
    	Key_numpad_4: INTEGER_32
    	Key_numpad_5: INTEGER_32
    	Key_numpad_6: INTEGER_32
    	Key_numpad_7: INTEGER_32
    	Key_numpad_8: INTEGER_32
    	Key_numpad_9: INTEGER_32
    	Key_numpad_add: INTEGER_32
    	Key_numpad_decimal: INTEGER_32
    	Key_numpad_divide: INTEGER_32
    	Key_numpad_multiply: INTEGER_32
    	Key_numpad_subtract: INTEGER_32
    	Key_o: INTEGER_32
    	Key_open_bracket: INTEGER_32
    	Key_p: INTEGER_32
    	Key_page_down: INTEGER_32
    	Key_page_up: INTEGER_32
    	Key_pause: INTEGER_32
    	Key_period: INTEGER_32
    	Key_q: INTEGER_32
    	Key_quote: INTEGER_32
    	Key_r: INTEGER_32
    	Key_right: INTEGER_32
    	Key_right_meta: INTEGER_32
    	Key_s: INTEGER_32
    	Key_scroll_lock: INTEGER_32
    	Key_semicolon: INTEGER_32
    	Key_shift: INTEGER_32
    	Key_slash: INTEGER_32
    	Key_space: INTEGER_32
    	Key_strings: ARRAY [STRING_32]
    	Key_t: INTEGER_32
    	Key_tab: INTEGER_32
    	Key_u: INTEGER_32
    	Key_up: INTEGER_32
    	Key_v: INTEGER_32
    	Key_w: INTEGER_32
    	Key_x: INTEGER_32
    	Key_y: INTEGER_32
    	Key_z: INTEGER_32
    	valid_key_code (a_code: INTEGER_32): BOOLEAN