123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221 |
- using Resources;
- using SmartCoalApplication.Core;
- using System;
- using System.Globalization;
- using System.Windows.Forms;
- namespace SmartCoalApplication.Menus
- {
- /// <summary>
- /// 自动量测
- /// </summary>
- 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();
- }
- /// <summary>
- /// 自动量测
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- 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);
- }
- }
- /// <summary>
- /// 原来切换语言的功能
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- 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);
- }
- **/
- }
- }
- }
|