note
	description: "A virtual keyboard key."
	author: "Louis Marchand"
	date: "Sun, 30 Apr 2017 15:08:50 +0000"
	revision: "2.1"

deferred class interface
	GAME_VIRTUAL_KEY

feature -- Access

	generating_type: TYPE [detachable GAME_VIRTUAL_KEY]
			-- Type of current object
			-- (type of which it is a direct instance)
			-- (from ANY)
		ensure -- from ANY
			generating_type_not_void: Result /= Void

	generator: STRING_8
			-- Name of current object's generating class
			-- (base class of the type of which it is a direct instance)
			-- (from ANY)
		ensure -- from ANY
			generator_not_void: Result /= Void
			generator_not_empty: not Result.is_empty

	is_0: BOOLEAN
			-- Current represent the 0 key

	is_1: BOOLEAN
			-- Current represent the 1 key

	is_2: BOOLEAN
			-- Current represent the 2 key

	is_3: BOOLEAN
			-- Current represent the 3 key

	is_4: BOOLEAN
			-- Current represent the 4 key

	is_5: BOOLEAN
			-- Current represent the 5 key

	is_6: BOOLEAN
			-- Current represent the 6 key

	is_7: BOOLEAN
			-- Current represent the 7 key

	is_8: BOOLEAN
			-- Current represent the 8 key

	is_9: BOOLEAN
			-- Current represent the 9 key

	is_a: BOOLEAN
			-- Current represent the A key

	is_again: BOOLEAN
			-- Current represent the again key

	is_ampersand: BOOLEAN
			-- Current represent the ampersand key

	is_application: BOOLEAN
			-- Current represent the application key

	is_application_control_back: BOOLEAN
			-- Current represent the back key of the application control keyboard section

	is_application_control_bookmarks: BOOLEAN
			-- Current represent the bookmarks key of the application control keyboard section

	is_application_control_forward: BOOLEAN
			-- Current represent the forward key of the application control keyboard section

	is_application_control_home: BOOLEAN
			-- Current represent the home key of the application control keyboard section

	is_application_control_refresh: BOOLEAN
			-- Current represent the refresh key of the application control keyboard section

	is_application_control_search: BOOLEAN
			-- Current represent the search key of the application control keyboard section

	is_application_control_stop: BOOLEAN
			-- Current represent the stop key of the application control keyboard section

	is_as400_keypad_equals: BOOLEAN
			-- Current represent the key pad equals key for as400 keyboard

	is_asterisk: BOOLEAN
			-- Current represent the asterisk key

	is_at: BOOLEAN
			-- Current represent the at key

	is_audio_mute: BOOLEAN
			-- Current represent the audio mute key

	is_audio_next: BOOLEAN
			-- Current represent the audio_next key

	is_audio_play: BOOLEAN
			-- Current represent the audio play key

	is_audio_prev: BOOLEAN
			-- Current represent the audio prev key

	is_audio_stop: BOOLEAN
			-- Current represent the audio stop key

	is_b: BOOLEAN
			-- Current represent the B key

	is_backquote: BOOLEAN
			-- Current represent the backquote key

	is_backslash: BOOLEAN
			-- Current represent the backslash key

	is_backspace: BOOLEAN
			-- Current represent the backspace key

	is_brightness_up: BOOLEAN
			-- Current represent the brightness up key

	is_brightnessdown: BOOLEAN
			-- Current represent the brightnessdown key

	is_c: BOOLEAN
			-- Current represent the C key

	is_calculator: BOOLEAN
			-- Current represent the calculator key

	is_cancel: BOOLEAN
			-- Current represent the cancel key

	is_caps_lock: BOOLEAN
			-- Current represent the caps lock key

	is_caret: BOOLEAN
			-- Current represent the caret key

	is_clear: BOOLEAN
			-- Current represent the clear key

	is_clear_again: BOOLEAN
			-- Current represent the clear again key

	is_colon: BOOLEAN
			-- Current represent the colon key

	is_comma: BOOLEAN
			-- Current represent the comma key

	is_computer: BOOLEAN
			-- Current represent the computer key

	is_copy: BOOLEAN
			-- Current represent the copy key

	is_crsel: BOOLEAN
			-- Current represent the crsel key

	is_currency_sub_unit: BOOLEAN
			-- Current represent the currency sub unit key

	is_currency_unit: BOOLEAN
			-- Current represent the currency unit key

	is_cut: BOOLEAN
			-- Current represent the cut key

	is_d: BOOLEAN
			-- Current represent the D key

	is_decimal_separator: BOOLEAN
			-- Current represent the decimal separator key

	is_delete: BOOLEAN
			-- Current represent the delete key

	is_display_switch: BOOLEAN
			-- Current represent the display switch key

	is_dollar: BOOLEAN
			-- Current represent the dollar key

	is_double_quote: BOOLEAN
			-- Current represent the double quote key

	is_down: BOOLEAN
			-- Current represent the down key

	is_e: BOOLEAN
			-- Current represent the E key

	is_eject: BOOLEAN
			-- Current represent the eject key

	is_end: BOOLEAN
			-- Current represent the end key

	is_equals: BOOLEAN
			-- Current represent the equals key

	is_erase_eaze_alternate_erase: BOOLEAN
			-- Current represent the alternate erase key for Erase Eaze keyboard

	is_escape: BOOLEAN
			-- Current represent the escape key

	is_exclaim: BOOLEAN
			-- Current represent the exclaim key

	is_execute: BOOLEAN
			-- Current represent the execute key

	is_exsel: BOOLEAN
			-- Current represent the exsel key

	is_f: BOOLEAN
			-- Current represent the F key

	is_f1: BOOLEAN
			-- Current represent the f1 key

	is_f10: BOOLEAN
			-- Current represent the f10 key

	is_f11: BOOLEAN
			-- Current represent the f11 key

	is_f12: BOOLEAN
			-- Current represent the f12 key

	is_f13: BOOLEAN
			-- Current represent the f13 key

	is_f14: BOOLEAN
			-- Current represent the f14 key

	is_f15: BOOLEAN
			-- Current represent the f15 key

	is_f16: BOOLEAN
			-- Current represent the f16 key

	is_f17: BOOLEAN
			-- Current represent the f17 key

	is_f18: BOOLEAN
			-- Current represent the f18 key

	is_f19: BOOLEAN
			-- Current represent the f19 key

	is_f2: BOOLEAN
			-- Current represent the f2 key

	is_f20: BOOLEAN
			-- Current represent the f20 key

	is_f21: BOOLEAN
			-- Current represent the f21 key

	is_f22: BOOLEAN
			-- Current represent the f22 key

	is_f23: BOOLEAN
			-- Current represent the f23 key

	is_f24: BOOLEAN
			-- Current represent the f24 key

	is_f3: BOOLEAN
			-- Current represent the f3 key

	is_f4: BOOLEAN
			-- Current represent the f4 key

	is_f5: BOOLEAN
			-- Current represent the f5 key

	is_f6: BOOLEAN
			-- Current represent the f6 key

	is_f7: BOOLEAN
			-- Current represent the f7 key

	is_f8: BOOLEAN
			-- Current represent the f8 key

	is_f9: BOOLEAN
			-- Current represent the f9 key

	is_find: BOOLEAN
			-- Current represent the find key

	is_g: BOOLEAN
			-- Current represent the G key

	is_greater: BOOLEAN
			-- Current represent the greater key

	is_h: BOOLEAN
			-- Current represent the H key

	is_hash: BOOLEAN
			-- Current represent the hash key

	is_help: BOOLEAN
			-- Current represent the help key

	is_home: BOOLEAN
			-- Current represent the home key

	is_i: BOOLEAN
			-- Current represent the I key

	is_insert: BOOLEAN
			-- Current represent the insert key

	is_j: BOOLEAN
			-- Current represent the J key

	is_k: BOOLEAN
			-- Current represent the K key

	is_keyboard_illumination_down: BOOLEAN
			-- Current represent the keyboard illumination down key

	is_keyboard_illumination_toggle: BOOLEAN
			-- Current represent the keyboard illumination toggle key

	is_keyboard_illuminationup: BOOLEAN
			-- Current represent the keyboard illumination up key

	is_keypad_0: BOOLEAN
			-- Current represent the key pad 0 key

	is_keypad_00: BOOLEAN
			-- Current represent the key pad 00 key

	is_keypad_000: BOOLEAN
			-- Current represent the key pad 000 key

	is_keypad_1: BOOLEAN
			-- Current represent the key pad 1 key

	is_keypad_2: BOOLEAN
			-- Current represent the key pad 2 key

	is_keypad_3: BOOLEAN
			-- Current represent the key pad 3 key

	is_keypad_4: BOOLEAN
			-- Current represent the key pad 4 key

	is_keypad_5: BOOLEAN
			-- Current represent the key pad 5 key

	is_keypad_6: BOOLEAN
			-- Current represent the key pad 6 key

	is_keypad_7: BOOLEAN
			-- Current represent the key pad 7 key

	is_keypad_8: BOOLEAN
			-- Current represent the key pad 8 key

	is_keypad_9: BOOLEAN
			-- Current represent the key pad 9 key

	is_keypad_a: BOOLEAN
			-- Current represent the key pad a key

	is_keypad_ampersand: BOOLEAN
			-- Current represent the key pad ampersand key

	is_keypad_at: BOOLEAN
			-- Current represent the key pad at key

	is_keypad_b: BOOLEAN
			-- Current represent the key pad b key

	is_keypad_backspace: BOOLEAN
			-- Current represent the key pad backspace key

	is_keypad_binary: BOOLEAN
			-- Current represent the key pad binary key

	is_keypad_c: BOOLEAN
			-- Current represent the key pad c key

	is_keypad_clear: BOOLEAN
			-- Current represent the key pad clear key

	is_keypad_clear_entry: BOOLEAN
			-- Current represent the key pad clear entry key

	is_keypad_colon: BOOLEAN
			-- Current represent the key pad colon key

	is_keypad_comma: BOOLEAN
			-- Current represent the key pad comma key

	is_keypad_d: BOOLEAN
			-- Current represent the key pad d key

	is_keypad_decimal: BOOLEAN
			-- Current represent the key pad decimal key

	is_keypad_divide: BOOLEAN
			-- Current represent the key pad divide key

	is_keypad_double_ampersand: BOOLEAN
			-- Current represent the key pad double ampersand key

	is_keypad_double_vertical_bar: BOOLEAN
			-- Current represent the key pad double vertical bar key

	is_keypad_e: BOOLEAN
			-- Current represent the key pad e key

	is_keypad_enter: BOOLEAN
			-- Current represent the key pad enter key

	is_keypad_exclamation_mark: BOOLEAN
			-- Current represent the key pad exclamation mark key

	is_keypad_f: BOOLEAN
			-- Current represent the key pad f key

	is_keypad_greater: BOOLEAN
			-- Current represent the key pad greater key

	is_keypad_hash: BOOLEAN
			-- Current represent the key pad hash key

	is_keypad_hexadecimal: BOOLEAN
			-- Current represent the key pad hexadecimal key

	is_keypad_left_brace: BOOLEAN
			-- Current represent the key pad left brace key

	is_keypad_left_parenthesis: BOOLEAN
			-- Current represent the key pad left parenthesis key

	is_keypad_less: BOOLEAN
			-- Current represent the key pad less key

	is_keypad_mem_add: BOOLEAN
			-- Current represent the key pad mem add key

	is_keypad_mem_clear: BOOLEAN
			-- Current represent the key pad mem clear key

	is_keypad_mem_divide: BOOLEAN
			-- Current represent the key pad mem divide key

	is_keypad_mem_multiply: BOOLEAN
			-- Current represent the key pad mem multiply key

	is_keypad_mem_recall: BOOLEAN
			-- Current represent the key pad mem recall key

	is_keypad_mem_store: BOOLEAN
			-- Current represent the key pad mem store key

	is_keypad_mem_subtract: BOOLEAN
			-- Current represent the key pad mem subtract key

	is_keypad_minus: BOOLEAN
			-- Current represent the key pad minus key

	is_keypad_multiply: BOOLEAN
			-- Current represent the key pad multiply key

	is_keypad_octal: BOOLEAN
			-- Current represent the key pad octal key

	is_keypad_percent: BOOLEAN
			-- Current represent the key pad percent key

	is_keypad_period: BOOLEAN
			-- Current represent the key pad period key

	is_keypad_plus: BOOLEAN
			-- Current represent the key pad plus key

	is_keypad_plus_minus: BOOLEAN
			-- Current represent the key pad plus minus key

	is_keypad_power: BOOLEAN
			-- Current represent the key pad power key

	is_keypad_right_brace: BOOLEAN
			-- Current represent the key pad right brace key

	is_keypad_right_parenthesis: BOOLEAN
			-- Current represent the key pad right parenthesis key

	is_keypad_space: BOOLEAN
			-- Current represent the key pad space key

	is_keypad_tab: BOOLEAN
			-- Current represent the key pad tab key

	is_keypad_vertical_bar: BOOLEAN
			-- Current represent the key pad vertical bar key

	is_keypad_xor: BOOLEAN
			-- Current represent the key pad xor key

	is_kp_equals: BOOLEAN
			-- Current represent the kp_equals key

	is_l: BOOLEAN
			-- Current represent the L key

	is_left: BOOLEAN
			-- Current represent the left key

	is_left_alt: BOOLEAN
			-- Current represent the left alt key

	is_left_bracket: BOOLEAN
			-- Current represent the leftbracket key

	is_left_ctrl: BOOLEAN
			-- Current represent the left ctrl key

	is_left_gui: BOOLEAN
			-- Current represent the left gui key

	is_left_parenthesis: BOOLEAN
			-- Current represent the left parenthesis key

	is_left_shift: BOOLEAN
			-- Current represent the left shift key

	is_less: BOOLEAN
			-- Current represent the less key

	is_m: BOOLEAN
			-- Current represent the M key

	is_mail: BOOLEAN
			-- Current represent the mail key

	is_media_select: BOOLEAN
			-- Current represent the media select key

	is_menu: BOOLEAN
			-- Current represent the menu key

	is_minus: BOOLEAN
			-- Current represent the minus key

	is_mode: BOOLEAN
			-- Current represent the mode key

	is_mute: BOOLEAN
			-- Current represent the mute key

	is_n: BOOLEAN
			-- Current represent the N key

	is_numlock_clear: BOOLEAN
			-- Current represent the numlock clear key

	is_o: BOOLEAN
			-- Current represent the O key

	is_oper: BOOLEAN
			-- Current represent the oper key

	is_out: BOOLEAN
			-- Current represent the out key

	is_p: BOOLEAN
			-- Current represent the P key

	is_page_down: BOOLEAN
			-- Current represent the page down key

	is_page_up: BOOLEAN
			-- Current represent the page up key

	is_paste: BOOLEAN
			-- Current represent the paste key

	is_pause: BOOLEAN
			-- Current represent the pause key

	is_percent: BOOLEAN
			-- Current represent the percent key

	is_period: BOOLEAN
			-- Current represent the period key

	is_plus: BOOLEAN
			-- Current represent the plus key

	is_power: BOOLEAN
			-- Current represent the power key

	is_print_screen: BOOLEAN
			-- Current represent the print screen key

	is_prior: BOOLEAN
			-- Current represent the prior key

	is_q: BOOLEAN
			-- Current represent the Q key

	is_question_mark: BOOLEAN
			-- Current represent the question mark key

	is_quote: BOOLEAN
			-- Current represent the quote key

	is_r: BOOLEAN
			-- Current represent the R key

	is_return: BOOLEAN
			-- Current represent the return key

	is_return2: BOOLEAN
			-- Current represent the return2 key

	is_right: BOOLEAN
			-- Current represent the right key

	is_right_alt: BOOLEAN
			-- Current represent the right alt key

	is_right_bracket: BOOLEAN
			-- Current represent the right bracket key

	is_right_ctrl: BOOLEAN
			-- Current represent the right ctrl key

	is_right_gui: BOOLEAN
			-- Current represent the right gui key

	is_right_parenthesis: BOOLEAN
			-- Current represent the right parenthesis key

	is_right_shift: BOOLEAN
			-- Current represent the right shift key

	is_s: BOOLEAN
			-- Current represent the S key

	is_scroll_lock: BOOLEAN
			-- Current represent the scroll lock key

	is_select: BOOLEAN
			-- Current represent the select key

	is_semicolon: BOOLEAN
			-- Current represent the semicolon key

	is_separator: BOOLEAN
			-- Current represent the separator key

	is_slash: BOOLEAN
			-- Current represent the slash key

	is_sleep: BOOLEAN
			-- Current represent the sleep key

	is_space: BOOLEAN
			-- Current represent the space key

	is_stop: BOOLEAN
			-- Current represent the stop key

	is_sysreq: BOOLEAN
			-- Current represent the sysreq key

	is_t: BOOLEAN
			-- Current represent the T key

	is_tab: BOOLEAN
			-- Current represent the tab key

	is_thousands_separator: BOOLEAN
			-- Current represent the thousands separator key

	is_u: BOOLEAN
			-- Current represent the U key

	is_underscore: BOOLEAN
			-- Current represent the underscore key

	is_undo: BOOLEAN
			-- Current represent the undo key

	is_unknown: BOOLEAN
			-- Current is not a valid key

	is_up: BOOLEAN
			-- Current represent the up key

	is_v: BOOLEAN
			-- Current represent the V key

	is_volume_down: BOOLEAN
			-- Current represent the volume down key

	is_volume_up: BOOLEAN
			-- Current represent the volume up key

	is_w: BOOLEAN
			-- Current represent the W key

	is_www: BOOLEAN
			-- Current represent the www key

	is_x: BOOLEAN
			-- Current represent the X key

	is_y: BOOLEAN
			-- Current represent the Y key

	is_z: BOOLEAN
			-- Current represent the Z key

	virtual_code: INTEGER_32
			-- Code of the key using the virtual layout keyboard
			-- (should be compatible between systems)
	
feature -- Comparison

	frozen deep_equal (a: detachable ANY; b: like arg #1): BOOLEAN
			-- Are a and b either both void
			-- or attached to isomorphic object structures?
			-- (from ANY)
		ensure -- from ANY
			instance_free: class
			shallow_implies_deep: standard_equal (a, b) implies Result
			both_or_none_void: (a = Void) implies (Result = (b = Void))
			same_type: (Result and (a /= Void)) implies (b /= Void and then a.same_type (b))
			symmetric: Result implies deep_equal (b, a)

	frozen equal (a: detachable ANY; b: like arg #1): BOOLEAN
			-- Are a and b either both void or attached
			-- to objects considered equal?
			-- (from ANY)
		ensure -- from ANY
			instance_free: class
			definition: Result = (a = Void and b = Void) or else ((a /= Void and b /= Void) and then a.is_equal (b))

	frozen is_deep_equal alias "≡≡≡" (other: GAME_VIRTUAL_KEY): BOOLEAN
			-- Are Current and other attached to isomorphic object structures?
			-- (from ANY)
		require -- from ANY
			other_not_void: other /= Void
		ensure -- from ANY
			shallow_implies_deep: standard_is_equal (other) implies Result
			same_type: Result implies same_type (other)
			symmetric: Result implies other.is_deep_equal (Current)

	is_equal (other: GAME_VIRTUAL_KEY): BOOLEAN
			-- Is other attached to an object considered
			-- equal to current object?
			-- (from ANY)
		require -- from ANY
			other_not_void: other /= Void
		ensure -- from ANY
			symmetric: Result implies other ~ Current
			consistent: standard_is_equal (other) implies Result

	frozen standard_equal (a: detachable ANY; b: like arg #1): BOOLEAN
			-- Are a and b either both void or attached to
			-- field-by-field identical objects of the same type?
			-- Always uses default object comparison criterion.
			-- (from ANY)
		ensure -- from ANY
			instance_free: class
			definition: Result = (a = Void and b = Void) or else ((a /= Void and b /= Void) and then a.standard_is_equal (b))

	frozen standard_is_equal alias "" (other: GAME_VIRTUAL_KEY): BOOLEAN
			-- Is other attached to an object of the same type
			-- as current object, and field-by-field identical to it?
			-- (from ANY)
		require -- from ANY
			other_not_void: other /= Void
		ensure -- from ANY
			same_type: Result implies same_type (other)
			symmetric: Result implies other.standard_is_equal (Current)
	
feature -- Status report

	conforms_to (other: ANY): BOOLEAN
			-- Does type of current object conform to type
			-- of other (as per Eiffel: The Language, chapter 13)?
			-- (from ANY)
		require -- from ANY
			other_not_void: other /= Void

	same_type (other: ANY): BOOLEAN
			-- Is type of current object identical to type of other?
			-- (from ANY)
		require -- from ANY
			other_not_void: other /= Void
		ensure -- from ANY
			definition: Result = (conforms_to (other) and other.conforms_to (Current))
	
feature -- Duplication

	copy (other: GAME_VIRTUAL_KEY)
			-- Update current object using fields of object attached
			-- to other, so as to yield equal objects.
			-- (from ANY)
		require -- from ANY
			other_not_void: other /= Void
			type_identity: same_type (other)
		ensure -- from ANY
			is_equal: Current ~ other

	frozen deep_copy (other: GAME_VIRTUAL_KEY)
			-- Effect equivalent to that of:
			--		copy (other . deep_twin)
			-- (from ANY)
		require -- from ANY
			other_not_void: other /= Void
		ensure -- from ANY
			deep_equal: deep_equal (Current, other)

	frozen deep_twin: GAME_VIRTUAL_KEY
			-- New object structure recursively duplicated from Current.
			-- (from ANY)
		ensure -- from ANY
			deep_twin_not_void: Result /= Void
			deep_equal: deep_equal (Current, Result)

	frozen standard_copy (other: GAME_VIRTUAL_KEY)
			-- Copy every field of other onto corresponding field
			-- of current object.
			-- (from ANY)
		require -- from ANY
			other_not_void: other /= Void
			type_identity: same_type (other)
		ensure -- from ANY
			is_standard_equal: standard_is_equal (other)

	frozen standard_twin: GAME_VIRTUAL_KEY
			-- New object field-by-field identical to other.
			-- Always uses default copying semantics.
			-- (from ANY)
		ensure -- from ANY
			standard_twin_not_void: Result /= Void
			equal: standard_equal (Result, Current)

	frozen twin: GAME_VIRTUAL_KEY
			-- New object equal to Current
			-- twin calls copy; to change copying/twinning semantics, redefine copy.
			-- (from ANY)
		ensure -- from ANY
			twin_not_void: Result /= Void
			is_equal: Result ~ Current
	
feature -- Basic operations

	frozen default: detachable GAME_VIRTUAL_KEY
			-- Default value of object's type
			-- (from ANY)

	frozen default_pointer: POINTER
			-- Default value of type POINTER
			-- (Avoid the need to write p.default for
			-- some p of type POINTER.)
			-- (from ANY)
		ensure -- from ANY
			instance_free: class

	default_rescue
			-- Process exception for routines with no Rescue clause.
			-- (Default: do nothing.)
			-- (from ANY)

	frozen do_nothing
			-- Execute a null action.
			-- (from ANY)
		ensure -- from ANY
			instance_free: class
	
feature -- Output

	Io: STD_FILES
			-- Handle to standard file setup
			-- (from ANY)
		ensure -- from ANY
			instance_free: class
			io_not_void: Result /= Void

	out: STRING_8
			-- New string containing terse printable representation
			-- of current object
			-- (from ANY)
		ensure -- from ANY
			out_not_void: Result /= Void

	print (o: detachable ANY)
			-- Write terse external representation of o
			-- on standard output.
			-- (from ANY)
		ensure -- from ANY
			instance_free: class

	frozen tagged_out: STRING_8
			-- New string containing terse printable representation
			-- of current object
			-- (from ANY)
		ensure -- from ANY
			tagged_out_not_void: Result /= Void
	
feature -- Platform

	Operating_environment: OPERATING_ENVIRONMENT
			-- Objects available from the operating system
			-- (from ANY)
		ensure -- from ANY
			instance_free: class
			operating_environment_not_void: Result /= Void
	
invariant
		-- from ANY
	reflexive_equality: standard_is_equal (Current)
	reflexive_conformance: conforms_to (Current)

end -- class GAME_VIRTUAL_KEY

Generated by ISE EiffelStudio