Пример #1
0
        private IHoverListener HoverEntity(MouseEventArgs e, IShapeMaterial material)
        {
            IHoverListener listener;

            listener = material.GetService(typeof(IHoverListener)) as IHoverListener;
            if (listener != null)                       //the caught material does listen
            {
                if (currentHoveredMaterial == listener) //it's the same as the previous time
                {
                    listener.MouseHover(e);
                }
                else //we moved from one material to another listening material
                {
                    if (currentHoveredMaterial != null) //tell the previous material we are leaving
                    {
                        currentHoveredMaterial.MouseLeave(e);
                    }
                    listener.MouseEnter(e); //tell the current one we enter
                    currentHoveredMaterial = listener;
                }
            }
            else //the caught material does not listen
            {
                if (currentHoveredMaterial != null)
                {
                    currentHoveredMaterial.MouseLeave(e);
                    currentHoveredMaterial = null;
                }
            }
            return(listener);
        }
Пример #2
0
 protected virtual IHoverListener HoverEntity(
     MouseEventArgs e,
     IShapeMaterial material) {
   IHoverListener listener;
   listener = material.GetService(typeof(IHoverListener)) as IHoverListener;
   if (listener != null) //the caught material does listen
         {
     if (currentHoveredMaterial == listener) //it's the same as the previous time
       listener.MouseHover(e);
     else //we moved from one material to another listening material
             {
       if (currentHoveredMaterial != null) //tell the previous material we are leaving
         currentHoveredMaterial.MouseLeave(e);
       listener.MouseEnter(e); //tell the current one we enter
       currentHoveredMaterial = listener;
     }
   } else //the caught material does not listen
         {
     if (currentHoveredMaterial != null) {
       currentHoveredMaterial.MouseLeave(e);
       currentHoveredMaterial = null;
     }
   }
   return listener;
 }