Exemple #1
0
        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;
                }
            }
        }
Exemple #2
0
        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()*/);
            }
        }
Exemple #3
0
        /**
         * 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);
        }
Exemple #4
0
        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();
        }
Exemple #5
0
        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);
        }