ContextMenu.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. // Permission is hereby granted, free of charge, to any person obtaining
  2. // a copy of this software and associated documentation files (the
  3. // "Software"), to deal in the Software without restriction, including
  4. // without limitation the rights to use, copy, modify, merge, publish,
  5. // distribute, sublicense, and/or sell copies of the Software, and to
  6. // permit persons to whom the Software is furnished to do so, subject to
  7. // the following conditions:
  8. //
  9. // The above copyright notice and this permission notice shall be
  10. // included in all copies or substantial portions of the Software.
  11. //
  12. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  13. // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  14. // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  15. // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
  16. // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
  17. // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
  18. // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  19. //
  20. // Copyright (c) 2004 Novell, Inc.
  21. //
  22. // Authors:
  23. // Jordi Mas i Hernandez, [email protected]
  24. //
  25. //
  26. // NOT COMPLETE
  27. using System;
  28. using System.Drawing;
  29. namespace System.Windows.Forms
  30. {
  31. public class ContextMenu : Menu
  32. {
  33. private RightToLeft right_to_left;
  34. private Control src_control;
  35. #region Events
  36. public event EventHandler Popup;
  37. #endregion Events
  38. public ContextMenu () : base (null)
  39. {
  40. right_to_left = RightToLeft.Inherit;
  41. }
  42. public ContextMenu (MenuItem[] items) : base (items)
  43. {
  44. right_to_left = RightToLeft.Inherit;
  45. }
  46. #region Public Properties
  47. public virtual RightToLeft RightToLeft {
  48. get { return right_to_left; }
  49. set { right_to_left = value; }
  50. }
  51. public Control SourceControl {
  52. get { return src_control; }
  53. }
  54. #endregion Public Properties
  55. #region Public Methods
  56. protected internal virtual void OnPopup (EventArgs e)
  57. {
  58. if (Popup != null)
  59. Popup (this, e);
  60. }
  61. public void Show (Control control, Point pos)
  62. {
  63. if (control == null)
  64. throw new ArgumentException ();
  65. src_control = control;
  66. OnPopup (EventArgs.Empty);
  67. MenuAPI.TrackPopupMenu (Handle, Handle, Control.MousePosition, false, control);
  68. }
  69. #endregion Public Methods
  70. }
  71. }