private void OnMouseEnterHotSpot(object sender, EventArgs e) { HotSpot.HotSpot hotSpot = (HotSpot.HotSpot)sender; string language = GetLanguageForSpellChecking(hotSpot.Control); hotSpot.Control.ContextMenuStrip = GetSuggestionContextMenu(language, hotSpot); }
private ContextMenuStrip GetSuggestionContextMenu(string language, HotSpot.HotSpot hotSpot) { ContextMenuStrip strip = new ContextMenuStrip(); strip.ShowImageMargin = false; strip.ShowCheckMargin = false; ToolStripMenuItem item; int suggestionCount = 0; foreach (string suggestion in GetSuggestions(language, hotSpot.Text)) { if (++suggestionCount > 10) { break; } item = new ToolStripMenuItem(suggestion); item.Tag = hotSpot; item.Click += OnChooseSuggestedSpelling; strip.Items.Add(item); } if (strip.Items.Count == 0) { item = new ToolStripMenuItem(StringCatalog.Get("(No Spelling Suggestions)")); item.Enabled = false; strip.Items.Add(item); } strip.Items.Add(new ToolStripSeparator()); item = new ToolStripMenuItem(StringCatalog.Get("Add to Dictionary")); item.Tag = hotSpot; item.Click += OnAddToDictionary; strip.Items.Add(item); return(strip); }
private void OnAddToDictionary(object sender, EventArgs e) { ToolStripMenuItem item = (ToolStripMenuItem)sender; HotSpot.HotSpot hotSpot = (HotSpot.HotSpot)item.Tag; string language = GetLanguageForSpellChecking(hotSpot.Control); AddToDictionary(language, hotSpot.Text); }
private static void ReplaceText(HotSpot.HotSpot area, string text) { TextBoxBase control = area.Control; control.SelectionStart = area.Offset; control.SelectionLength = area.Text.Length; TextBox textBox = control as TextBox; if (textBox != null) { textBox.Paste(text); //allows it to be undone } else { control.SelectedText = text; } control.Invalidate(); }
private void CheckSpelling(object sender, RetrieveHotSpotsEventArgs e) { string text = e.Text; e.Color = Color.DarkSalmon; string language = GetLanguageForSpellChecking(e.Control); IEnumerable <WordTokenizer.Token> tokens = WordTokenizer.TokenizeText(text); foreach (WordTokenizer.Token token in tokens) { if (!IsWordSpelledCorrectly(language, token.Value)) { HotSpot.HotSpot hotArea = new HotSpot.HotSpot(e.Control, token.Offset, token.Length); hotArea.MouseLeave += OnMouseLeaveHotSpot; hotArea.MouseEnter += OnMouseEnterHotSpot; e.AddHotSpot(hotArea); } } }
public void Setup() { _hotSpotProvider = new HotSpotProvider(); _textBox = new ClickableTextBox(); _textBox.Width = 350; _textBox.Text = "Now is the time for ..."; _spot1 = new HotSpot.HotSpot(_textBox, 7, 3); _spot2 = new HotSpot.HotSpot(_textBox, 16, 3); _hotSpotProvider.SetEnableHotSpots(_textBox, true); _hotSpotProvider.RetrieveHotSpots += delegate(object sender, RetrieveHotSpotsEventArgs e) { e.AddHotSpot(_spot1); e.AddHotSpot(_spot2); e.Color = Color.Yellow; }; _originalCursorPosition = Cursor.Position; _form = new Form(); _form.Controls.Add(_textBox); _form.Show(); }
public void Text_GivenOffsetAndLength_SubstringOfTextFromControl() { _textBox.Text = "Hello my darling"; HotSpot.HotSpot hotSpot = new HotSpot.HotSpot(_textBox, 6, 2); Assert.AreEqual("my", hotSpot.Text); }
private void MoveMouseSoOverHotSpot(HotSpot.HotSpot hotSpot) { MoveMouseToPositionAtCharIndex(hotSpot.Offset); Application.DoEvents(); }
private void CheckSpelling(object sender, RetrieveHotSpotsEventArgs e) { string text = e.Text; e.Color = Color.DarkSalmon; string language = GetLanguageForSpellChecking(e.Control); IEnumerable<WordTokenizer.Token> tokens = WordTokenizer.TokenizeText(text); foreach (WordTokenizer.Token token in tokens) { if (!IsWordSpelledCorrectly(language, token.Value)) { HotSpot.HotSpot hotArea = new HotSpot.HotSpot(e.Control, token.Offset, token.Length); hotArea.MouseLeave += OnMouseLeaveHotSpot; hotArea.MouseEnter += OnMouseEnterHotSpot; e.AddHotSpot(hotArea); } } }