From 4db409fdff013e3e4249d567e4d6fdb0ee877256 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Bruyère Date: Wed, 21 Nov 2018 18:48:52 +0100 Subject: xcb backend --- src/XLib/Display.cs | 64 -- src/XLib/NativeMethods.cs | 60 -- src/XLib/Window.cs | 62 -- src/XLib/X11Structs.cs | 1822 --------------------------------------- src/XLib/XKeySym.cs | 2109 --------------------------------------------- 5 files changed, 4117 deletions(-) delete mode 100644 src/XLib/Display.cs delete mode 100644 src/XLib/NativeMethods.cs delete mode 100644 src/XLib/Window.cs delete mode 100644 src/XLib/X11Structs.cs delete mode 100644 src/XLib/XKeySym.cs (limited to 'src/XLib') diff --git a/src/XLib/Display.cs b/src/XLib/Display.cs deleted file mode 100644 index 7e973b88..00000000 --- a/src/XLib/Display.cs +++ /dev/null @@ -1,64 +0,0 @@ -using System; -using System.Runtime.InteropServices; - -namespace XLib -{ - public class Display : IDisposable - { - internal IntPtr handle; - internal Int32 screen; - IntPtr lastEvent; - - public Display() - { - handle = NativeMethods.XOpenDisplay(IntPtr.Zero); - if (handle == IntPtr.Zero) - throw new NotSupportedException("[XLib] Failed to open display."); - - screen = NativeMethods.XDefaultScreen(handle); - lastEvent = Marshal.AllocHGlobal(96); - } - - /*public IntPtr NextEvent { - get { - NativeMethods.XNextEvent(handle, lastEvent); - return lastEvent; - } - }*/ - - #region IDisposable Support - private bool disposedValue = false; // To detect redundant calls - - protected virtual void Dispose(bool disposing) - { - if (!disposedValue) - { - if (disposing) - { - // TODO: dispose managed state (managed objects). - } - - //Marshal.FreeHGlobal (lastEvent); - NativeMethods.XCloseDisplay (handle); - - disposedValue = true; - } - } - - // TODO: override a finalizer only if Dispose(bool disposing) above has code to free unmanaged resources. - ~Display() { - // Do not change this code. Put cleanup code in Dispose(bool disposing) above. - Dispose(false); - } - - // This code added to correctly implement the disposable pattern. - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - #endregion - - - } -} diff --git a/src/XLib/NativeMethods.cs b/src/XLib/NativeMethods.cs deleted file mode 100644 index c5257be3..00000000 --- a/src/XLib/NativeMethods.cs +++ /dev/null @@ -1,60 +0,0 @@ -using System; -using System.Runtime.InteropServices; - -namespace XLib -{ - public static class NativeMethods - { - #region pinvoke - [DllImportAttribute("X11")] - public static extern int XInitThreads(); - [DllImportAttribute("X11")] - public static extern IntPtr XOpenDisplay(IntPtr displayName); - [DllImportAttribute("X11")] - public static extern IntPtr XCloseDisplay(IntPtr disp); - [DllImportAttribute("X11")] - public static extern Int32 XDefaultScreen(IntPtr disp); - [DllImportAttribute("X11")] - public static extern IntPtr XDefaultRootWindow(IntPtr disp); - [DllImportAttribute("X11")] - public static extern UInt32 XDefaultDepth (IntPtr disp, Int32 screen); - [DllImportAttribute("X11")] - public static extern IntPtr XDefaultVisual(IntPtr disp, Int32 screen); - [DllImportAttribute("X11")] - public static extern IntPtr XCreateSimpleWindow(IntPtr disp, IntPtr rootWindow, Int32 x, Int32 y, UInt32 width, UInt32 height, - UInt32 borderWidth, IntPtr border, IntPtr background); - [DllImportAttribute("X11")] - public static extern IntPtr XCreatePixmap(IntPtr disp, IntPtr rootWindow, UInt32 width, UInt32 height, UInt32 depth); - [DllImportAttribute("X11")] - public static extern IntPtr XFreePixmap(IntPtr disp, IntPtr pixmap); - [DllImportAttribute("X11")] - public static extern IntPtr XFree(IntPtr data); - [DllImportAttribute("X11")] - public static extern Int32 XSelectInput(IntPtr disp, IntPtr win, EventMask eventMask); - [DllImportAttribute("X11")] - public static extern Int32 XMapWindow(IntPtr disp, IntPtr win); - [DllImportAttribute("X11")] - public static extern int XPending (IntPtr disp); - [DllImportAttribute("X11")] - public static extern IntPtr XNextEvent(IntPtr disp, ref XEvent xevent); - [DllImportAttribute("X11")] - public static extern Int32 XSync(IntPtr disp, int discard); - [DllImportAttribute("X11")] - public static extern int XConnectionNumber(IntPtr disp); - [DllImportAttribute("X11")] - public static extern IntPtr XSetErrorHandler(XErrorHandler error_handler); - - [DllImport ("libX11")] - public static extern void XDisplayKeycodes (IntPtr disp, out int min, out int max); - [DllImport ("libX11")] - public static extern IntPtr XGetKeyboardMapping (IntPtr disp, byte first_keycode, int keycode_count, - out int keysyms_per_keycode_return); - [DllImport ("libX11")] - unsafe public extern static byte* XGetModifierMapping (IntPtr disp); - [DllImport ("libX11")] - public static extern uint XKeycodeToKeysym (IntPtr display, int keycode, int index); - #endregion - - - } -} diff --git a/src/XLib/Window.cs b/src/XLib/Window.cs deleted file mode 100644 index f74a5fdb..00000000 --- a/src/XLib/Window.cs +++ /dev/null @@ -1,62 +0,0 @@ -using System; -using System.Runtime.InteropServices; - -namespace XLib -{ - - public enum EventType { - KeyPress = 2, - KeyRelease, - ButtonPress, - ButtonRelease, - MotionNotify, - EnterNotify, - LeaveNotify, - FocusIn, - FocusOut, - KeymapNotify, - Expose, - GraphicsExpose, - NoExpose, - VisibilityNotify, - CreateNotify, - DestroyNotify, - UnmapNotify, - MapNotify, - MapRequest, - ReparentNotify, - ConfigureNotify, - ConfigureRequest, - GravityNotify, - ResizeRequest, - CirculateNotify, - CirculateRequest, - PropertyNotify, - SelectionClear, - SelectionRequest, - SelectionNotify, - ColormapNotify, - ClientMessage, - MappingNotify, - GenericEvent, - LASTEvent = 36 /* must be bigger than any event # */ - } - public class Window - { - IntPtr handle; - Display disp; - - public Window (Display display, UInt32 width = 800, UInt32 height = 600, Int32 x = 0, Int32 y = 0) { - disp = display; - handle = NativeMethods.XCreateSimpleWindow (disp.handle, NativeMethods.XDefaultRootWindow(disp.handle), x, y, width, height, - 0, IntPtr.Zero, IntPtr.Zero); - if (handle == IntPtr.Zero) - throw new NotSupportedException("[XLib] Failed to create window."); - - NativeMethods.XSelectInput (disp.handle, handle, EventMask.ExposureMask | EventMask.KeyPressMask); - - NativeMethods.XMapWindow (disp.handle, handle); - } - - } -} diff --git a/src/XLib/X11Structs.cs b/src/XLib/X11Structs.cs deleted file mode 100644 index 8cf70abc..00000000 --- a/src/XLib/X11Structs.cs +++ /dev/null @@ -1,1822 +0,0 @@ -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software",, to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// -// Copyright (c) 2004 Novell, Inc. -// -// Authors: -// Peter Bartok pbartok@novell.com -// - - -// NOT COMPLETE - -using System; -using System.ComponentModel; -using System.Collections; -using System.Drawing; -using System.Diagnostics; -using System.Runtime.InteropServices; -using System.Threading; - -/// X11 Version -namespace XLib { - // - // In the structures below, fields of type long are mapped to IntPtr. - // This will work on all platforms where sizeof(long)==sizeof(void*), which - // is almost all platforms except WIN64. - // - - [StructLayout(LayoutKind.Sequential)] - public struct XAnyEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr window; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XKeyEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr window; - public IntPtr root; - public IntPtr subwindow; - public IntPtr time; - public int x; - public int y; - public int x_root; - public int y_root; - public int state; - public int keycode; - public bool same_screen; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XButtonEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr window; - public IntPtr root; - public IntPtr subwindow; - public IntPtr time; - public int x; - public int y; - public int x_root; - public int y_root; - public int state; - public int button; - public bool same_screen; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XMotionEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr window; - public IntPtr root; - public IntPtr subwindow; - public IntPtr time; - public int x; - public int y; - public int x_root; - public int y_root; - public int state; - public byte is_hint; - public bool same_screen; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XCrossingEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr window; - public IntPtr root; - public IntPtr subwindow; - public IntPtr time; - public int x; - public int y; - public int x_root; - public int y_root; - public NotifyMode mode; - public NotifyDetail detail; - public bool same_screen; - public bool focus; - public int state; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XFocusChangeEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr window; - public int mode; - public NotifyDetail detail; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XKeymapEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr window; - public byte key_vector0; - public byte key_vector1; - public byte key_vector2; - public byte key_vector3; - public byte key_vector4; - public byte key_vector5; - public byte key_vector6; - public byte key_vector7; - public byte key_vector8; - public byte key_vector9; - public byte key_vector10; - public byte key_vector11; - public byte key_vector12; - public byte key_vector13; - public byte key_vector14; - public byte key_vector15; - public byte key_vector16; - public byte key_vector17; - public byte key_vector18; - public byte key_vector19; - public byte key_vector20; - public byte key_vector21; - public byte key_vector22; - public byte key_vector23; - public byte key_vector24; - public byte key_vector25; - public byte key_vector26; - public byte key_vector27; - public byte key_vector28; - public byte key_vector29; - public byte key_vector30; - public byte key_vector31; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XExposeEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr window; - public int x; - public int y; - public int width; - public int height; - public int count; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XGraphicsExposeEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr drawable; - public int x; - public int y; - public int width; - public int height; - public int count; - public int major_code; - public int minor_code; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XNoExposeEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr drawable; - public int major_code; - public int minor_code; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XVisibilityEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr window; - public int state; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XCreateWindowEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr parent; - public IntPtr window; - public int x; - public int y; - public int width; - public int height; - public int border_width; - public bool override_redirect; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XDestroyWindowEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr xevent; - public IntPtr window; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XUnmapEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr xevent; - public IntPtr window; - public bool from_configure; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XMapEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr xevent; - public IntPtr window; - public bool override_redirect; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XMapRequestEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr parent; - public IntPtr window; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XReparentEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr xevent; - public IntPtr window; - public IntPtr parent; - public int x; - public int y; - public bool override_redirect; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XConfigureEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr xevent; - public IntPtr window; - public int x; - public int y; - public int width; - public int height; - public int border_width; - public IntPtr above; - public bool override_redirect; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XGravityEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr xevent; - public IntPtr window; - public int x; - public int y; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XResizeRequestEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr window; - public int width; - public int height; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XConfigureRequestEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr parent; - public IntPtr window; - public int x; - public int y; - public int width; - public int height; - public int border_width; - public IntPtr above; - public int detail; - public IntPtr value_mask; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XCirculateEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr xevent; - public IntPtr window; - public int place; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XCirculateRequestEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr parent; - public IntPtr window; - public int place; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XPropertyEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr window; - public IntPtr atom; - public IntPtr time; - public int state; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XSelectionClearEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr window; - public IntPtr selection; - public IntPtr time; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XSelectionRequestEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr owner; - public IntPtr requestor; - public IntPtr selection; - public IntPtr target; - public IntPtr property; - public IntPtr time; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XSelectionEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr requestor; - public IntPtr selection; - public IntPtr target; - public IntPtr property; - public IntPtr time; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XColormapEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr window; - public IntPtr colormap; - public bool c_new; - public int state; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XClientMessageEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr window; - public IntPtr message_type; - public int format; - public IntPtr ptr1; - public IntPtr ptr2; - public IntPtr ptr3; - public IntPtr ptr4; - public IntPtr ptr5; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XMappingEvent { - public XEventName type; - public IntPtr serial; - public bool send_event; - public IntPtr display; - public IntPtr window; - public int request; - public int first_keycode; - public int count; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XErrorEvent { - public XEventName type; - public IntPtr display; - public IntPtr resourceid; - public IntPtr serial; - public byte error_code; - public XRequest request_code; - public byte minor_code; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XEventPad { - public IntPtr pad0; - public IntPtr pad1; - public IntPtr pad2; - public IntPtr pad3; - public IntPtr pad4; - public IntPtr pad5; - public IntPtr pad6; - public IntPtr pad7; - public IntPtr pad8; - public IntPtr pad9; - public IntPtr pad10; - public IntPtr pad11; - public IntPtr pad12; - public IntPtr pad13; - public IntPtr pad14; - public IntPtr pad15; - public IntPtr pad16; - public IntPtr pad17; - public IntPtr pad18; - public IntPtr pad19; - public IntPtr pad20; - public IntPtr pad21; - public IntPtr pad22; - public IntPtr pad23; - } - - [StructLayout(LayoutKind.Explicit)] - public struct XEvent { - [ FieldOffset(0) ] public XEventName type; - [ FieldOffset(0) ] public XAnyEvent AnyEvent; - [ FieldOffset(0) ] public XKeyEvent KeyEvent; - [ FieldOffset(0) ] public XButtonEvent ButtonEvent; - [ FieldOffset(0) ] public XMotionEvent MotionEvent; - [ FieldOffset(0) ] public XCrossingEvent CrossingEvent; - [ FieldOffset(0) ] public XFocusChangeEvent FocusChangeEvent; - [ FieldOffset(0) ] public XExposeEvent ExposeEvent; - [ FieldOffset(0) ] public XGraphicsExposeEvent GraphicsExposeEvent; - [ FieldOffset(0) ] public XNoExposeEvent NoExposeEvent; - [ FieldOffset(0) ] public XVisibilityEvent VisibilityEvent; - [ FieldOffset(0) ] public XCreateWindowEvent CreateWindowEvent; - [ FieldOffset(0) ] public XDestroyWindowEvent DestroyWindowEvent; - [ FieldOffset(0) ] public XUnmapEvent UnmapEvent; - [ FieldOffset(0) ] public XMapEvent MapEvent; - [ FieldOffset(0) ] public XMapRequestEvent MapRequestEvent; - [ FieldOffset(0) ] public XReparentEvent ReparentEvent; - [ FieldOffset(0) ] public XConfigureEvent ConfigureEvent; - [ FieldOffset(0) ] public XGravityEvent GravityEvent; - [ FieldOffset(0) ] public XResizeRequestEvent ResizeRequestEvent; - [ FieldOffset(0) ] public XConfigureRequestEvent ConfigureRequestEvent; - [ FieldOffset(0) ] public XCirculateEvent CirculateEvent; - [ FieldOffset(0) ] public XCirculateRequestEvent CirculateRequestEvent; - [ FieldOffset(0) ] public XPropertyEvent PropertyEvent; - [ FieldOffset(0) ] public XSelectionClearEvent SelectionClearEvent; - [ FieldOffset(0) ] public XSelectionRequestEvent SelectionRequestEvent; - [ FieldOffset(0) ] public XSelectionEvent SelectionEvent; - [ FieldOffset(0) ] public XColormapEvent ColormapEvent; - [ FieldOffset(0) ] public XClientMessageEvent ClientMessageEvent; - [ FieldOffset(0) ] public XMappingEvent MappingEvent; - [ FieldOffset(0) ] public XErrorEvent ErrorEvent; - [ FieldOffset(0) ] public XKeymapEvent KeymapEvent; - - //[MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst=24)] - //[ FieldOffset(0) ] public int[] pad; - [ FieldOffset(0) ] public XEventPad Pad; - public override string ToString() { - switch (type) - { - case XEventName.ButtonPress: - case XEventName.ButtonRelease: - return ToString (ButtonEvent); - case XEventName.CirculateNotify: - case XEventName.CirculateRequest: - return ToString (CirculateEvent); - case XEventName.ClientMessage: - return ToString (ClientMessageEvent); - case XEventName.ColormapNotify: - return ToString (ColormapEvent); - case XEventName.ConfigureNotify: - return ToString (ConfigureEvent); - case XEventName.ConfigureRequest: - return ToString (ConfigureRequestEvent); - case XEventName.CreateNotify: - return ToString (CreateWindowEvent); - case XEventName.DestroyNotify: - return ToString (DestroyWindowEvent); - case XEventName.Expose: - return ToString (ExposeEvent); - case XEventName.FocusIn: - case XEventName.FocusOut: - return ToString (FocusChangeEvent); - case XEventName.GraphicsExpose: - return ToString (GraphicsExposeEvent); - case XEventName.GravityNotify: - return ToString (GravityEvent); - case XEventName.KeymapNotify: - return ToString (KeymapEvent); - case XEventName.MapNotify: - return ToString (MapEvent); - case XEventName.MappingNotify: - return ToString (MappingEvent); - case XEventName.MapRequest: - return ToString (MapRequestEvent); - case XEventName.MotionNotify: - return ToString (MotionEvent); - case XEventName.NoExpose: - return ToString (NoExposeEvent); - case XEventName.PropertyNotify: - return ToString (PropertyEvent); - case XEventName.ReparentNotify: - return ToString (ReparentEvent); - case XEventName.ResizeRequest: - return ToString (ResizeRequestEvent); - case XEventName.SelectionClear: - return ToString (SelectionClearEvent); - case XEventName.SelectionNotify: - return ToString (SelectionEvent); - case XEventName.SelectionRequest: - return ToString (SelectionRequestEvent); - case XEventName.UnmapNotify: - return ToString (UnmapEvent); - case XEventName.VisibilityNotify: - return ToString (VisibilityEvent); - case XEventName.EnterNotify: - case XEventName.LeaveNotify: - return ToString (CrossingEvent); - default: - return type.ToString (); - } - } - - public static string ToString (object ev) - { - string result = string.Empty; - Type type = ev.GetType (); - System.Reflection.FieldInfo [] fields = type.GetFields (System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Instance); - for (int i = 0; i < fields.Length; i++) { - if (result != string.Empty) { - result += ", "; - } - object value = fields [i].GetValue (ev); - result += fields [i].Name + "=" + (value == null ? "" : value.ToString ()); - } - return type.Name + " (" + result + ")"; - } - } - - [StructLayout(LayoutKind.Sequential)] - public struct XSetWindowAttributes { - public IntPtr background_pixmap; - public IntPtr background_pixel; - public IntPtr border_pixmap; - public IntPtr border_pixel; - public Gravity bit_gravity; - public Gravity win_gravity; - public int backing_store; - public IntPtr backing_planes; - public IntPtr backing_pixel; - public bool save_under; - public IntPtr event_mask; - public IntPtr do_not_propagate_mask; - public bool override_redirect; - public IntPtr colormap; - public IntPtr cursor; - } - - [StructLayout(LayoutKind.Sequential)] - public struct XWindowAttributes { - public int x; - public int y; - public int width; - public int height; - public int border_width; - public int depth; - public IntPtr visual; - public IntPtr root; - public int c_class; - public Gravity bit_gravity; - public Gravity win_gravity; - public int backing_store; - public IntPtr backing_planes; - public IntPtr backing_pixel; - public bool save_under; - public IntPtr colormap; - public bool map_installed; - public MapState map_state; - public IntPtr all_event_masks; - public IntPtr your_event_mask; - public IntPtr do_not_propagate_mask; - public bool override_direct; - public IntPtr screen; - - public override string ToString () - { - return XEvent.ToString (this); - } - } - - [StructLayout(LayoutKind.Sequential)] - public struct XTextProperty { - public string value; - public IntPtr encoding; - public int format; - public IntPtr nitems; - } - - public enum XWindowClass { - InputOutput = 1, - InputOnly = 2 - } - - public enum XEventName { - KeyPress = 2, - KeyRelease = 3, - ButtonPress = 4, - ButtonRelease = 5, - MotionNotify = 6, - EnterNotify = 7, - LeaveNotify = 8, - FocusIn = 9, - FocusOut = 10, - KeymapNotify = 11, - Expose = 12, - GraphicsExpose = 13, - NoExpose = 14, - VisibilityNotify = 15, - CreateNotify = 16, - DestroyNotify = 17, - UnmapNotify = 18, - MapNotify = 19, - MapRequest = 20, - ReparentNotify = 21, - ConfigureNotify = 22, - ConfigureRequest = 23, - GravityNotify = 24, - ResizeRequest = 25, - CirculateNotify = 26, - CirculateRequest = 27, - PropertyNotify = 28, - SelectionClear = 29, - SelectionRequest = 30, - SelectionNotify = 31, - ColormapNotify = 32, - ClientMessage = 33, - MappingNotify = 34, - - LASTEvent - } - - [Flags] - public enum SetWindowValuemask { - Nothing = 0, - BackPixmap = 1, - BackPixel = 2, - BorderPixmap = 4, - BorderPixel = 8, - BitGravity = 16, - WinGravity = 32, - BackingStore = 64, - BackingPlanes = 128, - BackingPixel = 256, - OverrideRedirect = 512, - SaveUnder = 1024, - EventMask = 2048, - DontPropagate = 4096, - ColorMap = 8192, - Cursor = 16384 - } - - public enum SendEventValues { - PointerWindow = 0, - InputFocus = 1 - } - - public enum CreateWindowArgs { - CopyFromParent = 0, - ParentRelative = 1, - InputOutput = 1, - InputOnly = 2 - } - - public enum Gravity { - ForgetGravity = 0, - NorthWestGravity= 1, - NorthGravity = 2, - NorthEastGravity= 3, - WestGravity = 4, - CenterGravity = 5, - EastGravity = 6, - SouthWestGravity= 7, - SouthGravity = 8, - SouthEastGravity= 9, - StaticGravity = 10 - } - - public enum XKeySym : uint { - XK_BackSpace = 0xFF08, - XK_Tab = 0xFF09, - XK_Clear = 0xFF0B, - XK_Return = 0xFF0D, - XK_Home = 0xFF50, - XK_Left = 0xFF51, - XK_Up = 0xFF52, - XK_Right = 0xFF53, - XK_Down = 0xFF54, - XK_Page_Up = 0xFF55, - XK_Page_Down = 0xFF56, - XK_End = 0xFF57, - XK_Begin = 0xFF58, - XK_Menu = 0xFF67, - XK_Shift_L = 0xFFE1, - XK_Shift_R = 0xFFE2, - XK_Control_L = 0xFFE3, - XK_Control_R = 0xFFE4, - XK_Caps_Lock = 0xFFE5, - XK_Shift_Lock = 0xFFE6, - XK_Meta_L = 0xFFE7, - XK_Meta_R = 0xFFE8, - XK_Alt_L = 0xFFE9, - XK_Alt_R = 0xFFEA, - XK_Super_L = 0xFFEB, - XK_Super_R = 0xFFEC, - XK_Hyper_L = 0xFFED, - XK_Hyper_R = 0xFFEE, - } - - [Flags] - public enum EventMask { - NoEventMask = 0, - KeyPressMask = 1<<0, - KeyReleaseMask = 1<<1, - ButtonPressMask = 1<<2, - ButtonReleaseMask = 1<<3, - EnterWindowMask = 1<<4, - LeaveWindowMask = 1<<5, - PointerMotionMask = 1<<6, - PointerMotionHintMask = 1<<7, - Button1MotionMask = 1<<8, - Button2MotionMask = 1<<9, - Button3MotionMask = 1<<10, - Button4MotionMask = 1<<11, - Button5MotionMask = 1<<12, - ButtonMotionMask = 1<<13, - KeymapStateMask = 1<<14, - ExposureMask = 1<<15, - VisibilityChangeMask = 1<<16, - StructureNotifyMask = 1<<17, - ResizeRedirectMask = 1<<18, - SubstructureNotifyMask = 1<<19, - SubstructureRedirectMask= 1<<20, - FocusChangeMask = 1<<21, - PropertyChangeMask = 1<<22, - ColormapChangeMask = 1<<23, - OwnerGrabButtonMask = 1<<24 - } - - public enum GrabMode { - GrabModeSync = 0, - GrabModeAsync = 1 - } - - [StructLayout(LayoutKind.Sequential)] - public struct XStandardColormap { - public IntPtr colormap; - public IntPtr red_max; - public IntPtr red_mult; - public IntPtr green_max; - public IntPtr green_mult; - public IntPtr blue_max; - public IntPtr blue_mult; - public IntPtr base_pixel; - public IntPtr visualid; - public IntPtr killid; - } - - [StructLayout(LayoutKind.Sequential, Pack=2)] - public struct XColor { - public IntPtr pixel; - public ushort red; - public ushort green; - public ushort blue; - public byte flags; - public byte pad; - } - - public enum Atom { - AnyPropertyType = 0, - XA_PRIMARY = 1, - XA_SECONDARY = 2, - XA_ARC = 3, - XA_ATOM = 4, - XA_BITMAP = 5, - XA_CARDINAL = 6, - XA_COLORMAP = 7, - XA_CURSOR = 8, - XA_CUT_BUFFER0 = 9, - XA_CUT_BUFFER1 = 10, - XA_CUT_BUFFER2 = 11, - XA_CUT_BUFFER3 = 12, - XA_CUT_BUFFER4 = 13, - XA_CUT_BUFFER5 = 14, - XA_CUT_BUFFER6 = 15, - XA_CUT_BUFFER7 = 16, - XA_DRAWABLE = 17, - XA_FONT = 18, - XA_INTEGER = 19, - XA_PIXMAP = 20, - XA_POINT = 21, - XA_RECTANGLE = 22, - XA_RESOURCE_MANAGER = 23, - XA_RGB_COLOR_MAP = 24, - XA_RGB_BEST_MAP = 25, - XA_RGB_BLUE_MAP = 26, - XA_RGB_DEFAULT_MAP = 27, - XA_RGB_GRAY_MAP = 28, - XA_RGB_GREEN_MAP = 29, - XA_RGB_RED_MAP = 30, - XA_STRING = 31, - XA_VISUALID = 32, - XA_WINDOW = 33, - XA_WM_COMMAND = 34, - XA_WM_HINTS = 35, - XA_WM_CLIENT_MACHINE = 36, - XA_WM_ICON_NAME = 37, - XA_WM_ICON_SIZE = 38, - XA_WM_NAME = 39, - XA_WM_NORMAL_HINTS = 40, - XA_WM_SIZE_HINTS = 41, - XA_WM_ZOOM_HINTS = 42, - XA_MIN_SPACE = 43, - XA_NORM_SPACE = 44, - XA_MAX_SPACE = 45, - XA_END_SPACE = 46, - XA_SUPERSCRIPT_X = 47, - XA_SUPERSCRIPT_Y = 48, - XA_SUBSCRIPT_X = 49, - XA_SUBSCRIPT_Y = 50, - XA_UNDERLINE_POSITION = 51, - XA_UNDERLINE_THICKNESS = 52, - XA_STRIKEOUT_ASCENT = 53, - XA_STRIKEOUT_DESCENT = 54, - XA_ITALIC_ANGLE = 55, - XA_X_HEIGHT = 56, - XA_QUAD_WIDTH = 57, - XA_WEIGHT = 58, - XA_POINT_SIZE = 59, - XA_RESOLUTION = 60, - XA_COPYRIGHT = 61, - XA_NOTICE = 62, - XA_FONT_NAME = 63, - XA_FAMILY_NAME = 64, - XA_FULL_NAME = 65, - XA_CAP_HEIGHT = 66, - XA_WM_CLASS = 67, - XA_WM_TRANSIENT_FOR = 68, - - XA_LAST_PREDEFINED = 68 - } - - [StructLayout(LayoutKind.Sequential)] - public struct XScreen { - public IntPtr ext_data; - public IntPtr display; - public IntPtr root; - public int width; - public int height; - public int mwidth; - public int mheight; - public int ndepths; - public IntPtr depths; - public int root_depth; - public IntPtr root_visual; - public IntPtr default_gc; - public IntPtr cmap; - public IntPtr white_pixel; - public IntPtr black_pixel; - public int max_maps; - public int min_maps; - public int backing_store; - public bool save_unders; - public IntPtr root_input_mask; - } - - [Flags] - public enum ChangeWindowFlags { - CWX = 1<<0, - CWY = 1<<1, - CWWidth = 1<<2, - CWHeight = 1<<3, - CWBorderWidth = 1<<4, - CWSibling = 1<<5, - CWStackMode = 1<<6 - } - - public enum StackMode { - Above = 0, - Below = 1, - TopIf = 2, - BottomIf = 3, - Opposite = 4 - } - - [StructLayout(LayoutKind.Sequential)] - public struct XWindowChanges { - public int x; - public int y; - public int width; - public int height; - public int border_width; - public IntPtr sibling; - public StackMode stack_mode; - } - - [Flags] - public enum ColorFlags { - DoRed = 1<<0, - DoGreen = 1<<1, - DoBlue = 1<<2 - } - - public enum NotifyMode { - NotifyNormal = 0, - NotifyGrab = 1, - NotifyUngrab = 2 - } - - public enum NotifyDetail { - NotifyAncestor = 0, - NotifyVirtual = 1, - NotifyInferior = 2, - NotifyNonlinear = 3, - NotifyNonlinearVirtual = 4, - NotifyPointer = 5, - NotifyPointerRoot = 6, - NotifyDetailNone = 7 - } - - [StructLayout(LayoutKind.Sequential)] - public struct MotifWmHints { - public IntPtr flags; - public IntPtr functions; - public IntPtr decorations; - public IntPtr input_mode; - public IntPtr status; - - public override string ToString () - { - return string.Format("MotifWmHints