**** Merged from MCS ****
[mono-project.git] / mcs / class / System.Windows.Forms / Gtk / Message.cs
blobd0cc1190c88dc8339f6a09b0db69b6e9513d7df1
1 //
2 // System.Drawing.Message.cs
3 //
4 // Author:
5 // Dennis Hayes (dennish@raytek.com)
6 //
7 // (C) 2002 Ximian, Inc. http://www.ximian.com
8 //
9 //TODO ?implment GetLParam.
10 using System;
12 namespace System.Windows.Forms {
13 [Serializable]
14 public struct Message {
16 private int msg;
17 private IntPtr hwnd;
18 private IntPtr lparam;
19 private IntPtr wparam;
20 private IntPtr result;
23 // -----------------------
24 // Public Shared Members
25 // -----------------------
27 /// <summary>
28 /// Equality Operator
29 /// </summary>
30 ///
31 /// <remarks>
32 /// Compares two Message objects. The return value is
33 /// based on the equivalence of the Msg, HWnd, LParam,
34 /// WParam, and Result properties of the two objects.
35 /// </remarks>
37 public static bool operator == (Message msg_a,
38 Message msg_b) {
40 return ((msg_a.msg == msg_b.msg) &&
41 (msg_a.hwnd == msg_b.hwnd) &&
42 (msg_a.lparam == msg_b.lparam) &&
43 (msg_a.wparam == msg_b.wparam) &&
44 (msg_a.result == msg_b.result));
47 /// <summary>
48 /// Inequality Operator
49 /// </summary>
50 ///
51 /// <remarks>
52 /// Compares two Message objects. The return value is
53 /// based on the equivalence of the Msg, HWnd, LParam,
54 /// WParam, and Result properties of the two objects.
55 /// </remarks>
57 public static bool operator != (Message msg_a,
58 Message msg_b) {
59 return ((msg_a.msg != msg_b.msg) ||
60 (msg_a.hwnd != msg_b.hwnd) ||
61 (msg_a.lparam != msg_b.lparam) ||
62 (msg_a.wparam != msg_b.wparam) ||
63 (msg_a.result != msg_b.result));
66 // -----------------------
67 // Public Instance Members
68 // -----------------------
70 public int Msg {
71 get{
72 return msg;
74 set{
75 msg = value;
79 public IntPtr HWnd {
80 get{
81 return hwnd;
83 set{
84 hwnd = value;
88 public IntPtr LParam {
89 get{
90 return lparam;
92 set{
93 lparam = value;
97 public IntPtr WParam {
98 get{
99 return wparam;
101 set{
102 wparam = value;
106 public IntPtr Result {
107 get{
108 return result;
110 set{
111 result = value;
115 public static Message create(IntPtr hWnd, int msg, IntPtr wparam, IntPtr lparam)
117 Message NewMessage = new Message();
118 NewMessage.msg = msg;
119 NewMessage.wparam = wparam;
120 NewMessage.lparam = lparam;
121 NewMessage.hwnd = hWnd;
122 return NewMessage;
125 /// <summary>
126 /// Equals Method
127 /// </summary>
129 /// <remarks>
130 /// Checks equivalence of this Message and another object.
131 /// </remarks>
133 public override bool Equals (object obj)
135 if (!(obj is Message))
136 return false;
138 return (this == (Message) obj);
141 /// <summary>
142 /// GetHashCode Method
143 /// </summary>
145 /// <remarks>
146 /// Calculates a hashing value.
147 /// </remarks>
149 public override int GetHashCode ()
151 return base.GetHashCode();// (int)( msg ^ lparam ^ wparam ^ result ^ whnd);
154 /// <summary>
155 /// ToString Method
156 /// </summary>
158 /// <remarks>
159 /// Formats the Message as a string.
160 /// </remarks>
162 public override string ToString ()
164 return String.Format ("[{0},{1},{2},{3},{4}]", msg.ToString(), lparam.ToString(), wparam.ToString(), result.ToString(), hwnd.ToString());
167 public object GetLParam(Type cls){
168 throw new NotImplementedException ();
169 //return (object) lparam;