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); } **/ } } }