indexing
	description: "Unit conversion."
	status: "See notice at end of class."
	date: "$Date$"
	revision: "$Revision$"

class interface
	WEL_UNIT_CONVERSION

feature -- Access

	Himetric_per_inch: INTEGER is 2540
			-- Defined as HIMETRIC_PER_INCH in AtlWin.h
	
feature -- Basic Operations

	himetric_to_pixel (a_size_in_himetric: WEL_SIZE): WEL_SIZE
			-- Convert himetric into pixels.
		require
			non_void_size: a_size_in_himetric /= void
		ensure
			non_void_result: Result /= void

	logical_to_pixel (hdc: WEL_DC; lo: INTEGER): INTEGER
			-- Convert lo expressed in logical unit into pixel unit.

	logical_to_point (hdc: WEL_DC; lo: INTEGER): INTEGER
			-- Convert a size lo expressed in logical unit into point.

	map_loghim_to_pixel (x, ppli: INTEGER): INTEGER
			-- Defined as MAP_LOGHIM_TO_PIX in AtlWin.h

	map_pixel_to_loghim (x, ppli: INTEGER): INTEGER
			-- Defined as MAP_PIX_TO_LOGHIM in AtlWin.h

	pixel_to_himetric (a_size_in_pixel: WEL_SIZE): WEL_SIZE
			-- Convert pixels into himetric.
		require
			non_void_size: a_size_in_pixel /= void
		ensure
			non_void_result: Result /= void

	pixel_to_logical (hdc: WEL_DC; pi: INTEGER): INTEGER
			-- Convert pi expressed in pixel unit into logical unit.

	pixel_to_point (hdc: WEL_DC; pi: INTEGER): INTEGER
			-- Convert a size pi expressed in pixel into point.

	point_to_logical (hdc: WEL_DC; pt, divisor: INTEGER): INTEGER
			-- Convert a size pt/divisor expressed in point into logical units.

	point_to_pixel (hdc: WEL_DC; pt, divisor: INTEGER): INTEGER
			-- Convert a size pt/divisor expressed in point into pixel.
	
invariant

		-- from ANY
	reflexive_equality: standard_is_equal (Current)
	reflexive_conformance: conforms_to (Current)

end -- class WEL_UNIT_CONVERSION