indexing
	description: "Standard dialog box to open a file."
	status: "See notice at end of class."
	date: "$Date$"
	revision: "$Revision$"
class interface
	WEL_OPEN_FILE_DIALOG
create 
	make
			
			 WEL_FILE_DIALOG
feature 
	file_extension_offset: INTEGER
			
			file_name
			 WEL_FILE_DIALOG
		require  WEL_FILE_DIALOG
			selected: selected
		ensure  WEL_FILE_DIALOG
			result_greater_than_or_equal_to_one: Result >= 1
	file_name: STRING
			
			 WEL_FILE_DIALOG
		require  WEL_FILE_DIALOG
			selected: selected
		ensure  WEL_FILE_DIALOG
			result_not_void: Result /= void
	file_name_offset: INTEGER
			
			file_name
			 WEL_FILE_DIALOG
		require  WEL_FILE_DIALOG
			selected: selected
		ensure  WEL_FILE_DIALOG
			result_greater_than_or_equal_to_one: Result >= 1
	file_title: STRING
			
			 WEL_FILE_DIALOG
		require  WEL_FILE_DIALOG
			selected: selected
		ensure  WEL_FILE_DIALOG
			result_not_void: Result /= void
	filter_index: INTEGER
			
			 WEL_FILE_DIALOG
		require  WEL_FILE_DIALOG
			selected: selected
		ensure  WEL_FILE_DIALOG
			positive_result: Result >= 0
	flags: INTEGER
			
			
			WEL_OFN_CONSTANTS
			 WEL_FILE_DIALOG
	item: POINTER
			
			
			 WEL_ANY
	Max_file_name_length: INTEGER is 1024
			
			 WEL_FILE_DIALOG
	multiple_file_names: LINKED_LIST [STRING]
			
			 WEL_FILE_DIALOG
		require  WEL_FILE_DIALOG
			multiple_files_flag_set: has_flag (ofn_allowmultiselect)
		ensure  WEL_FILE_DIALOG
			result_not_void: Result /= void
	title: STRING
			
			 WEL_FILE_DIALOG
		ensure  WEL_FILE_DIALOG
			result_not_void: Result /= void
	
feature 
	structure_size: INTEGER
			
			 WEL_FILE_DIALOG
		ensure  WEL_STRUCTURE
			positive_result: Result > 0
	
feature 
	exists: BOOLEAN
			item
			 WEL_ANY
		ensure  WEL_ANY
			Result = (item /= default_pointer)
	has_flag (a_flags: INTEGER): BOOLEAN
			a_flagsflags
			WEL_OFN_CONSTANTSa_flags
			 WEL_FILE_DIALOG
	selected: BOOLEAN
			
			
			
			 WEL_STANDARD_DIALOG
	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 
	add_flag (a_flags: INTEGER)
			a_flagsflags
			WEL_OFN_CONSTANTSa_flags
			 WEL_FILE_DIALOG
		ensure  WEL_FILE_DIALOG
			has_flag: has_flag (a_flags)
	remove_flag (a_flags: INTEGER)
			a_flagsflags
			WEL_OFN_CONSTANTSa_flags
			 WEL_FILE_DIALOG
		ensure  WEL_FILE_DIALOG
			has_not_flag: not has_flag (a_flags)
	set_default_extension (extension: STRING)
			extension
			
			
			 WEL_FILE_DIALOG
		require  WEL_FILE_DIALOG
			extension_not_void: extension /= void
	set_default_title
			
			
			 WEL_FILE_DIALOG
		ensure  WEL_FILE_DIALOG
			default_title_set: title.is_equal ("")
	set_file_name (a_file_name: STRING)
			file_namea_file
			
			 WEL_FILE_DIALOG
		require  WEL_FILE_DIALOG
			a_file_name_not_void: a_file_name /= void
			a_file_name_count_ok: a_file_name.count <= max_file_name_length
		ensure  WEL_FILE_DIALOG
			file_name_set: file_name.is_equal (a_file_name)
	set_filter (filter_names, filter_patterns: ARRAY [STRING])
			
			filter_names
			filter_patterns
			
			
			
			
			 WEL_FILE_DIALOG
		require  WEL_FILE_DIALOG
			filter_names_not_void: filter_names /= void
			filter_patterns_not_void: filter_patterns /= void
			same_count: filter_names.count = filter_patterns.count
			no_void_name: not filter_names.has (void)
			no_void_pattern: not filter_patterns.has (void)
	set_filter_index (a_filter_index: INTEGER)
			filter_indexa_filter_index
			 WEL_FILE_DIALOG
		require  WEL_FILE_DIALOG
			positive_filter_index: a_filter_index >= 0
		ensure  WEL_FILE_DIALOG
			filter_index_set: filter_index = a_filter_index
	set_flags (a_flags: INTEGER)
			flagsa_flags
			WEL_OFN_CONSTANTSa_flags
			 WEL_FILE_DIALOG
		ensure  WEL_FILE_DIALOG
			flags_set: flags = a_flags
	set_initial_directory (directory: STRING)
			directory
			 WEL_FILE_DIALOG
		require  WEL_FILE_DIALOG
			directory_not_void: directory /= void
	set_initial_directory_as_current
			
			 WEL_FILE_DIALOG
	set_item (an_item: POINTER)
			iteman_item
			 WEL_ANY
		ensure  WEL_ANY
			item_set: item = an_item
	set_title (a_title: STRING)
			titlea_title
			
			 WEL_FILE_DIALOG
		require  WEL_FILE_DIALOG
			a_title_not_void: a_title /= void
		ensure  WEL_FILE_DIALOG
			title_set: title.is_equal (a_title)
	
feature 
	dispose
			Current
			
			
			Current
			
			 WEL_ANY
	
feature 
	to_integer: INTEGER
			item
			 WEL_ANY
		ensure  WEL_ANY
			Result = cwel_pointer_to_integer (item)
	
feature 
	activate (a_parent: WEL_COMPOSITE_WINDOW)
			
			a_parent
		require  WEL_STANDARD_DIALOG
			a_parent_not_void: a_parent /= void
			a_parent_exists: a_parent.exists
	structure_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
		 ANY
	reflexive_equality: standard_is_equal (Current)
	reflexive_conformance: conforms_to (Current)
		 WEL_FILE_DIALOG
	str_file_name_not_void: str_file_name /= void
	str_file_name_exists: str_file_name.exists
	str_file_title_not_void: str_file_title /= void
	str_file_title_exists: str_file_title.exists
	str_title_not_void: str_title /= void
	str_title_exists: str_title.exists
end -- WEL_OPEN_FILE_DIALOG