
indexing
	
	description: "[
		A user interface that is abstract in that it can be
		displayed in a graphical or non-graphical window.
		]"
	author: "David Hollenberg"
	date: "November 3, 2003"

deferred class ABSTRACT_INTERFACE
inherit
	ANY
		undefine
			default_create
		end

feature -- Operations

	build
			-- Take actions necessary to build interface
		require
			is_buildable: is_buildable
		deferred
		end

	reset
			-- Take actions necessary to reset interface
			-- after error
		deferred
		end

feature -- Properties

	is_buildable: BOOLEAN
			-- Can interface be built?
		deferred
		end

	is_active: BOOLEAN
			-- Will user interface initiate new actions in
			-- response to user input?
		deferred
		end

feature -- Modification

	enable_active
			-- Make interface active
		deferred
		ensure
			active: is_active
		end

	disable_active
			-- Make interface inactive
			-- (can look but cannot initiate most actions)
		deferred
		ensure
			not_active: not is_active
		end

end
