note description: "[ Tool to manipulate the sequence of the game play. ]" author: "Jimmy J. Johnson" class GAME_SEQUENCE_TOOL inherit VITP_TOOL redefine create_interface_objects, initialize, build_tool_bar, add_actions, set_target, draw end GAME_CONSTANTS export {NONE} all undefine default_create, copy end create default_create, make feature {NONE} -- Initialization create_interface_objects -- Create objects to be used by `Current' in `initialize' -- Implemented by descendants to create attached objects -- in order to adhere to void-safety due to the implementation bridge pattern. do Precursor {VITP_TOOL} create advance_button advance_button.set_pixmap (create {EV_PIXMAP}.make_with_pixel_buffer (Icon_supplier_color_buffer)) advance_button.set_tooltip ("Advance") create view.make (vitp) end initialize -- Build the interface for this window do Precursor {VITP_TOOL} split_manager.extend (view) -- set_target (vitp) end add_actions -- Add functionality to the buttons do Precursor {VITP_TOOL} advance_button.select_actions.extend (agent on_advance) end build_tool_bar -- Add buttons to `tool_bar' (from TOOL). do Precursor {VITP_TOOL} -- tool_bar.extend (advance_button) end feature -- Access view: GAME_SEQUENCE_VIEW -- Handle to the view corresponding to the first view created by the -- `view_manager' in `initialize'. -- Convinience feature. focused_view: VITP_CELL_VIEW -- The view that currently has the focus do Result := view end feature -- Element change set_target (a_game: like vitp) -- Change the `target' do Precursor {VITP_TOOL} (a_game) view.set_target (a_game) end draw -- Redraw the view do view.draw end feature {NONE} -- Actions on_advance -- React to a press of the `advance_button' do -- sop.forth draw_views (vitp) end feature {NONE} -- Implementation advance_button: EV_TOOL_BAR_BUTTON -- Button to advance to the next phase/step of the game end