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);
		}
示例#2
0
		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);
		}
示例#3
0
        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;
                }
            }
        }