[PATCH 2/2] Improve code readability
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / X11Keyboard.cs
index 2f92e3df38967bd330a1fc8d6f51ecbe42707aae..74ab0cffad356c68d73364bfb9c3123cd6e41a79 100644 (file)
@@ -40,6 +40,15 @@ using System.Runtime.InteropServices;
 
 namespace System.Windows.Forms {
 
+       public enum XLookupStatus
+       {
+               XBufferOverflow = -1,
+               XLookupNone = 1,
+               XLookupChars = 2,
+               XLookupKeySym = 3,
+               XLookupBoth = 4
+       }
+
        internal class X11Keyboard : IDisposable {
                internal static object XlibLock;
 
@@ -194,7 +203,7 @@ namespace System.Windows.Forms {
                {
                        if (XplatUI.key_filters.Count == 0)
                                return false;
-                       IntPtr status;
+                       XLookupStatus status;
                        XKeySym ks;
                        KeyFilterData data;
                        data.Down = (e.type == XEventName.KeyPress);
@@ -287,7 +296,7 @@ namespace System.Windows.Forms {
                        XKeySym keysym;
                        int ascii_chars;
 
-                       IntPtr status = IntPtr.Zero;
+                       XLookupStatus status;
                        ascii_chars = LookupString (ref xevent, 24, out keysym, out status);
 
                        if (((int) keysym >= (int) MiscKeys.XK_ISO_Lock && 
@@ -302,7 +311,7 @@ namespace System.Windows.Forms {
 
                        int event_time = (int)xevent.KeyEvent.time;
 
-                       if (status == (IntPtr) 2) {
+                       if (status == XLookupStatus.XLookupChars) {
                                // do not ignore those inputs. They are mostly from XIM.
                                msg = SendImeComposition (lookup_buffer.ToString (0, lookup_buffer.Length));
                                msg.hwnd = hwnd;
@@ -460,7 +469,7 @@ namespace System.Windows.Forms {
                        }
 
                        XKeySym t;
-                       IntPtr status;
+                       XLookupStatus status;
                        int res = LookupString (ref e, 24, out t, out status);
                        int keysym = (int) t;
 
@@ -665,7 +674,7 @@ namespace System.Windows.Forms {
 
                public int EventToVkey (XEvent e)
                {
-                       IntPtr status;
+                       XLookupStatus status;
                        XKeySym ks;
 
                        LookupString (ref e, 0, out ks, out status);
@@ -698,7 +707,7 @@ namespace System.Windows.Forms {
                                e2.KeyEvent.keycode = keyc;
                                XKeySym t;
 
-                               IntPtr status;
+                               XLookupStatus status;
                                LookupString (ref e2, 0, out t, out status);
 
                                keysym = (uint) t;
@@ -1194,12 +1203,12 @@ namespace System.Windows.Forms {
 
                private bool have_Xutf8LookupString = true;
 
-               private int LookupString (ref XEvent xevent, int len, out XKeySym keysym, out IntPtr status)
+               private int LookupString (ref XEvent xevent, int len, out XKeySym keysym, out XLookupStatus status)
                {
                        IntPtr keysym_res;
                        int res;
 
-                       status = IntPtr.Zero;
+                       status = XLookupStatus.XLookupNone;
                        IntPtr xic = GetXic (client_window);
                        if (xic != IntPtr.Zero && have_Xutf8LookupString && xevent.type == XEventName.KeyPress) {
                                do {
@@ -1211,7 +1220,7 @@ namespace System.Windows.Forms {
                                                // call again, this time we'll go through the non-xic clause
                                                return LookupString (ref xevent, len, out keysym, out status);
                                        }
-                                       if ((int) status != -1) // XLookupBufferOverflow
+                                       if (status != XLookupStatus.XBufferOverflow)
                                                break;
                                        lookup_byte_buffer = new byte [lookup_byte_buffer.Length << 1];
                                } while (true);
@@ -1291,7 +1300,7 @@ namespace System.Windows.Forms {
                [DllImport ("libX11")]
                internal extern static int XLookupString(ref XEvent xevent, StringBuilder buffer, int num_bytes, out IntPtr keysym, out IntPtr status);
                [DllImport ("libX11")]
-               internal extern static int Xutf8LookupString(IntPtr xic, ref XEvent xevent, byte [] buffer, int num_bytes, out IntPtr keysym, out IntPtr status);
+               internal extern static int Xutf8LookupString(IntPtr xic, ref XEvent xevent, byte [] buffer, int num_bytes, out IntPtr keysym, out XLookupStatus status);
 
                [DllImport ("libX11")]
                private static extern IntPtr XGetKeyboardMapping (IntPtr display, byte first_keycode, int keycode_count,