public void SetTrack(StringWithParity stringWP) { Variant preVariant = GetPreferredVariant(); byte[] trackData = null; if (preVariant == null) { //int direction = (preferredDirection == 1) ? 1 : 0; preVariant = new Variant(stringWP, bpc, add); } trackData = preVariant.ByteArray; if (sortOrder != Serializable.SortOrder.None) { Sort(sortOrder); } for (int i = 0; i < variants.Count; i++) { if (stringWP.ToString() == variants[i].ToString()) { preferredVariantIndex = i; break; } } }
public void SetTrackString(int track, StringWithParity value) { Track group = _tracks[track]; if (group != null) { if (StringWithParity.IsNullOrEmpty(value)) { _tracks[track] = null; } else { group.SetTrack(value); } } else if (!StringWithParity.IsNullOrEmpty(value)) { //create an empty group and set the value. byte bpc = VariantSettings.bpc[track]; byte add = VariantSettings.add[track]; if (bpc < (byte)BpcSupported.Start) { bpc = VariantSettings.bpc[track]; add = VariantSettings.add[track]; } _tracks[track] = new Track(track, bpc, add, value /*, GetPreferredDirection()*/); } }
/** * Creates a variant group that only has an user string. */ public Track(int trackId, byte bpc, byte add, StringWithParity value) { this.trackId = trackId; this.bpc = bpc; this.add = add; init(null, 0, 0); SetTrack(value); }
public override void DetachEditingControl() { if (DataGridView == null) { return; } DataGridViewTrackEditingControl ctl = DataGridView.EditingControl as DataGridViewTrackEditingControl; if (ctl != null && ctl.Modified) { StringWithParity text = ctl.ParityText; CardDataGridView grid = (CardDataGridView)DataGridView; Card card = grid.GetCard(this.RowIndex); if (card != null) { card.SetTrackString(this.ColumnIndex - (int)Presentation.cardGridColumn.TRACK1_COLUMN, text); } //maybe this will slow the programm, but it is needed. // otherwise we will get alignment bugs once content changed. ListCardUtil.SetAlignment(grid.GetActualCardsFromGrid(), 0); if (crf.Properties.Settings.Default.autoResize && (ctl.Text.Length > ctl.originalLength || ctl.Text.Length < ctl.originalLength - 10) ) { grid.AutoResizeColumn(this.ColumnIndex); #if DEBUG CardDataGridView.RESIZECOLUMNCOUNT++; grid.UpdateStatusStripTextWhenResizing(); #endif } } base.DetachEditingControl(); }
protected override Size GetPreferredSize(Graphics graphics, DataGridViewCellStyle cellStyle, int rowIndex, Size constraintSize) { if (DataGridView == null) { return(new Size(0, 0)); } CardDataGridView grid = (CardDataGridView)DataGridView; Variant variant = grid.GetVariant(rowIndex, this.ColumnIndex); StringWithParity value = (StringWithParity)GetValue(rowIndex); Size size = new Size(0, 0); if (fontSize.Width == -1) { fontSize = CalculateFontSize(cellStyle.Font); } if ((value != null) && (variant != null)) { string sValue = value.ToString(); int alignment = 0; if (variant.Alignment != null) { alignment = variant.Alignment.Value; } size.Width = fontSize.Width * (sValue.Length + alignment); size.Height = fontSize.Height; } size.Width += _editingControl.Margin.Left + _editingControl.Margin.Right + 1; size.Height += _editingControl.Margin.Bottom + _editingControl.Margin.Top + 1; return(size); }