indexing
	description: "Basic windows routines to draw controls like owner-draw-buttons."
	status: "See notice at end of class"
	date: "$Date$"
	revision: "$Revision$"

class interface
	WEL_DRAWING_ROUTINES

feature -- Access

	Dt_bottom: INTEGER is 8
			-- Declared in Windows as DT_BOTTOM
			-- (from WEL_DT_CONSTANTS)

	Dt_calcrect: INTEGER is 1024
			-- Declared in Windows as DT_CALCRECT
			-- (from WEL_DT_CONSTANTS)

	Dt_center: INTEGER is 1
			-- Declared in Windows as DT_CENTER
			-- (from WEL_DT_CONSTANTS)

	Dt_expandtabs: INTEGER is 64
			-- Declared in Windows as DT_EXPANDTABS
			-- (from WEL_DT_CONSTANTS)

	Dt_externalleading: INTEGER is 512
			-- Declared in Windows as DT_EXTERNALLEADING
			-- (from WEL_DT_CONSTANTS)

	Dt_internal: INTEGER is 4096
			-- Declared in Windows as DT_INTERNAL
			-- (from WEL_DT_CONSTANTS)

	Dt_left: INTEGER is 0
			-- Declared in Windows as DT_LEFT
			-- (from WEL_DT_CONSTANTS)

	Dt_noclip: INTEGER is 256
			-- Declared in Windows as DT_NOCLIP
			-- (from WEL_DT_CONSTANTS)

	Dt_noprefix: INTEGER is 2048
			-- Declared in Windows as DT_NOPREFIX
			-- (from WEL_DT_CONSTANTS)

	Dt_right: INTEGER is 2
			-- Declared in Windows as DT_RIGHT
			-- (from WEL_DT_CONSTANTS)

	Dt_singleline: INTEGER is 32
			-- Declared in Windows as DT_SINGLELINE
			-- (from WEL_DT_CONSTANTS)

	Dt_tabstop: INTEGER is 128
			-- Declared in Windows as DT_TABSTOP
			-- (from WEL_DT_CONSTANTS)

	Dt_top: INTEGER is 0
			-- Declared in Windows as DT_TOP
			-- (from WEL_DT_CONSTANTS)

	Dt_vcenter: INTEGER is 4
			-- Declared in Windows as DT_VCENTER
			-- (from WEL_DT_CONSTANTS)

	Dt_wordbreak: INTEGER is 16
			-- Declared in Windows as DT_WORDBREAK
			-- (from WEL_DT_CONSTANTS)
	
feature -- Basic operations

	draw_edge (dc: WEL_DC; rect: WEL_RECT; type, border: INTEGER)
			-- Draw a edge corresponding to the given options.
			-- See WEL_DRAWING_ROUTINES_CONSTANTS for type and
			-- border.
		require
			rect_not_void: rect /= void
			dc_not_void: dc /= void
			dc_exists: dc.exists

	draw_focus_rect (dc: WEL_DC; rect: WEL_RECT)
			-- Draw a focus line in the given rect.
		require
			rect_not_void: rect /= void
			dc_not_void: dc /= void
			dc_exists: dc.exists

	draw_insensitive_bitmap (dc: WEL_DC; bitmap: WEL_BITMAP; x, y: INTEGER)
			-- Draw the given bitmap converted to look insensitive
		require
			bitmap_not_void: bitmap /= void
			bitmap_exists: bitmap.exists
			dc_not_void: dc /= void
			dc_exists: dc.exists

	draw_insensitive_text (dc: WEL_DC; txt: STRING; x, y: INTEGER)
			-- Draw the given text with the insensitive
		require
			txt_not_void: txt /= void
			dc_not_void: dc /= void
			dc_exists: dc.exists
	
invariant

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

end -- class WEL_DRAWING_ROUTINES