class interface TEXT_METRICS feature(s) from TEXT_METRICS is_ready: BOOLEAN -- Is the associated device ready? feature(s) from TEXT_METRICS -- Metrics font: LOGICAL_FONT -- Logical font corresponding to the current font. require ready: is_ready ensure is_copy: Result /= Void; -- can be modified. no_rotation: Result.character_orientation = 0 and Result.line_orientation = 0 font_families: DS_LIST[LOGICAL_FONT] -- List of all font families available (a single representative -- font is randomly elected for each family). require ready: is_ready ensure done: Result /= Void; -- list regenerated for each call. is_copy: font_family (typeface_name: STRING): DS_LIST[LOGICAL_FONT] -- List all fonts from the typeface_name family. require ready: is_ready; valid: typeface_name /= Void and then typeface_name.count > 0 ensure done: Result /= Void; -- new list each time. is_copy: feature(s) from TEXT_METRICS -- Metrics is_vector: BOOLEAN -- Is the current font a vector font? require ready: is_ready is_truetype: BOOLEAN -- Is the current font a true type font? require ready: is_ready is_device: BOOLEAN -- Is the current font a device specific font? require ready: is_ready ascent: INTEGER -- Current font's ascent (units above the base line). require ready: is_ready descent: INTEGER -- Current font's descent (units under the base line). require ready: is_ready height: INTEGER -- Current font's line height (ascent + descent). require ready: is_ready internal_leading: INTEGER -- Current font's internal leading (blank space above most characters). require ready: is_ready external_leading: INTEGER -- Current font's external leading (space between row, added to height). require ready: is_ready maximum_character_width: INTEGER -- Current font maximum char width. require ready: is_ready invariant valid_parent: parent /= Void; end of TEXT_METRICS