indexing description: "[ Any font class should implement EM_FONT. EM_FONT gives the possibility to draw a CHARACTER to an EM_SURFACE. ]" date: "$Date$" revision: "$Revision$" deferred class EM_FONT feature -- Measurement width (a_character: CHARACTER): INTEGER is -- Width of `a_character' deferred end height (a_character: CHARACTER): INTEGER is -- Height of `a_character' deferred end string_width (a_string: STRING): INTEGER is -- Width of `a_string' deferred end string_height (a_string: STRING): INTEGER is -- Height of `a_string' deferred end feature -- Drawing draw ( a_character: CHARACTER; a_surface: EM_SURFACE; x: INTEGER; y:INTEGER) is -- Draws `a_character' on `a_surface' to position `x' `y'. require a_surface /= void deferred end draw_part ( rect: EM_RECT; a_character: CHARACTER; a_surface: EM_SURFACE; x: INTEGER; y: INTEGER) is -- Draws `rect' part of `a_character' on `a_surface' to position `x' `y'. require a_surface /= void rect /= void deferred end draw_string (a_string: STRING; a_surface: EM_SURFACE; x: INTEGER; y: INTEGER) is -- Draws `a_string' on `a_surface' to position `x' `y'. require a_string_not_void: a_string /= void and then a_string.count > 0 a_surface_not_void: a_surface /= void deferred end end