예제 #1
0
        public void SetLanguageForSpellChecking(Control control, string language)
        {
            if (control == null)
            {
                throw new ArgumentNullException();
            }
            if (!CanExtend(control))
            {
                throw new ArgumentException("Control must be derived from TextBoxBase");
            }
            if (String.IsNullOrEmpty(language))
            {
                if (_hotSpotProvider != null)
                {
                    _hotSpotProvider.SetEnableHotSpots(control, false);
                }
                _extendees.Remove(control);
            }
            else
            {
                if (_broker != null)
                {
                    try
                    {
                        if (_broker.DictionaryExists(language))
                        {
                            if (!_dictionaries.ContainsKey(language))
                            {
                                _dictionaries.Add(language, _broker.RequestDictionary(language));
                            }
                            _hotSpotProvider.SetEnableHotSpots(control, true);
                        }
                    }
                    catch (Exception error)
                    {
                        //the actual error messages are always worthless, talking about corrupted memory
                        //ErrorReport.NotifyUserOfProblem(new ShowOncePerSessionBasedOnExactMessagePolicy(), "There was a problem with the Enchant Spell-Checking system related to {0}", language);

                        //The number of false errors here is so high that for now, let's not bother to scare the user
                    }
                }
                _extendees[control] = language;
            }
        }
예제 #2
0
        public void SetEnableHotSpots_CalledAfterDisposed_Throws()
        {
            HotSpotProvider hotSpotProvider = new HotSpotProvider();

            hotSpotProvider.Dispose();
            using (TextBox textBox = new TextBox())
            {
                Assert.Throws <ObjectDisposedException>(() =>
                                                        hotSpotProvider.SetEnableHotSpots(textBox, false));
            }
        }
예제 #3
0
        public void DisableHotSpotProvider_MouseEventsNoLongerFired()
        {
            bool mouseEnterFired = false;

            _spot1.MouseEnter += delegate { mouseEnterFired = true; };

            _hotSpotProvider.SetEnableHotSpots(_textBox, false);

            Application.DoEvents();
            Assert.IsFalse(mouseEnterFired);

            MoveMouseSoOverHotSpot(_spot1);
            Assert.IsFalse(mouseEnterFired);
        }
예제 #4
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();
        }
예제 #5
0
 public void GetEnableHotSpots_SetTrue_True()
 {
     using (TextBox textBox = new TextBox())
     {
         _hotSpotProvider.SetEnableHotSpots(textBox, true);
         Assert.IsTrue(_hotSpotProvider.GetEnableHotSpots(textBox));
     }
 }