private Control GetStepControl(TutorStep step) { Control[] controls = parentForm.Controls.Find(step.ControlName, true); bool foundIt = (controls.Length >= 1);// only == 1 should be correct - investigate later if (foundIt) { if (controls.Length > 1) { Console.WriteLine("Found multiple " + step.ControlName + "!"); } else { Console.WriteLine("Found " + step.ControlName + "!"); } return(controls[0]); } else { Console.WriteLine(step.ControlName + " not found!"); } return(null); }
private void MoveWindowNextToControl(TutorStep step) { Control control = GetStepControl(step); int x = control.Location.X + control.Width; int y = control.Location.Y + (control.Height / 2); x += parentForm.DesktopLocation.X; y += parentForm.DesktopLocation.Y; var ccc = ((ToolForm)parentForm).Controls.Find("toolPanel", true)[0]; if (ccc.Controls.Find(control.Name, true).Length != 0) { x += ccc.Left; y += ccc.Top; } if (!addedArrow) { addedArrow = true; arrow = new GlassPanel { //Parent = parentForm, Width = 64, Height = 32, }; arrow.Paint += P_Paint; parentForm.Controls.Add(arrow); } int arrowX = x; int arrowY = y; // arrow background not redrawn arrow.Location = new Point(arrowX, arrowY); arrow.BringToFront(); arrow.Refresh(); arrow.Invalidate(); x += arrow.Width; int maxX = parentForm.Width + parentForm.DesktopLocation.X; if (x > maxX) { x = maxX; } SetDesktopLocation(x, y); }
internal void AddTutorStep(TutorStep step, int number = 0) { number--; // for index AddStepControlEvents(step); if (number < tutorSteps.Count && number > 0) { tutorSteps.Insert(number, step); } else { tutorSteps.Add(step); } InitializeTutorSteps(); }
private void RemoveStepControlEvents(TutorStep step) { Control c = GetStepControl(step); if (c != null) { if (step.Options == TutorStep.Option.None) { return; } if ((step.Options & TutorStep.Option.Click) == TutorStep.Option.Click) { c.Click -= C_Click; c.Click -= MoveToNextStep; } if ((step.Options & TutorStep.Option.Hover) == TutorStep.Option.Hover) { c.MouseHover -= C_MouseHover; c.MouseHover -= MoveToNextStep; } if ((step.Options & TutorStep.Option.Enter) == TutorStep.Option.Enter) { c.Enter -= C_Enter; c.Enter -= MoveToNextStep; } if ((step.Options & TutorStep.Option.Leave) == TutorStep.Option.Leave) { c.Leave -= C_Leave; c.Leave -= MoveToNextStep; } if ((step.Options & TutorStep.Option.Input) == TutorStep.Option.Input) { c.TextChanged -= C_TextChanged; c.TextChanged -= MoveToNextStep; } } }
internal void RemoveTutorStep(TutorStep step) { RemoveStepControlEvents(step); tutorSteps.Remove(step); InitializeTutorSteps(); }