// Edit Exterior Configuration
        private void BtEditExteriorConfiguration_OnClick(object sender, RoutedEventArgs e)
        {
            Hide();
            try
            {
                if (CbExteriorConfigurations.SelectedIndex == -1)
                {
                    return;
                }
                var selected      = (ExteriorConfiguration)CbExteriorConfigurations.SelectedItem;
                var selectedIndex = CbExteriorConfigurations.SelectedIndex;

                ExteriorConfigurationWin win = new ExteriorConfigurationWin(selected)
                {
                    Title = ModPlusAPI.Language.GetItem(LangItem, "h15")
                };
                var result = win.ShowDialog();
                if (result == true)
                {
                    _exteriorConfigurations.RemoveAt(selectedIndex);
                    _exteriorConfigurations.Insert(selectedIndex, win.CurrentExteriorConfiguration);
                    CbExteriorConfigurations.ItemsSource   = _exteriorConfigurations;
                    CbExteriorConfigurations.SelectedIndex = selectedIndex;
                    SettingsFile.SaveExteriorConfigurations(_exteriorConfigurations);
                }
            }
            catch (Exception exception)
            {
                ExceptionBox.Show(exception);
            }
            finally
            {
                ShowDialog();
            }
        }
        // delete configuration
        private void BtDeleteExteriorConfiguration_OnClick(object sender, RoutedEventArgs e)
        {
            if (CbExteriorConfigurations.SelectedIndex == -1)
            {
                return;
            }
            var selected      = (ExteriorConfiguration)CbExteriorConfigurations.SelectedItem;
            var selectedIndex = CbExteriorConfigurations.SelectedIndex;

            if (ModPlusAPI.Windows.MessageBox.ShowYesNo(
                    ModPlusAPI.Language.GetItem(LangItem, "h12") + " \"" + selected.Name + "\" " +
                    ModPlusAPI.Language.GetItem(LangItem, "h13") + Environment.NewLine +
                    ModPlusAPI.Language.GetItem(LangItem, "h14"),
                    ModPlusAPI.Language.GetItem(LangItem, "attention")))
            {
                _exteriorConfigurations.RemoveAt(selectedIndex);
                CbExteriorConfigurations.ItemsSource = _exteriorConfigurations;
                if (selectedIndex >= 1)
                {
                    CbExteriorConfigurations.SelectedIndex = selectedIndex - 1;
                }
                SettingsFile.SaveExteriorConfigurations(_exteriorConfigurations);
                if (!_exteriorConfigurations.Any())
                {
                    BtDeleteExteriorConfiguration.IsEnabled = false;
                    BtEditExteriorConfiguration.IsEnabled   = false;
                }
            }
        }
 // Add new Exterior Configuration
 private void BtAddNewExteriorConfiguration_OnClick(object sender, RoutedEventArgs e)
 {
     Hide();
     try
     {
         ExteriorConfigurationWin win = new ExteriorConfigurationWin {
             Title = ModPlusAPI.Language.GetItem(LangItem, "h11")
         };
         var result = win.ShowDialog();
         if (result == true)
         {
             _exteriorConfigurations.Add(win.CurrentExteriorConfiguration);
             CbExteriorConfigurations.ItemsSource   = _exteriorConfigurations;
             CbExteriorConfigurations.SelectedIndex = CbExteriorConfigurations.Items.Count - 1;
             SettingsFile.SaveExteriorConfigurations(_exteriorConfigurations);
             BtDeleteExteriorConfiguration.IsEnabled = true;
             BtEditExteriorConfiguration.IsEnabled   = true;
         }
     }
     catch (Exception exception)
     {
         ExceptionBox.Show(exception);
     }
     finally
     {
         ShowDialog();
     }
 }