public void OnPerformTranslation() { lblNoItems.Text = Translator.Translate("TXT_THEREARENOITEMS"); lblNoProperties.Text = Translator.Translate("TXT_THEREARENOITEMS"); lblNoPreview.Text = Translator.Translate("TXT_THEREARENOITEMS"); tsmiAbout.Text = Translator.Translate("TXT_ABOUT", Translator.TranslatedAppName); tsmiFile.Text = Translator.Translate("TXT_FILE"); tsmiSettings.Text = Translator.Translate("TXT_SETTINGS"); tXTAPPHELPToolStripMenuItem.Text = Translator.Translate("TXT_APPHELP"); tXTHELPToolStripMenuItem.Text = Translator.Translate("TXT_HELP"); tsmiExit.Text = Translator.Translate("TXT_EXIT"); foreach (OPMToolStripMenuItem tsmi in msMain.Items) { if (tsmi.Tag is NavigationAddon) { NavigationAddon addon = (tsmi.Tag as NavigationAddon); string name = Translator.Translate(addon.Name); tsmi.Text = name.Replace("*", ""); } } for (int j = 0; j < msMain.Items.Count; j++) { if (msMain.Items[j] != null && (msMain.Items[j].Tag is NavigationAddon) && (msMain.Items[j] as OPMToolStripMenuItem).Checked) { string appname = Translator.TranslatedAppName; string text = msMain.Items[j].Text; SetTitle($"{appname} - {text}"); break; } } Translator.TranslateToolStrip(msMain, DesignMode); }
/// <summary> /// Loads the navigation add-ons, as defined in the registry. /// </summary> protected override void Load() { // Initialize each of navigation addons. Careful not to break the loop // on eventual exceptions. It's important to try loading as much as // possible registered addons. if (AddonsConfig.NavigationAddons != null) { foreach (string addonName in AddonsConfig.NavigationAddons) { try { Logger.LogTrace("Loading navigation addon: {0} ...", addonName); NavigationAddon navAddon = new NavigationAddon(addonName); Addons.Add(addonName, navAddon); } catch (Exception ex) { ErrorDispatcher.DispatchError($"Could not load addon: {addonName}.\nError: { ex.Message}", false); } } } }
private void AddonButtonClick(object sender, EventArgs e) { Logger.LogTrace("MainForm.AddonButtonClick called ..."); NavigationAddon addon = null; OPMAddonMenuItem button = sender as OPMAddonMenuItem; if (button != null) { addon = button.Tag as NavigationAddon; if (addon == null) { return; } if (!string.IsNullOrEmpty(_launchPath)) { addon.AddonPanel.Tag = _launchPath; _launchPath = string.Empty; } if (addon != null) { pnlNavContainer.SuspendLayout(); addon.AddonPanel.Dock = DockStyle.Fill; addon.AddonPanel.Visible = true; addon.AddonPanel.PanelTitle = button.Text.Replace("\r", "").Replace("\n", ""); addon.AddonPanel.NavigationAction -= new NavBaseCtl.NavigationActionEventHandler(OnNavigationAction); addon.AddonPanel.NavigationAction += new NavBaseCtl.NavigationActionEventHandler(OnNavigationAction); pnlNavContainer.Controls.Clear(); pnlNavContainer.Controls.Add(addon.AddonPanel); pnlNavContainer.ResumeLayout(); foreach (OPMToolStripMenuItem tsButton in msMain.Items) { if (tsButton is OPMAddonMenuItem) { if (button.Tag != tsButton.Tag) { NavigationAddon na = tsButton.Tag as NavigationAddon; if (na != null && na.AddonPanel != null) { na.AddonPanel.OnActiveStateChanged(false); } tsButton.Checked = false; } } } addon.AddonPanel.OnActiveStateChanged(true); ThemeManager.SetDoubleBuffer(addon.AddonPanel); //button.Image = null; button.Checked = true; //button.BackColor = Color.FromArgb(150, ThemeManager.GradientNormalColor2); AddonAppConfig.LastNavAddon = button.Name; SetTitle($"{Translator.TranslatedAppName} - {button.Text}"); } } Logger.LogTrace("MainForm.AddonButtonClick done."); }
/// <summary> /// Gets all the navigation addons and displays them in the /// navigation bar. /// </summary> private bool GetNavigationAddons() { Logger.LogTrace("MainForm.GetNavigationAddons called ..."); AddonsCore.Instance.PreviewEnded += new PreviewEndedEventHandler(Instance_PreviewEnded); if (AddonsCore.Instance.NavAddonsLoader == null || AddonsCore.Instance.NavAddonsLoader.Addons == null || AddonsCore.Instance.NavAddonsLoader.Addons.Count < 1) { return(false); } IDictionaryEnumerator enumerator = AddonsCore.Instance.NavAddonsLoader.Addons.GetEnumerator(); Translator.TranslateToolStrip(msMain, DesignMode); OPMAddonMenuItem catalogButton = null; OPMAddonMenuItem previousAddonButton = null; while (enumerator.MoveNext()) { NavigationAddon addon = enumerator.Value as NavigationAddon; if (addon != null) { string name = Translator.Translate(addon.Name); OPMAddonMenuItem button = new OPMAddonMenuItem(name.Replace("*", "")); button.Name = addon.AddonTypeName; button.Click += new EventHandler(AddonButtonClick); //button.AutoSize = true; NavBaseCtl panel = addon.AddonPanel; button.Image = panel.SmallAddonImage; button.Tag = addon; button.ImageTransparentColor = Color.Magenta; msMain.Items.Add(button); if (addon.AddonTypeName == AddonAppConfig.LastNavAddon) { previousAddonButton = button; } if (addon.AddonTypeName.ToLowerInvariant().Contains("catalog")) { catalogButton = button; } } } msMain.ResumeLayout(); if (!string.IsNullOrEmpty(_launchPath)) { // Need to figure out which navigation addon must be used to open this file if (msMain.Items.Count >= 1) { string ext = PathUtils.GetExtension(_launchPath); foreach (OPMToolStripMenuItem button in msMain.Items) { NavigationAddon addon = button.Tag as NavigationAddon; if (addon != null && addon.AddonPanel != null && addon.AddonPanel.HandledFileTypes != null && addon.AddonPanel.HandledFileTypes.Count > 0 && addon.AddonPanel.HandledFileTypes.Contains(ext)) { AddonButtonClick(button, null); return(true); } } ErrorDispatcher.DispatchError("ProTONE Media Library cannot handle this file: " + _launchPath, false); Process.GetCurrentProcess().Kill(); return(true); } } if (previousAddonButton != null) { AddonButtonClick(previousAddonButton, null); } else if (msMain.Items.Count >= 1) { foreach (OPMToolStripMenuItem button in msMain.Items) { if (button is OPMAddonMenuItem && button.Tag is NavigationAddon) { AddonButtonClick(button, null); break; } } } Logger.LogTrace("MainForm.GetNavigationAddons done."); return(true); }