Beispiel #1
0
 public virtual HandleResult handleMouseEvent(MouseInputEvent e)
 {
     if (m_base_controller != null)
         return m_base_controller.handleMouseEvent(e);
     else
         return HandleResult.Pending;
 }
Beispiel #2
0
        //复合鼠标控制器用来建构一个消息处理链
        //消息在消息链中被各个控制器处理
        public override HandleResult handleMouseEvent(MouseInputEvent e)
        {
            HandleResult result = HandleResult.Pending;

            if (m_current_sub != null)//当前和默认子控制器都可以为null,即没有消息链
            {
                result = m_current_sub.handleMouseEvent(e); //先使用当前子控制器处理消息
                if (result == HandleResult.Leave)
                    m_current_sub = m_default_sub; //当前子控制器退出之后设置为默认子控制器
                else if (result == HandleResult.Done)
                    return result;
            }

            result = base.handleMouseEvent(e);

            return result;
        }