private void tokenEdit1_DragDrop(object sender, DragEventArgs e) { TokenEditHitInfo token = (TokenEditHitInfo)e.Data.GetData(typeof(TokenEditHitInfo)); var allTokens = tokenEdit1.GetTokenList(); var newPl = tokenEdit1.CalcHitInfo(tokenEdit1.PointToClient(new Point(e.X, e.Y))); if (!newPl.InToken && newPl.InEditorRect) { var values = (IList)tokenEdit1.EditValue; values.Remove(token.Token.Value.ToString()); values.Add(token.Token.Value.ToString()); tokenEdit1.EditValue = values; } else if (newPl.InToken) { var hitPoint = ((DevExpress.XtraEditors.ViewInfo.EditHitInfo)(newPl)).HitPoint.X; var tokenStartX = newPl.TokenInfo.Bounds.X; var tokenEndX = newPl.TokenInfo.Bounds.X + newPl.TokenInfo.Bounds.Width; bool before = hitPoint - tokenStartX < tokenEndX - hitPoint; var values = (IList)tokenEdit1.EditValue; values.Remove(token.Token.Value.ToString()); int index = values.IndexOf(newPl.Token.Value); values.Insert(before ? index : index + 1, token.Token.Value.ToString()); } }
private void ChangeCheckedIfRequired(TokenEditHitInfo hitInfo) { CustomTokenEditHitInfo hInfo = hitInfo as CustomTokenEditHitInfo; if (hInfo.IsInCheckBox) { (hitInfo.HitObject as CustomTokenEditTokenInfo).ChangeChecked(); } }
protected override void OnTokenClick(TokenEditHitInfo hitInfo) { ChangeCheckedIfRequired(hitInfo); base.OnTokenClick(hitInfo); }