private void DragEvent(Rect x) { if (!drag && QEditorEvent.IsMouseDrag(x)) { drag = true; startView = this; if (StartDragEvent != null) { StartDragEvent(i); } } if (drag && QEditorEvent.IsMouseUp(x)) { endDragIndex = i; if (EndDragEvent != null) { EndDragEvent(startView, this); } if (IndexChangedEvent != null) { IndexChangedEvent(index, i); } index = i; w.Repaint(); drag = false; endDragIndex = -1; startView = null; } }
private void ListViewSwap(QEditorListView v, QEditorListView v2) { var tmp = v[v.Index]; v[v.Index] = v2[v2.EndDragIndex]; v2[v2.EndDragIndex] = tmp; }
private static void Init() { var window = GetWindow <EditorTest>(); window.Show(); l = new QEditorListView[2]; for (int i = 0; i < 2; i++) { l[i] = new QEditorListView(window); for (int j = 0; j < 10; j++) { l[i].Add(j.ToString()); } l[i].IsDrag = true; l[i].IsEditor = true; l[i].EndDragEvent += window.ListViewSwap; } }