예제 #1
0
        private void OnMouseEnterHotSpot(object sender, EventArgs e)
        {
            HotSpot.HotSpot hotSpot  = (HotSpot.HotSpot)sender;
            string          language = GetLanguageForSpellChecking(hotSpot.Control);

            hotSpot.Control.ContextMenuStrip = GetSuggestionContextMenu(language, hotSpot);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
        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();
        }
예제 #5
0
        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);
                }
            }
        }
예제 #6
0
        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 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();
		}
예제 #8
0
 public void Text_GivenOffsetAndLength_SubstringOfTextFromControl()
 {
     _textBox.Text = "Hello my darling";
     HotSpot.HotSpot hotSpot = new HotSpot.HotSpot(_textBox, 6, 2);
     Assert.AreEqual("my", hotSpot.Text);
 }
예제 #9
0
 private void MoveMouseSoOverHotSpot(HotSpot.HotSpot hotSpot)
 {
     MoveMouseToPositionAtCharIndex(hotSpot.Offset);
     Application.DoEvents();
 }
예제 #10
0
		public void Text_GivenOffsetAndLength_SubstringOfTextFromControl()
		{
			_textBox.Text = "Hello my darling";
			HotSpot.HotSpot hotSpot = new HotSpot.HotSpot(_textBox, 6, 2);
			Assert.AreEqual("my", hotSpot.Text);
		}
예제 #11
0
		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);
				}
			}
		}