ANY NONE
class interface FONT
   -- Class FONT allow to draw characters in style defined by some
   -- BASIC_FONT and add some decoration like underline.

creation
   make (basic: BASIC_FONT)
      require
         basic /= Void

feature(s) from COLOR_LIST
   white_color: COLOR

   black_color: COLOR

   dim_grey_color: COLOR

   dark_grey_color: COLOR

   grey_color: COLOR

   light_grey_color: COLOR

   dark_blue_color: COLOR

   medium_blue_color: COLOR

   blue_color: COLOR

   royal_blue_color: COLOR

   deep_sky_blue_color: COLOR

   sky_blue_color: COLOR

   light_sky_blue_color: COLOR

   steel_blue_color: COLOR

   light_steel_blue_color: COLOR

   light_blue_color: COLOR

   pale_turquoise_color: COLOR

   dark_turquoise_color: COLOR

   medium_turquoise_color: COLOR

   turquoise_color: COLOR

   dark_cyan_color: COLOR

   cyan_color: COLOR

   light_cyan_color: COLOR

   dark_green_color: COLOR

   green_color: COLOR

   light_green_color: COLOR

   yellow_green_color: COLOR

   dark_khaki_color: COLOR

   khaki_color: COLOR

   yellow_color: COLOR

   light_yellow_color: COLOR

   gold_color: COLOR

   beige_color: COLOR

   chocolate_color: COLOR

   firebrick_color: COLOR

   brown_color: COLOR

   dark_salmon_color: COLOR

   salmon_color: COLOR

   light_salmon_color: COLOR

   dark_orange_color: COLOR

   orange_color: COLOR

   orange_red_color: COLOR

   dark_red_color: COLOR

   red_color: COLOR

   hot_pink_color: COLOR

   deep_pink_color: COLOR

   pink_color: COLOR

   light_pink_color: COLOR

   pale_violet_red_color: COLOR

   maroon_color: COLOR

   medium_violet_red_color: COLOR

   violet_red_color: COLOR

   violet_color: COLOR

   dark_magenta_color: COLOR

   magenta_color: COLOR

   dark_violet_color: COLOR

   blue_violet_color: COLOR

   medium_purple_color: COLOR

   purple_color: COLOR

feature(s) from STATE_CONSTANTS
   state_normal: INTEGER

   state_active: INTEGER

   state_prelight: INTEGER

   state_selected: INTEGER

   state_insensitive: INTEGER

feature(s) from ALIGNMENT_CONSTANTS
   center_alignment: ALIGNMENT

   left_alignment: ALIGNMENT

   right_alignment: ALIGNMENT

   top_alignment: ALIGNMENT

   down_alignment: ALIGNMENT

   top_left_alignment: ALIGNMENT

   top_right_alignment: ALIGNMENT

   down_right_alignment: ALIGNMENT

   down_left_alignment: ALIGNMENT

feature(s) from GRAPHIC
   vision: VISION

   font_manager: FONT_MANAGER

   default_font: BASIC_FONT

feature(s) from BASIC_FONT
   --   name: STRING

   make_system_specific (font_name: STRING)
      -- It's recommended not to use this function.
      -- The font_name is the font name in the system syntax (ex: XLFD
      -- for X11).
      require
         font_name /= Void;
         font_manager.font_exist_by_name(font_name)

   make_from_id (font_id: POINTER)

feature(s) from BASIC_FONT
   height: INTEGER

   base_line: INTEGER
      -- height from the top to the bottom of characters like 'P' or 'k'. Height is bigger due to characters that go under the base line like 'j' or 'p'.

   text_width (text: UNICODE_STRING): INTEGER

feature(s) from BASIC_FONT
   font: POINTER

   font_desc: POINTER
      --TODO: suppress this pointer

feature(s) from BASIC_FONT
   basic_font_properties (font_id: POINTER): POINTER

   default_font_name: STRING
      --default_font_name: STRING is "-*-charter-*-*-*-*-*-500-*-*-*-*-iso8859-1"
      --default_font_name: STRING is "-monotype-corsiva-*-*-*-*-80-*-100-100-*-*-iso10646-*"
      --default_font_name: STRING is "-gnu-*-*-*-*-*-16-*-75-*-*-*-iso10646-*"

   basic_font_new (font_name: STRING): POINTER

   basic_font_height (f: POINTER): INTEGER

   basic_font_ascent (f: POINTER): INTEGER

   basic_font_text_width (fdes, fon: POINTER; str: POINTER; size: INTEGER): INTEGER

feature(s) from FONT
   make (basic: BASIC_FONT)
      require
         basic /= Void



end of FONT