note description: "[ Main window for VITP ]" author: "Jimmy J. Johnson" class VITP_MAIN_WINDOW inherit JJ_MAIN_WINDOW redefine create_interface_objects, initialize, -- initialize_interface, target_imp, set_target -- draw end FONT_AND_COLOR_CONSTANTS export {NONE} all undefine default_create, copy end GAME_CONSTANTS export {NONE} all undefine default_create, copy end 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 print ("VITP_MAIN_WINDOW.create_interface_objects %N") Precursor {JJ_MAIN_WINDOW} -- Call to force creation of VITP_GAME print ("%T VITP_MAIN_WINDOW.create_interface_objects just before creating board_tool %N") create board_tool.make (target) print ("%T VITP_MAIN_WINDOW.create_interface_objects just before creating chart_tool %N") create chart_tool.make (target) create sequence_tool.make (target) -- create board_tool -- create chart_tool -- create sequence_tool print ("%T end VITP_MAIN_WINDOW.create_interface_objects %N") end initialize -- Set up the window local g: VITP_GAME do print ("VITP_MAIN_WINDOW.initialize %N") Precursor {JJ_MAIN_WINDOW} split_manager.enable_mode_changes split_manager.set_vertical -- split_manager.extend (sequence_tool) split_manager.extend (board_tool) split_manager.set_horizontal split_manager.extend (chart_tool) -- -- Must `start' the `sequence_of_play' here, not in -- -- {VITP_GAME} because of Void safety -- create g -- g.sequence_of_play.start -- set_target (g) -- Set window size, etc. set_size (1600, 1200) set_position (600, 100) print ("%T end VITP_MAIN_WINDOW.initialize %N") end feature -- Element change set_target (a_game: like target) -- Change the target do Precursor {JJ_MAIN_WINDOW} (a_game) board_tool.set_target (a_game) chart_tool.set_target (a_game) end feature -- Basic operations feature {NONE} -- Implementation board_tool: BOARD_TOOL -- Drawing will be done here. chart_tool: CHART_TOOL -- Draw the order of appearance charts here sequence_tool: GAME_SEQUENCE_TOOL -- Tool containing the view that displays the sequence of play target_imp: detachable VITP_GAME -- Implementation of the `target' end