/// ------------------------------------------------------------------------------------ /// <summary> /// /// </summary> /// <param name="comboWS">Combo box containing the list of writing systems</param> /// ------------------------------------------------------------------------------------ private void RunWizard(ComboBox comboWS) { using (new WaitCursor(this)) { using (WritingSystemWizard wiz = new WritingSystemWizard()) { ILgWritingSystemFactory wsf = LgWritingSystemFactoryClass.Create(); try { wiz.Init(wsf, m_helpTopicProvider); if (comboWS == m_cbVernWrtSys) { wiz.PerformInitialSearch(m_txtName.Text.Trim()); } if (wiz.ShowDialog() == DialogResult.OK) { UpdateLanguageCombos(); string target = wiz.WritingSystem().IcuLocale; for (int i = 0; i < comboWS.Items.Count; ++i) { if (((NamedWritingSystem)comboWS.Items[i]).IcuLocale == target) { comboWS.SelectedIndex = i; break; } } } } finally { wsf.Shutdown(); } } } }
private void CommonAddWS(bool isAnalysis, MenuItem selectedMI) { string icuLocal = "", mapName = "", wsName = ""; bool addWs = true; if (selectedMI.Text == LexTextControls.ks_DefineNew_) { using (WritingSystemWizard wiz = new WritingSystemWizard()) { wiz.Init(m_cache.LanguageWritingSystemFactoryAccessor, FwApp.App); DialogResult dr = (DialogResult)wiz.ShowDialog(); if (dr == DialogResult.OK) { // The engine from the wizard isn't the real one, so it doesn't have an id. IWritingSystem wsEngine = wiz.WritingSystem(); icuLocal = wsEngine.IcuLocale; mapName = wsEngine.LegacyMapping; wsName = wsEngine.LanguageName; } else { addWs = false; } } } else { NamedWritingSystem namedWs = selectedMI.Tag as NamedWritingSystem; ILgWritingSystem wsEngine = namedWs.GetLgWritingSystem(m_cache); icuLocal = wsEngine.ICULocale; mapName = wsEngine.LegacyMapping; wsName = wsEngine.Name.BestAnalysisAlternative.Text; } if (addWs) { int ws = m_cache.LanguageWritingSystemFactoryAccessor.GetWsFromStr(icuLocal); // string wsName = ws.get_UiName(wsUser); WsInfo wsi = new WsInfo(ws, wsName, icuLocal, mapName); m_wsInfo.Add(wsi.KEY, wsi); // now select it for the ws combo box int index = cbWS.Items.Add(wsi); cbWS.SelectedIndex = index; // now if there's an encoding converter for the ws, select it if (mapName != null && mapName.Length > 0) { index = cbEC.Items.Add(mapName); cbEC.SelectedIndex = index; } else { index = cbEC.FindStringExact(m_blankEC); cbEC.SelectedIndex = index; } // now add the ws to the FDO list for it if (isAnalysis) { m_cache.LangProject.AnalysisWssRC.Add(ws); m_cache.LangProject.CurAnalysisWssRS.Append(ws); } else { m_cache.LangProject.VernWssRC.Add(ws); m_cache.LangProject.CurVernWssRS.Append(ws); } } }