public override Widget CreateWidget () { var icon = Gdk.Pixbuf.LoadFromResource ("lightning.png"); var image = new Gtk.Image (icon); HBox box = new HBox (false, 6); VBox vb = new VBox (); vb.PackStart (image, false, false, 0); box.PackStart (vb, false, false, 0); vb = new VBox (false, 6); vb.PackStart (new Gtk.Label () { Markup = GettextCatalog.GetString ("<b>{0}</b> has been thrown", exception.Type), Xalign = 0 }); messageLabel = new Gtk.Label () { Xalign = 0, NoShowAll = true }; vb.PackStart (messageLabel); var detailsBtn = new Xwt.LinkLabel (GettextCatalog.GetString ("Show Details")); HBox hh = new HBox (); detailsBtn.NavigateToUrl += (o,e) => dlg.ShowDialog (); hh.PackStart (detailsBtn.ToGtkWidget (), false, false, 0); vb.PackStart (hh, false, false, 0); box.PackStart (vb, true, true, 0); vb = new VBox (); var closeButton = new ImageButton () { InactiveImage = closeSelImage, Image = closeSelOverImage }; closeButton.Clicked += delegate { dlg.ShowMiniButton (); }; vb.PackStart (closeButton, false, false, 0); box.PackStart (vb, false, false, 0); exception.Changed += delegate { Application.Invoke (delegate { LoadData (); }); }; LoadData (); PopoverWidget eb = new PopoverWidget (); eb.ShowArrow = true; eb.EnableAnimation = true; eb.PopupPosition = PopupPosition.Left; eb.ContentBox.Add (box); eb.ShowAll (); return eb; }
public void SetLabel (Gtk.Widget page, Gdk.Pixbuf icon, string label) { this.label = label; this.page = page; if (Child != null) { Gtk.Widget oc = Child; Remove (oc); oc.Destroy (); } Gtk.HBox box = new HBox (); box.Spacing = 2; if (icon != null) { tabIcon = new Gtk.Image (icon); tabIcon.Show (); box.PackStart (tabIcon, false, false, 0); } else tabIcon = null; if (!string.IsNullOrEmpty (label)) { labelWidget = new ExtendedLabel (label); labelWidget.DropShadowVisible = true; labelWidget.UseMarkup = true; box.PackStart (labelWidget, true, true, 0); } else { labelWidget = null; } btnDock = new ImageButton (); btnDock.Image = pixAutoHide; btnDock.TooltipText = GettextCatalog.GetString ("Auto Hide"); btnDock.CanFocus = false; // btnDock.WidthRequest = btnDock.HeightRequest = 17; btnDock.Clicked += OnClickDock; btnDock.ButtonPressEvent += (o, args) => args.RetVal = true; btnDock.WidthRequest = btnDock.SizeRequest ().Width; btnClose = new ImageButton (); btnClose.Image = pixClose; btnClose.TooltipText = GettextCatalog.GetString ("Close"); btnClose.CanFocus = false; // btnClose.WidthRequest = btnClose.HeightRequest = 17; btnClose.WidthRequest = btnDock.SizeRequest ().Width; btnClose.Clicked += delegate { item.Visible = false; }; btnClose.ButtonPressEvent += (o, args) => args.RetVal = true; Gtk.Alignment al = new Alignment (0, 0, 1, 1); HBox btnBox = new HBox (false, 3); btnBox.PackStart (btnDock, false, false, 0); btnBox.PackStart (btnClose, false, false, 0); al.Add (btnBox); al.LeftPadding = 3; al.TopPadding = 1; box.PackEnd (al, false, false, 0); Add (box); // Get the required size before setting the ellipsize property, since ellipsized labels // have a width request of 0 box.ShowAll (); Show (); UpdateBehavior (); UpdateVisualStyle (); }
public PreviewVisualizerWindow (ObjectValue val, Gtk.Widget invokingWidget) : base (Gtk.WindowType.Toplevel) { this.TypeHint = WindowTypeHint.PopupMenu; this.Decorated = false; if (((Gtk.Window)invokingWidget.Toplevel).Modal) this.Modal = true; TransientFor = (Gtk.Window) invokingWidget.Toplevel; Theme.SetFlatColor (new Cairo.Color (245 / 256.0, 245 / 256.0, 245 / 256.0)); Theme.Padding = 3; ShowArrow = true; var mainBox = new VBox (); var headerTable = new Table (1, 3, false); headerTable.ColumnSpacing = 5; var closeButton = new ImageButton () { InactiveImage = ImageService.GetIcon ("md-popup-close", IconSize.Menu), Image = ImageService.GetIcon ("md-popup-close-hover", IconSize.Menu) }; closeButton.Clicked += delegate { this.Destroy (); }; var hb = new HBox (); var vb = new VBox (); hb.PackStart (vb, false, false, 0); vb.PackStart (closeButton, false, false, 0); headerTable.Attach (hb, 0, 1, 0, 1); var headerTitle = new Label (); headerTitle.ModifyFg (StateType.Normal, new Color (36, 36, 36)); var font = headerTitle.Style.FontDescription.Copy (); font.Weight = Pango.Weight.Bold; headerTitle.ModifyFont (font); headerTitle.Text = val.TypeName; var vbTitle = new VBox (); vbTitle.PackStart (headerTitle, false, false, 3); headerTable.Attach (vbTitle, 1, 2, 0, 1); if (DebuggingService.HasValueVisualizers (val)) { var openButton = new Button (); openButton.Label = "Open"; openButton.Relief = ReliefStyle.Half; openButton.Clicked += delegate { PreviewWindowManager.DestroyWindow (); DebuggingService.ShowValueVisualizer (val); }; var hbox = new HBox (); hbox.PackEnd (openButton, false, false, 2); headerTable.Attach (hbox, 2, 3, 0, 1); } else { headerTable.Attach (new Label (), 2, 3, 0, 1, AttachOptions.Fill | AttachOptions.Expand, AttachOptions.Fill | AttachOptions.Expand, 10, 0); } mainBox.PackStart (headerTable); mainBox.ShowAll (); var previewVisualizer = DebuggingService.GetPreviewVisualizer (val); if (previewVisualizer == null) previewVisualizer = new GenericPreviewVisualizer (); Control widget = null; try { widget = previewVisualizer.GetVisualizerWidget (val); } catch (Exception e) { DebuggingService.DebuggerSession.LogWriter (true, "Exception during preview widget creation: " + e.Message); } if (widget == null) { widget = new GenericPreviewVisualizer ().GetVisualizerWidget (val); } var alignment = new Alignment (0, 0, 1, 1); alignment.SetPadding (3, 5, 5, 5); alignment.Show (); alignment.Add (widget); mainBox.PackStart (alignment); ContentBox.Add (mainBox); }
public override Control CreateWidget () { var icon = Xwt.Drawing.Image.FromResource ("lightning-16.png"); var image = new Xwt.ImageView (icon).ToGtkWidget (); var box = new HBox (false, 6); var vb = new VBox (); vb.PackStart (image, false, false, 0); box.PackStart (vb, false, false, 0); vb = new VBox (false, 6); typeLabel = new Label { Xalign = 0 }; vb.PackStart (typeLabel); messageLabel = new Label { Xalign = 0, NoShowAll = true }; vb.PackStart (messageLabel); var detailsBtn = new Xwt.LinkLabel (GettextCatalog.GetString ("Show Details")); var hh = new HBox (); detailsBtn.NavigateToUrl += (o, e) => dlg.ShowDialog (); hh.PackStart (detailsBtn.ToGtkWidget (), false, false, 0); vb.PackStart (hh, false, false, 0); box.PackStart (vb, true, true, 0); vb = new VBox (); var closeButton = new ImageButton { InactiveImage = closeSelImage, Image = closeSelOverImage }; closeButton.Clicked += delegate { dlg.ShowMiniButton (); }; vb.PackStart (closeButton, false, false, 0); box.PackStart (vb, false, false, 0); exception.Changed += delegate { Application.Invoke (delegate { LoadData (); }); }; LoadData (); var eb = new PopoverWidget (); eb.ShowArrow = true; eb.EnableAnimation = true; eb.PopupPosition = PopupPosition.Left; eb.ContentBox.Add (box); eb.ShowAll (); return eb; }
public void SetLabel (Gtk.Widget page, Xwt.Drawing.Image icon, string label) { this.label = label; this.page = page; if (Child != null) { Gtk.Widget oc = Child; Remove (oc); oc.Destroy (); } Gtk.HBox box = new HBox (); box.Spacing = -2; if (icon == null) icon = ImageService.GetIcon ("md-empty"); tabIcon = new ImageView (icon); tabIcon.Show (); box.PackStart (tabIcon, false, false, 3); if (!string.IsNullOrEmpty (label)) { labelWidget = new ExtendedLabel (label); labelWidget.UseMarkup = true; labelWidget.Name = label; var alignLabel = new Alignment (0.0f, 0.5f, 1, 1); alignLabel.BottomPadding = 0; alignLabel.RightPadding = 15; alignLabel.Add (labelWidget); box.PackStart (alignLabel, false, false, 0); } else { labelWidget = null; } btnDock = new ImageButton (); btnDock.Image = pixAutoHide; btnDock.TooltipText = GettextCatalog.GetString ("Auto Hide"); btnDock.CanFocus = false; // btnDock.WidthRequest = btnDock.HeightRequest = 17; btnDock.Clicked += OnClickDock; btnDock.ButtonPressEvent += (o, args) => args.RetVal = true; btnDock.WidthRequest = btnDock.SizeRequest ().Width; btnDock.Name = string.Format("btnDock_{0}", label ?? string.Empty); btnClose = new ImageButton (); btnClose.Image = pixClose; btnClose.TooltipText = GettextCatalog.GetString ("Close"); btnClose.CanFocus = false; // btnClose.WidthRequest = btnClose.HeightRequest = 17; btnClose.WidthRequest = btnDock.SizeRequest ().Width; btnClose.Clicked += delegate { item.Visible = false; }; btnClose.ButtonPressEvent += (o, args) => args.RetVal = true; btnClose.Name = string.Format ("btnClose_{0}", label ?? string.Empty); Gtk.Alignment al = new Alignment (0, 0.5f, 1, 1); HBox btnBox = new HBox (false, 0); btnBox.PackStart (btnDock, false, false, 3); btnBox.PackStart (btnClose, false, false, 1); al.Add (btnBox); box.PackEnd (al, false, false, 3); Add (box); // Get the required size before setting the ellipsize property, since ellipsized labels // have a width request of 0 box.ShowAll (); Show (); minWidth = tabIcon.SizeRequest ().Width + al.SizeRequest ().Width + 10; UpdateBehavior (); UpdateVisualStyle (); }