private void TourStopList_MouseUp(object sender, MouseEventArgs e) { dragging = false; mouseDown = false; scrolling = false; if (dragThumbnail != null) { if (dragItem > -1 && dragItem != dragDropItemLocation) { if (dragDropItemLocation != -1) { if (dragDropItemLocation == -2) { dragDropItemLocation = Items.Count; } List<TourStop> dragItems = new List<TourStop>(); foreach (int itemId in SelectedItems.Keys) { dragItems.Add(Items[itemId]); } //TourStop ts = Items[dragItem]; if (Control.ModifierKeys != Keys.Control) { Undo.Push(new UndoTourSlidelistChange(Language.GetLocalizedText(550, "Move Slide"), Tour)); foreach (TourStop ts in dragItems) { Items.Remove(ts); } int itemCount = 0; foreach (int selIndex in SelectedItems.Keys) { if (dragDropItemLocation > dragItem) { itemCount++; } } dragDropItemLocation -= itemCount; SelectedItems.Clear(); foreach (TourStop ts in dragItems) { Items.Insert(dragDropItemLocation, ts); SelectedItems.Add(dragDropItemLocation, Items[dragDropItemLocation]); dragDropItemLocation++; } } else { Undo.Push(new UndoTourSlidelistChange(Language.GetLocalizedText(539, "Drag Copy"), Tour)); SelectedItems.Clear(); foreach (TourStop ts in dragItems) { Items.Insert(dragDropItemLocation, ts.Copy()); SelectedItems.Add(dragDropItemLocation, Items[dragDropItemLocation]); dragDropItemLocation++; } } Tour.CurrentTourstopIndex = selectedItem = dragDropItemLocation; Refresh(); } } dragThumbnail.Close(); dragThumbnail.Dispose(); dragThumbnail = null; } dragDropItemLocation = -1; dragItem = -1; }
private void TourStopList_MouseUp(object sender, MouseEventArgs e) { dragging = false; mouseDown = false; scrolling = false; if (dragThumbnail != null) { if (dragItem > -1 && dragItem != dragDropItemLocation) { if (dragDropItemLocation != -1) { if (dragDropItemLocation == -2) { dragDropItemLocation = Items.Count; } List <TourStop> dragItems = new List <TourStop>(); foreach (int itemId in SelectedItems.Keys) { dragItems.Add(Items[itemId]); } //TourStop ts = Items[dragItem]; if (Control.ModifierKeys != Keys.Control) { Undo.Push(new UndoTourSlidelistChange(Language.GetLocalizedText(550, "Move Slide"), Tour)); foreach (TourStop ts in dragItems) { Items.Remove(ts); } int itemCount = 0; foreach (int selIndex in SelectedItems.Keys) { if (dragDropItemLocation > dragItem) { itemCount++; } } dragDropItemLocation -= itemCount; SelectedItems.Clear(); foreach (TourStop ts in dragItems) { Items.Insert(dragDropItemLocation, ts); SelectedItems.Add(dragDropItemLocation, Items[dragDropItemLocation]); dragDropItemLocation++; } } else { Undo.Push(new UndoTourSlidelistChange(Language.GetLocalizedText(539, "Drag Copy"), Tour)); SelectedItems.Clear(); foreach (TourStop ts in dragItems) { Items.Insert(dragDropItemLocation, ts.Copy()); SelectedItems.Add(dragDropItemLocation, Items[dragDropItemLocation]); dragDropItemLocation++; } } Tour.CurrentTourstopIndex = selectedItem = dragDropItemLocation; Refresh(); } } dragThumbnail.Close(); dragThumbnail.Dispose(); dragThumbnail = null; } dragDropItemLocation = -1; dragItem = -1; }
private void TourStopList_MouseMove(object sender, MouseEventArgs e) { if (scrolling) { int scrollbarWidth = Width; int scrollbarStart = 0; float scrollUnit = (1f / (float)(TotalItems + 1) * Width); scrollbarWidth = Math.Max(14, (int)(Math.Min(1.0f, (float)ItemsPerPage / (float)(TotalItems + 1)) * (float)Width)); scrollbarStart = (int)(((float)startIndex / (float)(TotalItems + 1)) * (float)Width); int dragDist = pointDown.X - e.X; startIndex = Math.Max(0, Math.Min((TotalItems + 1) - (ItemsPerPage), scrollStartIndex - (int)(dragDist / scrollUnit))); Refresh(); return; } if (mouseDown) { if (Tour.EditMode) { if (dragging) { Point pntTemp = Control.MousePosition; pntTemp.Offset(-48, -27); dragThumbnail.Location = pntTemp; dragDropItemLocation = GetItemIndexFromCursor(e.Location); Refresh(); } else { Point pntTest = pointDown; pntTest.Offset(-e.Location.X, -e.Location.Y); if (Math.Abs(pntTest.X) > 5 || Math.Abs(pntTest.Y) > 5) { dragItem = GetItemIndexFromCursor(e.Location); if (dragItem > -1) { dragging = true; dragThumbnail = new DragThumbnail(); Point pntTemp = this.PointToScreen(Control.MousePosition); pntTemp.Offset(-48, -27); dragThumbnail.Location = pntTemp; dragThumbnail.Thumbnail = Items[dragItem].Thumbnail; dragThumbnail.Show(); } else { mouseDown = false; } } } } } else { int newHover = GetItemIndexFromCursor(e.Location); if (hoverItem != newHover) { hoverItem = newHover; if (ItemHover != null) { if (hoverItem > -1) { ItemHover.Invoke(this, Items[hoverItem]); } else { ItemHover.Invoke(this, null); } } } Refresh(); TransitionHighlighted = false; switch (GetCusorSytleFromCursorPosition(e.Location)) { case HitPosition.Default: Cursor.Current = Cursors.Default; break; case HitPosition.Drag: Cursor.Current = Cursors.Hand; break; case HitPosition.EditName: Cursor.Current = Cursors.IBeam; break; case HitPosition.EditTime: Cursor.Current = Cursors.IBeam; break; case HitPosition.StartPosition: case HitPosition.EndPosition: Cursor.Current = Cursors.Arrow; break; case HitPosition.Transition: Cursor.Current = Cursors.Arrow; TransitionHighlighted = true; break; default: Cursor.Current = Cursors.Default; break; } } }
private void TourStopList_MouseMove(object sender, MouseEventArgs e) { if (scrolling) { int scrollbarWidth = Width; int scrollbarStart = 0; float scrollUnit = (1f / (float)(TotalItems + 1) * Width); scrollbarWidth = Math.Max(14, (int)(Math.Min(1.0f, (float)ItemsPerPage / (float)(TotalItems + 1)) * (float)Width)); scrollbarStart = (int)(((float)startIndex / (float)(TotalItems + 1)) * (float)Width); int dragDist = pointDown.X - e.X; startIndex = Math.Max(0, Math.Min((TotalItems + 1) - (ItemsPerPage), scrollStartIndex - (int)(dragDist / scrollUnit))); Refresh(); return; } if (mouseDown) { if (Tour.EditMode) { if (dragging) { Point pntTemp = Control.MousePosition; pntTemp.Offset(-48, -27); dragThumbnail.Location = pntTemp; dragDropItemLocation = GetItemIndexFromCursor(e.Location); Refresh(); } else { Point pntTest = pointDown; pntTest.Offset(-e.Location.X, -e.Location.Y); if (Math.Abs(pntTest.X) > 5 || Math.Abs(pntTest.Y) > 5) { dragItem = GetItemIndexFromCursor(e.Location); if (dragItem > -1) { dragging = true; dragThumbnail = new DragThumbnail(); Point pntTemp = this.PointToScreen(Control.MousePosition); pntTemp.Offset(-48, -27); dragThumbnail.Location = pntTemp; dragThumbnail.Thumbnail = Items[dragItem].Thumbnail; dragThumbnail.Show(); } else { mouseDown = false; } } } } } else { int newHover = GetItemIndexFromCursor(e.Location); if (hoverItem != newHover) { hoverItem = newHover; if (ItemHover != null) { if (hoverItem > -1) { ItemHover.Invoke(this, Items[hoverItem]); } else { ItemHover.Invoke(this, null); } } } Refresh(); TransitionHighlighted = false; switch (GetCusorSytleFromCursorPosition(e.Location)) { case HitPosition.Default: Cursor.Current = Cursors.Default; break; case HitPosition.Drag: Cursor.Current = Cursors.Hand; break; case HitPosition.EditName: Cursor.Current = Cursors.IBeam; break; case HitPosition.EditTime: Cursor.Current = Cursors.IBeam; break; case HitPosition.StartPosition: case HitPosition.EndPosition: Cursor.Current = Cursors.Arrow; break; case HitPosition.Transition: Cursor.Current = Cursors.Arrow; TransitionHighlighted = true; break; default: Cursor.Current = Cursors.Default; break; } } }