package jrummikub.view;

import jrummikub.util.IEvent;

/**
 * Warning panel shown to if the emitted event would cancel the current game
 */
public interface IQuitWarningPanel {

	/**
	 * Enum summarizing the different events invoking the quit warning panel
	 */
	public enum QuitMode {
		/** */
		DEFAULT,
		/** */
		QUIT_PROCESS,
		/** */
		QUIT_GAME
	}

	/**
	 * Is emitted if the user is positive about quitting
	 * 
	 * @return the event
	 */
	public IEvent getQuitEvent();

	/**
	 * Is emitted if the user selected quit by mistake
	 * 
	 * @return the event
	 */
	public IEvent getCancelEvent();

	/**
	 * Sets the panel according to the event which invoked it
	 * 
	 * @param mode
	 *            the invoking event type
	 */
	public void setMode(QuitMode mode);

	/**
	 * Getter for quit mode
	 * 
	 * @return the quit mode
	 */
	public QuitMode getQuitMode();

}