示例#1
0
 internal void AutoHide(DockItem item, AutoHideBox widget, bool animate)
 {
     if (animate)
     {
         widget.Hidden += delegate
         {
             if (!widget.Disposed)
             {
                 AutoHide(item, widget, false);
             }
         };
         widget.AnimateHide();
     }
     else
     {
         // The widget may already be removed from the parent
         // so 'parent' can be null
         Gtk.Container parent = (Gtk.Container)item.Widget.Parent;
         if (parent != null)
         {
             //removing the widget from its parent causes it to unrealize without unmapping
             //so make sure it's unmapped
             if (item.Widget.IsMapped)
             {
                 item.Widget.Unmap();
             }
             parent.Remove(item.Widget);
         }
         RemoveTopLevel(widget);
         widget.Disposed = true;
         widget.Destroy();
     }
 }
示例#2
0
 void AutoShow()
 {
     UnscheduleAutoHide();
     if (autoShowFrame == null && !bar.Frame.OverlayWidgetVisible)
     {
         if (hiddenFrame != null)
         {
             bar.Frame.AutoHide(it, hiddenFrame, false);
         }
         autoShowFrame = bar.Frame.AutoShow(it, bar, size);
         autoShowFrame.EnterNotifyEvent += OnFrameEnter;
         autoShowFrame.LeaveNotifyEvent += OnFrameLeave;
         autoShowFrame.KeyPressEvent    += OnFrameKeyPress;
         QueueDraw();
     }
 }
示例#3
0
 void AutoShow()
 {
     UnscheduleAutoHide();
     if (autoShowFrame == null)
     {
         if (hiddenFrame != null)
         {
             bar.Frame.AutoHide(it, hiddenFrame, false);
         }
         autoShowFrame = bar.Frame.AutoShow(it, bar, size);
         autoShowFrame.EnterNotifyEvent += OnFrameEnter;
         autoShowFrame.LeaveNotifyEvent += OnFrameLeave;
         autoShowFrame.KeyPressEvent    += OnFrameKeyPress;
         SetPrelight();
     }
 }
示例#4
0
        internal AutoHideBox AutoShow(DockItem item, DockBar bar, int size)
        {
            AutoHideBox aframe = new AutoHideBox(this, item, bar.Position, size);

            Gdk.Size sTop  = GetBarFrameSize(dockBarTop);
            Gdk.Size sBot  = GetBarFrameSize(dockBarBottom);
            Gdk.Size sLeft = GetBarFrameSize(dockBarLeft);
            Gdk.Size sRgt  = GetBarFrameSize(dockBarRight);

            int x, y, w, h;

            if (bar == dockBarLeft || bar == dockBarRight)
            {
                h = Allocation.Height - sTop.Height - sBot.Height;
                w = size;
                y = sTop.Height;
                if (bar == dockBarLeft)
                {
                    x = sLeft.Width;
                }
                else
                {
                    x = Allocation.Width - size - sRgt.Width;
                }
            }
            else
            {
                w = Allocation.Width - sLeft.Width - sRgt.Width;
                h = size;
                x = sLeft.Width;
                if (bar == dockBarTop)
                {
                    y = sTop.Height;
                }
                else
                {
                    y = Allocation.Height - size - sBot.Height;
                }
            }

            AddTopLevel(aframe, x, y, w, h);
            aframe.AnimateShow();

            return(aframe);
        }
示例#5
0
 void AutoHide(bool animate)
 {
     UnscheduleAutoShow();
     if (autoShowFrame != null)
     {
         size                  = autoShowFrame.PadSize;
         hiddenFrame           = autoShowFrame;
         autoShowFrame.Hidden += delegate {
             hiddenFrame = null;
         };
         bar.Frame.AutoHide(it, autoShowFrame, animate);
         autoShowFrame.EnterNotifyEvent -= OnFrameEnter;
         autoShowFrame.LeaveNotifyEvent -= OnFrameLeave;
         autoShowFrame.KeyPressEvent    -= OnFrameKeyPress;
         autoShowFrame = null;
         QueueDraw();
     }
 }
示例#6
0
 internal void AutoHide(DockItem item, AutoHideBox widget, bool animate)
 {
     if (animate)
     {
         widget.Hidden += delegate {
             if (!widget.Disposed)
             {
                 AutoHide(item, widget, false);
             }
         };
         widget.AnimateHide();
     }
     else
     {
         Gtk.Container parent = (Gtk.Container)item.Widget.Parent;
         parent.Remove(item.Widget);
         RemoveTopLevel(widget);
         widget.Disposed = true;
         widget.Destroy();
     }
 }
示例#7
0
        internal void UpdateSize(DockBar bar, AutoHideBox aframe)
        {
            Gdk.Size sTop  = GetBarFrameSize(dockBarTop);
            Gdk.Size sBot  = GetBarFrameSize(dockBarBottom);
            Gdk.Size sLeft = GetBarFrameSize(dockBarLeft);
            Gdk.Size sRgt  = GetBarFrameSize(dockBarRight);

            if (bar == dockBarLeft || bar == dockBarRight)
            {
                aframe.HeightRequest = Allocation.Height - sTop.Height - sBot.Height;
                if (bar == dockBarRight)
                {
                    aframe.X = Allocation.Width - aframe.Allocation.Width - sRgt.Width;
                }
            }
            else
            {
                aframe.WidthRequest = Allocation.Width - sLeft.Width - sRgt.Width;
                if (bar == dockBarBottom)
                {
                    aframe.Y = Allocation.Height - aframe.Allocation.Height - sBot.Height;
                }
            }
        }
示例#8
0
		internal void UpdateSize (DockBar bar, AutoHideBox aframe)
		{
			Gdk.Size sTop = GetBarFrameSize (dockBarTop);
			Gdk.Size sBot = GetBarFrameSize (dockBarBottom);
			Gdk.Size sLeft = GetBarFrameSize (dockBarLeft);
			Gdk.Size sRgt = GetBarFrameSize (dockBarRight);
			
			if (bar == dockBarLeft || bar == dockBarRight) {
				aframe.HeightRequest = Allocation.Height - sTop.Height - sBot.Height;
				if (bar == dockBarRight)
					aframe.X = Allocation.Width - aframe.Allocation.Width - sRgt.Width;
			} else {
				aframe.WidthRequest = Allocation.Width - sLeft.Width - sRgt.Width;
				if (bar == dockBarBottom)
					aframe.Y = Allocation.Height - aframe.Allocation.Height - sBot.Height;
			}
		}
示例#9
0
		internal AutoHideBox AutoShow (DockItem item, DockBar bar, int size)
		{
			AutoHideBox aframe = new AutoHideBox (this, item, bar.Position, size);
			Gdk.Size sTop = GetBarFrameSize (dockBarTop);
			Gdk.Size sBot = GetBarFrameSize (dockBarBottom);
			Gdk.Size sLeft = GetBarFrameSize (dockBarLeft);
			Gdk.Size sRgt = GetBarFrameSize (dockBarRight);

			int x,y,w,h;
			if (bar == dockBarLeft || bar == dockBarRight) {
				h = Allocation.Height - sTop.Height - sBot.Height;
				w = size;
				y = sTop.Height;
				if (bar == dockBarLeft)
					x = sLeft.Width;
				else
					x = Allocation.Width - size - sRgt.Width;
			} else {
				w = Allocation.Width - sLeft.Width - sRgt.Width;
				h = size;
				x = sLeft.Width;
				if (bar == dockBarTop)
					y = sTop.Height;
				else
					y = Allocation.Height - size - sBot.Height;
			}

			AddTopLevel (aframe, x, y, w, h);
			aframe.AnimateShow ();

			return aframe;
		}
示例#10
0
		internal void AutoHide (DockItem item, AutoHideBox widget, bool animate)
		{
			if (animate) {
				widget.Hidden += delegate {
					if (!widget.Disposed)
						AutoHide (item, widget, false);
				};
				widget.AnimateHide ();
			}
			else {
				// The widget may already be removed from the parent
				// so 'parent' can be null
				Gtk.Container parent = (Gtk.Container) item.Widget.Parent;
				if (parent != null) {
					//removing the widget from its parent causes it to unrealize without unmapping
					//so make sure it's unmapped
					if (item.Widget.IsMapped) {
						item.Widget.Unmap ();
					}
					parent.Remove (item.Widget);
				}
				parent = (Gtk.Container) item.TitleTab.Parent;
				if (parent != null) {
					//removing the widget from its parent causes it to unrealize without unmapping
					//so make sure it's unmapped
					if (item.TitleTab.IsMapped) {
						item.TitleTab.Unmap ();
					}
					parent.Remove (item.TitleTab);
				}
				if (widget.ContainerWindow != null) {
					widget.ContainerWindow.Destroy ();
				} else
					RemoveTopLevel (widget);

				widget.Disposed = true;
				widget.Destroy ();
			}
		}
示例#11
0
		void AutoHide (bool animate)
		{
			UnscheduleAutoShow ();
			if (autoShowFrame != null) {
				size = autoShowFrame.PadSize;
				hiddenFrame = autoShowFrame;
				autoShowFrame.Hidden += delegate {
					hiddenFrame = null;
				};
				bar.Frame.AutoHide (it, autoShowFrame, animate);
				autoShowFrame.EnterNotifyEvent -= OnFrameEnter;
				autoShowFrame.LeaveNotifyEvent -= OnFrameLeave;
				autoShowFrame.KeyPressEvent -= OnFrameKeyPress;
				autoShowFrame = null;
				QueueDraw ();
			}
		}
示例#12
0
		void AutoShow ()
		{
			UnscheduleAutoHide ();
			if (autoShowFrame == null && !bar.Frame.OverlayWidgetVisible) {
				if (hiddenFrame != null)
					bar.Frame.AutoHide (it, hiddenFrame, false);
				autoShowFrame = bar.Frame.AutoShow (it, bar, size);
				autoShowFrame.EnterNotifyEvent += OnFrameEnter;
				autoShowFrame.LeaveNotifyEvent += OnFrameLeave;
				autoShowFrame.KeyPressEvent += OnFrameKeyPress;
				QueueDraw ();
			}
		}
示例#13
0
 internal void AutoHide(DockItem item, AutoHideBox widget, bool animate)
 {
     if (animate) {
         widget.Hidden += delegate {
             if (!widget.Disposed)
                 AutoHide (item, widget, false);
         };
         widget.AnimateHide ();
     }
     else {
         Gtk.Container parent = (Gtk.Container) item.Widget.Parent;
         parent.Remove (item.Widget);
         RemoveTopLevel (widget);
         widget.Disposed = true;
         widget.Destroy ();
     }
 }
示例#14
0
		internal void AutoHide (DockItem item, AutoHideBox widget, bool animate)
		{
			if (animate) {
				widget.Hidden += delegate {
					if (!widget.Disposed)
						AutoHide (item, widget, false);
				};
				widget.AnimateHide ();
			}
			else {
				// The widget may already be removed from the parent
				// so 'parent' can be null
				Gtk.Container parent = (Gtk.Container) item.Widget.Parent;
				if (parent != null)
					parent.Remove (item.Widget);
				RemoveTopLevel (widget);
				widget.Disposed = true;
				widget.Destroy ();
			}
		}
示例#15
0
		void AutoShow ()
		{
			UnscheduleAutoHide ();
			if (autoShowFrame == null) {
				if (hiddenFrame != null)
					bar.Frame.AutoHide (it, hiddenFrame, false);
				autoShowFrame = bar.Frame.AutoShow (it, bar, size);
				autoShowFrame.EnterNotifyEvent += OnFrameEnter;
				autoShowFrame.LeaveNotifyEvent += OnFrameLeave;
				autoShowFrame.KeyPressEvent += OnFrameKeyPress;
				SetPrelight ();
			}
		}