using Resources;
using SmartCoalApplication.Core;
using System;
using System.Globalization;
using System.Windows.Forms;
namespace SmartCoalApplication.Menus
{
///
/// 自动量测
///
internal sealed class MeasureMenu : PdnMenuItem
{
private PdnMenuItem menuAutoMeasure;
public MeasureMenu(int menuId)
{
InitializeComponent();
this.MenuId = menuId;
//在脚本中不显示
this.CanUseInScript = false;
this.AutomaticScript = false;
}
protected override void OnAppWorkspaceChanged()
{
base.OnAppWorkspaceChanged();
}
private void InitializeComponent()
{
this.menuAutoMeasure = new PdnMenuItem(ActionType.AutoMeasure);
//
// MeasureMenu
//
this.DropDownItems.AddRange(
new ToolStripItem[]
{
this.menuAutoMeasure
});
this.Name = "Menu.Measure";
this.Text = "自动量测";
//
// 自动量测
//
this.menuAutoMeasure.Click += new EventHandler(this.MenuAutoMeasure_Click);
this.menuAutoMeasure.Text = "自动量测";
this.menuAutoMeasure.Image = PdnResources.GetImageResource("Icons.AutoMeasure.png").Reference;
////
//// 加载菜单的文字和icon
////
//this.LoadNames(this.Name);
this.namesLoaded = true;
this.LoadIcons();
}
///
/// 自动量测
///
///
///
private void MenuAutoMeasure_Click(object sender, System.EventArgs e)
{
using (AutomaticMeasurement.AutomaticMeasurement af = new AutomaticMeasurement.AutomaticMeasurement(AppWorkspace))
{
af.StartPosition = FormStartPosition.CenterScreen;
af.ShowDialog(AppWorkspace);
}
}
private class MenuTitleAndLocale
{
public string title;
public string locale;
public MenuTitleAndLocale(string title, string locale)
{
this.title = title;
this.locale = locale;
}
}
private string GetCultureInfoName(CultureInfo ci)
{
CultureInfo en_US = new CultureInfo("en-US");
// For "English (United States)" we'd rather just display "English"
if (ci.Equals(en_US))
{
return GetCultureInfoName(ci.Parent);
}
else
{
return ci.NativeName;
}
}
private void MenuHelpLanguage_DropDownOpening(object sender, EventArgs e)
{
//this.menuHelpLanguage.DropDownItems.Clear();
string[] locales = PdnResources.GetInstalledLocales();
MenuTitleAndLocale[] mtals = new MenuTitleAndLocale[locales.Length];
for (int i = 0; i < locales.Length; ++i)
{
string locale = locales[i];
CultureInfo ci = new CultureInfo(locale);
mtals[i] = new MenuTitleAndLocale(ci.DisplayName, locale);
}
Array.Sort(
mtals,
delegate (MenuTitleAndLocale x, MenuTitleAndLocale y)
{
return string.Compare(x.title, y.title, StringComparison.InvariantCultureIgnoreCase);
});
foreach (MenuTitleAndLocale mtal in mtals)
{
ToolStripMenuItem menuItem = new ToolStripMenuItem();
menuItem.Text = GetCultureInfoName(new CultureInfo(mtal.locale));
menuItem.Tag = mtal.locale;
menuItem.Click += new EventHandler(LanguageMenuItem_Click);
if (0 == string.Compare(mtal.locale, CultureInfo.CurrentUICulture.Name, StringComparison.InvariantCultureIgnoreCase))
{
menuItem.Checked = true;
}
//this.menuHelpLanguage.DropDownItems.Add(menuItem);
}
}
///
/// 原来切换语言的功能
///
///
///
private void LanguageMenuItem_Click(object sender, EventArgs e)
{
/**
// Save off the old locale name in case they decide to cancel
string oldLocaleName = PdnResources.Culture.Name;
// Now, apply the chosen language so that the confirmation buttons show up in the right language
ToolStripMenuItem miwt = (ToolStripMenuItem)sender;
string newLocaleName = (string)miwt.Tag;
PdnResources.SetNewCulture(newLocaleName);
// Load the text and buttons in the new language
Icon formIcon = Utility.ImageToIcon(PdnResources.GetImageResource("Icons.MenuHelpLanguageIcon.png").Reference);
string title = PdnResources.GetString("ConfirmLanguageDialog.Title");
Image taskImage = null;
string introText = PdnResources.GetString("ConfirmLanguageDialog.IntroText");
Image restartImage = PdnResources.GetImageResource("Icons.RightArrowBlue.png").Reference;
string explanationTextFormat = PdnResources.GetString("ConfirmLanguageDialog.RestartTB.ExplanationText.Format");
CultureInfo newCI = new CultureInfo(newLocaleName);
// We prefer to show "English (United States)" as just "English"
CultureInfo en_US = new CultureInfo("en-US");
if (newCI.Equals(en_US))
{
newCI = newCI.Parent;
}
string languageName = newCI.NativeName;
string explanationText = string.Format(explanationTextFormat, languageName);
TaskButton restartTB = new TaskButton(
restartImage,
PdnResources.GetString("ConfirmLanguageDialog.RestartTB.ActionText"),
explanationText);
Image cancelImage = PdnResources.GetImageResource("Icons.CancelIcon.png").Reference;
TaskButton cancelTB = new TaskButton(
cancelImage,
PdnResources.GetString("ConfirmLanguageDialog.CancelTB.ActionText"),
PdnResources.GetString("ConfirmLanguageDialog.CancelTB.ExplanationText"));
int width96dpi = (TaskDialog.DefaultPixelWidth96Dpi * 5) / 4;
TaskButton clickedTB = TaskDialog.Show(
AppWorkspace,
formIcon,
title,
taskImage,
true,
introText,
new TaskButton[] { restartTB, cancelTB },
restartTB,
cancelTB,
width96dpi,
false,
0,
out bool unuse);
if (clickedTB == restartTB)
{
// Next, apply restart logic
CloseAllWorkspacesAction cawa = new CloseAllWorkspacesAction();
cawa.PerformAction(AppWorkspace);
if (!cawa.Cancelled)
{
SystemLayer.Shell.RestartApplication();
Startup.CloseApplication();
}
}
else
{
// Revert to the old language
PdnResources.SetNewCulture(oldLocaleName);
}
**/
}
}
}