indexing description: "Contains basic information about a physical font. All size are given in logical units; that is, they depend on the current mapping mode of the display context." status: "See notice at end of class." date: "$Date$" revision: "$Revision$" class interface WEL_TEXT_METRIC create make (dc: WEL_DC) -- Make a text metrics structure for dc. require dc_not_void: dc /= void dc_exists: dc.exists make_by_pointer (a_pointer: POINTER) -- Set item with a_pointer. -- Since item is shared, it does not need -- to be freed. -- Caution: a_pointer must be a pointer -- coming from Windows. -- (from WEL_ANY) ensure -- from WEL_ANY item_set: item = a_pointer shared: shared feature -- Access ascent: INTEGER -- Ascent (units above the base line) of characters average_character_width: INTEGER -- Average width of characters in the font (generally -- defined as the width of the letter x) break_character: INTEGER -- Value of the character that will be used to define -- word breaks for text justification character_set: INTEGER -- Character set of the font default_character: INTEGER -- Value of the character to be substituted for -- characters not in the font descent: INTEGER -- Descent (units below the base line) of characters digitized_aspect_x: INTEGER -- Horizontal aspect of the device for which the -- font was designed digitized_aspect_y: INTEGER -- Vertical aspect of the device for which the font -- was designed external_leading: INTEGER -- Amount of extra leading (space) that the application -- adds between rows first_character: INTEGER -- Value of the first character defined in the font height: INTEGER -- Height (ascent + descent) of characters internal_leading: INTEGER -- Amount of leading (space) inside the bounds set by -- height italic: INTEGER -- Italic font if it is nonzero item: POINTER -- Generic Windows handle or structure pointer. -- Can be a HWND, HICON, RECT *, WNDCLASS *, etc... -- (from WEL_ANY) last_character: INTEGER -- Value of the last character defined in the font maximum_character_width: INTEGER -- Width of the widest character in the font overhang: INTEGER -- Extra width per string that may be added to some -- synthesized fonts pitch_and_family: INTEGER -- Information about the pitch, the technology, and -- the family of a physical font. -- See class WEL_TMPF_CONSTANTS for values. struckout: INTEGER -- Strikeout font if it is nonzero underlined: INTEGER -- Underlined font if it is nonzero weight: INTEGER -- Weight of the font. -- See class WEL_FW_CONSTANTS for values. feature -- Measurement structure_size: INTEGER -- Size to allocate (in bytes) ensure -- from WEL_STRUCTURE positive_result: Result > 0 feature -- Status report exists: BOOLEAN -- Does the item exist? -- (from WEL_ANY) ensure -- from WEL_ANY Result = (item /= default_pointer) shared: BOOLEAN -- Is item shared by another object? -- If False (by default), item will -- be destroyed by destroy_item. -- If True, item will not be destroyed. -- (from WEL_ANY) feature -- Status setting set_shared -- Set shared to True. -- (from WEL_ANY) ensure -- from WEL_ANY shared: shared set_unshared -- Set shared to False. -- (from WEL_ANY) ensure -- from WEL_ANY unshared: not shared feature -- Element change set_item (an_item: POINTER) -- Set item with an_item -- (from WEL_ANY) ensure -- from WEL_ANY item_set: item = an_item feature -- Removal dispose -- Destroy the inner structure of Current. -- -- This function should be called by the GC when the -- object is collected or by the user if Current is -- no more usefull. -- (from WEL_ANY) feature -- Conversion to_integer: INTEGER -- Converts item to an integer. -- (from WEL_ANY) ensure -- from WEL_ANY Result = cwel_pointer_to_integer (item) feature -- Basic operations initialize -- Fill Current with zeros. -- (from WEL_STRUCTURE) require -- from WEL_STRUCTURE exists: exists initialize_with_character (a_character: CHARACTER) -- Fill current with a_character. -- (from WEL_STRUCTURE) require -- from WEL_STRUCTURE exists: exists memory_copy (source_pointer: POINTER; length: INTEGER) -- Copy length bytes from source_pointer to item. -- (from WEL_STRUCTURE) require -- from WEL_STRUCTURE length_small_enough: length <= structure_size length_large_enough: length > 0 exists: exists invariant -- from ANY reflexive_equality: standard_is_equal (Current) reflexive_conformance: conforms_to (Current) end -- class WEL_TEXT_METRIC