private void tile_AboutToDrag(ProviderTokenTile sender, ProviderTokenTileDragEventArgs e) { if (!AllowItemDrag) return; sender.QueryContinueDrag += new QueryContinueDragEventHandler(tile_QueryContinueDrag); _internalDrag = true; if (AllowDragArrange) { int index = _flow.Controls.IndexOf(sender); _items.RemoveAt(index); _flow.Controls.Add(_empty); _flow.Controls.SetChildIndex(_empty, index); _flow.Controls.Remove(sender); } }
private void _empty_AboutToDrop(ProviderTokenTile sender, ProviderTokenTileDragEventArgs e) { int index = _flow.Controls.IndexOf(_empty); _flow.Controls.Remove(_empty); if (index >= 0) _items.Insert(index, e.TokenTile.Token.Provider); e.Handled = true; _internalDrag = false; }
private void _items_ItemsAdded(IEnumerable<Tuple<int, IEventProvider>> items) { if (items.Count() > 0 && _flow.Controls.Count == 1 && _flow.Controls.Contains(_empty)) _flow.Controls.Remove(_empty); foreach (var item in items) { var fresh = item.Item2; var tile = new ProviderTokenTile(); tile.Token = new ProviderToken(fresh, _colorer); tile.Width = ItemWidth; tile.Height = ItemHeight; tile.Margin = new System.Windows.Forms.Padding(0); tile.AllowDrag = AllowItemDrag; tile.AllowDrop = AllowDragArrange; _flow.Controls.Add(tile); _flow.Controls.SetChildIndex(tile, item.Item1); tile.DragEnter += new DragEventHandler(_view_DragEnter); tile.MouseMove += new MouseEventHandler(_view_MouseMove); tile.MouseEnter += new EventHandler(_view_MouseEnter); tile.MouseLeave += new EventHandler(_view_MouseLeave); tile.AboutToDrag += new ProviderTokenTileDragEventHandler(tile_AboutToDrag); } adjustControls(); ItemsChanged(); }