void ShowSynonyms(TipTextBox textBox) { if (textBox == null) { MessageBox.Show("Current editor is missing"); return; } GoogleSynonymsDictionary dict = new GoogleSynonymsDictionary(); if (string.IsNullOrEmpty(dict.GetContainsSourceLanguage(textBox.LangDir.From))) { MessageBox.Show(string.Format("Language {0} is missing for dictionary", textBox.LangDir.From)); return; } int start = textBox.SelectionStart; int end = start; string word = TipTextBox.GetWord(textBox, ref start, ref end); string titledWord = word; if (word.Contains(SentenceForLesson.CharHided)) { if (textBox.Sentence == null) { MessageBox.Show("Current sentence is missing"); return; } word = TipTextBox.GetClearWord(textBox.Sentence, start, end); } if (!string.IsNullOrEmpty(word)) { FloatWebBrowserForm browserForm = new FloatWebBrowserForm(); browserForm.HTMLContent = dict.GetContent(word, textBox.LangDir); browserForm.Text = string.Format("Synonyms for '{0}'", titledWord); browserForm.Show(this); } }
void timer_Tick(object sender, EventArgs e) { if (this.Sentence == null) { return; } if (this.ForeignText.IsDisposed) { return; } // здесь вызов только выделенного текста // oldSelectedText сбрасывается через секунду if (oldSelectedText != this.ForeignText.SelectedText) // проверим с таймером что текст устоялся { oldSelectedText = this.ForeignText.SelectedText; } else { if (this.ActiveControl == ForeignText) { if (oldSelectedText != previousTextForTranslate) { string _SelectedText = this.ForeignText.SelectedText; string _maskedText = ""; // Console.WriteLine(_SelectedText + " -- CallTranslate(_SelectedText);"); if (_SelectedText.Contains(SentenceForLesson.CharHided)) { if (_SelectedText.Length == 1) { return; } _maskedText = _SelectedText; _SelectedText = TipTextBox.GetClearWord(this.Sentence, this.ForeignText.SelectionStart, this.ForeignText.SelectionStart + this.ForeignText.SelectionLength); } // старое один выделенный символ не переводим if (previousTextForTranslate == _SelectedText) // || _SelectedText.Length == 1 ) { return; } if (oldSelectedText.Length > 0 && UtilsForText.IsWord(_SelectedText)) // IsHaveSeveralWords(_SelectedText)) { string translation = this.Sentence.GetCashForTranslation(_SelectedText); if (string.IsNullOrEmpty(translation) && !WWW.InternetIsUnavailable.Equals(translation)) { CallTranslate(_SelectedText, _maskedText); } else { this.translatedText.AssignText(translation); } } else { this.translatedText.AssignText(this.Sentence.TranslAndComment); } previousTextForTranslate = _SelectedText; } } } }