コード例 #1
0
        void Handler(IMGUIEvent evt, List <ISelectable> selection, IDropTarget dropTarget)
        {
            if (dropTarget == null || !dropTarget.CanAcceptDrop(selection))
            {
                return;
            }

            var propagation = EventPropagation.Continue;

            if (evt.imguiEvent.type == EventType.DragUpdated)
            {
                propagation = dropTarget.DragUpdated(evt, selection, dropTarget);
            }
            else if (evt.imguiEvent.type == EventType.DragPerform)
            {
                propagation = dropTarget.DragPerform(evt, selection, dropTarget);
            }
            else if (evt.imguiEvent.type == EventType.DragExited)
            {
                propagation = dropTarget.DragExited();
            }

//            if (propagation == EventPropagation.Stop)
//                evt.StopPropagation();
        }
コード例 #2
0
 private void SendDragAndDropEvent(IMGUIEvent evt, List <ISelectable> selection, IDropTarget dropTarget)
 {
     if (dropTarget != null && dropTarget.CanAcceptDrop(selection))
     {
         EventType type = evt.imguiEvent.type;
         if (type != EventType.DragUpdated)
         {
             if (type != EventType.DragPerform)
             {
                 if (type == EventType.DragExited)
                 {
                     dropTarget.DragExited();
                 }
             }
             else
             {
                 dropTarget.DragPerform(evt, selection, dropTarget);
             }
         }
         else
         {
             dropTarget.DragUpdated(evt, selection, dropTarget);
         }
     }
 }
コード例 #3
0
        private void OnMouseCaptureOutEvent(MouseCaptureOutEvent e)
        {
            if (m_Active)
            {
                if (m_PrevDropTarget != null && m_GraphView != null)
                {
                    if (m_PrevDropTarget.CanAcceptDrop(m_GraphView.selection))
                    {
                        m_PrevDropTarget.DragExited();
                    }
                }

                // Stop processing the event sequence if the target has lost focus, then.
                selectedElement  = null;
                m_PrevDropTarget = null;
                m_Active         = false;
            }
        }
コード例 #4
0
        static void SendDragAndDropEvent(IDragAndDropEvent evt, List <ISelectable> selection, IDropTarget dropTarget)
        {
            if (dropTarget == null || !dropTarget.CanAcceptDrop(selection))
            {
                return;
            }
            EventBase e = evt as EventBase;

            if (e.GetEventTypeId() == DragPerformEvent.TypeId())
            {
                dropTarget.DragPerform(evt as DragPerformEvent, selection, dropTarget);
            }
            else if (e.GetEventTypeId() == DragUpdatedEvent.TypeId())
            {
                dropTarget.DragUpdated(evt as DragUpdatedEvent, selection, dropTarget);
            }
            else if (e.GetEventTypeId() == DragExitedEvent.TypeId())
            {
                dropTarget.DragExited();
            }
        }
コード例 #5
0
        static void SendDragAndDropEvent(IDragAndDropEvent evt, List <ISelectable> selection, IDropTarget dropTarget, ISelection dragSource)
        {
            if (dropTarget == null)
            {
                return;
            }

            EventBase e = evt as EventBase;

            if (e.eventTypeId == DragExitedEvent.TypeId())
            {
                dropTarget.DragExited();
            }
            else if (e.eventTypeId == DragEnterEvent.TypeId())
            {
                dropTarget.DragEnter(evt as DragEnterEvent, selection, dropTarget, dragSource);
            }
            else if (e.eventTypeId == DragLeaveEvent.TypeId())
            {
                dropTarget.DragLeave(evt as DragLeaveEvent, selection, dropTarget, dragSource);
            }

            if (!dropTarget.CanAcceptDrop(selection))
            {
                return;
            }

            if (e.eventTypeId == DragPerformEvent.TypeId())
            {
                dropTarget.DragPerform(evt as DragPerformEvent, selection, dropTarget, dragSource);
            }
            else if (e.eventTypeId == DragUpdatedEvent.TypeId())
            {
                dropTarget.DragUpdated(evt as DragUpdatedEvent, selection, dropTarget, dragSource);
            }
        }
コード例 #6
0
        void SendDragAndDropEvent(IMGUIEvent evt, List <ISelectable> selection, IDropTarget dropTarget)
        {
            if (dropTarget == null || !dropTarget.CanAcceptDrop(selection))
            {
                return;
            }
            switch (evt.imguiEvent.type)
            {
            case EventType.DragPerform:
                dropTarget.DragPerform(evt, selection, dropTarget);
                break;

            case EventType.DragUpdated:
                dropTarget.DragUpdated(evt, selection, dropTarget);
                break;

            case EventType.DragExited:
                dropTarget.DragExited();
                break;

            default:
                break;
            }
        }