Exemple #1
0
        public SILayout()
        {
            _Components = new List <LayoutComponent>();
            _Strings    = new LayoutItemCollection <SIString>(this);
            _Strings.CollectionChanged += Strings_CollectionChanged;

            Margins = new FingerboardMargin(this);

            _StringSpacingMode  = StringSpacingType.Simple;
            SimpleStringSpacing = new StringSpacingSimple(this);
            ManualStringSpacing = new StringSpacingManual(this);

            SingleScaleConfig = new SingleScaleManager(this);
            DualScaleConfig   = new DualScaleManager(this);
            MultiScaleConfig  = new MultipleScaleManager(this);

            VisualElements = new List <VisualElement>();

            _ScaleLengthMode   = ScaleLengthType.Single;
            _FretsTemperament  = Temperament.Equal;
            _FretInterpolation = FretInterpolationMethod.Spline;
            _CachedBounds      = RectangleM.Empty;
            LayoutName         = string.Empty;

            LayoutChanges = new List <ILayoutChange>();

            LayoutVersion = CURRENT_LAYOUT_VERSION;
            //_InstrumentType = InstrumentType.Guitar;
        }
Exemple #2
0
        private void rbScaleLengthMode_CheckedChanged(object sender, EventArgs e)
        {
            if (!IsLoading && !FlagManager["SetMode"] && (sender as RadioButton).Checked)
            {
                if (enteringControl)//fallback to prevent Windows to force check the last clicked radiobutton
                {
                    SetSelectedEditMode(EditMode);
                    return;
                }

                EditMode = GetSelectedEditMode();
                if (CurrentLayout != null)
                {
                    CurrentLayout.ScaleLengthMode = EditMode;
                    CurrentLayout.RebuildLayout();
                }
                ApplyLayout();
            }
        }
Exemple #3
0
        private void SetSelectedEditMode(ScaleLengthType mode)
        {
            using (FlagManager.UseFlag("SetMode"))
            {
                switch (mode)
                {
                default:
                case ScaleLengthType.Single:
                    rbSingle.Checked = true;
                    break;

                case ScaleLengthType.Dual:
                    rbDual.Checked = true;
                    break;

                case ScaleLengthType.Multiple:
                    rbMultiple.Checked = true;
                    break;
                }
            }
        }
Exemple #4
0
        protected override void ReadLayoutProperties()
        {
            if (dgvScaleLengths.IsCurrentCellInEditMode)
            {
                dgvScaleLengths.CancelEdit();
            }

            dgvScaleLengths.DataSource = null;

            if (CurrentLayout != null)
            {
                EditMode = CurrentLayout.ScaleLengthMode;
                dgvScaleLengths.DataSource = new SortableBindingList <SIString>(CurrentLayout.Strings);
                dgvScaleLengths.Sort(colStringNumber, ListSortDirection.Descending);
            }
            else
            {
                EditMode = ScaleLengthType.Single;
            }

            ApplyLayout();
        }