!B (Sandbox) (CE-21795) Importing models with multisubmaterials via fbx switches...
[CRYENGINE.git] / Code / Tools / LuaRemoteDebugger / Aga.Controls / Tree / Input / ReorderColumnState.cs
blobbe87a2f8553af3a751357cc0935fb12c7798a372
1 // Copyright 2001-2019 Crytek GmbH / Crytek Group. All rights reserved.
3 using System;
4 using System.Collections.Generic;
5 using System.Text;
6 using System.Drawing;
7 using System.Windows.Forms;
9 namespace Aga.Controls.Tree
11 internal class ReorderColumnState : ColumnState
13 #region Properties
15 private Point _location;
16 public Point Location
18 get { return _location; }
21 private Bitmap _ghostImage;
22 public Bitmap GhostImage
24 get { return _ghostImage; }
27 private TreeColumn _dropColumn;
28 public TreeColumn DropColumn
30 get { return _dropColumn; }
33 private int _dragOffset;
34 public int DragOffset
36 get { return _dragOffset; }
39 #endregion
41 public ReorderColumnState(TreeViewAdv tree, TreeColumn column, Point initialMouseLocation)
42 : base(tree, column)
44 _location = new Point(initialMouseLocation.X + Tree.OffsetX, 0);
45 _dragOffset = tree.GetColumnX(column) - initialMouseLocation.X;
46 _ghostImage = column.CreateGhostImage(new Rectangle(0, 0, column.Width, tree.ColumnHeaderHeight), tree.Font);
49 public override void KeyDown(KeyEventArgs args)
51 args.Handled = true;
52 if (args.KeyCode == Keys.Escape)
53 FinishResize();
56 public override void MouseDown(TreeNodeAdvMouseEventArgs args)
60 public override void MouseUp(TreeNodeAdvMouseEventArgs args)
62 FinishResize();
65 public override bool MouseMove(MouseEventArgs args)
67 _dropColumn = null;
68 _location = new Point(args.X + Tree.OffsetX, 0);
69 int x = 0;
70 foreach (TreeColumn c in Tree.Columns)
72 if (c.IsVisible)
74 if (_location.X < x + c.Width / 2)
76 _dropColumn = c;
77 break;
79 x += c.Width;
82 Tree.UpdateHeaders();
83 return true;
86 private void FinishResize()
88 Tree.ChangeInput();
89 if (Column == DropColumn)
90 Tree.UpdateView();
91 else
93 Tree.Columns.Remove(Column);
94 if (DropColumn == null)
95 Tree.Columns.Add(Column);
96 else
97 Tree.Columns.Insert(Tree.Columns.IndexOf(DropColumn), Column);
99 Tree.OnColumnReordered(Column);