예제 #1
0
        public override object Clone()
        {
            DigitalGaugeElement element = (DigitalGaugeElement)base.Clone();

            element.Subject = (Subject)Subject.Clone();
            return(element);
        }
예제 #2
0
파일: Panel.cs 프로젝트: ian2009/OpenBVE
        internal void RemoveDigitalGauge()
        {
            Screen screen = SelectedTreeItem.Parent.Parent.Tag as Screen;
            DigitalGaugeElement digitalGauge = (DigitalGaugeElement)SelectedListItem.Tag;

            if (screen != null)
            {
                screen.PanelElements.Remove(digitalGauge);
            }
            else
            {
                PanelElements.Remove(digitalGauge);
            }

            ListItems.Remove(SelectedListItem);

            SelectedListItem = null;
        }
예제 #3
0
파일: Panel.cs 프로젝트: ian2009/OpenBVE
        internal void CopyDigitalGauge()
        {
            Screen screen = SelectedTreeItem.Parent.Parent.Tag as Screen;
            DigitalGaugeElement digitalGauge = (DigitalGaugeElement)((DigitalGaugeElement)SelectedListItem.Tag).Clone();

            if (screen != null)
            {
                screen.PanelElements.Add(digitalGauge);
            }
            else
            {
                PanelElements.Add(digitalGauge);
            }

            ListViewItemModel newItem = new ListViewItemModel {
                Texts = new ObservableCollection <string>(new string[10]), Tag = digitalGauge
            };

            UpdateListItem(newItem);
            ListItems.Add(newItem);

            SelectedListItem = ListItems.Last();
        }
예제 #4
0
파일: Panel.cs 프로젝트: ian2009/OpenBVE
        internal void UpdateListItem(ListViewItemModel item)
        {
            Screen               screen        = item.Tag as Screen;
            PilotLampElement     pilotLamp     = item.Tag as PilotLampElement;
            NeedleElement        needle        = item.Tag as NeedleElement;
            DigitalNumberElement digitalNumber = item.Tag as DigitalNumberElement;
            DigitalGaugeElement  digitalGauge  = item.Tag as DigitalGaugeElement;
            LinearGaugeElement   linearGauge   = item.Tag as LinearGaugeElement;
            TimetableElement     timetable     = item.Tag as TimetableElement;
            TouchElement         touch         = item.Tag as TouchElement;

            if (screen != null)
            {
                item.Texts[0] = screen.Number.ToString(culture);
                item.Texts[1] = screen.Layer.ToString(culture);
            }

            if (pilotLamp != null)
            {
                item.Texts[0] = pilotLamp.Subject.ToString();
                item.Texts[1] = $"{pilotLamp.LocationX.ToString(culture)}, {pilotLamp.LocationY.ToString(culture)}";
                item.Texts[2] = pilotLamp.DaytimeImage;
                item.Texts[3] = pilotLamp.NighttimeImage;
                item.Texts[4] = pilotLamp.TransparentColor.ToString();
                item.Texts[5] = pilotLamp.Layer.ToString(culture);
            }

            if (needle != null)
            {
                item.Texts[0]  = needle.Subject.ToString();
                item.Texts[1]  = $"{needle.LocationX.ToString(culture)}, {needle.LocationY.ToString(culture)}";
                item.Texts[2]  = needle.DefinedRadius ? needle.Radius.ToString(culture) : string.Empty;
                item.Texts[3]  = needle.DaytimeImage;
                item.Texts[4]  = needle.NighttimeImage;
                item.Texts[5]  = needle.Color.ToString();
                item.Texts[6]  = needle.TransparentColor.ToString();
                item.Texts[7]  = needle.DefinedOrigin ? $"{needle.OriginX.ToString(culture)}, {needle.OriginY.ToString(culture)}" : string.Empty;
                item.Texts[8]  = needle.InitialAngle.ToDegrees().ToString(culture);
                item.Texts[9]  = needle.LastAngle.ToDegrees().ToString(culture);
                item.Texts[10] = needle.Minimum.ToString(culture);
                item.Texts[11] = needle.Maximum.ToString(culture);
                item.Texts[12] = needle.DefinedNaturalFreq ? needle.NaturalFreq.ToString(culture) : string.Empty;
                item.Texts[13] = needle.DefinedDampingRatio ? needle.DampingRatio.ToString(culture) : string.Empty;
                item.Texts[14] = needle.Backstop.ToString();
                item.Texts[15] = needle.Smoothed.ToString();
                item.Texts[16] = needle.Layer.ToString(culture);
            }

            if (digitalNumber != null)
            {
                item.Texts[0] = digitalNumber.Subject.ToString();
                item.Texts[1] = $"{digitalNumber.LocationX.ToString(culture)}, {digitalNumber.LocationY.ToString(culture)}";
                item.Texts[2] = digitalNumber.DaytimeImage;
                item.Texts[3] = digitalNumber.NighttimeImage;
                item.Texts[4] = digitalNumber.TransparentColor.ToString();
                item.Texts[5] = digitalNumber.Interval.ToString(culture);
                item.Texts[6] = digitalNumber.Layer.ToString(culture);
            }

            if (digitalGauge != null)
            {
                item.Texts[0] = digitalGauge.Subject.ToString();
                item.Texts[1] = $"{digitalGauge.LocationX.ToString(culture)}, {digitalGauge.LocationY.ToString(culture)}";
                item.Texts[2] = digitalGauge.Radius.ToString(culture);
                item.Texts[3] = digitalGauge.Color.ToString();
                item.Texts[4] = digitalGauge.InitialAngle.ToDegrees().ToString(culture);
                item.Texts[5] = digitalGauge.LastAngle.ToDegrees().ToString(culture);
                item.Texts[6] = digitalGauge.Minimum.ToString(culture);
                item.Texts[7] = digitalGauge.Maximum.ToString(culture);
                item.Texts[8] = digitalGauge.Step.ToString(culture);
                item.Texts[9] = digitalGauge.Layer.ToString(culture);
            }

            if (linearGauge != null)
            {
                item.Texts[0] = linearGauge.Subject.ToString();
                item.Texts[1] = $"{linearGauge.LocationX.ToString(culture)}, {linearGauge.LocationY.ToString(culture)}";
                item.Texts[2] = linearGauge.DaytimeImage;
                item.Texts[3] = linearGauge.NighttimeImage;
                item.Texts[4] = linearGauge.TransparentColor.ToString();
                item.Texts[5] = linearGauge.Minimum.ToString(culture);
                item.Texts[6] = linearGauge.Maximum.ToString(culture);
                item.Texts[7] = $"{linearGauge.DirectionX.ToString(culture)}, {linearGauge.DirectionY.ToString(culture)}";
                item.Texts[8] = linearGauge.Width.ToString(culture);
                item.Texts[9] = linearGauge.Layer.ToString(culture);
            }

            if (timetable != null)
            {
                item.Texts[0] = $"{timetable.LocationX.ToString(culture)}, {timetable.LocationY.ToString(culture)}";
                item.Texts[1] = timetable.Width.ToString(culture);
                item.Texts[2] = timetable.Height.ToString(culture);
                item.Texts[3] = timetable.TransparentColor.ToString();
                item.Texts[4] = timetable.Layer.ToString(culture);
            }

            if (touch != null)
            {
                item.Texts[0] = $"{touch.LocationX.ToString(culture)}, {touch.LocationY.ToString(culture)}";
                item.Texts[1] = $"{touch.SizeX.ToString(culture)}, {touch.SizeY.ToString(culture)}";
                item.Texts[2] = touch.JumpScreen.ToString(culture);
                item.Texts[3] = touch.SoundIndex.ToString(culture);
                item.Texts[4] = touch.CommandInfo.Name;
                item.Texts[5] = touch.CommandOption.ToString(culture);
            }
        }