コード例 #1
0
        /// <summary>The add event handlers.</summary>
        /// <param name="control">The control.</param>
        /// <param name="provider">The provider.</param>
        private static void AddEventHandlers(Control control, HyperToolTipProvider provider)
        {
            Debug.Assert(control != null);
            if (control.Tag != null && !string.IsNullOrEmpty(control.Tag.ToString()))
            {
                // Console.WriteLine(control.Tag.ToString());
                // control.MouseHover += parentform.button1_Hover;

                // attach handler
                provider.SetHyperToolTipId(control, control.Tag.ToString());
            }

            if (control is ToolStrip)
            {
                AddEventHandlers(control as ToolStrip, provider);
            }
            else
            {
                // iterate thru child controls
                foreach (Control child in control.Controls)
                {
                    AddEventHandlers(child, provider);
                }
            }
        }
コード例 #2
0
 /// <summary>Populate hyper tooltips provider with all toolbars found on the form.<see cref="ToolStripItem"/>'s Tag property is used as HyperToolTipId.
 /// Attaches tooltips only to toolbar on the form.</summary>
 /// <param name="form"><see cref="Form"/> to enumerate UI elements in.</param>
 /// <param name="provider"><see cref="HyperToolTipProvider"/> instance to populate</param>
 public static void PopulateWithToolbars(Form form, HyperToolTipProvider provider)
 {
     foreach (Control child in form.Controls)
     {
         if (child is ToolStrip)
         {
             AddEventHandlers(child as ToolStrip, provider);
         }
     }
 }
        public void SetGetHyperToolTipIdToolStrip2Test()
        {
            var hyperToolTipProvider = new HyperToolTipProvider();

            var id = "id";
            var toolStripButton1 = new ToolStripButton();

            // try to set id before button is added to ToolStrip
            hyperToolTipProvider.SetHyperToolTipId(toolStripButton1, id);

            Assert.AreEqual(id, hyperToolTipProvider.GetHyperToolTipId(toolStripButton1));
        }
        public void SetGetHyperToolTipIdTabControl2Test()
        {
            var hyperToolTipProvider = new HyperToolTipProvider();

            var id   = "id";
            var page = new TabPage();

            // try to set id before page is added to TabControl
            hyperToolTipProvider.SetHyperToolTipId(page, id);

            Assert.AreEqual(id, hyperToolTipProvider.GetHyperToolTipId(page));
        }
        public void RemoveControlOnDisposedControlTest()
        {
            var hyperToolTipProvider = new HyperToolTipProvider();

            var id   = "id";
            var ctrl = new Button();

            hyperToolTipProvider.SetHyperToolTipId(ctrl, id);

            Assert.AreEqual(id, hyperToolTipProvider.GetHyperToolTipId(ctrl));
            ctrl.Dispose();
            Assert.AreEqual(
                string.Empty, hyperToolTipProvider.GetHyperToolTipId(ctrl), "control is not deregistered automatically");
        }
        public void CanExtendTest()
        {
            var hyperToolTipProvider = new HyperToolTipProvider();

            Assert.IsFalse(hyperToolTipProvider.CanExtend(null));
            Assert.IsTrue(hyperToolTipProvider.CanExtend(new Control()));
            Assert.IsFalse(hyperToolTipProvider.CanExtend(new TabControl()));
            Assert.IsFalse(hyperToolTipProvider.CanExtend(new Form()));
            Assert.IsFalse(hyperToolTipProvider.CanExtend(new ToolStrip()));
            Assert.IsTrue(hyperToolTipProvider.CanExtend(new ToolStripMenuItem()));
            Assert.IsTrue(hyperToolTipProvider.CanExtend(new ToolStripButton()));
            Assert.IsTrue(hyperToolTipProvider.CanExtend(new ToolStripComboBox()));
            Assert.IsFalse(hyperToolTipProvider.CanExtend("xxx"));
        }
        public void SetGetHyperToolTipIdToolStripTest()
        {
            var hyperToolTipProvider = new HyperToolTipProvider();

            var id = "id";
            var toolStripButton1 = new ToolStripButton();
            var toolStrip1       = new ToolStrip();

            toolStrip1.Items.AddRange(new ToolStripItem[] { toolStripButton1 });

            hyperToolTipProvider.SetHyperToolTipId(toolStripButton1, id);

            Assert.AreEqual(id, hyperToolTipProvider.GetHyperToolTipId(toolStripButton1));
        }
        public void SetGetHyperToolTipIdTabControlTest()
        {
            var hyperToolTipProvider = new HyperToolTipProvider();

            var id      = "id";
            var tabCtrl = new TabControl();
            var page    = new TabPage();

            tabCtrl.Controls.Add(page);

            hyperToolTipProvider.SetHyperToolTipId(page, id);

            Assert.AreEqual(id, hyperToolTipProvider.GetHyperToolTipId(page));
        }
        public void ConstructorTest()
        {
            var hyperToolTipProvider = new HyperToolTipProvider();

            // test default values
            Assert.IsTrue(hyperToolTipProvider.Active);
            Assert.IsFalse(hyperToolTipProvider.Debug);
            Assert.AreEqual(250, hyperToolTipProvider.FadingInterval);
            Assert.AreEqual(500, hyperToolTipProvider.InitialDelay);
            Assert.AreEqual(hyperToolTipProvider.InitialDelay / 5, hyperToolTipProvider.ReshowDelay);
            Assert.AreEqual(0.95, hyperToolTipProvider.Opacity);
            Assert.AreEqual(new Size(320, 205), hyperToolTipProvider.PopupSizeLarge);
            Assert.AreEqual(new Size(300, 145), hyperToolTipProvider.PopupSizeNormal);
            Assert.IsFalse(hyperToolTipProvider.ShowAlways);
            Assert.AreEqual(SystemInformation.IsMenuAnimationEnabled && SystemInformation.IsMenuFadeEnabled, hyperToolTipProvider.UseFading);
        }
        public void RemoveControlOnDisposedTabControlTest()
        {
            var hyperToolTipProvider = new HyperToolTipProvider();

            var id      = "id";
            var tabCtrl = new TabControl();
            var page    = new TabPage();

            tabCtrl.Controls.Add(page);

            hyperToolTipProvider.SetHyperToolTipId(page, id);

            Assert.AreEqual(id, hyperToolTipProvider.GetHyperToolTipId(page));
            tabCtrl.Dispose();
            Assert.AreEqual(
                string.Empty, hyperToolTipProvider.GetHyperToolTipId(page), "control is not deregistered automatically");
        }
コード例 #11
0
 /// <summary>The add event handlers.</summary>
 /// <param name="control">The control.</param>
 /// <param name="provider">The provider.</param>
 private static void AddEventHandlers(ToolStrip control, HyperToolTipProvider provider)
 {
     foreach (ToolStripItem item in control.Items)
     {
         if (item is ToolStripDropDownItem)
         {
             AddEventHandlers(item as ToolStripDropDownItem, provider);
         }
         else
         {
             if (item.Tag != null && !string.IsNullOrEmpty(item.Tag.ToString()))
             {
                 // attach handler
                 provider.SetHyperToolTipId(item, item.Tag.ToString());
             }
         }
     }
 }
        public void DisposeTest()
        {
            var hyperToolTipProvider = new HyperToolTipProvider();

            var id   = "id";
            var ctrl = new Button();

            hyperToolTipProvider.SetHyperToolTipId(ctrl, id);

            var id2   = "id2";
            var ctrl2 = new Button();

            hyperToolTipProvider.SetHyperToolTipId(ctrl2, id2);

            hyperToolTipProvider.Dispose();

            Assert.AreEqual(string.Empty, hyperToolTipProvider.GetHyperToolTipId(ctrl));
            Assert.AreEqual(string.Empty, hyperToolTipProvider.GetHyperToolTipId(ctrl2));
        }
        public void RemoveControlOnDisposedToolStripTest()
        {
            var hyperToolTipProvider = new HyperToolTipProvider();

            var id = "id";
            var toolStripButton1 = new ToolStripButton();
            var toolStrip1       = new ToolStrip();

            toolStrip1.Items.AddRange(new ToolStripItem[] { toolStripButton1 });

            hyperToolTipProvider.SetHyperToolTipId(toolStripButton1, id);

            Assert.AreEqual(id, hyperToolTipProvider.GetHyperToolTipId(toolStripButton1));
            toolStrip1.Dispose();
            Assert.AreEqual(
                string.Empty,
                hyperToolTipProvider.GetHyperToolTipId(toolStripButton1),
                "control is not deregistered automatically");
        }
        /// <summary>The turn off normal tooltips on set hyper tool tip id helper.</summary>
        /// <param name="originalValueShowItemToolTips">The original value show item tool tips.</param>
        private void TurnOffNormalTooltipsOnSetHyperToolTipIdHelper(bool originalValueShowItemToolTips)
        {
            var hyperToolTipProvider = new HyperToolTipProvider();

            hyperToolTipProvider.Active = true;

            var toolStripButton1 = new ToolStripButton();

            var toolStrip1 = new ToolStrip();

            toolStrip1.ShowItemToolTips = originalValueShowItemToolTips;
            toolStrip1.Items.AddRange(new ToolStripItem[] { toolStripButton1 });

            hyperToolTipProvider.SetHyperToolTipId(toolStripButton1, "id");
            Assert.IsFalse(toolStrip1.ShowItemToolTips); // since provider is active normal tips should be turned off
            hyperToolTipProvider.Active = false;
            Assert.AreEqual(originalValueShowItemToolTips, toolStrip1.ShowItemToolTips);
            hyperToolTipProvider.Active = true;
            Assert.IsFalse(toolStrip1.ShowItemToolTips);
        }
        public void SetGetHyperToolTipIdControlTest()
        {
            var hyperToolTipProvider = new HyperToolTipProvider();

            var id   = "id";
            var ctrl = new Button();

            hyperToolTipProvider.SetHyperToolTipId(ctrl, id);

            var id2   = "id2";
            var ctrl2 = new Button();

            hyperToolTipProvider.SetHyperToolTipId(ctrl2, id2);

            Assert.AreEqual(id, hyperToolTipProvider.GetHyperToolTipId(ctrl));
            Assert.AreEqual(id2, hyperToolTipProvider.GetHyperToolTipId(ctrl2));

            // try to override id
            var id3 = "id3";

            hyperToolTipProvider.SetHyperToolTipId(ctrl2, id3);
            Assert.AreEqual(id3, hyperToolTipProvider.GetHyperToolTipId(ctrl2));
        }
        public void SetHyperToolTipIdWrongArg2Test()
        {
            var hyperToolTipProvider = new HyperToolTipProvider();

            hyperToolTipProvider.SetHyperToolTipId(new TabControl(), null);
        }
        public void GetHyperToolTipIdWrongArg3Test()
        {
            var hyperToolTipProvider = new HyperToolTipProvider();

            hyperToolTipProvider.GetHyperToolTipId("xxx");
        }
        public void GetHyperToolTipIdForNotRegisteredControlTest()
        {
            var hyperToolTipProvider = new HyperToolTipProvider();

            Assert.AreEqual(string.Empty, hyperToolTipProvider.GetHyperToolTipId(new Button()));
        }
        public void GetHyperToolTipIdWrongArg1Test()
        {
            var hyperToolTipProvider = new HyperToolTipProvider();

            hyperToolTipProvider.GetHyperToolTipId(null);
        }
コード例 #20
0
 /// <summary>Populate hyper tooltips provider with all <see cref="Control"/>s and <see cref="ToolStripItem"/>s found on the form.
 /// UI element's Tag property is used as HyperToolTipId.</summary>
 /// <param name="form"><see cref="Form"/> to enumerate UI elements in.</param>
 /// <param name="provider"><see cref="HyperToolTipProvider"/> instance to populate</param>
 public static void PopulateWithAllControls(Form form, HyperToolTipProvider provider)
 {
     AddEventHandlers(form, provider);
 }