public override RCMenuItem[] OnGatherRCMenuItems() { List <RCMenuItem> items = new List <RCMenuItem>(); if (!isEnabled) { return(items.ToArray()); } TooltipItem ttItem = editor.syntaxRule.GetTooltipItem(editor.ScreenSpaceToCursorSpace(editor.windowMousePos)); if (ttItem == null) { return(items.ToArray()); } if (ttItem.item == null) { return(items.ToArray()); } if (!ttItem.item.hasDeclaredPosition) { return(items.ToArray()); } Vector2 pos = ttItem.item.declaredPosition; RCMenuItem item = new RCMenuItem("Go To Declaration", GoToDeclaration, new System.Object[] { pos }); //item.SetCallback(GoToDeclaration); items.Add(item); return(items.ToArray()); }
private TooltipContent DrawItem(GameTime gameTime, RenderEnv env, TooltipItem item) { var blocks = new List <TextBlock>(); Vector2 size = Vector2.Zero; Vector2 current = Vector2.Zero; if (!string.IsNullOrEmpty(item.Title)) { bool hasDesc = !string.IsNullOrEmpty(item.Desc) || !string.IsNullOrEmpty(item.ItemEU); var titleFont = hasDesc ? env.Fonts.TooltipTitleFont : env.Fonts.TooltipContentFont; blocks.Add(PrepareTextLine(titleFont, item.Title, ref current, Color.White, ref size.X)); } if (!string.IsNullOrEmpty(item.Desc)) { blocks.Add(PrepareTextLine(env.Fonts.TooltipContentFont, item.Desc, ref current, Color.White, ref size.X)); } if (!string.IsNullOrEmpty(item.ItemEU)) { blocks.Add(PrepareTextLine(env.Fonts.TooltipContentFont, item.ItemEU, ref current, Color.White, ref size.X)); } size.Y = current.Y; return(new TooltipContent() { blocks = blocks, size = size }); }
public void ShowToolTip(TooltipItem[] items) { showTooltip = true; tooltipSingle = null; tooltipMethodOverloads = items; tooltipMethodOverloadIndex = 0; wantsTooltipRectUpdate = true; }
public void ShowToolTip(TooltipItem item) { showTooltip = true; tooltipSingle = item; tooltipMethodOverloads = new TooltipItem[0]; tooltipMethodOverloadIndex = 0; wantsTooltipRectUpdate = true; }
public override Control CreateTooltipWindow (TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Xwt.ModifierKeys modifierState) { foreach (var pseg in projection.ProjectedSegments) { if (pseg.ContainsOriginal (offset)) { return projectedTooltipProvider.CreateTooltipWindow (projection.ProjectedEditor, projection.ProjectedContext, item, pseg.FromOriginalToProjected (offset), modifierState); } } return null; }
/// <summary> /// Tooltip /// </summary> /// <param name="texturePool"></param> /// <param name="farmFrameParent"></param> /// <param name="tooltip"></param> /// <param name="device"></param> /// <returns></returns> public static TooltipItem CreateTooltipFromProperty(TexturePool texturePool, WzSubProperty farmFrameParent, ToolTipInstance tooltip, GraphicsDevice device) { // Wz frames System.Drawing.Bitmap c = ((WzCanvasProperty)farmFrameParent?["c"])?.GetLinkedWzCanvasBitmap(); System.Drawing.Bitmap cover = ((WzCanvasProperty)farmFrameParent?["cover"])?.GetLinkedWzCanvasBitmap(); System.Drawing.Bitmap e = ((WzCanvasProperty)farmFrameParent?["e"])?.GetLinkedWzCanvasBitmap(); System.Drawing.Bitmap n = ((WzCanvasProperty)farmFrameParent?["n"])?.GetLinkedWzCanvasBitmap(); System.Drawing.Bitmap s = ((WzCanvasProperty)farmFrameParent?["s"])?.GetLinkedWzCanvasBitmap(); System.Drawing.Bitmap w = ((WzCanvasProperty)farmFrameParent?["w"])?.GetLinkedWzCanvasBitmap(); System.Drawing.Bitmap ne = ((WzCanvasProperty)farmFrameParent?["ne"])?.GetLinkedWzCanvasBitmap(); // top right System.Drawing.Bitmap nw = ((WzCanvasProperty)farmFrameParent?["nw"])?.GetLinkedWzCanvasBitmap(); // top left System.Drawing.Bitmap se = ((WzCanvasProperty)farmFrameParent?["se"])?.GetLinkedWzCanvasBitmap(); // bottom right System.Drawing.Bitmap sw = ((WzCanvasProperty)farmFrameParent?["sw"])?.GetLinkedWzCanvasBitmap(); // bottom left // tooltip property string title = tooltip.Title; string desc = tooltip.Desc; string renderText = string.Format("{0}{1}{2}", title, Environment.NewLine, desc); // Constants const string TOOLTIP_FONT = "Arial"; const float TOOLTIP_FONTSIZE = 9.25f; // thankie willified, ya'll be remembered forever here <3 //System.Drawing.Color color_bgFill = System.Drawing.Color.FromArgb(230, 17, 54, 82); // pre V patch (dark blue theme used post-bb), leave this here in case someone needs it System.Drawing.Color color_bgFill = System.Drawing.Color.FromArgb(255, 17, 17, 17); // post V patch (dark black theme used), use color picker on paint via image extracted from WZ if you need to get it System.Drawing.Color color_foreGround = System.Drawing.Color.White; const int WIDTH_PADDING = 10; const int HEIGHT_PADDING = 6; // Create using (System.Drawing.Font font = new System.Drawing.Font(TOOLTIP_FONT, TOOLTIP_FONTSIZE)) { System.Drawing.Graphics graphics_dummy = System.Drawing.Graphics.FromImage(new System.Drawing.Bitmap(1, 1)); // dummy image just to get the Graphics object for measuring string System.Drawing.SizeF tooltipSize = graphics_dummy.MeasureString(renderText, font); int effective_width = (int)tooltipSize.Width + WIDTH_PADDING; int effective_height = (int)tooltipSize.Height + HEIGHT_PADDING; System.Drawing.Bitmap bmp_tooltip = new System.Drawing.Bitmap(effective_width, effective_height); using (System.Drawing.Graphics graphics = System.Drawing.Graphics.FromImage(bmp_tooltip)) { // Frames and background UIFrameHelper.DrawUIFrame(graphics, color_bgFill, ne, nw, se, sw, e, w, n, s, c, effective_width, effective_height); // Text graphics.DrawString(renderText, font, new System.Drawing.SolidBrush(color_foreGround), WIDTH_PADDING / 2, HEIGHT_PADDING / 2); graphics.Flush(); } IDXObject dxObj = new DXObject(tooltip.X, tooltip.Y, bmp_tooltip.ToTexture2D(device), 0); TooltipItem item = new TooltipItem(tooltip, dxObj); return(item); } }
public void Dispose() { var disposableProvider = provider as IDisposable; if (disposableProvider != null) { disposableProvider.Dispose(); } lastWrappedItem = null; lastUnwrappedItem = null; }
public override TooltipItem GetItem(Mono.TextEditor.TextEditor editor, int offset) { var doc = IdeApp.Workbench.ActiveDocument; if (doc == null || doc.ParsedDocument == null) { return(null); } var unit = doc.ParsedDocument.GetAst <SyntaxTree> (); if (unit == null) { return(null); } var file = doc.ParsedDocument.ParsedFile as CSharpUnresolvedFile; if (file == null) { return(null); } ResolveResult result; AstNode node; var loc = editor.OffsetToLocation(offset); if (!doc.TryResolveAt(loc, out result, out node)) { if (node is CSharpTokenNode) { int startOffset2 = editor.LocationToOffset(node.StartLocation); int endOffset2 = editor.LocationToOffset(node.EndLocation); return(new TooltipItem(new ToolTipData(unit, result, node, null), startOffset2, endOffset2 - startOffset2)); } return(null); } if (node == lastNode) { return(lastResult); } var resolver = new CSharpAstResolver(doc.Compilation, unit, file); resolver.ApplyNavigator(new NodeListResolveVisitorNavigator(node), CancellationToken.None); var hoverNode = node.GetNodeAt(loc) ?? node; int startOffset = editor.LocationToOffset(hoverNode.StartLocation); int endOffset = editor.LocationToOffset(hoverNode.EndLocation); return(lastResult = new TooltipItem(new ToolTipData(unit, result, node, resolver), startOffset, endOffset - startOffset)); }
public override Window CreateTooltipWindow( TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Xwt.ModifierKeys modifierState) { var result = new TooltipInformationWindow(); result.ShowArrow = true; result.AddOverload((TooltipInformation)item.Item); result.RepositionWindow(); return(result); }
private void DrawToolTip() { //GUIStyle bgStyle = skin.GetStyle("Background"); GUIStyle tooltipStyle = skin.GetStyle("ToolTip"); //GUIStyle itemSelectedStyle = skin.GetStyle("ItemSelected"); GUIStyle shadowStyle = editor.editorWindow.skin.GetStyle("DropShadow"); Rect clipRect = editor.textEditorNoScrollBarRect; clipRect.x += editor.rect.x; clipRect.y += editor.rect.y; GUI.BeginGroup(clipRect); if (shadowStyle != null) { GUI.Box(tooltipRect, "", shadowStyle); } TooltipItem tooltip = currentTooltip; GUIContent content = new GUIContent(tooltipText); Rect iconRect = new Rect(0, 0, 0, 0); Texture2D icon = null; if (tooltip != null && tooltip.item != null) { icon = editor.editorWindow.theme.GetLanguageIcon(tooltip.item.GetLanguageIconName()); if (icon != null) { content.image = Theme.invisible16x16Tex; iconRect.width = icon.width; iconRect.height = icon.height; float iconHeightDif = tooltipRect.height - iconRect.height; iconRect.x = tooltipRect.x; iconRect.y = tooltipRect.y; iconRect.y += iconHeightDif * 0.5f; iconRect.x += tooltipStyle.padding.left; } } GUI.Box(tooltipRect, content, tooltipStyle); if (icon) { GUI.DrawTexture(iconRect, icon, ScaleMode.ScaleToFit, true); } GUI.EndGroup(); }
protected override Xwt.Point CalculateWindowLocation(TextEditor editor, TooltipItem item, Xwt.WindowFrame xwtWindow, int mouseX, int mouseY, Xwt.Point origin) { int w; double xalign; GetRequiredPosition(editor, xwtWindow, out w, out xalign); w += 10; var allocation = GetAllocation(editor); var info = (TaggedTooltipInformation <CodeActions.CodeActionContainer>)item.Item; var loc = editor.OffsetToLocation(info.Tag.Span.Start); var p = editor.LocationToPoint(loc); var view = editor.GetContent <SourceEditorView> (); int x = (int)(p.X + origin.X + allocation.X + xPadding); int y = (int)(p.Y + view.TextEditor.GetLineHeight(loc.Line) + origin.Y + allocation.Y + yPadding); Gtk.Widget widget = editor; var geometry = widget.Screen.GetUsableMonitorGeometry(widget.Screen.GetMonitorAtPoint(x, y)); if (x + w >= geometry.X + geometry.Width) { x = geometry.X + geometry.Width - w; } if (x < geometry.Left) { x = geometry.Left; } if (info.Tag?.FloatingWidgetShown == true) { x += windowSize; } int h = (int)xwtWindow.Size.Height; if (y + h >= geometry.Y + geometry.Height) { y = geometry.Y + geometry.Height - h; } if (y < geometry.Top) { y = geometry.Top; } return(new Xwt.Point(x, y)); }
public override void ShowTooltipWindow(TextEditor editor, Control tipWindow, TooltipItem item, Xwt.ModifierKeys modifierState, int mouseX, int mouseY) { var location = editor.OffsetToLocation(item.Offset); var point = editor.LocationToPoint(location); int lineHeight = (int)editor.LineHeight; int y = (int)point.Y; // find the top of the line that the mouse is hovering over while (y + lineHeight < mouseY) { y += lineHeight; } var caret = new Gdk.Rectangle(mouseX, y, 1, lineHeight); tooltip = (DebugValueWindow)tipWindow; tooltip.ShowPopup(editor, caret, PopupPosition.TopLeft); }
public override void ShowTooltipWindow( TextEditor editor, Window tipWindow, TooltipItem item, Xwt.ModifierKeys modifierState, int mouseX, int mouseY) { if (item.Offset == -1) { var tooltipWindow = (TooltipInformationWindow)tipWindow; ShowTooltipWindowAtMouseLocation(editor, tooltipWindow, mouseX, mouseY); } else { base.ShowTooltipWindow(editor, tipWindow, item, modifierState, mouseX, mouseY); } }
private void LoadTooltip(Wz_Node tooltipNode) { Func <Wz_Node, Rectangle> getRect = (node) => { int x1 = node.Nodes["x1"].GetValueEx <int>(0); int x2 = node.Nodes["x2"].GetValueEx <int>(0); int y1 = node.Nodes["y1"].GetValueEx <int>(0); int y2 = node.Nodes["y2"].GetValueEx <int>(0); return(new Rectangle(x1, y1, x2 - x1, y2 - y1)); }; var tooltipDescNode = PluginManager.FindWz("String/ToolTipHelp.img/Mapobject/" + this.ID); for (int i = 0; ; i++) { var rectNode = tooltipNode.Nodes[i.ToString()]; var charNode = tooltipNode.Nodes[i + "char"]; if (rectNode != null) { var item = new TooltipItem(); item.Name = i.ToString(); item.Index = i; item.Rect = getRect(rectNode); if (charNode != null) { item.CharRect = getRect(charNode); } var descNode = tooltipDescNode?.Nodes[i.ToString()]; if (descNode != null) { item.Title = descNode.Nodes["Title"].GetValueEx <string>(null); item.Desc = descNode.Nodes["Desc"].GetValueEx <string>(null); item.ItemEU = descNode.Nodes["ItemEU"].GetValueEx <string>(null); } this.Tooltips.Add(item); } else { break; } } }
private void StartShowTooltipActual(System.Object context) { try { System.Object[] contextArray = (System.Object[])context; Vector2 pos = (Vector2)contextArray[0]; bool showMethodOverloads = (bool)contextArray[1]; if (showMethodOverloads) { CompletionMethod[] methods = editor.syntaxRule.GetMethodOverloads(pos); TooltipItem[] items = new TooltipItem[methods.Length]; for (int i = 0; i < methods.Length; i++) { items[i] = new TooltipItem(methods[i]); } if (cancelTooltip) { HideToolTip(); } else { ShowToolTip(items); } } else { TooltipItem tItem = editor.syntaxRule.GetTooltipItem(pos); if (cancelTooltip) { HideToolTip(); } else { ShowToolTip(tItem); } } editor.editorWindow.Repaint(); cancelTooltip = false; } finally { //UIDEThreadPool.UnregisterThread("AutoComplete_UpdateTooltip"); } }
public override async Task <TooltipItem> GetItem(MonoTextEditor editor, int offset, CancellationToken token = default(CancellationToken)) { var wrappedEditor = WrapEditor(editor); if (wrappedEditor == null) { return(null); } var doc = IdeApp.Workbench.ActiveDocument; if (doc == null) { return(null); } var task = provider.GetItem(wrappedEditor, doc, offset, token); if (task == null) { LoggingService.LogWarning("Tooltip provider " + provider + " gave back null on GetItem (should always return a non null task)."); return(null); } var item = await task; if (item == null) { return(null); } if (lastUnwrappedItem != null) { if (lastUnwrappedItem.Offset == item.Offset && lastUnwrappedItem.Length == item.Length && lastUnwrappedItem.Item.Equals(item.Item)) { return(lastWrappedItem); } } lastUnwrappedItem = item; return(lastWrappedItem = new TooltipItem(item.Item, item.Offset, item.Length)); }
public void ShowTooltip(Point Where, String Tip) { if (TooltipItem != null) { DestroyWidget(TooltipItem); } TooltipItem = ConstructWidget(new Widget { Text = Tip, Border = "border-thin", Font = TooltipFont, TextSize = TooltipTextSize }); var bestSize = TooltipItem.GetBestSize(); TooltipItem.Rect = new Rectangle( Where.X + (MousePointer == null ? 0 : GetTileSheet(MousePointer.Sheet).TileWidth) + 2, Where.Y, bestSize.X, bestSize.Y); RootItem.AddChild(TooltipItem); }
public void ShowTooltip(Point Where, Widget Tip) { if (TooltipItem != null && TooltipItem.Text == Tip.Text) { //TODO (Mklingen): handle the case where the tooltip is the same, // but the widget has moved. var myBestSize = TooltipItem.GetBestSize(); Rectangle myRect = new Rectangle( // ?? Why are we assuming the tooltip is being opened at the mouse position? Where.X + (MousePointer == null ? 0 : GetTileSheet(MousePointer.Sheet).TileWidth) + 2, Where.Y + (MousePointer == null ? 0 : GetTileSheet(MousePointer.Sheet).TileWidth) + 2, myBestSize.X, myBestSize.Y); if (myRect == TooltipItem.Rect) { return; } } RootItem.AddChild(Tip); var bestSize = Tip.GetBestSize(); Rectangle rect = new Rectangle( // ?? Why are we assuming the tooltip is being opened at the mouse position? Where.X + (MousePointer == null ? 0 : GetTileSheet(MousePointer.Sheet).TileWidth) + 2, Where.Y + (MousePointer == null ? 0 : GetTileSheet(MousePointer.Sheet).TileWidth) + 2, bestSize.X, bestSize.Y); rect = MathFunctions.SnapRect(rect, RenderData.VirtualScreen); Tip.Rect = rect; if (TooltipItem != null) { DestroyWidget(TooltipItem); } TooltipItem = Tip; }
/// <summary> /// Initializes the <see cref="AmountManager"/> by assigning the references to the popup, max toggle, and amount input field. /// </summary> /// <param name="lockPRPSManager"> The active LockPRPSManager. </param> /// <param name="maxToggle"> The toggle for switching between maximum sendable amount and the entered amount. </param> /// <param name="amountInputField"> The input field used for entering the sendable amount. </param> /// <param name="prpsBalanceText"> Text component used for displaying the current purpose balance. </param> /// <param name="dubiBalanceText"> Text component used for displaying the current dubi balance. </param> /// <param name="dubiRewardText"> Text component used for displaying the dubi reward. </param> /// <param name="buttonTooltipItem"> The lock button tooltip item </param> public AmountManager( LockPRPSManager lockPRPSManager, Toggle maxToggle, HopeInputField amountInputField, TMP_Text prpsBalanceText, TMP_Text dubiBalanceText, TMP_Text dubiRewardText, TooltipItem buttonTooltipItem) { this.lockPRPSManager = lockPRPSManager; this.maxToggle = maxToggle; this.amountInputField = amountInputField; this.prpsBalanceText = prpsBalanceText; this.dubiBalanceText = dubiBalanceText; this.dubiRewardText = dubiRewardText; this.buttonTooltipItem = buttonTooltipItem; lockPRPSManager.OnAmountsUpdated += BalancesUpdated; maxToggle.AddToggleListener(MaxChanged); amountInputField.OnInputUpdated += _ => AmountFieldChanged(); BalancesUpdated(); }
public override void ShowTooltipWindow (TextEditor editor, Control tipWindow, TooltipItem item, Xwt.ModifierKeys modifierState, int mouseX, int mouseY) { projectedTooltipProvider.ShowTooltipWindow (editor, tipWindow, item, modifierState, mouseX, mouseY); }
public override Window CreateTooltipWindow(TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Xwt.ModifierKeys modifierState) { if (item.Item is InfoItem infoItem) { if (infoItem.Packages != null) { return(CreatePackageWindow(infoItem)); } return(CreateItemWindow(infoItem)); } if (item.Item is IEnumerable <NavigationAnnotation> annotations) { var navs = annotations.ToList(); var markup = DescriptionMarkupFormatter.GetNavigationMarkup(navs); return(new LabelTooltipWindow(markup)); } return(null); }
public override Window CreateTooltipWindow(TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Xwt.ModifierKeys modifierState) { var result = new LanguageItemWindow(GetExtensibleTextEditor(editor), modifierState, null, (string)item.Item, null); if (result.IsEmpty) { return(null); } return(result); }
public override Gtk.Window ShowTooltipWindow(TextEditor editor, int offset, Gdk.ModifierType modifierState, int mouseX, int mouseY, TooltipItem item) { var titem = (ToolTipData)item.Item; if (lastNode != null && lastWindow != null && lastWindow.IsRealized && titem.Node != null && lastNode == titem.Node) { return(lastWindow); } DestroyLastTooltipWindow(); var tipWindow = CreateTooltipWindow(editor, offset, modifierState, item) as TooltipInformationWindow; if (tipWindow == null) { return(null); } var hoverNode = titem.Node.GetNodeAt(editor.OffsetToLocation(offset)) ?? titem.Node; var p1 = editor.LocationToPoint(hoverNode.StartLocation); var p2 = editor.LocationToPoint(hoverNode.EndLocation); var positionWidget = editor.TextArea; var caret = new Gdk.Rectangle((int)p1.X - positionWidget.Allocation.X, (int)p2.Y - positionWidget.Allocation.Y, (int)(p2.X - p1.X), (int)editor.LineHeight); tipWindow.ShowPopup(positionWidget, caret, PopupPosition.Top); tipWindow.EnterNotifyEvent += delegate { editor.HideTooltip(false); }; lastWindow = tipWindow; lastNode = titem.Node; return(tipWindow); }
protected override Gtk.Window CreateTooltipWindow(TextEditor editor, int offset, Gdk.ModifierType modifierState, TooltipItem item) { //create a message string from all the results var results = (IList <Result>)item.Item; var sb = new StringBuilder(); bool first = false; foreach (var r in results) { if (!first) { first = true; } else { sb.AppendLine(); } sb.Append(r.Level.ToString()); sb.Append(": "); sb.Append(r.Message); } //FIXME: use a nicer, more specialized tooltip window, with results formatting and hints about // commands and stuff var win = new LanguageItemWindow((ExtensibleTextEditor)editor, modifierState, null, sb.ToString(), null); if (win.IsEmpty) { return(null); } return(win); }
public Gtk.Window CreateTooltipWindow(Mono.TextEditor.TextEditor editor, int offset, Gdk.ModifierType modifierState, TooltipItem item) { return(new DebugValueWindow(editor, offset, DebuggingService.CurrentFrame, (ObjectValue)item.Item, null)); }
public override Control CreateTooltipWindow(TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Xwt.ModifierKeys modifierState) { return(new DebugValueWindow(editor, offset, DebuggingService.CurrentFrame, (ObjectValue)item.Item, null)); }
public Gtk.Window CreateTooltipWindow(Mono.TextEditor.TextEditor editor, int offset, Gdk.ModifierType modifierState, TooltipItem item) { var doc = IdeApp.Workbench.ActiveDocument; if (doc == null) { return(null); } var titem = (ToolTipData)item.Item; string tooltip = null; if (titem.Result is UnknownIdentifierResolveResult) { tooltip = string.Format("error CS0103: The name `{0}' does not exist in the current context", ((UnknownIdentifierResolveResult)titem.Result).Identifier); } else if (titem.Result is UnknownMemberResolveResult) { var ur = (UnknownMemberResolveResult)titem.Result; if (ur.TargetType.Kind != TypeKind.Unknown) { tooltip = string.Format("error CS0117: `{0}' does not contain a definition for `{1}'", ur.TargetType.FullName, ur.MemberName); } } else if (titem.Result.IsError) { tooltip = "Resolve error."; } else if (titem.Result != null) { var ev = new ErrorVisitor(titem.Resolver); if (titem.Node is AstType && titem.Node.Parent is VariableDeclarationStatement && titem.Node.GetText() == "var") { titem.Node.Parent.AcceptVisitor(ev); } if (ev.ErrorResolveResult != null) { Console.WriteLine(ev.ErrorResolveResult); tooltip = string.Format("Error while resolving: '{0}'", ev.ErrorNode.GetText()); } else { tooltip = CreateTooltip(titem.Result, offset, ambience); } } else { return(null); } if (lastResult != null && lastWindow.IsRealized && titem.Result != null && lastResult.Type.Equals(titem.Result.Type)) { return(lastWindow); } var result = new LanguageItemWindow(tooltip); lastWindow = result; lastResult = titem.Result; if (result.IsEmpty) { return(null); } return(result); }
public Gtk.Window CreateTooltipWindow(Mono.TextEditor.TextEditor editor, int offset, Gdk.ModifierType modifierState, TooltipItem item) { LanguageItemWindow result = new LanguageItemWindow((ExtensibleTextEditor)editor, modifierState, null, (string)item.Item, null); if (result.IsEmpty) { return(null); } return(result); }
public void ShowToolTip(TooltipItem[] items) { showTooltip = true; tooltipSingle = null; tooltipMethodOverloads = items; tooltipMethodOverloadIndex = 0; wantsTooltipRectUpdate = true; }
public void ShowToolTip(TooltipItem item) { showTooltip = true; tooltipSingle = item; tooltipMethodOverloads = new TooltipItem[0]; tooltipMethodOverloadIndex = 0; wantsTooltipRectUpdate = true; }
private void StartShowTooltipActual(System.Object context) { try { System.Object[] contextArray = (System.Object[])context; Vector2 pos = (Vector2)contextArray[0]; bool showMethodOverloads = (bool)contextArray[1]; if (showMethodOverloads) { CompletionMethod[] methods = editor.syntaxRule.GetMethodOverloads(pos); TooltipItem[] items = new TooltipItem[methods.Length]; for (int i = 0; i < methods.Length; i++) { items[i] = new TooltipItem(methods[i]); } if (cancelTooltip) { HideToolTip(); } else { ShowToolTip(items); } } else { TooltipItem tItem = editor.syntaxRule.GetTooltipItem(pos); if (cancelTooltip) { HideToolTip(); } else { ShowToolTip(tItem); } } editor.editorWindow.Repaint(); cancelTooltip = false; } finally { //UIDEThreadPool.UnregisterThread("AutoComplete_UpdateTooltip"); } }
public override Window CreateTooltipWindow(TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Xwt.ModifierKeys modifierState) { foreach (var pseg in projection.ProjectedSegments) { if (pseg.ContainsOriginal(offset)) { return(projectedTooltipProvider.CreateTooltipWindow(projection.ProjectedEditor, projection.ProjectedContext, item, pseg.FromOriginalToProjected(offset), modifierState)); } } return(null); }
public override TooltipItem GetTooltipItem(Vector2 pos) { Vector2 originalPos = pos; if (parserInterface.lastSourceFile == null) { Reparse(); } pos = editor.doc.GoToEndOfWord(pos,1); Vector2 endWordPos = editor.doc.IncrementPosition(pos,-1); pos = editor.doc.GoToEndOfWhitespace(pos,1); ExpressionInfo result = new ExpressionInfo(); result.startPosition = pos; result.endPosition = pos; result.initialized = true; char nextChar = editor.doc.GetCharAt(pos); bool isBeginGeneric = nextChar == '<'; if (useUnityscript) { Vector2 charAfterPos = editor.doc.GoToEndOfWhitespace(editor.doc.IncrementPosition(pos,1),1); char charAfter = editor.doc.GetCharAt(charAfterPos); if (nextChar == '.' && charAfter == '<') { pos = charAfterPos; nextChar = editor.doc.GetCharAt(pos); isBeginGeneric = true; } } //GameObject go; //go.GetComponent<Vector3>(); if (isBeginGeneric) { result.startPosition = pos; result.endPosition = pos; ExpressionResolver.editor = editor; result = ExpressionResolver.CountToExpressionEnd(result,1,ExpressionBracketType.Generic); pos = result.endPosition; pos = editor.doc.IncrementPosition(pos,1); pos = editor.doc.GoToEndOfWhitespace(pos,1); result.startPosition = pos; result.endPosition = pos; nextChar = editor.doc.GetCharAt(pos); } bool isFunction = false; if (nextChar == '(') { ExpressionResolver.editor = editor; result = ExpressionResolver.CountToExpressionEnd(result,1,ExpressionBracketType.Expression); pos = result.endPosition; nextChar = editor.doc.GetCharAt(pos); isFunction = true; } if (!isFunction) { pos = endWordPos; } //Debug.Log(nextChar+" "+editor.doc.GetCharAt(endWordPos)); string str = editor.syntaxRule.ResolveExpressionAt(pos,-1); if (useUnityscript) { str = str.Replace(".<","<"); } //Debug.Log(str); ChainResolver sigChainResolver = new ChainResolver(editor,originalPos); ChainItem item = null; item = sigChainResolver.ResolveChain(str,false); TooltipItem tooltipItem = null; if (item != null) { if (item.finalLinkType != null) { tooltipItem = new TooltipItem(item.finalLinkType.Name+" "+item.finalLink.name); tooltipItem.clrType = item.finalLinkType; } if (item.finalLink.completionItem != null) { tooltipItem = new TooltipItem(item.finalLink.completionItem); } } return tooltipItem; }
public Gtk.Window CreateTooltipWindow(Mono.TextEditor.TextEditor editor, int offset, Gdk.ModifierType modifierState, TooltipItem item) { var ed = (ExtensibleTextEditor)editor; var doc = ed.ParsedDocument; if (doc == null) { return(null); } var resolveResult = (ResolveResult)item.Item; if (lastResult != null && lastWindow.IsRealized && resolveResult != null && lastResult.Type.Equals(resolveResult.Type)) { return(lastWindow); } var result = new LanguageItemWindow(ed, modifierState, resolveResult, null, doc.ParsedFile); lastWindow = result; lastResult = resolveResult; if (result.IsEmpty) { return(null); } return(result); }
public override Control CreateTooltipWindow(TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Gdk.ModifierType modifierState) { var doc = ctx; if (doc == null) { return(null); } var titem = (ToolTipData)item.Item; var tooltipInformation = CreateTooltip(titem, editor, ctx, offset, modifierState); if (tooltipInformation == null || string.IsNullOrEmpty(tooltipInformation.SignatureMarkup)) { return(null); } var result = new TooltipInformationWindow(); result.ShowArrow = true; result.AddOverload(tooltipInformation); result.RepositionWindow(); return(result); }
public override void ShowTooltipWindow(TextEditor editor, Window tipWindow, TooltipItem item, Xwt.ModifierKeys modifierState, int mouseX, int mouseY) { projectedTooltipProvider.ShowTooltipWindow(editor, tipWindow, item, modifierState, mouseX, mouseY); }