public void PositionControl(ScintillaControl sci) { // compute control location Point p = new Point(sci.PointXFromPosition(memberPos), sci.PointYFromPosition(memberPos)); p = ((Form)PluginBase.MainForm).PointToClient(((Control)sci).PointToScreen(p)); toolTip.Left = p.X + sci.Left; bool hasListUp = !CompletionList.Active || CompletionList.listUp; if (currentLine > sci.LineFromPosition(memberPos) || !hasListUp) toolTip.Top = p.Y - toolTip.Height + sci.Top; else toolTip.Top = p.Y + UITools.Manager.LineHeight(sci) + sci.Top; // Keep on control area if (toolTip.Right > ((Form)PluginBase.MainForm).ClientRectangle.Right) { toolTip.Left = ((Form)PluginBase.MainForm).ClientRectangle.Right - toolTip.Width; } toolTip.Show(); toolTip.BringToFront(); }
static public void CallTipShow(ScintillaControl sci, int position, string text) { toolTip.Visible = false; isActive = true; Text = text; AutoSize(); // position startPos = position+text.IndexOf('(')+1; currentPos = sci.CurrentPos; currentLine = sci.LineFromPosition(currentPos); Point p = new Point(sci.PointXFromPosition(position), sci.PointYFromPosition(position)); p = ((Form)UITools.MainForm).PointToClient(((Control)sci).PointToScreen(p)); toolTip.Left = p.X + sci.Left; if (currentLine > sci.LineFromPosition(position)) toolTip.Top = p.Y-toolTip.Height + sci.Top; else toolTip.Top = p.Y+UITools.LineHeight(sci) + sci.Top; toolTip.Show(); toolTip.BringToFront(); UITools.LockControl(sci); // lock keys }