indexing
	description: "Information about message Wm_syscommand which is sent when the user chooses a command from the System menu (also known as Control menu) or when the user chooses the Maximize button or Minimize button."
	status: "See notice at end of class."
	date: "$Date$"
	revision: "$Revision$"

class interface
	WEL_SYSTEM_COMMAND_MESSAGE

create 

	make (a_window: WEL_WINDOW; a_message, a_w_param, a_l_param: INTEGER)
			-- Set window, message, w_param, l_param with
			-- a_window, a_message, a_w_param, a_l_param
			-- (from WEL_MESSAGE_INFORMATION)
		ensure -- from WEL_MESSAGE_INFORMATION
			window_set: window = a_window
			message_set: message = a_message
			w_param_set: w_param = a_w_param
			l_param_set: l_param = a_l_param

feature -- Initialization

	make (a_window: WEL_WINDOW; a_message, a_w_param, a_l_param: INTEGER)
			-- Set window, message, w_param, l_param with
			-- a_window, a_message, a_w_param, a_l_param
			-- (from WEL_MESSAGE_INFORMATION)
		ensure -- from WEL_MESSAGE_INFORMATION
			window_set: window = a_window
			message_set: message = a_message
			w_param_set: w_param = a_w_param
			l_param_set: l_param = a_l_param
	
feature -- Access

	l_param: INTEGER
			-- Additional information about message. The exact
			-- meaning depends on the value of message.
			-- (from WEL_MESSAGE_INFORMATION)

	message: INTEGER
			-- Message number. See class WEL_WM_CONSTANTS for
			-- different values.
			-- (from WEL_MESSAGE_INFORMATION)

	type: INTEGER
			-- Type of system command requested.
			-- See class WEL_SC_CONSTANTS for different values.

	w_param: INTEGER
			-- Additional information about message. The exact
			-- meaning depends on the value of message.
			-- (from WEL_MESSAGE_INFORMATION)

	window: WEL_WINDOW
			-- Window which receives message
			-- (from WEL_MESSAGE_INFORMATION)

	x: INTEGER
			-- Horizontal position in screen coordinates

	y: INTEGER
			-- Vertical position in screen coordinates
	
feature -- Status report

	is_arrange: BOOLEAN
			-- Is the command type "Arrange"?

	is_close: BOOLEAN
			-- Is the command type "Close"?

	is_horizontal_scroll: BOOLEAN
			-- Is the command type "Horizontal scroll"?

	is_hot_key: BOOLEAN
			-- Is the command type "Hot key"?

	is_key_menu: BOOLEAN
			-- Is the command type "Key menu"?

	is_maximize: BOOLEAN
			-- Is the command type "Maximize"?

	is_minimize: BOOLEAN
			-- Is the command type "Minimize"?

	is_mouse_menu: BOOLEAN
			-- Is the command type "Mouse menu"?

	is_move: BOOLEAN
			-- Is the command type "Move"?

	is_next_window: BOOLEAN
			-- Is the command type "Next window"?

	is_previous_window: BOOLEAN
			-- Is the command type "Previous window"?

	is_restore: BOOLEAN
			-- Is the command type "Restore"?

	is_screen_save: BOOLEAN
			-- Is the command type "Screen save"?

	is_size: BOOLEAN
			-- Is the command type "Size"?

	is_task_list: BOOLEAN
			-- Is the command type "Task list"?

	is_vertical_scroll: BOOLEAN
			-- Is the command type "Vertical scroll"?
	
invariant

		-- from ANY
	reflexive_equality: standard_is_equal (Current)
	reflexive_conformance: conforms_to (Current)

end -- class WEL_SYSTEM_COMMAND_MESSAGE