-//\r
-// System.Windows.Forms.ContextMenu.cs\r
-//\r
-// Author:\r
-// stubbed out by Jaak Simm (jaaksimm@firm.ee)\r
-// Dennis Hayes (dennish@Raytek.com)\r
-// Alexandre Pigolkine (pigolkine@gmx.de)\r
-//\r
-// (C) Ximian, Inc., 2002\r
-//\r
-\r
-//using System.ComponentModel;\r
-//using System.Collections;\r
-using System.Drawing;\r
-\r
-namespace System.Windows.Forms {\r
-\r
- /// <summary>\r
- /// Represents a Windows combo box control.\r
- /// ToDo note:\r
- /// - nothing is implemented\r
- /// </summary>\r
-\r
- [MonoTODO]\r
- public class ContextMenu : Menu {\r
-\r
- // private fields\r
- RightToLeft rightToLeft;\r
-\r
- // --- Constructor ---\r
- [MonoTODO]\r
- public ContextMenu() : base(null)\r
- {\r
- rightToLeft = RightToLeft.Inherit;\r
- }\r
-\r
- [MonoTODO]\r
- public ContextMenu(MenuItem[] menuItems) : base(menuItems)//menu does not have public constructor. Is this a gtk menu?\r
- {\r
- }\r
- \r
- // --- Properties ---\r
- public virtual RightToLeft RightToLeft {\r
- get { return rightToLeft; }\r
- set { rightToLeft=value; }\r
- }\r
- \r
- [MonoTODO]\r
- public Control SourceControl {\r
- get { throw new NotImplementedException (); }\r
- }\r
- \r
- /// --- Methods ---\r
- /// internal .NET framework supporting methods, not stubbed out:\r
- /// - protected internal virtual void OnPopup(EventArgs e);\r
- [MonoTODO]\r
- public void Show(Control control,Point pos) \r
- {\r
- //FIXME:\r
- }\r
- \r
- /// events\r
- [MonoTODO]\r
- public event EventHandler Popup;\r
- }\r
-}\r
+//
+// System.Windows.Forms.ContextMenu.cs
+//
+// Author:
+// stubbed out by Jaak Simm (jaaksimm@firm.ee)
+// Dennis Hayes (dennish@Raytek.com)
+// Alexandre Pigolkine (pigolkine@gmx.de)
+//
+// (C) Ximian, Inc., 2002
+//
+
+//using System.ComponentModel;
+//using System.Collections;
+using System.Drawing;
+
+namespace System.Windows.Forms {
+
+ /// <summary>
+ /// Represents a shortcut menu
+ /// </summary>
+
+ [MonoTODO]
+ public class ContextMenu : Menu {
+
+ // private fields
+ RightToLeft rightToLeft;
+ Control sourceControl;
+
+ // --- Constructor ---
+ [MonoTODO]
+ public ContextMenu() : base(null)
+ {
+ rightToLeft = RightToLeft.Inherit;
+ sourceControl = null;
+ }
+
+ [MonoTODO]
+ public ContextMenu(MenuItem[] menuItems) : base(menuItems)//menu does not have public constructor. Is this a gtk menu?
+ {
+ }
+
+ // --- Properties ---
+ public virtual RightToLeft RightToLeft {
+ get { return rightToLeft; }
+ set { rightToLeft=value; }
+ }
+
+ public Control SourceControl {
+ get { return sourceControl; }
+ }
+
+ /// --- Methods ---
+ /// internal .NET framework supporting methods, not stubbed out:
+ /// - protected internal virtual void OnPopup(EventArgs e);
+ [MonoTODO]
+ public void Show(Control control, Point pos)
+ {
+ if ( Handle == IntPtr.Zero )
+ return;
+
+ sourceControl = control;
+
+ POINT pt = new POINT ();
+ pt.x = pos.X;
+ pt.y = pos.Y;
+
+ Win32.ClientToScreen ( control.Handle, ref pt );
+ Win32.TrackPopupMenu ( Handle, ( uint ) ( TrackPopupMenuFlags.TPM_LEFTALIGN | TrackPopupMenuFlags.TPM_RIGHTBUTTON ),
+ pt.x, pt.y, 0, control.Handle , IntPtr.Zero );
+ }
+
+ /// events
+ [MonoTODO]
+ public event EventHandler Popup;
+ }
+}