Author: pbartok
Date: 2005-03-17 18:56:18 -0500 (Thu, 17 Mar 2005)
New Revision: 41969

Modified:
   trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
   trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/FileDialog.cs
   trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Hwnd.cs
   trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUI.cs
   trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIDriver.cs
   trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIOSX.cs
   trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIWin32.cs
   trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIX11.cs
Log:
2005-03-17  Peter Bartok  <[EMAIL PROTECTED]>

        * Hwnd.cs: Do not consider menu presence for default client
          rectangle location/size
        * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
          XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
          translation functions
        * FileDialog.cs: Fixed (what I presume is a) typo



Modified: trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog        
2005-03-17 23:34:42 UTC (rev 41968)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog        
2005-03-17 23:56:18 UTC (rev 41969)
@@ -1,3 +1,12 @@
+2005-03-17  Peter Bartok  <[EMAIL PROTECTED]>
+
+       * Hwnd.cs: Do not consider menu presence for default client
+         rectangle location/size
+       * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
+         XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
+         translation functions
+       * FileDialog.cs: Fixed (what I presume is a) typo
+
 2005-03-17  Jonathan Gilbert  <[EMAIL PROTECTED]>
 
        * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded

Modified: 
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/FileDialog.cs
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/FileDialog.cs    
2005-03-17 23:34:42 UTC (rev 41968)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/FileDialog.cs    
2005-03-17 23:56:18 UTC (rev 41969)
@@ -154,7 +154,7 @@
                        
                        set
                        {
-                               if ( filter == null )
+                               if ( value == null )
                                        throw new NullReferenceException( 
"Filter" );
                                
                                filter = value;

Modified: trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Hwnd.cs
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Hwnd.cs  
2005-03-17 23:34:42 UTC (rev 41968)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/Hwnd.cs  
2005-03-17 23:56:18 UTC (rev 41969)
@@ -249,11 +249,6 @@
 
                                rect = new Rectangle(0, 0, width, height);
 
-                               if (menu_handle != IntPtr.Zero) {
-                                       rect.Y += menu_height;
-                                       rect.Height -= menu_height;
-                               }
-
                                if (border_style == BorderStyle.Fixed3D) {
                                        rect.X += 2;
                                        rect.Y += 2;

Modified: trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUI.cs
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUI.cs       
2005-03-17 23:34:42 UTC (rev 41968)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUI.cs       
2005-03-17 23:56:18 UTC (rev 41969)
@@ -77,7 +77,7 @@
 
                #region Constructor & Destructor
                static XplatUI() {
-                       Console.WriteLine("Mono System.Windows.Forms Assembly 
[Revision: 41731; built: 2005/2/11 23:27:29]");
+                       Console.WriteLine("Mono System.Windows.Forms Assembly 
[Revision: 41731; built: 2005/2/15 5:56:12]");
 
                        // Don't forget to throw the mac in here somewhere, too
                        default_class_name="SWFClass";
@@ -458,6 +458,13 @@
                        driver.KillTimer (timer);
                }
 
+               internal static void MenuToScreen(IntPtr handle, ref int x, ref 
int y) {
+                       #if DriverDebug
+                               Console.WriteLine("MenuToScreen({0:X}, {1}, 
{2}): Called", handle.ToInt32(), x, y);
+                       #endif
+                       driver.MenuToScreen(handle, ref x, ref y);
+               }
+
                internal static void OverrideCursor(IntPtr cursor) {
                        #if DriverDebug
                                Console.WriteLine("OverrideCursor({0:X}): 
Called", cursor.ToInt32());
@@ -497,6 +504,13 @@
                        driver.ScreenToClient (handle, ref x, ref y);
                }
 
+               internal static void ScreenToMenu(IntPtr handle, ref int x, ref 
int y) {
+                       #if DriverDebug
+                               Console.WriteLine("ScreenToMenu({0:X}, {1}, 
{2}): Called", handle.ToInt32(), x, y);
+                       #endif
+                       driver.ScreenToMenu(handle, ref x, ref y);
+               }
+
                internal static void ScrollWindow(IntPtr handle, Rectangle 
rectangle, int XAmount, int YAmount, bool with_children) {
                        #if DriverDebug
                                Console.WriteLine("ScrollWindow({0:X}, {1}, 
{2}, {3}, {4}): Called", handle.ToInt32(), rectangle, XAmount, YAmount, 
with_children);

Modified: 
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIDriver.cs
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIDriver.cs 
2005-03-17 23:34:42 UTC (rev 41968)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIDriver.cs 
2005-03-17 23:56:18 UTC (rev 41969)
@@ -191,6 +191,8 @@
                internal abstract Graphics GetMenuDC(IntPtr hwnd, IntPtr 
ncpaint_region);
                internal abstract Point GetMenuOrigin(IntPtr hwnd);
                internal abstract void ReleaseMenuDC(IntPtr hwnd, Graphics dc);
+               internal abstract void MenuToScreen(IntPtr hwnd, ref int x, ref 
int y);
+               internal abstract void ScreenToMenu(IntPtr hwnd, ref int x, ref 
int y);
 
                internal abstract void SetIcon(IntPtr handle, Icon icon);
 

Modified: 
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIOSX.cs
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIOSX.cs    
2005-03-17 23:34:42 UTC (rev 41968)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIOSX.cs    
2005-03-17 23:56:18 UTC (rev 41969)
@@ -1285,6 +1285,23 @@
                        }
                }
                
+               internal override void MenuToScreen(IntPtr handle, ref int x, 
ref int y) {
+                       CGPoint pt = new CGPoint ();
+                       Rect wBounds = new Rect ();
+                       Hwnd    hwnd;
+
+                       hwnd = Hwnd.ObjectFromHandle(handle);
+
+                       pt.x = x;
+                       pt.y = y;
+
+                       GetWindowBounds (GetControlOwner (hwnd.whole_window), 
32, ref wBounds);
+                       HIViewConvertPoint (ref pt, handle, IntPtr.Zero);
+
+                       x = (int)(pt.x+wBounds.left);
+                       y = (int)(pt.y+wBounds.top);
+               }
+
                [MonoTODO]
                internal override void OverrideCursor(IntPtr cursor) {
                        throw new NotImplementedException ();
@@ -1356,6 +1373,20 @@
                        y = (int)pt.y;
                }
 
+               [MonoTODO]
+               internal override void ScreenToMenu(IntPtr handle, ref int x, 
ref int y) {
+                       CGPoint pt = new CGPoint ();
+                       Rect wBounds = new Rect ();
+
+                       GetWindowBounds (GetControlOwner (handle), 32, ref 
wBounds);
+                       pt.x = (x-wBounds.left);
+                       pt.y = (y-wBounds.top);
+                       HIViewConvertPoint (ref pt, IntPtr.Zero, handle);
+
+                       x = (int)pt.x;
+                       y = (int)pt.y;
+               }
+
                internal override void ScrollWindow(IntPtr handle, Rectangle 
area, int XAmount, int YAmount, bool clear) {
                        //IntPtr rect = IntPtr.Zero;
                        //HIRect vBounds = new HIRect ();

Modified: 
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIWin32.cs
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIWin32.cs  
2005-03-17 23:34:42 UTC (rev 41968)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIWin32.cs  
2005-03-17 23:56:18 UTC (rev 41969)
@@ -629,7 +629,7 @@
 
                        set {
                                if (value) {
-                                       throw new NotImplementedException("Need 
to figure out D'n'D for Win32");
+                                       //throw new 
NotImplementedException("Need to figure out D'n'D for Win32");
                                }
                        }
                }
@@ -1357,6 +1357,14 @@
                        y = pnt.y;
                }
 
+               internal override void ScreenToMenu(IntPtr handle, ref int x, 
ref int y) {
+                       ScreenToClient(handle, ref x, ref y);
+               }
+
+               internal override void MenuToScreen(IntPtr handle, ref int x, 
ref int y) {                      
+                       ClientToScreen(handle, ref x, ref y);
+               }
+
                internal override void SendAsyncMethod (AsyncMethodData method)
                {
                        Win32PostMessage(FosterParent, Msg.WM_ASYNC_MESSAGE, 
IntPtr.Zero, (IntPtr)GCHandle.Alloc (method));

Modified: 
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIX11.cs
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIX11.cs    
2005-03-17 23:34:42 UTC (rev 41968)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIX11.cs    
2005-03-17 23:56:18 UTC (rev 41969)
@@ -2483,6 +2483,22 @@
                        }
                }
 
+               internal override void MenuToScreen(IntPtr handle, ref int x, 
ref int y) {
+                       int     dest_x_return;
+                       int     dest_y_return;
+                       IntPtr  child;
+                       Hwnd    hwnd;
+
+                       hwnd = Hwnd.ObjectFromHandle(handle);
+
+                       lock (XlibLock) {
+                               XTranslateCoordinates(DisplayHandle, 
hwnd.whole_window, RootWindow, x, y, out dest_x_return, out dest_y_return, out 
child);
+                       }
+
+                       x = dest_x_return;
+                       y = dest_y_return;
+               }
+
                internal override void OverrideCursor(IntPtr cursor) {
                        OverrideCursorHandle = cursor;
                }
@@ -2590,6 +2606,22 @@
                        y = dest_y_return;
                }
 
+               internal override void ScreenToMenu(IntPtr handle, ref int x, 
ref int y) {
+                       int     dest_x_return;
+                       int     dest_y_return;
+                       IntPtr  child;
+                       Hwnd    hwnd;
+
+                       hwnd = Hwnd.ObjectFromHandle(handle);
+
+                       lock (XlibLock) {
+                               XTranslateCoordinates (DisplayHandle, 
RootWindow, hwnd.whole_window, x, y, out dest_x_return, out dest_y_return, out 
child);
+                       }
+
+                       x = dest_x_return;
+                       y = dest_y_return;
+               }
+
                internal override void ScrollWindow(IntPtr handle, Rectangle 
area, int XAmount, int YAmount, bool with_children) {
                        Hwnd            hwnd;
                        IntPtr          gc;

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to