示例#1
0
        void Message(CabControl control, ConfirmLevel level, string message)
        {
            // User can suppress levels None and Information but not Warning, Error and MSGs.
            // Cab control confirmations have level None.
            if (level < ConfirmLevel.Information && Simulator.Settings.SuppressConfirmations)
            {
                return;
            }

            var format = "{2}";

            // Skip control name if not a control
            if (control != CabControl.None)
            {
                format = "{0}: " + format;
            }
            if (level >= ConfirmLevel.Information)
            {
                format = "{1} - " + format;
            }
            var duration = DefaultDurationS;

            if (level >= ConfirmLevel.Warning)
            {
                duration *= 2;
            }
            if (level >= ConfirmLevel.MSG)
            {
                duration *= 5;
            }
            if (DisplayMessage != null)
            {
                DisplayMessage(this, new DisplayMessageEventArgs(String.Format("{0}/{1}", control, level), String.Format(format, ConfirmText[(int)control][0], Simulator.Catalog.GetString(GetStringAttribute.GetPrettyName(level)), message), duration));
            }
        }
示例#2
0
 protected void Confirm(CabControl control, CabSetting setting)
 {
     if (Wagon == Simulator.PlayerLocomotive)
     {
         Simulator.Confirmer?.Confirm(control, setting);
     }
 }
示例#3
0
        private void Message(CabControl control, ConfirmLevel level, string message)
        {
            // User can suppress levels None and Information but not Warning, Error and MSGs.
            // Cab control confirmations have level None.
            if (level < ConfirmLevel.Information && Simulator.Settings.SuppressConfirmations)
            {
                return;
            }

            var format = "{2}";

            // Skip control name if not a control
            if (control != CabControl.None)
            {
                format = "{0}: " + format;
            }
            if (level >= ConfirmLevel.Information)
            {
                format = "{1} - " + format;
            }
            var duration = DefaultDurationS;

            if (level >= ConfirmLevel.Warning)
            {
                duration *= 2;
            }
            if (level >= ConfirmLevel.Message)
            {
                duration *= 5;
            }
            DisplayMessage?.Invoke(this, new DisplayMessageEventArgs($"{control}/{level}", string.Format(CultureInfo.CurrentCulture, format, ConfirmText[(int)control][0], level.GetLocalizedDescription(), message), duration));
        }
示例#4
0
 public void Warning(CabControl control, CabSetting setting)
 {
     if (PlayErrorSound != null)
     {
         PlayErrorSound(this, EventArgs.Empty);
     }
     Message(control, ConfirmLevel.Warning, ConfirmText[(int)control][(int)setting]);
 }
示例#5
0
 public void Message(CabControl control, string format, params object[] args)
 {
     Message(control, ConfirmLevel.None, String.Format(format, args));
 }
示例#6
0
 public void Update(CabControl control, CabSetting setting, string text)
 {
     Message(control, Simulator.Catalog.GetString("{0} {1}"), ConfirmText[(int)control][(int)setting], text);
 }
示例#7
0
 public void UpdateWithPerCent(CabControl control, CabSetting setting, float perCent)
 {
     Message(control, Simulator.Catalog.GetString("{0} {1:0}%"), ConfirmText[(int)control][(int)setting], perCent);
 }
示例#8
0
 public void UpdateWithPerCent(CabControl control, int action, float perCent)
 {
     Message(control, Simulator.Catalog.GetString("{0} {1:0}%"), ConfirmText[(int)control][action], perCent);
 }
示例#9
0
 public void ConfirmWithPerCent(CabControl control, float perCent)
 {
     Message(control, Simulator.Catalog.GetString("{0:0}%"), perCent);
 }
示例#10
0
 public void ConfirmWithPerCent(CabControl control, float perCent, CabSetting setting)
 {
     Message(control, Simulator.Catalog.GetString("{0:0}% {1}"), perCent, ConfirmText[(int)control][(int)setting]);
 }
示例#11
0
 public void ConfirmWithPerCent(CabControl control, CabSetting setting1, float perCent, int setting2)
 {
     Message(control, Simulator.Catalog.GetString("{0} {1:0}% {2}"), ConfirmText[(int)control][(int)setting1], perCent, ConfirmText[(int)control][setting2]);
 }
示例#12
0
 public void Confirm(CabControl control, CabSetting setting)
 {
     Message(control, Simulator.Catalog.GetString("{0}"), ConfirmText[(int)control][(int)setting]);
 }
示例#13
0
 public void Confirm(CabControl control, string text)
 {
     Message(control, Simulator.Catalog.GetString("{0} {1}"), ConfirmText[(int)control][0], text);
 }
示例#14
0
 public void Message(CabControl control, string format, params object[] args)
 {
     Message(control, ConfirmLevel.None, string.Format(CultureInfo.CurrentCulture, format, args));
 }