note description: "[ Root class for all "windows" in VITP. A scrollable drawing area (i.e. an {EV_MODEL_WORLD_CELL} that is also a {VIEW} through inheritance from {JJ_MODEL_WORLD_CELL_VIEW}. ]" author: "Jimmy J. Johnson" class VITP_CELL_VIEW inherit JJ_MODEL_WORLD_CELL_VIEW rename target as game redefine draw, target_imp end --create -- default_create --create {VITP_CELL_VIEW} feature -- Basic operations draw -- Redraw the window do -- world.wipe_out world.full_redraw Precursor {JJ_MODEL_WORLD_CELL_VIEW} end scale_up -- Increase to the next largest size do world.scale (scale_factor) resize_if_necessary end scale_down -- Decrease to the next smallest size do world.scale (1 / scale_factor) if world.bounding_box.width < client_width or world.bounding_box.height < client_height then fit_to_screen end -- fix the scrollbars resize_if_necessary crop end feature {NONE} -- Implementation target_imp: detachable VITP_GAME -- Detachable implementation of `target' for void safety scale_factor: DOUBLE = 1.5 -- The amount to grow (or swrink by reciprocal) Default_width: INTEGER = 200 -- The default width of `border' Default_height: INTEGER = 300 -- the default width of `border' end