/// <summary> /// Handles the xWorks message for Try A Word /// </summary> /// <param name="argument">The xCore Command object.</param> /// <returns>false</returns> public bool OnTraceWord(object argument) { CheckDisposed(); if (m_dialog == null) { m_dialog = new ParseWordDlg(m_mediator); m_dialog.FormClosed += new FormClosedEventHandler(m_dialog_FormClosed); XWorks.FwXWindow form = (XWorks.FwXWindow)m_mediator.PropertyTable.GetValue("window"); if (m_persistProvider != null) { m_persistProvider.RestoreWindowSettings(m_ksTryAWord, m_dialog); } m_dialog.Show(form); m_dialog.InitStatusMaterial(); // This allows Keyman to work correctly on initial typing. // Marc Durdin suggested switching to a different window and back. // PostMessage gets into the queue after the dialog settles down, so it works. Win32.PostMessage(form.Handle, Win32.WinMsgs.WM_SETFOCUS, 0, 0); Win32.PostMessage(m_dialog.Handle, Win32.WinMsgs.WM_SETFOCUS, 0, 0); } else { if (m_dialog.WindowState == FormWindowState.Minimized) { if (m_dialog.m_windowState == FormWindowState.Maximized) { m_dialog.WindowState = FormWindowState.Maximized; } else { m_dialog.WindowState = FormWindowState.Normal; } } else { m_dialog.WindowState = m_dialog.m_windowState; m_dialog.Activate(); } } return(true); // we handled this }
public void SetDlgInfo(Mediator mediator, IWfiWordform wordform, ParserListener parserListener) { m_mediator = mediator; m_persistProvider = new PersistenceProvider(PersistProviderID, m_mediator.PropertyTable); m_cache = (FdoCache) m_mediator.PropertyTable.GetValue("cache"); m_parserListener = parserListener; Text = m_cache.ProjectId.UiName + " - " + Text; SetRootSite(); SetFontInfo(); // restore window location and size after setting up the form textbox, because it might adjust size of // window causing the window to grow every time it is opened m_persistProvider.RestoreWindowSettings(PersistProviderID, this); if (wordform == null) GetLastWordUsed(); else SetWordToUse(wordform.Form.VernacularDefaultWritingSystem.Text); m_webPageInteractor = new WebPageInteractor(m_htmlControl, m_mediator, m_wordformTextBox); #if !__MonoCS__ m_htmlControl.Browser.ObjectForScripting = m_webPageInteractor; #endif // HermitCrab does not currently support selected tracing /*if (m_cache.LangProject.MorphologicalDataOA.ActiveParser == "HC") { m_parserCanDoSelectMorphs = false; m_doSelectMorphsCheckBox.Enabled = false; } */ // No such thing as FwApp.App now: if(FwApp.App != null) // Could be null during testing if (m_mediator.HelpTopicProvider != null) // trying this { m_helpProvider.HelpNamespace = m_mediator.HelpTopicProvider.HelpFile; m_helpProvider.SetHelpKeyword(this, m_mediator.HelpTopicProvider.GetHelpString(HelpTopicID)); m_helpProvider.SetHelpNavigator(this, HelpNavigator.Topic); } if (m_parserListener.Connection != null) { m_parserListener.Connection.TryAWordDialogIsRunning = true; m_statusLabel.Text = GetString("ParserStatusPrefix") + ParserUIStrings.ksIdle_ + GetString("ParserStatusSuffix"); } else { m_statusLabel.Text = ParserStoppedMessage(); } }