first commit
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Aga.Controls.Tree
|
||||
{
|
||||
internal class ReorderColumnState : ColumnState
|
||||
{
|
||||
#region Properties
|
||||
|
||||
private Point _location;
|
||||
public Point Location
|
||||
{
|
||||
get { return _location; }
|
||||
}
|
||||
|
||||
private Bitmap _ghostImage;
|
||||
public Bitmap GhostImage
|
||||
{
|
||||
get { return _ghostImage; }
|
||||
}
|
||||
|
||||
private TreeColumn _dropColumn;
|
||||
public TreeColumn DropColumn
|
||||
{
|
||||
get { return _dropColumn; }
|
||||
}
|
||||
|
||||
private int _dragOffset;
|
||||
public int DragOffset
|
||||
{
|
||||
get { return _dragOffset; }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public ReorderColumnState(TreeViewAdv tree, TreeColumn column, Point initialMouseLocation)
|
||||
: base(tree, column)
|
||||
{
|
||||
_location = new Point(initialMouseLocation.X + Tree.OffsetX, 0);
|
||||
_dragOffset = tree.GetColumnX(column) - initialMouseLocation.X;
|
||||
_ghostImage = column.CreateGhostImage(new Rectangle(0, 0, column.Width, tree.ColumnHeaderHeight), tree.Font);
|
||||
}
|
||||
|
||||
public override void KeyDown(KeyEventArgs args)
|
||||
{
|
||||
args.Handled = true;
|
||||
if (args.KeyCode == Keys.Escape)
|
||||
FinishResize();
|
||||
}
|
||||
|
||||
public override void MouseDown(TreeNodeAdvMouseEventArgs args)
|
||||
{
|
||||
}
|
||||
|
||||
public override void MouseUp(TreeNodeAdvMouseEventArgs args)
|
||||
{
|
||||
FinishResize();
|
||||
}
|
||||
|
||||
public override bool MouseMove(MouseEventArgs args)
|
||||
{
|
||||
_dropColumn = null;
|
||||
_location = new Point(args.X + Tree.OffsetX, 0);
|
||||
int x = 0;
|
||||
foreach (TreeColumn c in Tree.Columns)
|
||||
{
|
||||
if (c.IsVisible)
|
||||
{
|
||||
if (_location.X < x + c.Width / 2)
|
||||
{
|
||||
_dropColumn = c;
|
||||
break;
|
||||
}
|
||||
x += c.Width;
|
||||
}
|
||||
}
|
||||
Tree.UpdateHeaders();
|
||||
return true;
|
||||
}
|
||||
|
||||
private void FinishResize()
|
||||
{
|
||||
Tree.ChangeInput();
|
||||
if (Column == DropColumn)
|
||||
Tree.UpdateView();
|
||||
else
|
||||
{
|
||||
Tree.Columns.Remove(Column);
|
||||
if (DropColumn == null)
|
||||
Tree.Columns.Add(Column);
|
||||
else
|
||||
Tree.Columns.Insert(Tree.Columns.IndexOf(DropColumn), Column);
|
||||
|
||||
Tree.OnColumnReordered(Column);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user