public override Control GetVisualizerWidget (ObjectValue val) { string value = val.Value; Gdk.Color col = new Gdk.Color (85, 85, 85); if (!val.IsNull && (val.TypeName == "string" || val.TypeName == "char[]")) value = '"' + GetString (val) + '"'; if (DebuggingService.HasInlineVisualizer (val)) value = DebuggingService.GetInlineVisualizer (val).InlineVisualize (val); var label = new Gtk.Label (); label.Text = value; var font = label.Style.FontDescription.Copy (); if (font.SizeIsAbsolute) { font.AbsoluteSize = font.Size - 1; } else { font.Size -= (int)(Pango.Scale.PangoScale); } label.ModifyFont (font); label.ModifyFg (StateType.Normal, col); label.SetPadding (4, 4); if (label.SizeRequest ().Width > 500) { label.WidthRequest = 500; label.Wrap = true; label.LineWrapMode = Pango.WrapMode.WordChar; } else { label.Justify = Gtk.Justification.Center; } if (label.Layout.GetLine (1) != null) { label.Justify = Gtk.Justification.Left; var line15 = label.Layout.GetLine (15); if (line15 != null) { label.Text = value.Substring (0, line15.StartIndex).TrimEnd ('\r', '\n') + "\n…"; } } label.Show (); return label; }
public override Control GetVisualizerWidget(ObjectValue val) { string value = val.Value; Gdk.Color col = new Gdk.Color(85, 85, 85); if (!val.IsNull && (val.TypeName == "string" || val.TypeName == "char[]")) { value = '"' + GetString(val) + '"'; } if (DebuggingService.HasInlineVisualizer(val)) { value = DebuggingService.GetInlineVisualizer(val).InlineVisualize(val); } var label = new Gtk.Label(); label.Text = value; var font = label.Style.FontDescription.Copy(); if (font.SizeIsAbsolute) { font.AbsoluteSize = font.Size - 1; } else { font.Size -= (int)(Pango.Scale.PangoScale); } label.ModifyFont(font); label.ModifyFg(StateType.Normal, col); label.SetPadding(4, 4); if (label.SizeRequest().Width > 500) { label.WidthRequest = 500; label.Wrap = true; label.LineWrapMode = Pango.WrapMode.WordChar; } else { label.Justify = Gtk.Justification.Center; } if (label.Layout.GetLine(1) != null) { label.Justify = Gtk.Justification.Left; var line15 = label.Layout.GetLine(15); if (line15 != null) { label.Text = value.Substring(0, line15.StartIndex).TrimEnd('\r', '\n') + "\n…"; } } label.Show(); return(label); }
public override Control GetVisualizerWidget(ObjectValue val) { var ops = DebuggingService.DebuggerSession.EvaluationOptions.Clone(); ops.AllowTargetInvoke = true; ops.ChunkRawStrings = true; ops.EllipsizedLength = 5000; //Preview window can hold aprox. 4700 chars val.Refresh(ops); //Refresh DebuggerDisplay/String value with full length instead of ellipsized string value = val.Value; Gdk.Color col = Styles.PreviewVisualizerTextColor.ToGdkColor(); if (DebuggingService.HasInlineVisualizer(val)) { value = DebuggingService.GetInlineVisualizer(val).InlineVisualize(val); } var label = new Gtk.Label(); label.Text = value; label.ModifyFont(FontService.SansFont.CopyModified(Ide.Gui.Styles.FontScale11)); label.ModifyFg(StateType.Normal, col); label.SetPadding(4, 4); if (label.SizeRequest().Width > 500) { label.WidthRequest = 500; label.Wrap = true; label.LineWrapMode = Pango.WrapMode.WordChar; } else { label.Justify = Gtk.Justification.Center; } if (label.Layout.GetLine(1) != null) { label.Justify = Gtk.Justification.Left; var trimmedLine = label.Layout.GetLine(50); if (trimmedLine != null) { label.Text = value.Substring(0, trimmedLine.StartIndex).TrimEnd('\r', '\n') + "\n…"; } } label.Selectable = true; label.CanFocus = false; label.Show(); return(label); }
public override Control GetVisualizerWidget(ObjectValue val) { string value = val.Value; Gdk.Color col = Styles.PreviewVisualizerTextColor.ToGdkColor(); if (!val.IsNull && (val.TypeName == "string" || val.TypeName == "char[]")) { value = '"' + GetString(val) + '"'; } if (DebuggingService.HasInlineVisualizer(val)) { value = DebuggingService.GetInlineVisualizer(val).InlineVisualize(val); } var label = new Gtk.Label(); label.Text = value; label.ModifyFont(FontService.SansFont.CopyModified(Ide.Gui.Styles.FontScale11)); label.ModifyFg(StateType.Normal, col); label.SetPadding(4, 4); if (label.SizeRequest().Width > 500) { label.WidthRequest = 500; label.Wrap = true; label.LineWrapMode = Pango.WrapMode.WordChar; } else { label.Justify = Gtk.Justification.Center; } if (label.Layout.GetLine(1) != null) { label.Justify = Gtk.Justification.Left; var line15 = label.Layout.GetLine(15); if (line15 != null) { label.Text = value.Substring(0, line15.StartIndex).TrimEnd('\r', '\n') + "\n…"; } } label.Show(); return(label); }
void LoadData() { if (!string.IsNullOrEmpty(exception.Message)) { messageLabel.Show(); messageLabel.Text = exception.Message; if (messageLabel.SizeRequest().Width > 400) { messageLabel.WidthRequest = 400; messageLabel.Wrap = true; } } else { messageLabel.Hide(); } }
public override Control GetVisualizerWidget (ObjectValue val) { var ops = DebuggingService.DebuggerSession.EvaluationOptions.Clone (); ops.AllowTargetInvoke = true; ops.ChunkRawStrings = true; ops.EllipsizedLength = 5000;//Preview window can hold aprox. 4700 chars val.Refresh (ops);//Refresh DebuggerDisplay/String value with full length instead of ellipsized string value = val.Value; Gdk.Color col = Styles.PreviewVisualizerTextColor.ToGdkColor (); if (DebuggingService.HasInlineVisualizer (val)) value = DebuggingService.GetInlineVisualizer (val).InlineVisualize (val); var label = new Gtk.Label (); label.Text = value; label.ModifyFont (FontService.SansFont.CopyModified (Ide.Gui.Styles.FontScale11)); label.ModifyFg (StateType.Normal, col); label.SetPadding (4, 4); if (label.SizeRequest ().Width > 500) { label.WidthRequest = 500; label.Wrap = true; label.LineWrapMode = Pango.WrapMode.WordChar; } else { label.Justify = Gtk.Justification.Center; } if (label.Layout.GetLine (1) != null) { label.Justify = Gtk.Justification.Left; var trimmedLine = label.Layout.GetLine (50); if (trimmedLine != null) { label.Text = value.Substring (0, trimmedLine.StartIndex).TrimEnd ('\r', '\n') + "\n…"; } } label.Show (); return label; }
public LevelRangeWidget(string label, int low, int high) { IConfigSource config = new DotNetConfigSource(DotNetConfigSource.GetFullConfigPath()); int entrySize = config.Configs["defaults"].GetInt("entrySize"); int entryWidth = config.Configs["defaults"].GetInt("entryWidth"); Low = new Entry(entrySize); Low.SetSizeRequest(entryWidth, Low.SizeRequest().Height); Low.WidthChars = entrySize; Low.IsEditable = false; Low.CanFocus = false; Label = new Label(label); Label.Justify = Justification.Center; Label.SetSizeRequest(150, Label.SizeRequest().Height); High = new Entry(entrySize); High.SetSizeRequest(entryWidth, High.SizeRequest().Height); High.WidthChars = entrySize; High.IsEditable = false; High.CanFocus = false; }
public override Control GetVisualizerWidget (ObjectValue val) { string value = val.Value; Gdk.Color col = Styles.PreviewVisualizerTextColor.ToGdkColor (); if (!val.IsNull && (val.TypeName == "string" || val.TypeName == "char[]")) value = '"' + GetString (val) + '"'; if (DebuggingService.HasInlineVisualizer (val)) value = DebuggingService.GetInlineVisualizer (val).InlineVisualize (val); var label = new Gtk.Label (); label.Text = value; label.ModifyFont (FontService.SansFont.CopyModified (Ide.Gui.Styles.FontScale11)); label.ModifyFg (StateType.Normal, col); label.SetPadding (4, 4); if (label.SizeRequest ().Width > 500) { label.WidthRequest = 500; label.Wrap = true; label.LineWrapMode = Pango.WrapMode.WordChar; } else { label.Justify = Gtk.Justification.Center; } if (label.Layout.GetLine (1) != null) { label.Justify = Gtk.Justification.Left; var line15 = label.Layout.GetLine (15); if (line15 != null) { label.Text = value.Substring (0, line15.StartIndex).TrimEnd ('\r', '\n') + "\n…"; } } label.Show (); return label; }
public GridRow(PropertyGrid parentGrid, PropertyDescriptor descriptor) { this.parent = parentGrid; this.propertyDescriptor = descriptor; // TODO: Need a better way to check if the property has no get accessor. // Write-only? Don't add this to the list. try {object propertyValue = descriptor.GetValue (parent.CurrentObject);} catch (Exception) { isValidProperty = false; return; } #region Name label string name = descriptor.DisplayName; ParenthesizePropertyNameAttribute paren = descriptor.Attributes[typeof (ParenthesizePropertyNameAttribute)] as ParenthesizePropertyNameAttribute; if (paren != null && paren.NeedParenthesis) name = "(" + name + ")"; propertyNameLabel = new Label (name); propertyNameLabel.Xalign = 0; propertyNameLabel.Xpad = 3; propertyNameLabel.HeightRequest = 20; propertyNameEventBox = new EventBox (); propertyNameEventBox.ModifyBg (StateType.Normal, parent.Style.White); propertyNameEventBox.Add (propertyNameLabel); propertyNameEventBox.ButtonReleaseEvent += on_label_ButtonRelease; if (propertyNameLabel.SizeRequest ().Width > 100) { propertyNameLabel.WidthRequest = 100; //TODO: Display tooltip of full name when truncated //parent.tooltips.SetTip (propertyNameLabel, descriptor.DisplayName, descriptor.DisplayName); } #endregion editor = parent.EditorManager.GetEditor(propertyDescriptor, this); propertyValueHBox = new HBox(); //check if it needs a button. Note arrays are read-only but have buttons if (editor.DialogueEdit && (!propertyDescriptor.IsReadOnly || editor.EditsReadOnlyObject)) { Label buttonLabel = new Label (); buttonLabel.UseMarkup = true; buttonLabel.Xpad = 0; buttonLabel.Ypad = 0; buttonLabel.Markup = "<span size=\"small\">...</span>"; Button dialogueButton = new Button (buttonLabel); dialogueButton.Clicked += new EventHandler (dialogueButton_Clicked); propertyValueHBox.PackEnd (dialogueButton, false, false, 0); } propertyValueEventBox = new EventBox (); propertyValueEventBox.ModifyBg (StateType.Normal, parent.Style.White); propertyValueEventBox.CanFocus = true; propertyValueEventBox.ButtonReleaseEvent += on_value_ButtonRelease; propertyValueEventBox.Focused += on_value_ButtonRelease; propertyValueHBox.PackStart (propertyValueEventBox, true, true, 0); valueBeforeEdit = propertyDescriptor.GetValue (parentGrid.CurrentObject); DisplayRenderWidget (); }
private Widget CreateWidgets() { table = new Table(1, 2, false); table.ColumnSpacing = 12; table.BorderWidth = 4; image = new Image(normalPixbuf); table.Attach(image, 0, 1, 0, 1, AttachOptions.Shrink, 0, 0, 0); VBox vbox = new VBox(false, 0); table.Attach(vbox, 1, 2, 0, 1, AttachOptions.Expand | AttachOptions.Fill, 0, 0, 0); widthForLabels = (int)maxWidth - (int)normalPixbuf.Width - (int)table.ColumnSpacing - (int)(table.BorderWidth * 2); nameLabel = new Label("<span size=\"large\"></span>"); vbox.PackStart(nameLabel, false, false, 0); nameLabel.UseMarkup = true; nameLabel.UseUnderline = false; nameLabel.Xalign = 0; Requisition req = nameLabel.SizeRequest(); nameLabel.SetSizeRequest(widthForLabels, -1); Util.GtkLabelSetMaxWidthChars(nameLabel, widthForLabels); Util.GtkLabelSetEllipsize(nameLabel, true); locationLabel = new Label("<span size=\"small\"></span>"); vbox.PackStart(locationLabel, false, false, 0); locationLabel.UseMarkup = true; locationLabel.UseUnderline = false; locationLabel.ModifyFg(StateType.Normal, this.Style.Base(StateType.Active)); locationLabel.Xalign = 0; req = locationLabel.SizeRequest(); locationLabel.SetSizeRequest(widthForLabels, req.Height); Util.GtkLabelSetMaxWidthChars(locationLabel, widthForLabels); Util.GtkLabelSetEllipsize(locationLabel, true); statusLabel = new Label("<span size=\"small\"></span>"); vbox.PackStart(statusLabel, false, false, 0); statusLabel.UseMarkup = true; statusLabel.UseUnderline = false; statusLabel.ModifyFg(StateType.Normal, this.Style.Base(StateType.Active)); statusLabel.Xalign = 0; req = statusLabel.SizeRequest(); statusLabel.SetSizeRequest(widthForLabels, req.Height); Util.GtkLabelSetMaxWidthChars(statusLabel, widthForLabels); Util.GtkLabelSetEllipsize(statusLabel, true); return table; }