Beispiel #1
0
        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 Control 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;
		}
Beispiel #3
0
        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();
        }
		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 Control 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");
						color = editor.Options.GetColorStyle ().UnderlineHint.Color;
						break;
					case Microsoft.CodeAnalysis.DiagnosticSeverity.Warning:
						severity = GettextCatalog.GetString ("Warning");
						color = editor.Options.GetColorStyle ().UnderlineWarning.Color;
						break;
					case Microsoft.CodeAnalysis.DiagnosticSeverity.Error:
						severity = GettextCatalog.GetString ("Error");
						color = editor.Options.GetColorStyle ().UnderlineError.Color;
						break;
					default:
						severity = "?";
						color = editor.Options.GetColorStyle ().UnderlineSuggestion.Color;
						break;
					}

					sb.Append (string.Format ("<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;
		}
Beispiel #6
0
        protected virtual 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);
            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;
            }

            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));
        }
Beispiel #7
0
        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);
        }
Beispiel #8
0
 public virtual Control CreateTooltipWindow(TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Xwt.ModifierKeys modifierState)
 {
     return(null);
 }
		public override void ShowTooltipWindow (TextEditor editor, Control tipWindow, TooltipItem item, Gdk.ModifierType 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 Control CreateTooltipWindow (TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Gdk.ModifierType modifierState)
		{
			return new DebugValueWindow (editor, offset, DebuggingService.CurrentFrame, (ObjectValue) item.Item, null);
		}
		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;
		}
Beispiel #12
0
		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 ();
		}
Beispiel #13
0
		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);
		}
Beispiel #14
0
		public virtual Control CreateTooltipWindow (TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Xwt.ModifierKeys modifierState)
		{
			return null;
		}
Beispiel #15
0
        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, Gdk.ModifierType 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;
		}