示例#1
0
        public static void CenterChildToParent(Gtk.Window parent,Gtk.Window child)
        {
            if (parent==null || child == null)
                return;

            int parentX = 0;
            int parentY = 0;
            int parentW = 0;
            int parentH = 0;

            parent.GetPosition(out parentX,out parentY);
            parent.GetSize(out parentW,out parentH);

            int w = 0;
            int h = 0;
            child.GetSize(out w,out h);

            var x = parentX + Convert.ToInt32( (parentW-w) / 2);
            var y = parentY + Convert.ToInt32( (parentH-h) / 2);

            if (x<=0) x =0;
            if (y<=0) y =0;

            child.Move(x,y);
            child.KeepAbove = true;
        }
        public static void MoveBy(Gtk.Window window, int x, int y)
        {
            int winX, winY;

            window.GetPosition(out winX, out winY);
            window.Move(winX + x, winY + y);
        }
		public virtual Gtk.Window ShowTooltipWindow (MonoTextEditor editor, Gtk.Window tipWindow, int offset, Gdk.ModifierType modifierState, int mouseX, int mouseY, TooltipItem item)
		{
			int ox = 0, oy = 0;
			if (editor.GdkWindow != null)
				editor.GdkWindow.GetOrigin (out ox, out oy);
			
			int w;
			double xalign;
			GetRequiredPosition (editor, tipWindow, out w, out xalign);
			w += 10;

			int x = mouseX + ox + editor.Allocation.X;
			int y = mouseY + oy + editor.Allocation.Y;
			Gdk.Rectangle geometry = editor.Screen.GetUsableMonitorGeometry (editor.Screen.GetMonitorAtPoint (x, y));
			
			x -= (int) ((double) w * xalign);
			y += 10;
			
			if (x + w >= geometry.X + geometry.Width)
				x = geometry.X + geometry.Width - w;
			if (x < geometry.Left)
				x = geometry.Left;
			
			int h = tipWindow.SizeRequest ().Height;
			if (y + h >= geometry.Y + geometry.Height)
				y = geometry.Y + geometry.Height - h;
			if (y < geometry.Top)
				y = geometry.Top;
			
			tipWindow.Move (x, y);
			
			tipWindow.ShowAll ();

			return tipWindow;
		}
        public static void FadeOut(Gtk.Window window, uint millisecondsTimeout)
        {
            int screenHeight = window.Screen.Height + 10;
            int winX, winY;

            do {
                window.GetPosition(out winX, out winY);
                window.Move(winX, winY + 1);
                //System.Threading.Thread.Sleep(millisecondsTimeout);
                TimeUtils.Sleep(millisecondsTimeout);
            } while (winY <= screenHeight);
        }
        public static void FadeIn(Gtk.Window window, uint millisecondsTimeout)
        {
            int screenHeight = window.Screen.Height;
            int winWidth, winHeight;
            int winX, winY;

            // Hide Window At Bottom of The Screen
            window.GetPosition(out winX, out winY);
            //int firstWinY = winY;
            window.GetSize(out winWidth, out winHeight);
            window.Move(winX, screenHeight);

            // Rise Window
            do {
                window.GetPosition(out winX, out winY);
                window.Move(winX, winY - 1);
                //System.Threading.Thread.Sleep(millisecondsTimeout);
                TimeUtils.Sleep(millisecondsTimeout);
            //} while (winY >= firstWinY);
            } while (winY > (screenHeight - winHeight));
        }
        public static void Shake(Gtk.Window window, int times)
        {
            int winX, winY;

            Gtk.Application.Invoke(delegate {
                window.GetPosition(out winX, out winY);

                for (int i=10; i > 0; i--) {
                    for (int j=times; j > 0; j--) {
                        MoveBy(window, 0, i);
                        TimeUtils.Sleep(5);

                        MoveBy(window, i, 0);
                        TimeUtils.Sleep(5);

                        MoveBy(window, 0, -i);
                        TimeUtils.Sleep(5);

                        MoveBy(window, -i, 0);
                        TimeUtils.Sleep(5);
                    }
                }

                window.Move(winX, winY);
            });
        }
 /// <summary>Centers a window relative to its parent.</summary>
 static void CenterWindow(Gtk.Window child, Gtk.Window parent)
 {
     child.Child.Show ();
     int w, h, winw, winh, x, y, winx, winy;
     if (child.Visible)
         child.GetSize (out w, out h);
     else {
         w = child.DefaultSize.Width;
         h = child.DefaultSize.Height;
     }
     parent.GetSize (out winw, out winh);
     parent.GetPosition (out winx, out winy);
     x = Math.Max (0, (winw - w) /2) + winx;
     y = Math.Max (0, (winh - h) /2) + winy;
     child.Move (x, y);
 }
		internal virtual void PlaceWindow (Gtk.Window window, int x, int y, int width, int height)
		{
			window.Move (x, y);
			window.Resize (width, height);
		}
示例#9
0
 // Pinta TODO: This may need to be overridden for Mac?
 private void PlaceWindow (Gtk.Window window, int x, int y, int width, int height)
 {
     window.Move (x, y);
     window.Resize (width, height);
 }
示例#10
0
 /// <summary>Centers a window relative to its parent.</summary>
 static void CenterWindow(Gtk.Window child, Gtk.Window parent)
 {
     child.Child.Show ();
     int w, h, winw, winh, x, y, winx, winy;
     child.GetSize (out w, out h);
     parent.GetSize (out winw, out winh);
     parent.GetPosition (out winx, out winy);
     x = Math.Max (0, (winw - w) /2) + winx;
     y = Math.Max (0, (winh - h) /2) + winy;
     child.Move (x, y);
 }