package com.desfate.chart.event;


import com.desfate.chart.GridChart;

/**
 * <p>Interface for chart which is support send notify after touch event happened</p>
 * <p>タッチイベントは通知可能のオブジェクトのインタフェース</p>
 * <p>touch事件发生后，支持对外发送事件消息的此类对象接口</p>
 *
 * @see
 */
public interface ITouchEventNotify {

    int EVENT_MOVE = 0;
    int EVENT_SCALE = 1;
    int EVENT_CROSSONTOUCH = 2;
    int EVENT_UP = 3;
    int EVENT_LEFTEND = 4; //yzq 2016 12-06

    /**
     * <p>Notify all ITouchEventResponse objects</p>
     * <p>全部ITouchEventResponseレスポンスオブジェクトを通知</p>
     * <p>通知全部ITouchEventResponse响应对象</p>
     *
     * @param chart <p>source chart</p>
     *              <p>ソースチャート</p>
     *              <p>源头对象</p>
     */
    void notifyEventAll(int eventId, GridChart chart);

    /**
     * <p>Add a ITouchEventResponse object by its index</p>
     * <p>ITouchEventResponseレスポンスオブジェクトを追加</p>
     * <p>增加ITouchEventResponse响应对象</p>
     *
     * @param notify <p>ITouchEventResponse object</p>
     *               <p>ITouchEventResponse オブジェクト</p>
     *               <p>对象</p>
     */
    void addNotify(ITouchEventResponse notify);

    /**
     * <p>Remove a ITouchEventResponse object by its index</p>
     * <p>ITouchEventResponseレスポンスオブジェクトを削除</p>
     * <p>删除ITouchEventResponse响应对象</p>
     *
     * @param i <p>index</p>
     *          <p>インデックス</p>
     *          <p>index</p>
     */
    void removeNotify(int i);

    /**
     * <p>Remove all ITouchEventResponse objects</p>
     * <p>全部ITouchEventResponseレスポンスオブジェクトを削除</p>
     * <p>删除全部ITouchEventResponse响应对象</p>
     */
    void removeAllNotify();
}
