    class
    	WEL_SCROLLER

    General
    	cluster: wel
    	description: "This class processes the scroll messages associated to a window."
    	create: make_with_options, make

    Ancestors
    	ANY
    	WEL_SB_CONSTANTS
    	WEL_SCROLL_BAR_CONSTANTS

    Queries
    	horizontal_line: INTEGER_32
    	horizontal_page: INTEGER_32
    	horizontal_position: INTEGER_32
    	maximal_horizontal_position: INTEGER_32
    	maximal_vertical_position: INTEGER_32
    	minimal_horizontal_position: INTEGER_32
    	minimal_vertical_position: INTEGER_32
    	valid_maximal_horizontal_position (a_position: INTEGER_32): BOOLEAN
    	valid_maximal_vertical_position (a_position: INTEGER_32): BOOLEAN
    	vertical_line: INTEGER_32
    	vertical_page: INTEGER_32
    	vertical_position: INTEGER_32
    	window: WEL_COMPOSITE_WINDOW

    Commands
    	horizontal_update (inc, position: INTEGER_32)
    	make (a_window: WEL_COMPOSITE_WINDOW; horizontal_size, vertical_size, line, page: INTEGER_32)
    	make_with_options (a_window: WEL_COMPOSITE_WINDOW; a_minimal_horizontal_position, a_maximal_horizontal_position, a_minimal_vertical_position, a_maximal_vertical_position, a_horizontal_line, a_horizontal_page, a_vertical_line, a_vertical_page: INTEGER_32)
    	on_horizontal_scroll (scroll_code, pos: INTEGER_32)
    	on_vertical_scroll (scroll_code, pos: INTEGER_32)
    	set_horizontal_line (unit: INTEGER_32)
    	set_horizontal_page (page_magnitude: INTEGER_32)
    	set_horizontal_position (position: INTEGER_32)
    	set_horizontal_range (minimum, maximum: INTEGER_32)
    	set_vertical_line (unit: INTEGER_32)
    	set_vertical_page (page_magnitude: INTEGER_32)
    	set_vertical_position (position: INTEGER_32)
    	set_vertical_range (minimum, maximum: INTEGER_32)
    	vertical_update (inc, position: INTEGER_32)

    Constraints
    	window not void
    	horizontal position small enough
    	horizontal position large enough
    	vertical position small enough
    	vertical position large enough
    	consistent horizontal range
    	consistent vertical range
    	positive horizontal line
    	positive vertical line
    	positive horizontal page
    	positive vertical page