Exemple #1
0
        /// <summary>
        /// Not yet documented.
        /// </summary>
        public static DragHandle BeginDragHandle(object key, object obj, bool isVirtualDragHandle, DragAndDropMethods defaultMethod = DragAndDropMethods.Move)
        {
            Update();

            if (Event.current.type == EventType.Repaint)
            {
                GUIHelper.BeginLayoutMeasuring();
            }

            var dragHandle = GUIHelper.GetTemporaryContext <DragHandle>(draggableKey, key).Value;

            dragHandle.Object            = obj;
            dragHandle.DragAndDropMethod = defaultMethod;
            dragHandle.LayoutDepth       = dragHandles.Count;
            dragHandles.Push(dragHandle);

            dragHandle.SourceWindow = GUIHelper.CurrentWindow;
            return(dragHandle);
        }
        /// <summary>
        /// Not yet documented.
        /// </summary>
        public static DropZoneHandle BeginDropZone(object key, Type type, bool canAcceptMove)
        {
            Update();
            GUILayout.BeginVertical();
            var rect           = GUIHelper.GetCurrentLayoutRect();
            var dropZoneHandle = GUIHelper.GetTemporaryContext <DropZoneHandle>(dropZoneKey, key).Value;

            dropZoneHandle.Type          = type;
            dropZoneHandle.CanAcceptMove = canAcceptMove;
            dropZoneHandle.LayoutDepth   = dropZoneHandles.Count;
            dropZoneHandles.Push(dropZoneHandle);
            dropZoneHandle.Update(EventType.Layout);
            dropZoneHandle.SourceWindow = GUIHelper.CurrentWindow;

            if (Event.current.type == EventType.Repaint)
            {
                dropZoneHandle.Rect = rect;
            }

            return(dropZoneHandle);
        }