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 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 (); }