DragEventArgs.cs 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. //
  2. // System.Windows.Forms.DragEventArgs
  3. //
  4. // Author:
  5. // stubbed out by Richard Baumann ([email protected])
  6. // Implemented by Richard Baumann <[email protected]>
  7. // Dennis Hayes ([email protected])
  8. // Gianandrea Terzi ([email protected])
  9. //
  10. // (C) Ximian, Inc., 2002
  11. //
  12. using System;
  13. using System.Runtime.InteropServices;
  14. namespace System.Windows.Forms {
  15. /// <summary>
  16. /// Provides data for the DragDrop, DragEnter, or DragOver event.
  17. /// </summary>
  18. [ComVisible(true)]
  19. public class DragEventArgs : EventArgs {
  20. #region Fields
  21. private DragDropEffects allowedEffect;
  22. private IDataObject data;
  23. private DragDropEffects effect;
  24. private int keyState;
  25. private int x;
  26. private int y;
  27. #endregion
  28. //
  29. // --- Constructors/Destructors
  30. //
  31. public DragEventArgs(IDataObject data, int keyState, int x, int y, DragDropEffects allowedEffect, DragDropEffects effect) : base()
  32. {
  33. this.data = data;
  34. this.keyState = keyState;
  35. this.x = x;
  36. this.y = y;
  37. this.allowedEffect = allowedEffect;
  38. this.effect = effect;
  39. }
  40. #region Public Properties
  41. [ComVisible(true)]
  42. public DragDropEffects AllowedEffect {
  43. get {
  44. return allowedEffect;
  45. }
  46. }
  47. [ComVisible(true)]
  48. public IDataObject Data {
  49. get {
  50. return data;
  51. }
  52. }
  53. [ComVisible(true)]
  54. public DragDropEffects Effect {
  55. get {
  56. return effect;
  57. }
  58. set {
  59. effect = value;
  60. }
  61. }
  62. [ComVisible(true)]
  63. public int KeyState {
  64. get {
  65. return keyState;
  66. }
  67. }
  68. [ComVisible(true)]
  69. public int X {
  70. get {
  71. return x;
  72. }
  73. }
  74. [ComVisible(true)]
  75. public int Y {
  76. get {
  77. return y;
  78. }
  79. }
  80. #endregion
  81. #region Public Methods
  82. /// <summary>
  83. /// Equality Operator
  84. /// </summary>
  85. ///
  86. /// <remarks>
  87. /// Compares two DragEventArgs objects.
  88. /// The return value is based on the equivalence of
  89. /// AllowedEffect, Data, Effect, KeyState, X , Y Property
  90. /// of the two DragEventArgs.
  91. /// </remarks>
  92. public static bool operator == (DragEventArgs DragEventArgsA, DragEventArgs DragEventArgsB)
  93. {
  94. return (DragEventArgsA.AllowedEffect == DragEventArgsB.AllowedEffect) &&
  95. (DragEventArgsA.Data == DragEventArgsB.Data) &&
  96. (DragEventArgsA.Effect == DragEventArgsB.Effect) &&
  97. (DragEventArgsA.KeyState == DragEventArgsB.KeyState) &&
  98. (DragEventArgsA.X == DragEventArgsB.X) &&
  99. (DragEventArgsA.Y == DragEventArgsB.Y);
  100. }
  101. /// <summary>
  102. /// Inequality Operator
  103. /// </summary>
  104. ///
  105. /// <remarks>
  106. /// Compares two DragEventArgs objects.
  107. /// The return value is based on the equivalence of
  108. /// AllowedEffect, Data, Effect, KeyState, X , Y Property
  109. /// of the two DragEventArgs.
  110. /// </remarks>
  111. public static bool operator != (DragEventArgs DragEventArgsA, DragEventArgs DragEventArgsB)
  112. {
  113. return (DragEventArgsA.AllowedEffect != DragEventArgsB.AllowedEffect) ||
  114. (DragEventArgsA.Data != DragEventArgsB.Data) ||
  115. (DragEventArgsA.Effect != DragEventArgsB.Effect) ||
  116. (DragEventArgsA.KeyState != DragEventArgsB.KeyState) ||
  117. (DragEventArgsA.X != DragEventArgsB.X) ||
  118. (DragEventArgsA.Y != DragEventArgsB.Y);
  119. }
  120. /// <summary>
  121. /// Equals Method
  122. /// </summary>
  123. ///
  124. /// <remarks>
  125. /// Checks equivalence of this
  126. /// DragEventArgs and another
  127. /// object.
  128. /// </remarks>
  129. public override bool Equals (object obj)
  130. {
  131. if (!(obj is DragEventArgs))return false;
  132. return (this == (DragEventArgs) obj);
  133. }
  134. /// <summary>
  135. /// GetHashCode Method
  136. /// </summary>
  137. ///
  138. /// <remarks>
  139. /// Calculates a hashing value.
  140. /// </remarks>
  141. [MonoTODO]
  142. public override int GetHashCode ()
  143. {
  144. //FIXME: add class specific stuff;
  145. return base.GetHashCode();
  146. }
  147. /// <summary>
  148. /// ToString Method
  149. /// </summary>
  150. ///
  151. /// <remarks>
  152. /// Formats the object as a string.
  153. /// </remarks>
  154. [MonoTODO]
  155. public override string ToString ()
  156. {
  157. //FIXME: add class specific stuff;
  158. return base.ToString() + " DragEventArgs";
  159. }
  160. #endregion
  161. }
  162. }