note

	description:
		"Abstract notion of the ability for widget to show the explanation%
		%Your widget class should inherit from this class and redefine%
		%focus_label to return FOCUS_LABEL_I to be used with this widget."
	legal: "See notice at end of class."
	status: "See notice at end of class.";
	date: "$Date$";
	revision: "$Revision$"

deferred class FOCUSABLE  

feature -- Initialization

	initialize_focus
			-- Add the focusable behavior to Current.
		require
			valid_focus_string: valid_focus_string
		do
			focus_label.initialize_widget (Current);
		end;

feature -- Properties

	focus_string: STRING

	focus_label: FOCUS_LABEL_I
		deferred
		end

feature -- Access

	valid_focus_string: BOOLEAN
		do
			Result := focus_string /= Void	
		end;

	destroyed: BOOLEAN
		deferred
		end

feature -- Setting

	set_focus_string (s: STRING)
			--set explanation text for current widget
		do
			focus_string := s
		end;

feature {FOCUS_LABEL} -- Implementation

	set_tool_info (a_tool_info: ANY)
			-- Set `tool_info'.
		do
			tool_info := a_tool_info
		end

	tool_info: ANY;
			-- Tool info for Current
			-- Used only in Windows implementation of FOCUS_LABEL

note
	copyright:	"Copyright (c) 1984-2006, Eiffel Software and others"
	license:	"Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
	source: "[
			 Eiffel Software
			 356 Storke Road, Goleta, CA 93117 USA
			 Telephone 805-685-1006, Fax 805-685-6869
			 Website http://www.eiffel.com
			 Customer support http://support.eiffel.com
		]"




end -- class FOCUSABLE