static ModifierKeys ConvertModifiers(Xwt.ModifierKeys s) { ModifierKeys m = ModifierKeys.None; if ((s & Xwt.ModifierKeys.Shift) != 0) { m |= ModifierKeys.Shift; } if ((s & Xwt.ModifierKeys.Control) != 0) { m |= ModifierKeys.Control; } if ((s & Xwt.ModifierKeys.Alt) != 0) { m |= ModifierKeys.Alt; } if ((s & Xwt.ModifierKeys.Command) != 0) { m |= ModifierKeys.Command; } if ((s & Xwt.ModifierKeys.Command) != 0) { m |= ModifierKeys.Command; } return(m); }
public LanguageItemWindow(ExtensibleTextEditor ed, Xwt.ModifierKeys modifierState, object result, string errorInformations, object unit) { string tooltip = errorInformations; if (string.IsNullOrEmpty(tooltip) || tooltip == "?") { IsEmpty = true; return; } var label = new MonoDevelop.Components.FixedWidthWrapLabel() { Wrap = Pango.WrapMode.WordChar, Indent = -20, BreakOnCamelCasing = true, BreakOnPunctuation = true, Markup = tooltip, }; this.BorderWidth = 3; Add(label); UpdateFont(label); EnableTransparencyControl = true; }
public LanguageItemWindow(ExtensibleTextEditor ed, Xwt.ModifierKeys modifierState, object result, string errorInformations, object unit) { string tooltip = null; if (result is UnknownIdentifierResolveResult) { tooltip = string.Format("error CS0103: The name `{0}' does not exist in the current context", ((UnknownIdentifierResolveResult)result).Identifier); } else if (result is UnknownMemberResolveResult) { var ur = (UnknownMemberResolveResult)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 (result != null && ed.TextEditorResolverProvider != null) { //tooltip = ed.TextEditorResolverProvider.CreateTooltip (unit, result, errorInformations, ambience, modifierState); // TODO: Type sysetm conversion. (btw. this isn't required because the analyzer should provide semantic error messages.) // if (result.ResolveErrors.Count > 0) { // StringBuilder sb = new StringBuilder (); // sb.Append (tooltip); // sb.AppendLine (); // sb.AppendLine (); // sb.AppendLine (GettextCatalog.GetPluralString ("Error:", "Errors:", result.ResolveErrors.Count)); // for (int i = 0; i < result.ResolveErrors.Count; i++) { // sb.Append ('\t'); // sb.Append (result.ResolveErrors[i]); // if (i + 1 < result.ResolveErrors.Count) // sb.AppendLine (); // } // tooltip = sb.ToString (); // } } else { tooltip = errorInformations; } if (string.IsNullOrEmpty(tooltip) || tooltip == "?") { IsEmpty = true; return; } var label = new MonoDevelop.Components.FixedWidthWrapLabel() { Wrap = Pango.WrapMode.WordChar, Indent = -20, BreakOnCamelCasing = true, BreakOnPunctuation = true, Markup = tooltip, }; this.BorderWidth = 3; Add(label); UpdateFont(label); EnableTransparencyControl = true; }
bool SendKeyPressed(Xwt.Key key, Xwt.ModifierKeys mask) { var kargs = new Xwt.KeyEventArgs(key, mask, false, 0); if (KeyPressed != null) { KeyPressed(this, kargs); } return(kargs.Handled); }
internal bool ProcessKey(Xwt.Key key, Xwt.ModifierKeys state) { switch (key) { case Xwt.Key.Up: if (state.HasFlag(Xwt.ModifierKeys.Command)) { goto case Xwt.Key.PageUp; } if (state.HasFlag(Xwt.ModifierKeys.Control)) { goto case Xwt.Key.Home; } SelectItemUp(); return(true); case Xwt.Key.Down: if (state.HasFlag(Xwt.ModifierKeys.Command)) { goto case Xwt.Key.PageDown; } if (state.HasFlag(Xwt.ModifierKeys.Control)) { goto case Xwt.Key.End; } SelectItemDown(); return(true); case (Xwt.Key)Gdk.Key.KP_Page_Down: case Xwt.Key.PageDown: SelectNextCategory(); return(true); case (Xwt.Key)Gdk.Key.KP_Page_Up: case Xwt.Key.PageUp: SelectPrevCategory(); return(true); case Xwt.Key.Home: SelectFirstCategory(); return(true); case Xwt.Key.End: SelectLastCatgory(); return(true); case Xwt.Key.Return: OnItemActivated(EventArgs.Empty); return(true); } return(false); }
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); }
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); } }
static Xwt.ModifierKeys TranslateMask(NSEventModifierMask mask) { Xwt.ModifierKeys xwtMask = Xwt.ModifierKeys.None; if (mask.HasFlag(NSEventModifierMask.CommandKeyMask)) { xwtMask |= Xwt.ModifierKeys.Command; } if (mask.HasFlag(NSEventModifierMask.ControlKeyMask)) { xwtMask |= Xwt.ModifierKeys.Control; } if (mask.HasFlag(NSEventModifierMask.ShiftKeyMask)) { xwtMask |= Xwt.ModifierKeys.Shift; } if (mask.HasFlag(NSEventModifierMask.AlternateKeyMask)) { xwtMask |= Xwt.ModifierKeys.Alt; } return(xwtMask); }
public virtual void ShowTooltipWindow(TextEditor editor, Control tipWindow, TooltipItem item, Xwt.ModifierKeys modifierState, int mouseX, int mouseY) { if (tipWindow == null) { return; } var tipInfoWindow = ((Gtk.Widget)tipWindow) as TooltipInformationWindow; if (tipInfoWindow != null) { ShowTipInfoWindow(editor, tipInfoWindow, item, modifierState, mouseX, mouseY); return; } var origin = editor.GetContent <ITextEditorImpl> ().GetEditorWindowOrigin(); int w; double xalign; GetRequiredPosition(editor, tipWindow, out w, out xalign); w += 10; var allocation = GetAllocation(editor); int x = (int)(mouseX + origin.X + allocation.X); int y = (int)(mouseY + origin.Y + allocation.Y); Gtk.Widget widget = editor; var geometry = widget.Screen.GetUsableMonitorGeometry(widget.Screen.GetMonitorAtPoint(x, y)); x -= (int)((double)w * xalign); y += 10; if (x + w >= geometry.X + geometry.Width) { x = geometry.X + geometry.Width - w; } if (x < geometry.Left) { x = geometry.Left; } var gtkWindow = (Gtk.Window)tipWindow; int h = gtkWindow.SizeRequest().Height; if (y + h >= geometry.Y + geometry.Height) { y = geometry.Y + geometry.Height - h; } if (y < geometry.Top) { y = geometry.Top; } gtkWindow.Move(x, y); gtkWindow.ShowAll(); }
void ShowTipInfoWindow(TextEditor editor, TooltipInformationWindow tipWindow, TooltipItem item, Xwt.ModifierKeys modifierState, int mouseX, int mouseY) { Gtk.Widget editorWidget = editor; var startLoc = editor.OffsetToLocation(item.Offset); var endLoc = editor.OffsetToLocation(item.EndOffset); var p1 = editor.LocationToPoint(startLoc); var p2 = editor.LocationToPoint(endLoc); int w = (int)(p2.X - p1.X); var caret = new Gdk.Rectangle( (int)p1.X, (int)p1.Y, (int)w, (int)editor.LineHeight ); tipWindow.ShowPopup(editorWidget, caret, PopupPosition.Top); }
public virtual Control CreateTooltipWindow(TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Xwt.ModifierKeys modifierState) { return(null); }
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 void ShowTooltipWindow(TextEditor editor, Window tipWindow, TooltipItem item, Xwt.ModifierKeys modifierState, int mouseX, int mouseY) { projectedTooltipProvider.ShowTooltipWindow(editor, tipWindow, item, modifierState, mouseX, mouseY); }
public override Components.Window CreateTooltipWindow(Ide.Editor.TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Xwt.ModifierKeys modifierState) { var doc = ctx; if (doc == null) { return(null); } var result = new TooltipInformationWindow(); result.ShowArrow = true; result.AddOverload((TooltipInformation)item.Item); result.RepositionWindow(); return(result); }
public override Window CreateTooltipWindow(TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Xwt.ModifierKeys modifierState) { var window = new DebugValueWindow((Gtk.Window)(editor.GetNativeWidget <Gtk.Widget> ()).Toplevel, editor.FileName, editor.OffsetToLocation(offset).Line, DebuggingService.CurrentFrame, (ObjectValue)item.Item, null); IdeApp.CommandService.RegisterTopWindow(window); return(window); }
public static KeyDescriptor FromXwt(Xwt.Key key, char c, Xwt.ModifierKeys modifiers) { return(new KeyDescriptor(ConvertKey(key), c, ConvertModifiers(modifiers), Tuple.Create(key, modifiers))); }
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 Control CreateTooltipWindow(TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Xwt.ModifierKeys modifierState) { var result = item.Item as Result; var window = new LanguageItemWindow(CompileErrorTooltipProvider.GetExtensibleTextEditor(editor), modifierState, null, result.Message, null); if (window.IsEmpty) { return(null); } return(window); }
public override Window CreateTooltipWindow(TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Xwt.ModifierKeys modifierState) { var window = new DebugValueWindow(editor, offset, DebuggingService.CurrentFrame, (ObjectValue)item.Item, null); IdeApp.CommandService.RegisterTopWindow(window); return(window); }
public virtual void ShowTooltipWindow(TextEditor editor, Window tipWindow, TooltipItem item, Xwt.ModifierKeys modifierState, int mouseX, int mouseY) { if (tipWindow == null) { return; } TooltipInformationWindow tipInfoWindow = (tipWindow as XwtWindowControl)?.Window as TooltipInformationWindow; if (tipInfoWindow != null) { ShowTipInfoWindow(editor, tipInfoWindow, item, modifierState, mouseX, mouseY); return; } var origin = editor.GetContent <ITextEditorImpl> ().GetEditorWindowOrigin(); int w; double xalign; GetRequiredPosition(editor, tipWindow, out w, out xalign); w += 10; var allocation = GetAllocation(editor); int x = (int)(mouseX + origin.X + allocation.X); int y = (int)(mouseY + origin.Y + allocation.Y); Gtk.Widget widget = editor; var geometry = widget.Screen.GetUsableMonitorGeometry(widget.Screen.GetMonitorAtPoint(x, y)); x -= (int)((double)w * xalign); y += 10; if (x + w >= geometry.X + geometry.Width) { x = geometry.X + geometry.Width - w; } if (x < geometry.Left) { x = geometry.Left; } var xwtWindow = (Xwt.WindowFrame)tipWindow; 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; } xwtWindow.Location = new Xwt.Point(x, y); var gtkWindow = Xwt.Toolkit.Load(Xwt.ToolkitType.Gtk).GetNativeWindow(xwtWindow) as Gtk.Window; if (gtkWindow != null) { gtkWindow.ShowAll(); } else { xwtWindow.Show(); } }
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 override void ShowTooltipWindow(TextEditor editor, Components.Window tipWindow, TooltipItem item, Xwt.ModifierKeys modifierState, int mouseX, int mouseY) { base.ShowTooltipWindow(editor, tipWindow, item, modifierState, mouseX, mouseY); var info = (TaggedTooltipInformation <CodeActions.CodeActionContainer>)item.Item; var sourceEditorView = editor.GetContent <SourceEditorView> (); var codeActionEditorExtension = editor.GetContent <CodeActionEditorExtension> (); var loc = editor.OffsetToLocation(info.Tag.Span.Start); if (info.Tag?.FloatingWidgetShown == true) { var point = sourceEditorView.TextEditor.TextArea.LocationToPoint(loc.Line, loc.Column); point.Y += (int)editor.GetLineHeight(loc.Line); var window = (LanguageItemWindow)tipWindow; if (floatingWidget != null) { floatingWidget.Destroy(); floatingWidget = null; } floatingWidget = new FloatingQuickFixIconWidget(codeActionEditorExtension, window, sourceEditorView, SmartTagSeverity.ErrorFixes, info.Tag, point); sourceEditorView.TextEditor.GdkWindow.GetOrigin(out int ox, out int oy); floatingWidget.Move(ox + (int)point.X, oy + (int)(point.Y + 4)); window.Tag = floatingWidget; window.EnterNotifyEvent += delegate { floatingWidget.CancelDestroy(); }; window.LeaveNotifyEvent += delegate { floatingWidget.QueueDestroy(); }; } }
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 virtual void ShowTooltipWindow(TextEditor editor, Window tipWindow, TooltipItem item, Xwt.ModifierKeys modifierState, int mouseX, int mouseY) { if (tipWindow == null) { return; } TooltipInformationWindow tipInfoWindow = (tipWindow as XwtWindowControl)?.Window as TooltipInformationWindow; if (tipInfoWindow != null) { ShowTipInfoWindow(editor, tipInfoWindow, item, modifierState, mouseX, mouseY); return; } var origin = editor.GetContent <ITextEditorImpl> ().GetEditorWindowOrigin(); var xwtWindow = (Xwt.WindowFrame)tipWindow; xwtWindow.Location = CalculateWindowLocation(editor, item, xwtWindow, mouseX, mouseY, origin); var gtkWindow = Xwt.Toolkit.Load(Xwt.ToolkitType.Gtk).GetNativeWindow(xwtWindow) as Gtk.Window; if (gtkWindow != null) { gtkWindow.ShowAll(); } else { xwtWindow.Show(); } }
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 Window CreateTooltipWindow(TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Xwt.ModifierKeys modifierState) { var result = item.Item as List <Result>; var sb = new StringBuilder(); foreach (var r in result) { var escapedMessage = Ambience.EscapeText(r.Message); if (sb.Length > 0) { sb.AppendLine(); } if (result.Count > 1) { string severity; HslColor color; switch (r.Level) { case Microsoft.CodeAnalysis.DiagnosticSeverity.Info: severity = GettextCatalog.GetString("Info"); editor.Options.GetEditorTheme().TryGetColor(EditorThemeColors.UnderlineSuggestion, out color); break; case Microsoft.CodeAnalysis.DiagnosticSeverity.Warning: severity = GettextCatalog.GetString("Warning"); editor.Options.GetEditorTheme().TryGetColor(EditorThemeColors.UnderlineWarning, out color); break; case Microsoft.CodeAnalysis.DiagnosticSeverity.Error: severity = GettextCatalog.GetString("Error"); editor.Options.GetEditorTheme().TryGetColor(EditorThemeColors.UnderlineError, out color); break; default: severity = "?"; editor.Options.GetEditorTheme().TryGetColor(EditorThemeColors.UnderlineSuggestion, out color); break; } sb.AppendFormat("<span foreground ='{2}'font_weight='bold'>{0}</span>: {1}", severity, escapedMessage, color.ToPangoString()); } else { sb.Append(escapedMessage); } } var window = new LanguageItemWindow(CompileErrorTooltipProvider.GetExtensibleTextEditor(editor), modifierState, null, sb.ToString(), null); if (window.IsEmpty) { return(null); } return(window); }
public override Window CreateTooltipWindow(TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Xwt.ModifierKeys modifierState) { var result = item.Item as TooltipInformation; if (result == null) { return(null); } var window = new LanguageItemWindow(CompileErrorTooltipProvider.GetExtensibleTextEditor(editor), modifierState, null, result.SignatureMarkup, null); window.Destroyed += delegate { if (window.Tag is FloatingQuickFixIconWidget widget) { widget.QueueDestroy(); } }; if (window.IsEmpty) { return(null); } return(window); }
public LinkEventArgs(string link, int button, Xwt.ModifierKeys modifierState) { this.Link = link; this.Button = button; this.ModifierState = modifierState; }