indexing
	description: "Contains information about the Wm_drawitem message."
	status: "See notice at end of class."
	date: "$Date$"
	revision: "$Revision$"
class interface
	WEL_DRAW_ITEM_STRUCT
create 
	make_by_pointer (pointer: POINTER)
feature 
	ctl_id: INTEGER
			
	ctl_type: INTEGER
			
			WEL_ODT_CONSTANTS
	dc: WEL_CLIENT_DC
			
			
	item: POINTER
			
			
			 WEL_ANY
	item_action: INTEGER
			
			WEL_ODA_CONSTANTS
	item_data: INTEGER
			
	item_id: INTEGER
			
			
			
	item_state: INTEGER
			
			
			WEL_ODS_CONSTANTS
	menu_item: WEL_MENU
			
		require
			feature_supported: ctl_type = (create {WEL_ODT_CONSTANTS}).odt_menu
	rect_item: WEL_RECT
			
			
		ensure
			result_not_void: Result /= void
	window_item: WEL_CONTROL
			
		require
			feature_supported: ctl_type /= (create {WEL_ODT_CONSTANTS}).odt_menu
	
feature 
	structure_size: INTEGER
			
		ensure  WEL_STRUCTURE
			positive_result: Result > 0
	
feature 
	exists: BOOLEAN
			item
			 WEL_ANY
		ensure  WEL_ANY
			Result = (item /= default_pointer)
	shared: BOOLEAN
			item
			item
			destroy_item
			item
			 WEL_ANY
	
feature 
	set_shared
			shared
			 WEL_ANY
		ensure  WEL_ANY
			shared: shared
	set_unshared
			shared
			 WEL_ANY
		ensure  WEL_ANY
			unshared: not shared
	
feature 
	set_item (an_item: POINTER)
			iteman_item
			 WEL_ANY
		ensure  WEL_ANY
			item_set: item = an_item
	
feature 
	dispose
			Current
			
			
			Current
			
			 WEL_ANY
	
feature 
	to_integer: INTEGER
			item
			 WEL_ANY
		ensure  WEL_ANY
			Result = cwel_pointer_to_integer (item)
	
feature 
	initialize
			
			 WEL_STRUCTURE
		require  WEL_STRUCTURE
			exists: exists
	initialize_with_character (a_character: CHARACTER)
			a_character
			 WEL_STRUCTURE
		require  WEL_STRUCTURE
			exists: exists
	memory_copy (source_pointer: POINTER; length: INTEGER)
			lengthsource_pointeritem
			 WEL_STRUCTURE
		require  WEL_STRUCTURE
			length_small_enough: length <= structure_size
			length_large_enough: length > 0
			exists: exists
	
invariant
	dc_exists: dc /= void and then dc.exists
		 ANY
	reflexive_equality: standard_is_equal (Current)
	reflexive_conformance: conforms_to (Current)
end -- WEL_DRAW_ITEM_STRUCT