protected override void ReplaceChild (Gtk.Widget oldChild, Gtk.Widget newChild) { Widget ww = Widget.Lookup (oldChild); if (ww != null && ww.ShowScrollbars && ParentWrapper != null) { // The viewport is bound to the child widget. Remove it together with the child ParentWrapper.ReplaceChild (Wrapped, newChild, false); return; } if (scrolled.Child is Gtk.Viewport && oldChild != scrolled.Child) { Gtk.Viewport vp = (Gtk.Viewport)scrolled.Child; vp.Remove (oldChild); scrolled.Remove (vp); vp.Destroy (); } else scrolled.Remove (scrolled.Child); if (newChild.SetScrollAdjustments (null, null)) scrolled.Add (newChild); else AddWithViewport (newChild); NotifyChildAdded (scrolled.Child); }
protected override void ReplaceChild (Gtk.Widget oldChild, Gtk.Widget newChild) { Widget ww = Widget.Lookup (oldChild); if ((oldChild is Placeholder) && (ParentWrapper is ScrolledWindow) && newChild.SetScrollAdjustments (null, null)) { Widget wrapper = Widget.Lookup (newChild); wrapper.ShowScrollbars = false; ParentWrapper.ReplaceChild (Wrapped, newChild, false); } else if (ww != null && ww.ShowScrollbars && (ParentWrapper is ScrolledWindow) && ParentWrapper.ParentWrapper != null) { // The viewport is bound to the child widget. Remove it together with the child ParentWrapper.ParentWrapper.ReplaceChild (ParentWrapper.Wrapped, newChild, false); } else base.ReplaceChild (oldChild, newChild); }
private void ReloadModes(ref Gtk.Layout vbox) { options.Clear(); if (channel != null) { RefreshBans(); ReloadExceptions(); RefreshInvites(); lock (channel.ChannelMode) { int height = 0; foreach (char item in channel._Network.SModes) { if (channel.ChannelMode._Mode.Contains(item.ToString())) { InsertMode(item, ref vbox, ref height); } } foreach (char item in channel._Network.XModes) { if (channel.ChannelMode._Mode.Contains(item.ToString())) { InsertMode(item, ref vbox, ref height); } } foreach (char item in channel._Network.CModes) { InsertMode(item, ref vbox, ref height); } Adjustment ad = new Adjustment(0, 0, height * 100, 10, 20, 20); vbox.SetScrollAdjustments(new Adjustment(10, 0, 10, 10, 10, 10), ad); this.GtkScrolledWindow1.SetScrollAdjustments(new Adjustment(10, 0, 10, 10, 10, 10), ad); vbox.Height = (uint)height; } } }