]> O.S.I.I.S - jp/crow.git/commitdiff
vkvg enabled
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Sat, 13 Apr 2019 22:21:07 +0000 (00:21 +0200)
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Sat, 13 Apr 2019 22:21:07 +0000 (00:21 +0200)
217 files changed:
Crow/Crow.csproj
Crow/src/BmpPicture.cs
Crow/src/Cairo/CairoHelpers.cs [deleted file]
Crow/src/Cairo/DrawingHelpers.cs [new file with mode: 0644]
Crow/src/ExtensionsMethods.cs
Crow/src/Fill/Fill.cs
Crow/src/Font.cs
Crow/src/Gradient.cs
Crow/src/GraphicObjects/Border.cs
Crow/src/GraphicObjects/Button.cs
Crow/src/GraphicObjects/DockStack.cs
Crow/src/GraphicObjects/GraduatedSlider.cs
Crow/src/GraphicObjects/Group.cs
Crow/src/GraphicObjects/HueSelector.cs
Crow/src/GraphicObjects/Image.cs
Crow/src/GraphicObjects/Label.cs
Crow/src/GraphicObjects/PrivateContainer.cs
Crow/src/GraphicObjects/ProgressBar.cs
Crow/src/GraphicObjects/SaturationValueSelector.cs
Crow/src/GraphicObjects/Scroller.cs
Crow/src/GraphicObjects/ScrollingObject.cs
Crow/src/GraphicObjects/Shape.cs
Crow/src/GraphicObjects/Slider.cs
Crow/src/GraphicObjects/Splitter.cs
Crow/src/GraphicObjects/TabItem.cs
Crow/src/GraphicObjects/TabView.cs
Crow/src/GraphicObjects/TemplatedControl.cs
Crow/src/GraphicObjects/TestCairoPatch.cs
Crow/src/GraphicObjects/TextBox.cs
Crow/src/GraphicObjects/TextRun.cs
Crow/src/GraphicObjects/Trend.cs
Crow/src/GraphicObjects/Widget.cs
Crow/src/GraphicObjects/Window.cs
Crow/src/Interface.cs
Crow/src/Mono.Cairo/Antialias.cs [deleted file]
Crow/src/Mono.Cairo/Cairo.cs [deleted file]
Crow/src/Mono.Cairo/CairoDebug.cs [deleted file]
Crow/src/Mono.Cairo/Content.cs [deleted file]
Crow/src/Mono.Cairo/Context.cs [deleted file]
Crow/src/Mono.Cairo/DRMDevice.cs [deleted file]
Crow/src/Mono.Cairo/DRMSurface.cs [deleted file]
Crow/src/Mono.Cairo/Device.cs [deleted file]
Crow/src/Mono.Cairo/DirectFBSurface.cs [deleted file]
Crow/src/Mono.Cairo/Distance.cs [deleted file]
Crow/src/Mono.Cairo/EGLDevice.cs [deleted file]
Crow/src/Mono.Cairo/Extend.cs [deleted file]
Crow/src/Mono.Cairo/FillRule.cs [deleted file]
Crow/src/Mono.Cairo/Filter.cs [deleted file]
Crow/src/Mono.Cairo/FontExtents.cs [deleted file]
Crow/src/Mono.Cairo/FontFace.cs [deleted file]
Crow/src/Mono.Cairo/FontOptions.cs [deleted file]
Crow/src/Mono.Cairo/FontSlant.cs [deleted file]
Crow/src/Mono.Cairo/FontType.cs [deleted file]
Crow/src/Mono.Cairo/FontWeight.cs [deleted file]
Crow/src/Mono.Cairo/Format.cs [deleted file]
Crow/src/Mono.Cairo/GLSurface.cs [deleted file]
Crow/src/Mono.Cairo/GLXDevice.cs [deleted file]
Crow/src/Mono.Cairo/GlitzSurface.cs [deleted file]
Crow/src/Mono.Cairo/Glyph.cs [deleted file]
Crow/src/Mono.Cairo/Gradient.cs [deleted file]
Crow/src/Mono.Cairo/HintMetrics.cs [deleted file]
Crow/src/Mono.Cairo/HintStyle.cs [deleted file]
Crow/src/Mono.Cairo/ImageSurface.cs [deleted file]
Crow/src/Mono.Cairo/LineCap.cs [deleted file]
Crow/src/Mono.Cairo/LineJoin.cs [deleted file]
Crow/src/Mono.Cairo/LinearGradient.cs [deleted file]
Crow/src/Mono.Cairo/Matrix.cs [deleted file]
Crow/src/Mono.Cairo/MeshPattern.cs [deleted file]
Crow/src/Mono.Cairo/NativeMethods-internal.cs [deleted file]
Crow/src/Mono.Cairo/NativeMethods.cs [deleted file]
Crow/src/Mono.Cairo/Operator.cs [deleted file]
Crow/src/Mono.Cairo/PSSurface.cs [deleted file]
Crow/src/Mono.Cairo/Path.cs [deleted file]
Crow/src/Mono.Cairo/Pattern.cs [deleted file]
Crow/src/Mono.Cairo/PatternType.cs [deleted file]
Crow/src/Mono.Cairo/PdfSurface.cs [deleted file]
Crow/src/Mono.Cairo/Point.cs [deleted file]
Crow/src/Mono.Cairo/PointD.cs [deleted file]
Crow/src/Mono.Cairo/RadialGradient.cs [deleted file]
Crow/src/Mono.Cairo/Region.cs [deleted file]
Crow/src/Mono.Cairo/ScaledFont.cs [deleted file]
Crow/src/Mono.Cairo/SolidPattern.cs [deleted file]
Crow/src/Mono.Cairo/Status.cs [deleted file]
Crow/src/Mono.Cairo/SubpixelOrder.cs [deleted file]
Crow/src/Mono.Cairo/Surface.cs [deleted file]
Crow/src/Mono.Cairo/SurfacePattern.cs [deleted file]
Crow/src/Mono.Cairo/SurfaceType.cs [deleted file]
Crow/src/Mono.Cairo/SvgSurface.cs [deleted file]
Crow/src/Mono.Cairo/SvgVersion.cs [deleted file]
Crow/src/Mono.Cairo/TextExtents.cs [deleted file]
Crow/src/Mono.Cairo/WGLDevice.cs [deleted file]
Crow/src/Mono.Cairo/Win32Surface.cs [deleted file]
Crow/src/Mono.Cairo/XcbSurface.cs [deleted file]
Crow/src/Mono.Cairo/XlibSurface.cs [deleted file]
Crow/src/MouseCursorChangedEventArgs.cs
Crow/src/Picture.cs
Crow/src/Point.cs
Crow/src/Rectangle.cs
Crow/src/Rectangles.cs
Crow/src/SolidColor.cs
Crow/src/SvgPicture.cs
Crow/src/backends/IBackend.cs [deleted file]
Crow/src/backends/IKeyboard.cs [deleted file]
Crow/src/backends/win32/User32/Cursor.cs [deleted file]
Crow/src/backends/win32/User32/Delegates/TimerProc.cs [deleted file]
Crow/src/backends/win32/User32/Delegates/WindowProc.cs [deleted file]
Crow/src/backends/win32/User32/Device.cs [deleted file]
Crow/src/backends/win32/User32/DeviceContext.cs [deleted file]
Crow/src/backends/win32/User32/Enums/ChangeDisplaySettingsResult.cs [deleted file]
Crow/src/backends/win32/User32/Enums/CursorName.cs [deleted file]
Crow/src/backends/win32/User32/Enums/DeviceBroadcastType.cs [deleted file]
Crow/src/backends/win32/User32/Enums/DeviceModeFieldFlags.cs [deleted file]
Crow/src/backends/win32/User32/Enums/DeviceNotification.cs [deleted file]
Crow/src/backends/win32/User32/Enums/DisplayDeviceStateFlags.cs [deleted file]
Crow/src/backends/win32/User32/Enums/DisplayFixedOutputType.cs [deleted file]
Crow/src/backends/win32/User32/Enums/DisplayFlags.cs [deleted file]
Crow/src/backends/win32/User32/Enums/DisplayModeSetting.cs [deleted file]
Crow/src/backends/win32/User32/Enums/DisplayOrientation.cs [deleted file]
Crow/src/backends/win32/User32/Enums/DisplaySettingsChanges.cs [deleted file]
Crow/src/backends/win32/User32/Enums/EnumDisplayModes.cs [deleted file]
Crow/src/backends/win32/User32/Enums/ExtendedWindowStyles.cs [deleted file]
Crow/src/backends/win32/User32/Enums/GetMouseMovePointsResolution.cs [deleted file]
Crow/src/backends/win32/User32/Enums/GetRawInputDataCommand.cs [deleted file]
Crow/src/backends/win32/User32/Enums/GetRawInputDeviceInfoEnum.cs [deleted file]
Crow/src/backends/win32/User32/Enums/GetWindowLongIndex.cs [deleted file]
Crow/src/backends/win32/User32/Enums/IconName.cs [deleted file]
Crow/src/backends/win32/User32/Enums/MapVirtualKeyType.cs [deleted file]
Crow/src/backends/win32/User32/Enums/MonitorFromDefaultValue.cs [deleted file]
Crow/src/backends/win32/User32/Enums/PeekMessageActions.cs [deleted file]
Crow/src/backends/win32/User32/Enums/PrinterColor.cs [deleted file]
Crow/src/backends/win32/User32/Enums/PrinterDefaultSource.cs [deleted file]
Crow/src/backends/win32/User32/Enums/PrinterDitherType.cs [deleted file]
Crow/src/backends/win32/User32/Enums/PrinterDuplex.cs [deleted file]
Crow/src/backends/win32/User32/Enums/PrinterIcmIntent.cs [deleted file]
Crow/src/backends/win32/User32/Enums/PrinterIcmMethod.cs [deleted file]
Crow/src/backends/win32/User32/Enums/PrinterMediaType.cs [deleted file]
Crow/src/backends/win32/User32/Enums/PrinterNupHandling.cs [deleted file]
Crow/src/backends/win32/User32/Enums/PrinterPaperOrientation.cs [deleted file]
Crow/src/backends/win32/User32/Enums/PrinterPaperSize.cs [deleted file]
Crow/src/backends/win32/User32/Enums/PrinterPrintQuality.cs [deleted file]
Crow/src/backends/win32/User32/Enums/PrinterTrueTypeOption.cs [deleted file]
Crow/src/backends/win32/User32/Enums/QueueMessageTypes.cs [deleted file]
Crow/src/backends/win32/User32/Enums/RawInputDeviceFlags.cs [deleted file]
Crow/src/backends/win32/User32/Enums/RawInputDeviceType.cs [deleted file]
Crow/src/backends/win32/User32/Enums/RawKeyboardScanCodeFlags.cs [deleted file]
Crow/src/backends/win32/User32/Enums/RawMouseButtonFlags.cs [deleted file]
Crow/src/backends/win32/User32/Enums/RawMouseFlags.cs [deleted file]
Crow/src/backends/win32/User32/Enums/SetWindowPosFlags.cs [deleted file]
Crow/src/backends/win32/User32/Enums/SetWindowPosHwndEnum.cs [deleted file]
Crow/src/backends/win32/User32/Enums/ShowWindowCommand.cs [deleted file]
Crow/src/backends/win32/User32/Enums/TrackMouseEvents.cs [deleted file]
Crow/src/backends/win32/User32/Enums/VirtualKey.cs [deleted file]
Crow/src/backends/win32/User32/Enums/WindowClassStyles.cs [deleted file]
Crow/src/backends/win32/User32/Enums/WindowMessage.cs [deleted file]
Crow/src/backends/win32/User32/Enums/WindowMessageSizeType.cs [deleted file]
Crow/src/backends/win32/User32/Enums/WindowStyles.cs [deleted file]
Crow/src/backends/win32/User32/Icon.cs [deleted file]
Crow/src/backends/win32/User32/Keyboard.cs [deleted file]
Crow/src/backends/win32/User32/Message.cs [deleted file]
Crow/src/backends/win32/User32/Monitor.cs [deleted file]
Crow/src/backends/win32/User32/Mouse.cs [deleted file]
Crow/src/backends/win32/User32/RawInput.cs [deleted file]
Crow/src/backends/win32/User32/Structs/BroadcastDeviceInterface.cs [deleted file]
Crow/src/backends/win32/User32/Structs/CreateStruct.cs [deleted file]
Crow/src/backends/win32/User32/Structs/DeviceMode.cs [deleted file]
Crow/src/backends/win32/User32/Structs/DisplayDevice.cs [deleted file]
Crow/src/backends/win32/User32/Structs/ExtendedWindowClass.cs [deleted file]
Crow/src/backends/win32/User32/Structs/IconInfo.cs [deleted file]
Crow/src/backends/win32/User32/Structs/MonitorInfo.cs [deleted file]
Crow/src/backends/win32/User32/Structs/MouseMovePoint.cs [deleted file]
Crow/src/backends/win32/User32/Structs/Msg.cs [deleted file]
Crow/src/backends/win32/User32/Structs/Point.cs [deleted file]
Crow/src/backends/win32/User32/Structs/RawHid.cs [deleted file]
Crow/src/backends/win32/User32/Structs/RawInput.cs [deleted file]
Crow/src/backends/win32/User32/Structs/RawInputData.cs [deleted file]
Crow/src/backends/win32/User32/Structs/RawInputDevice.cs [deleted file]
Crow/src/backends/win32/User32/Structs/RawInputDeviceInfo.cs [deleted file]
Crow/src/backends/win32/User32/Structs/RawInputDeviceInfoHid.cs [deleted file]
Crow/src/backends/win32/User32/Structs/RawInputDeviceInfoKeyboard.cs [deleted file]
Crow/src/backends/win32/User32/Structs/RawInputDeviceInfoMouse.cs [deleted file]
Crow/src/backends/win32/User32/Structs/RawInputDeviceList.cs [deleted file]
Crow/src/backends/win32/User32/Structs/RawInputHeader.cs [deleted file]
Crow/src/backends/win32/User32/Structs/RawKeyboard.cs [deleted file]
Crow/src/backends/win32/User32/Structs/RawMouse.cs [deleted file]
Crow/src/backends/win32/User32/Structs/Rect.cs [deleted file]
Crow/src/backends/win32/User32/Structs/StyleStruct.cs [deleted file]
Crow/src/backends/win32/User32/Structs/TrackMouseEvent.cs [deleted file]
Crow/src/backends/win32/User32/Structs/WindowClass.cs [deleted file]
Crow/src/backends/win32/User32/Structs/WindowInfo.cs [deleted file]
Crow/src/backends/win32/User32/Structs/WindowPosition.cs [deleted file]
Crow/src/backends/win32/User32/Timer.cs [deleted file]
Crow/src/backends/win32/User32/User32.cs [deleted file]
Crow/src/backends/win32/User32/Window.cs [deleted file]
Crow/src/backends/win32/User32/WindowClass.cs [deleted file]
Crow/src/backends/win32/WinBackend.cs [deleted file]
Crow/src/backends/xcb/XCBBackend.cs [deleted file]
Crow/src/backends/xcb/XCBKeyboard.cs [deleted file]
Crow/src/backends/xcb/XCursor.cs [deleted file]
Crow/src/backends/xlib/X11Keyboard.cs [deleted file]
Crow/src/backends/xlib/X11Structs.cs [deleted file]
Crow/src/backends/xlib/XKeySym.cs [deleted file]
Crow/src/backends/xlib/XLibBackend.cs [deleted file]
Crow/src/debug/DbgEventTypeColors.cs
Crow/src/debug/DbgLogViewer.cs
Crow/src/debug/DebugLogger.cs
Crow/src/rsvg/Handle.cs
Crow/src/vkvg/Context.cs [new file with mode: 0644]
Crow/src/vkvg/Device.cs [new file with mode: 0644]
Crow/src/vkvg/Enums.cs [new file with mode: 0644]
Crow/src/vkvg/FontExtents.cs [new file with mode: 0644]
Crow/src/vkvg/Matrix.cs [new file with mode: 0644]
Crow/src/vkvg/NativeMethods.cs [new file with mode: 0644]
Crow/src/vkvg/Pattern.cs [new file with mode: 0644]
Crow/src/vkvg/Point.cs [new file with mode: 0644]
Crow/src/vkvg/PointD.cs [new file with mode: 0644]
Crow/src/vkvg/Surface.cs [new file with mode: 0644]
Crow/src/vkvg/TextExtents.cs [new file with mode: 0644]

index cb2902f8e3c04ec3704b8244a0092e755785bbfe..8b4a6f7f2c6f7d097eba9e4d9047374677870832 100644 (file)
@@ -44,7 +44,7 @@
     <OutputPath>$(SolutionDir)build\Release</OutputPath>
   </PropertyGroup>
   <ItemGroup>
-    <Compile Include="src\**\*.cs" Exclude="src\Mono.Cairo\NativeMethods-internal.cs;src\backends\win32\User32\Structs\RawInputDevice.cs" />
+    <Compile Include="src\**\*.cs" Exclude="src\Mono.Cairo\NativeMethods-internal.cs;src\backends\win32\User32\Structs\RawInputDevice.cs;src\vkvg\Point.cs" />
   </ItemGroup>
   <ItemGroup>
     <Reference Include="System" />
@@ -76,6 +76,7 @@
     <Folder Include="src\backends\" />
     <Folder Include="src\backends\xlib\" />
     <Folder Include="src\backends\xcb\" />
+    <Folder Include="src\vkvg\" />
   </ItemGroup>
   <ItemGroup>
     <EmbeddedResource Include="Icons\*.*" />
index 540087dc6814c480461fa7997c2df5b5efd63526..76cd3439c2c16af4b2808cca01e57be76bc98829 100644 (file)
@@ -26,7 +26,7 @@
 
 using System;
 using System.IO;
-using Crow.Cairo;
+using vkvg;
 
 namespace Crow
 {
@@ -109,20 +109,20 @@ namespace Crow
                                        widthRatio = heightRatio;
                        }
 
-                       using (ImageSurface tmp = new ImageSurface (Format.Argb32, bounds.Width, bounds.Height)) {
-                               using (Context gr = new Context (tmp)) {
-                                       gr.Translate (bounds.Left, bounds.Top);
-                                       gr.Scale (widthRatio, heightRatio);
-                                       gr.Translate ((bounds.Width/widthRatio - Dimensions.Width)/2, (bounds.Height/heightRatio - Dimensions.Height)/2);
-
-                                       using (ImageSurface imgSurf = new ImageSurface (image, Format.Argb32, 
-                                               Dimensions.Width, Dimensions.Height, 4 * Dimensions.Width)) {
-                                               gr.SetSourceSurface (imgSurf, 0,0);
-                                               gr.Paint ();
-                                       }
-                               }
-                               ctx.SetSource (tmp);
-                       }                               
+                       //using (ImageSurface tmp = new ImageSurface (Format.Argb32, bounds.Width, bounds.Height)) {
+                       //      using (Context gr = new Context (tmp)) {
+                       //              gr.Translate (bounds.Left, bounds.Top);
+                       //              gr.Scale (widthRatio, heightRatio);
+                       //              gr.Translate ((bounds.Width/widthRatio - Dimensions.Width)/2, (bounds.Height/heightRatio - Dimensions.Height)/2);
+
+                       //              using (ImageSurface imgSurf = new ImageSurface (image, Format.Argb32, 
+                       //                      Dimensions.Width, Dimensions.Height, 4 * Dimensions.Width)) {
+                       //                      gr.SetSourceSurface (imgSurf, 0,0);
+                       //                      gr.Paint ();
+                       //              }
+                       //      }
+                       //      ctx.SetSource (tmp);
+                       //}                             
                }
                #endregion
 
@@ -156,11 +156,11 @@ namespace Crow
                        gr.Scale (widthRatio, heightRatio);
                        gr.Translate ((rect.Width/widthRatio - Dimensions.Width)/2, (rect.Height/heightRatio - Dimensions.Height)/2);
                        
-                       using (ImageSurface imgSurf = new ImageSurface (image, Format.Argb32, 
-                               Dimensions.Width, Dimensions.Height, 4 * Dimensions.Width)) {
-                               gr.SetSourceSurface (imgSurf, 0,0);
-                               gr.Paint ();
-                       }
+                       //using (Surface imgSurf = new Surface (. image, Format.Argb32, 
+                       //      Dimensions.Width, Dimensions.Height, 4 * Dimensions.Width)) {
+                       //      gr.SetSourceSurface (imgSurf, 0,0);
+                       //      gr.Paint ();
+                       //}
                        gr.Restore ();
                }
        }
diff --git a/Crow/src/Cairo/CairoHelpers.cs b/Crow/src/Cairo/CairoHelpers.cs
deleted file mode 100644 (file)
index c9b057a..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-//
-// CairoHelpers.cs
-//
-// Author:
-//       Jean-Philippe Bruyère <jp.bruyere@hotmail.com>
-//
-// Copyright (c) 2013-2017 Jean-Philippe Bruyère
-//
-// 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.
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace Crow
-{
-    public static class CairoHelpers
-    {
-               public static T Clamp<T>(this T val, T min, T max) where T : IComparable<T>
-               {
-                   if (val.CompareTo(min) < 0) return min;
-                   else if(val.CompareTo(max) > 0) return max;
-                   else return val;
-               }
-               /// <summary>
-               /// Convert string to utf8 (extension method)
-               /// </summary>
-               /// <returns>byte array with utf8 encoding</returns>
-               public static byte[] ToUtf8(this String str)
-               {
-                       return System.Text.UTF8Encoding.UTF8.GetBytes (str);
-               }
-
-        public static double min(params double[] arr)
-        {
-            int minp = 0;
-            for (int i = 1; i < arr.Length; i++)
-                if (arr[i] < arr[minp])
-                    minp = i;
-
-            return arr[minp];
-        }
-               public static void CairoRectangle(Crow.Cairo.Context gr, Rectangle r, double radius, double stroke = 0.0)
-               {
-                       if (radius > 0)
-                               CairoHelpers.DrawRoundedRectangle (gr, r, radius, stroke);
-                       else
-                               gr.Rectangle (r, stroke);
-               }
-               public static void CairoCircle(Crow.Cairo.Context gr, Rectangle r)
-               {
-                       gr.Arc(r.X + r.Width/2, r.Y + r.Height/2, Math.Min(r.Width,r.Height)/2, 0, 2*Math.PI);
-               }
-               public static void DrawRoundedRectangle(Crow.Cairo.Context gr, Rectangle r, double radius, double stroke = 0.0)
-        {
-                       if (stroke>0.0) {
-                               gr.LineWidth = stroke;
-                               double hsw = stroke / 2.0;
-                               DrawRoundedRectangle (gr, hsw + r.X, hsw + r.Y, (double)r.Width - stroke, (double)r.Height - stroke, radius);
-                               gr.Stroke ();
-                       }else
-                               DrawRoundedRectangle(gr, r.X, r.Y, r.Width, r.Height, radius);
-        }
-        public static void DrawRoundedRectangle(Crow.Cairo.Context gr, double x, double y, double width, double height, double radius)
-        {
-            gr.Save();
-
-            if ((radius > height / 2) || (radius > width / 2))
-                radius = min(height / 2, width / 2);
-
-            gr.MoveTo(x, y + radius);
-            gr.Arc(x + radius, y + radius, radius, Math.PI, -Math.PI / 2);
-            gr.LineTo(x + width - radius, y);
-            gr.Arc(x + width - radius, y + radius, radius, -Math.PI / 2, 0);
-            gr.LineTo(x + width, y + height - radius);
-            gr.Arc(x + width - radius, y + height - radius, radius, 0, Math.PI / 2);
-            gr.LineTo(x + radius, y + height);
-            gr.Arc(x + radius, y + height - radius, radius, Math.PI / 2, Math.PI);
-            gr.ClosePath();
-            gr.Restore();
-        }
-        public static void StrokeRaisedRectangle(Crow.Cairo.Context gr, Rectangle r, double width = 1)
-        {
-            gr.Save();
-            r.Inflate((int)-width / 2, (int)-width / 2);
-            gr.LineWidth = width;
-                       gr.SetSourceColor(Color.White);
-            gr.MoveTo(r.BottomLeft);
-            gr.LineTo(r.TopLeft);
-            gr.LineTo(r.TopRight);
-            gr.Stroke();
-
-                       gr.SetSourceColor(Color.DarkGrey);
-            gr.MoveTo(r.TopRight);
-            gr.LineTo(r.BottomRight);
-            gr.LineTo(r.BottomLeft);
-            gr.Stroke();
-
-            gr.Restore();
-        }
-        public static void StrokeLoweredRectangle(Crow.Cairo.Context gr, Rectangle r, double width = 1)
-        {
-            gr.Save();
-            r.Inflate((int)-width / 2, (int)-width / 2);
-            gr.LineWidth = width;
-                       gr.SetSourceColor(Color.DarkGrey);
-            gr.MoveTo(r.BottomLeft);
-            gr.LineTo(r.TopLeft);
-            gr.LineTo(r.TopRight);
-            gr.Stroke();
-                       gr.SetSourceColor(Color.White);
-            gr.MoveTo(r.TopRight);
-            gr.LineTo(r.BottomRight);
-            gr.LineTo(r.BottomLeft);
-            gr.Stroke();
-
-            gr.Restore();
-        }
-    }
-}
diff --git a/Crow/src/Cairo/DrawingHelpers.cs b/Crow/src/Cairo/DrawingHelpers.cs
new file mode 100644 (file)
index 0000000..8fe7f62
--- /dev/null
@@ -0,0 +1,134 @@
+//
+// CairoHelpers.cs
+//
+// Author:
+//       Jean-Philippe Bruyère <jp.bruyere@hotmail.com>
+//
+// Copyright (c) 2013-2017 Jean-Philippe Bruyère
+//
+// 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.
+
+using System;
+using vkvg;
+
+namespace Crow {
+       public static class DrawingHelpers
+    {
+               public static T Clamp<T>(this T val, T min, T max) where T : IComparable<T>
+               {
+                   if (val.CompareTo(min) < 0) return min;
+                   else if(val.CompareTo(max) > 0) return max;
+                   else return val;
+               }
+               /// <summary>
+               /// Convert string to utf8 (extension method)
+               /// </summary>
+               /// <returns>byte array with utf8 encoding</returns>
+               public static byte[] ToUtf8(this String str)
+               {
+                       return System.Text.UTF8Encoding.UTF8.GetBytes (str);
+               }
+
+        public static double min(params double[] arr)
+        {
+            int minp = 0;
+            for (int i = 1; i < arr.Length; i++)
+                if (arr[i] < arr[minp])
+                    minp = i;
+
+            return arr[minp];
+        }
+               public static void CairoRectangle(Context gr, Rectangle r, double radius, double stroke = 0.0)
+               {
+                       if (radius > 0)
+                               DrawRoundedRectangle (gr, r, radius, stroke);
+                       else
+                               gr.Rectangle (r, stroke);
+               }
+               public static void CairoCircle(Context gr, Rectangle r)
+               {
+                       gr.Arc(r.X + r.Width/2, r.Y + r.Height/2, Math.Min(r.Width,r.Height)/2, 0, 2*Math.PI);
+               }
+               public static void DrawRoundedRectangle(Context gr, Rectangle r, double radius, double stroke = 0.0)
+        {
+                       if (stroke>0.0) {
+                               gr.LineWidth = stroke;
+                               double hsw = stroke / 2.0;
+                               DrawRoundedRectangle (gr, hsw + r.X, hsw + r.Y, (double)r.Width - stroke, (double)r.Height - stroke, radius);
+                               gr.Stroke ();
+                       }else
+                               DrawRoundedRectangle(gr, r.X, r.Y, r.Width, r.Height, radius);
+        }
+        public static void DrawRoundedRectangle(Context gr, double x, double y, double width, double height, double radius)
+        {
+            gr.Save();
+
+            if ((radius > height / 2) || (radius > width / 2))
+                radius = min(height / 2, width / 2);
+
+            gr.MoveTo(x, y + radius);
+            gr.Arc(x + radius, y + radius, radius, Math.PI, -Math.PI / 2);
+            gr.LineTo(x + width - radius, y);
+            gr.Arc(x + width - radius, y + radius, radius, -Math.PI / 2, 0);
+            gr.LineTo(x + width, y + height - radius);
+            gr.Arc(x + width - radius, y + height - radius, radius, 0, Math.PI / 2);
+            gr.LineTo(x + radius, y + height);
+            gr.Arc(x + radius, y + height - radius, radius, Math.PI / 2, Math.PI);
+            gr.ClosePath();
+            gr.Restore();
+        }
+        public static void StrokeRaisedRectangle(Context gr, Rectangle r, double width = 1)
+        {
+            gr.Save();
+            r.Inflate((int)-width / 2, (int)-width / 2);
+            gr.LineWidth = width;
+                       gr.SetSourceColor(Color.White);
+            gr.MoveTo(r.BottomLeft);
+            gr.LineTo(r.TopLeft);
+            gr.LineTo(r.TopRight);
+            gr.Stroke();
+
+                       gr.SetSourceColor(Color.DarkGrey);
+            gr.MoveTo(r.TopRight);
+            gr.LineTo(r.BottomRight);
+            gr.LineTo(r.BottomLeft);
+            gr.Stroke();
+
+            gr.Restore();
+        }
+        public static void StrokeLoweredRectangle(Context gr, Rectangle r, double width = 1)
+        {
+            gr.Save();
+            r.Inflate((int)-width / 2, (int)-width / 2);
+            gr.LineWidth = width;
+                       gr.SetSourceColor(Color.DarkGrey);
+            gr.MoveTo(r.BottomLeft);
+            gr.LineTo(r.TopLeft);
+            gr.LineTo(r.TopRight);
+            gr.Stroke();
+                       gr.SetSourceColor(Color.White);
+            gr.MoveTo(r.TopRight);
+            gr.LineTo(r.BottomRight);
+            gr.LineTo(r.BottomLeft);
+            gr.Stroke();
+
+            gr.Restore();
+        }
+    }
+}
index da92fc9f327b01ec254e36cbfe404f41d7e0cf65..ec975950c10e2276b3af124177aaa212e93740c0 100644 (file)
@@ -26,6 +26,7 @@
 
 using System;
 using System.Linq.Expressions;
+using vkvg;
 
 namespace Crow
 {
@@ -33,7 +34,7 @@ namespace Crow
        {
                #region Cairo extensions
 
-               public static void Rectangle(this Crow.Cairo.Context ctx, Rectangle r, double stroke = 0.0)
+               public static void Rectangle(this Context ctx, Rectangle r, double stroke = 0.0)
                {
                        if (stroke > 0.0) {
                                ctx.LineWidth = stroke;
@@ -43,122 +44,126 @@ namespace Crow
                        }else
                                ctx.Rectangle (r.X, r.Y, r.Width, r.Height);
                }
-               public static double GetLength(this Crow.Cairo.PointD p){
+               public static double GetLength(this Point p){
                        return Math.Sqrt (Math.Pow (p.X, 2) + Math.Pow (p.Y, 2));
                }
-               public static Crow.Cairo.PointD GetPerp(this Crow.Cairo.PointD p){
-                       return new Crow.Cairo.PointD(-p.Y, p.X);
-               }
-               public static Crow.Cairo.PointD GetNormalized(this Crow.Cairo.PointD p){
-                       double length = p.GetLength();
-                       p.X /= length;
-                       p.Y /= length;
-                       return p;
-               }
-               public static Crow.Cairo.PointD Substract(this Crow.Cairo.PointD p1, Crow.Cairo.PointD p2){
-                       return new Crow.Cairo.PointD(p1.X - p2.X, p1.Y - p2.Y);
-               }
-               public static Crow.Cairo.PointD Divide(this Crow.Cairo.PointD p1, double d){
-                       return new Crow.Cairo.PointD(p1.X / d, p1.Y / d);
-               }
-               public static Crow.Cairo.PointD Add(this Crow.Cairo.PointD p1, Crow.Cairo.PointD p2){
-                       return new Crow.Cairo.PointD(p1.X + p2.X, p1.Y + p2.Y);
-               }
-               public static Crow.Cairo.PointD Multiply(this Crow.Cairo.PointD p1, double v){
-                       return new Crow.Cairo.PointD(p1.X * v, p1.Y * v);
-               }
-               public static void DrawCote(this Crow.Cairo.Context ctx, Crow.Cairo.PointD p1, Crow.Cairo.PointD p2,
-                       double stroke = 1.0, bool fill = false, double arrowWidth = 3.0, double arrowLength = 7.0)
-               {                       
-                       Crow.Cairo.PointD vDir = p2.Substract(p1);
-                       vDir = vDir.GetNormalized ();
-                       Crow.Cairo.PointD vPerp = vDir.GetPerp ();
-
-                       Crow.Cairo.PointD pA0 = p1.Add(vDir.Multiply(arrowLength));
-                       Crow.Cairo.PointD pA1 = p2.Substract(vDir.Multiply(arrowLength));
-
-                       Crow.Cairo.PointD vA = vPerp.Multiply (arrowWidth);
-
-                       ctx.MoveTo (p1);
-                       ctx.LineTo (pA0.Add (vA));
-                       if (fill)
-                               ctx.LineTo (pA0.Substract (vA));
-                       else
-                               ctx.MoveTo (pA0.Substract (vA));
+               public static Point GetPerp(this Point p){
+                       return new Point(-p.Y, p.X);
+               }
+               //public static Point GetNormalized(this Point p){
+               //      double length = p.GetLength();
+               //      p.X /= length;
+               //      p.Y /= length;
+               //      return p;
+               //}
+               //public static Point Substract(this Point p1, Point p2){
+               //      return new Point(p1.X - p2.X, p1.Y - p2.Y);
+               //}
+               //public static Point Divide(this Point p1, double d){
+               //      return new Point(p1.X / d, p1.Y / d);
+               //}
+               //public static Point Add(this Point p1, Point p2){
+               //      return new Point(p1.X + p2.X, p1.Y + p2.Y);
+               //}
+               //public static Point Multiply(this Point p1, double v){
+               //      return new Point(p1.X * v, p1.Y * v);
+               //}
+               //public static void DrawCote(this Context ctx, Point p1, Point p2,
+               //      double stroke = 1.0, bool fill = false, double arrowWidth = 3.0, double arrowLength = 7.0)
+               //{                     
+               //      Point vDir = p2.Substract(p1);
+               //      vDir = vDir.GetNormalized ();
+               //      Point vPerp = vDir.GetPerp ();
+
+               //      Point pA0 = p1.Add(vDir.Multiply(arrowLength));
+               //      Point pA1 = p2.Substract(vDir.Multiply(arrowLength));
+
+               //      Point vA = vPerp.Multiply (arrowWidth);
+
+               //      ctx.MoveTo (p1);
+               //      ctx.LineTo (pA0.Add (vA));
+               //      if (fill)
+               //              ctx.LineTo (pA0.Substract (vA));
+               //      else
+               //              ctx.MoveTo (pA0.Substract (vA));
                        
-                       ctx.LineTo (p1);
-
-                       ctx.MoveTo (p2);
-                       ctx.LineTo (pA1.Add (vA));
-                       if (fill)
-                               ctx.LineTo (pA1.Substract (vA));
-                       else
-                               ctx.MoveTo (pA1.Substract (vA));
-                       ctx.LineTo (p2);
-
-                       if (fill)
-                               ctx.Fill ();
-
-                       ctx.MoveTo (p1);
-                       ctx.LineTo (p2);
-                       ctx.LineWidth = stroke;
-                       ctx.Stroke ();
-               }
-               public static void DrawCoteInverse(this Crow.Cairo.Context ctx, Crow.Cairo.PointD p1, Crow.Cairo.PointD p2,
-                       double stroke = 1.0, bool fill = false, double arrowWidth = 3.0, double arrowLength = 7.0)
-               {                       
-                       Crow.Cairo.PointD vDir = p2.Substract(p1);
-                       vDir = vDir.GetNormalized ();
-                       Crow.Cairo.PointD vPerp = vDir.GetPerp ();
-
-                       Crow.Cairo.PointD pA0 = p1.Add(vDir.Multiply(arrowLength));
-                       Crow.Cairo.PointD pA1 = p2.Substract(vDir.Multiply(arrowLength));
-
-                       Crow.Cairo.PointD vA = vPerp.Multiply (arrowWidth);
-
-                       ctx.MoveTo (p1.Add (vA));
-                       ctx.LineTo (pA0);
-                       ctx.LineTo (p1.Substract (vA));
-                       if (fill)
-                               ctx.LineTo (p1.Add (vA));
-
-                       ctx.MoveTo (p2.Add (vA));
-                       ctx.LineTo (pA1);
-                       ctx.LineTo (p2.Substract (vA));
-
-                       if (fill) {
-                               ctx.LineTo (p2.Add (vA));
-                               ctx.Fill ();
-                       }
-
-                       ctx.MoveTo (pA0);
-                       ctx.LineTo (pA1);
-                       ctx.LineWidth = stroke;
-                       ctx.Stroke ();
-               }
-               public static void DrawCoteFixed(this Crow.Cairo.Context ctx, Crow.Cairo.PointD p1, Crow.Cairo.PointD p2,
-                       double stroke = 1.0, double coteWidth = 3.0)
-               {                       
-                       Crow.Cairo.PointD vDir = p2.Substract(p1);
-                       vDir = vDir.GetNormalized ();
-                       Crow.Cairo.PointD vPerp = vDir.GetPerp ();
-                       Crow.Cairo.PointD vA = vPerp.Multiply (coteWidth);
-
-                       ctx.MoveTo (p1.Add (vA));
-                       ctx.LineTo (p1.Substract (vA));
-                       ctx.MoveTo (p2.Add (vA));
-                       ctx.LineTo (p2.Substract (vA));
-                       ctx.MoveTo (p1);
-                       ctx.LineTo (p2);
-                       ctx.LineWidth = stroke;
-                       ctx.Stroke ();
+               //      ctx.LineTo (p1);
+
+               //      ctx.MoveTo (p2);
+               //      ctx.LineTo (pA1.Add (vA));
+               //      if (fill)
+               //              ctx.LineTo (pA1.Substract (vA));
+               //      else
+               //              ctx.MoveTo (pA1.Substract (vA));
+               //      ctx.LineTo (p2);
+
+               //      if (fill)
+               //              ctx.Fill ();
+
+               //      ctx.MoveTo (p1);
+               //      ctx.LineTo (p2);
+               //      ctx.LineWidth = stroke;
+               //      ctx.Stroke ();
+               //}
+               //public static void DrawCoteInverse(this Context ctx, Point p1, Point p2,
+               //      double stroke = 1.0, bool fill = false, double arrowWidth = 3.0, double arrowLength = 7.0)
+               //{                     
+               //      Point vDir = p2.Substract(p1);
+               //      vDir = vDir.GetNormalized ();
+               //      Point vPerp = vDir.GetPerp ();
+
+               //      Point pA0 = p1.Add(vDir.Multiply(arrowLength));
+               //      Point pA1 = p2.Substract(vDir.Multiply(arrowLength));
+
+               //      Point vA = vPerp.Multiply (arrowWidth);
+
+               //      ctx.MoveTo (p1.Add (vA));
+               //      ctx.LineTo (pA0);
+               //      ctx.LineTo (p1.Substract (vA));
+               //      if (fill)
+               //              ctx.LineTo (p1.Add (vA));
+
+               //      ctx.MoveTo (p2.Add (vA));
+               //      ctx.LineTo (pA1);
+               //      ctx.LineTo (p2.Substract (vA));
+
+               //      if (fill) {
+               //              ctx.LineTo (p2.Add (vA));
+               //              ctx.Fill ();
+               //      }
+
+               //      ctx.MoveTo (pA0);
+               //      ctx.LineTo (pA1);
+               //      ctx.LineWidth = stroke;
+               //      ctx.Stroke ();
+               //}
+               //public static void DrawCoteFixed(this Context ctx, Point p1, Point p2,
+               //      double stroke = 1.0, double coteWidth = 3.0)
+               //{                     
+               //      Point vDir = p2.Substract(p1);
+               //      vDir = vDir.GetNormalized ();
+               //      Point vPerp = vDir.GetPerp ();
+               //      Point vA = vPerp.Multiply (coteWidth);
+
+               //      ctx.MoveTo (p1.Add (vA));
+               //      ctx.LineTo (p1.Substract (vA));
+               //      ctx.MoveTo (p2.Add (vA));
+               //      ctx.LineTo (p2.Substract (vA));
+               //      ctx.MoveTo (p1);
+               //      ctx.LineTo (p2);
+               //      ctx.LineWidth = stroke;
+               //      ctx.Stroke ();
+               //}
+
+               public static void SetSourceColor(this Context ctx, Color c)
+               {
+                       ctx.SetSource(c.R,c.G,c.B,c.A);
                }
-
-               public static void SetSourceColor(this Crow.Cairo.Context ctx, Color c)
+               public static void SetSourceColor(this Context ctx, double r, double g, double b, double a)
                {
-                       ctx.SetSourceRGBA(c.R,c.G,c.B,c.A);
+                       ctx.SetSource((float)r,(float)g,(float)g,(float)a);
                }
-               public static void AddColorStop(this Crow.Cairo.Gradient grad, double offset, Color c)
+               public static void AddColorStop(this Gradient grad, double offset, Color c)
                {
                        grad.AddColorStop (offset, c);
                }
index 7d521045cbb5086f2aac43c6562df86c71341d23..e3a1767c132d82797b25bc704e7477a9063c4546 100644 (file)
@@ -26,7 +26,7 @@
 
 using System;
 using System.Collections.Generic;
-using Crow.Cairo;
+using vkvg;
 
 namespace Crow
 {
index 06df4a88ae6f78d1367c7cf5668796fbab3eb538..16aab0744cac310fb16f35e69c9759a6ec4fb495 100644 (file)
@@ -25,7 +25,7 @@
 // THE SOFTWARE.
 
 using System;
-using Crow.Cairo;
+using vkvg;
 
 namespace Crow
 {
index 1e37fac3307fadad36c9c0d79ffed96e932945e1..25f662ed988625e1cded5a2f53644b011abb555b 100644 (file)
@@ -26,7 +26,7 @@
 
 using System;
 using System.Collections.Generic;
-using Crow.Cairo;
+using vkvg;
 
 namespace Crow
 {
@@ -81,29 +81,29 @@ namespace Crow
 
                public override void SetAsSource (Context ctx, Rectangle bounds = default(Rectangle))
                {
-                       Crow.Cairo.Gradient grad = null;
-                       switch (GradientType) {
-                       case Type.Vertical:
-                               grad = new Crow.Cairo.LinearGradient (bounds.Left, bounds.Top, bounds.Left, bounds.Bottom);
-                               break;
-                       case Type.Horizontal:
-                               grad = new Crow.Cairo.LinearGradient (bounds.Left, bounds.Top, bounds.Right, bounds.Top);
-                               break;
-                       case Type.Oblic:
-                               grad = new Crow.Cairo.LinearGradient (bounds.Left, bounds.Top, bounds.Right, bounds.Bottom);
-                               break;
-                       case Type.Radial:
-                               throw new NotImplementedException ();
-                       }
+                       //Gradient grad = null;
+                       //switch (GradientType) {
+                       //case Type.Vertical:
+                       //      grad = new LinearGradient (bounds.Left, bounds.Top, bounds.Left, bounds.Bottom);
+                       //      break;
+                       //case Type.Horizontal:
+                       //      grad = new LinearGradient (bounds.Left, bounds.Top, bounds.Right, bounds.Top);
+                       //      break;
+                       //case Type.Oblic:
+                       //      grad = new LinearGradient (bounds.Left, bounds.Top, bounds.Right, bounds.Bottom);
+                       //      break;
+                       //case Type.Radial:
+                       //      throw new NotImplementedException ();
+                       //}
 
-                       foreach (ColorStop cs in Stops) {
-                               if (cs == null)
-                                       continue;
-                               grad.AddColorStop (cs.Offset, cs.Color);
-                       }
+                       //foreach (ColorStop cs in Stops) {
+                       //      if (cs == null)
+                       //              continue;
+                       //      grad.AddColorStop (cs.Offset, cs.Color);
+                       //}
                        
-                       ctx.SetSource (grad);
-                       grad.Dispose ();
+                       //ctx.SetSource (grad);
+                       //grad.Dispose ();
                }
                #endregion
 
index e5a16ec8949b3758fc0c3237ea1f1149d47b4652..142e54b2fe0357bd9cad31a75cddbc6fe371c0c5 100644 (file)
@@ -28,7 +28,7 @@ using System;
 using System.Xml.Serialization;
 using System.ComponentModel;
 using System.Diagnostics;
-using Crow.Cairo;
+using vkvg;
 
 namespace Crow
 {
@@ -134,7 +134,7 @@ namespace Crow
                        gr.Save ();
                        if (ClipToClientRect) {
                                //clip to client zone
-                               CairoHelpers.CairoRectangle (gr, ClientRectangle,Math.Max(0.0, CornerRadius-Margin));
+                               DrawingHelpers.CairoRectangle (gr, ClientRectangle,Math.Max(0.0, CornerRadius-Margin));
                                gr.Clip ();
                        }
 
@@ -150,14 +150,14 @@ namespace Crow
                        //                              rBack.Inflate (-BorderWidth / 2);
 
                        Background.SetAsSource (gr, rBack);
-                       CairoHelpers.CairoRectangle(gr, rBack, CornerRadius);
+                       DrawingHelpers.CairoRectangle(gr, rBack, CornerRadius);
                        gr.Fill ();
 
 
                        if (BorderStyle == BorderStyle.Normal) {
                                if (BorderWidth > 0) {
                                        Foreground.SetAsSource (gr, rBack);
-                                       CairoHelpers.CairoRectangle (gr, rBack, CornerRadius, BorderWidth);
+                                       DrawingHelpers.CairoRectangle (gr, rBack, CornerRadius, BorderWidth);
                                }
                        } else {
                                gr.LineWidth = 1.0;
@@ -237,7 +237,7 @@ namespace Crow
                        //                              rBack.Inflate (-BorderWidth / 2);
 
                        Background.SetAsSource (gr, rBack);
-                       CairoHelpers.CairoRectangle(gr, rBack, CornerRadius);
+                       DrawingHelpers.CairoRectangle(gr, rBack, CornerRadius);
                        gr.Fill ();
 
                        double bw = _borderWidth;
@@ -252,7 +252,7 @@ namespace Crow
                                        else
                                                gr.SetSourceColor (sunkenColor);
 
-                                       CairoHelpers.CairoRectangle (gr, rBack, crad, bw);
+                                       DrawingHelpers.CairoRectangle (gr, rBack, crad, bw);
 
                                        if (BorderStyle == BorderStyle.Sunken)
                                                gr.SetSourceColor (sunkenColor);
@@ -264,7 +264,7 @@ namespace Crow
                                        rBack.Height -= (int)Math.Round(bw);
                                }
 
-                               CairoHelpers.CairoRectangle (gr, rBack, crad, bw);
+                               DrawingHelpers.CairoRectangle (gr, rBack, crad, bw);
                        }
                }
                #endregion
index 8b15c2ea6ec000d7c56378a6d641075d5a1a1b17..50f98237f86e219fd040a3f0fae891aa5e41d944 100644 (file)
@@ -33,7 +33,7 @@ using System.Text;
 using System.Diagnostics;
 
 using System.Xml.Serialization;
-using Crow.Cairo;
+using vkvg;
 using System.ComponentModel;
 
 namespace Crow
index ab86ae0b0af06c9b3a4617cf89bc3bb914cb439c..181501cb56ae6a45a78476f138ba3755bdb04710 100644 (file)
@@ -28,6 +28,7 @@ using Crow.IML;
 using System.Linq;
 using System.Text;
 using System.IO;
+using vkvg;
 
 namespace Crow
 {
@@ -189,19 +190,19 @@ namespace Crow
                        RegisterForGraphicUpdate ();
                }
 
-               protected override void onDraw (Crow.Cairo.Context gr)
+               protected override void onDraw (Context gr)
                {
                        gr.Save ();
 
                        Rectangle rBack = new Rectangle (Slot.Size);
 
                        Background.SetAsSource (gr, rBack);
-                       CairoHelpers.CairoRectangle (gr, rBack, CornerRadius);
+                       DrawingHelpers.CairoRectangle (gr, rBack, CornerRadius);
                        gr.Fill ();
 
                        if (ClipToClientRect) {
                                //clip to client zone
-                               CairoHelpers.CairoRectangle (gr, ClientRectangle, CornerRadius);
+                               DrawingHelpers.CairoRectangle (gr, ClientRectangle, CornerRadius);
                                gr.Clip ();
                        }
 
@@ -248,9 +249,9 @@ namespace Crow
                                        break;
                                }
                                gr.LineWidth = 1;
-                               gr.SetSourceRGBA (0.4, 0.4, 0.9, 0.4);
+                               gr.SetSourceColor (0.4, 0.4, 0.9, 0.4);
                                gr.FillPreserve ();
-                               gr.SetSourceRGBA (0.9, 0.9, 1.0, 0.8);
+                               gr.SetSourceColor (0.9, 0.9, 1.0, 0.8);
                                gr.Stroke ();
                        }
                        gr.Restore ();  
index 71bbff112954ef479880906f4263dcf6aeb89eea..932378ba84a963fa4e1a2568e1cd95b2ea5ea791 100644 (file)
@@ -28,7 +28,7 @@ using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
-using Crow.Cairo;
+using vkvg;
 using System.Xml.Serialization;
 
 namespace Crow
index fdd078ab4f1b5681708b6867ed1019b7ed3eadda..b1536c593034b2a5e4dd3efe6e450c992270f24f 100644 (file)
@@ -28,7 +28,7 @@ using System;
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.Xml.Serialization;
-using Crow.Cairo;
+using vkvg;
 using System.Diagnostics;
 using System.Reflection;
 using System.Threading;
@@ -292,7 +292,7 @@ namespace Crow
 
                        if (ClipToClientRect) {
                                //clip to client zone
-                               CairoHelpers.CairoRectangle (gr, ClientRectangle, CornerRadius);
+                               DrawingHelpers.CairoRectangle (gr, ClientRectangle, CornerRadius);
                                gr.Clip ();
                        }
 
@@ -317,7 +317,7 @@ namespace Crow
                                base.onDraw (gr);
 
                                if (ClipToClientRect) {
-                                       CairoHelpers.CairoRectangle (gr, ClientRectangle, CornerRadius);
+                                       DrawingHelpers.CairoRectangle (gr, ClientRectangle, CornerRadius);
                                        gr.Clip ();
                                }
 
index e9a31dfbeb0187bf0ae9df5418f66f9e809d5169..8ef48f1dc7a11d5bfc71303fb3145eb137f1df44 100644 (file)
@@ -27,7 +27,7 @@
 using System;
 using System.Xml.Serialization;
 using System.ComponentModel;
-using Crow.Cairo;
+using vkvg;
 
 namespace Crow
 {
@@ -91,7 +91,7 @@ namespace Crow
                        grad.Stops.Add (new Gradient.ColorStop (1,     new Color (1, 0, 0, 1)));
 
                        grad.SetAsSource (gr, r);
-                       CairoHelpers.CairoRectangle (gr, r, CornerRadius);
+                       DrawingHelpers.CairoRectangle (gr, r, CornerRadius);
                        gr.Fill();
                }
 
@@ -114,7 +114,7 @@ namespace Crow
                                r.Y = mousePos.Y - 2;
                        }
 
-                       CairoHelpers.CairoRectangle (ctx, r, 1);
+                       DrawingHelpers.CairoRectangle (ctx, r, 1);
                        ctx.SetSourceColor (Color.White);
                        ctx.LineWidth = 1.0;
                        ctx.Stroke();
index 98f86e58cd605cc57f8aa951edc40e9dbbfb6826..2791d0829a88fc60021eae148ddcf1097b1e0c22 100644 (file)
@@ -25,7 +25,7 @@
 // THE SOFTWARE.
 
 using System;
-using Crow.Cairo;
+using vkvg;
 using System.Xml.Serialization;
 using System.ComponentModel;
 using System.Diagnostics;
@@ -203,7 +203,7 @@ namespace Crow
                        _pic.Paint (gr, ClientRectangle, _svgSub);
 
                        if (Opacity<1.0) {
-                               gr.SetSourceRGBA (0.0, 0.0, 0.0, 1.0-Opacity);
+                               gr.SetSourceColor (0.0, 0.0, 0.0, 1.0-Opacity);
                                gr.Operator = Operator.DestOut;
                                gr.Rectangle (ClientRectangle);
                                gr.Fill ();
index 371e79cec4453db7b67f1baf0601c10b9a2bc887..9b49731bcadcc65a53aefd1a4441d20b5759b6cd 100644 (file)
@@ -28,7 +28,7 @@ using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Diagnostics;
-using Crow.Cairo;
+using vkvg;
 using System.Text.RegularExpressions;
 using System.Xml.Serialization;
 using System.ComponentModel;
@@ -447,14 +447,14 @@ namespace Crow
                        if (lines == null)
                                lines = getLines;
                        if (!textMeasureIsUpToDate) {
-                               using (ImageSurface img = new ImageSurface (Format.Argb32, 10, 10)) {
+                               using (Surface img = new Surface (IFace.dev, 10, 10)) {
                                        using (Context gr = new Context (img)) {
                                                //Cairo.FontFace cf = gr.GetContextFontFace ();
 
-                                               gr.SelectFontFace (Font.Name, Font.Slant, Font.Wheight);
-                                               gr.SetFontSize (Font.Size);
-                                               gr.FontOptions = Interface.FontRenderingOptions;
-                                               gr.Antialias = Interface.Antialias;
+                                               gr.FontFace = Font.Name;
+                                               gr.FontSize = (uint)Font.Size;
+                                               //gr.FontOptions = Interface.FontRenderingOptions;
+                                               //gr.Antialias = Interface.Antialias;
 
                                                fe = gr.FontExtents;
                                                te = new TextExtents ();
@@ -485,10 +485,10 @@ namespace Crow
                {
                        base.onDraw (gr);
 
-                       gr.SelectFontFace (Font.Name, Font.Slant, Font.Wheight);
-                       gr.SetFontSize (Font.Size);
-                       gr.FontOptions = Interface.FontRenderingOptions;
-                       gr.Antialias = Interface.Antialias;
+                       gr.FontFace = Font.Name;
+                       gr.FontSize = (uint)Font.Size;
+                       //gr.FontOptions = Interface.FontRenderingOptions;
+                       //gr.Antialias = Interface.Antialias;
 
                        rText = new Rectangle(new Size(
                                measureRawSize(LayoutingType.Width), measureRawSize(LayoutingType.Height)));
@@ -691,13 +691,13 @@ namespace Crow
                public override void onMouseEnter (object sender, MouseMoveEventArgs e)
                {
                        base.onMouseEnter (sender, e);
-                       if (Selectable)
-                               IFace.MouseCursor = MouseCursors.Text;
+                       //if (Selectable)
+                               //IFace.MouseCursor = MouseCursors.Text;
                }
                public override void onMouseLeave (object sender, MouseMoveEventArgs e)
                {
                        base.onMouseLeave (sender, e);
-                       IFace.MouseCursor = MouseCursors.Default;
+                       //IFace.MouseCursor = MouseCursors.Default;
                }
                protected override void onFocused (object sender, EventArgs e)
                {
index 1f86a034ec309e0e7392a1d4b30c0c8a3cfd4bb8..4d9aff06b2380d7e95650bb7036956559344ecbd 100644 (file)
@@ -27,7 +27,7 @@
 using System;
 using System.Xml.Serialization;
 using System.ComponentModel;
-using Crow.Cairo;
+using vkvg;
 
 namespace Crow
 {
@@ -185,7 +185,7 @@ namespace Crow
 
                        if (ClipToClientRect) {
                                //clip to client zone
-                               CairoHelpers.CairoRectangle (gr, ClientRectangle, CornerRadius);
+                               DrawingHelpers.CairoRectangle (gr, ClientRectangle, CornerRadius);
                                gr.Clip ();
                        }
 
index 20fadadce0cdffaebc5b03d97c04eff2b4eb123b..ee007775a1881e10b82588714afc076c3d41ddaf 100644 (file)
@@ -28,7 +28,7 @@ using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
-using Crow.Cairo;
+using vkvg;
 using System.Diagnostics;
 using System.Xml.Serialization;
 using System.ComponentModel;
@@ -60,7 +60,7 @@ namespace Crow
                        rBack.Width = (int)((double)rBack.Width / Maximum * Value);
                        Foreground.SetAsSource (gr, rBack);
 
-                       CairoHelpers.CairoRectangle(gr,rBack,CornerRadius);
+                       DrawingHelpers.CairoRectangle(gr,rBack,CornerRadius);
                        gr.Fill();
                }
                #endregion
index 535a90df198884774737e0ba1e09c04d921fd161..fc4f62ed7b42b9a97821ca980a253f889a9ba5ff 100644 (file)
@@ -25,7 +25,7 @@
 // THE SOFTWARE.
 
 using System;
-using Crow.Cairo;
+using vkvg;
 using System.Xml.Serialization;
 
 namespace Crow
@@ -74,7 +74,7 @@ namespace Crow
 
                        if (Foreground != null) {//TODO:test if null should be removed
                                Foreground.SetAsSource (gr, r);
-                               CairoHelpers.CairoRectangle (gr, r, CornerRadius);
+                               DrawingHelpers.CairoRectangle (gr, r, CornerRadius);
                                gr.Fill ();
                        }
 
@@ -82,13 +82,13 @@ namespace Crow
                        grad.Stops.Add (new Gradient.ColorStop (0, new Color (1, 1, 1, 1)));
                        grad.Stops.Add (new Gradient.ColorStop (1, new Color (1, 1, 1, 0)));
                        grad.SetAsSource (gr, r);
-                       CairoHelpers.CairoRectangle (gr, r, CornerRadius);
+                       DrawingHelpers.CairoRectangle (gr, r, CornerRadius);
                        gr.Fill();
                        grad = new Gradient (Gradient.Type.Vertical);
                        grad.Stops.Add (new Gradient.ColorStop (0, new Color (0, 0, 0, 0)));
                        grad.Stops.Add (new Gradient.ColorStop (1, new Color (0, 0, 0, 1)));
                        grad.SetAsSource (gr, r);
-                       CairoHelpers.CairoRectangle (gr, r, CornerRadius);
+                       DrawingHelpers.CairoRectangle (gr, r, CornerRadius);
                        gr.Fill();
 
                }
index b97009ba1542f147bcc974aed837d86dfe1717fc..4f244f43bb5e9908691930333fa5c6ff91db2182 100644 (file)
@@ -28,7 +28,7 @@ using System;
 using System.Xml.Serialization;
 using System.ComponentModel;
 using System.Diagnostics;
-using Crow.Cairo;
+using vkvg;
 
 namespace Crow
 {
@@ -201,13 +201,13 @@ namespace Crow
                        Rectangle rBack = new Rectangle (Slot.Size);
 
                        Background.SetAsSource (gr, rBack);
-                       CairoHelpers.CairoRectangle(gr,rBack, CornerRadius);
+                       DrawingHelpers.CairoRectangle(gr,rBack, CornerRadius);
                        gr.Fill ();
 
                        gr.Save ();
                        if (ClipToClientRect) {
                                //clip to scrolled client zone
-                               CairoHelpers.CairoRectangle (gr, ClientRectangle, CornerRadius);
+                               DrawingHelpers.CairoRectangle (gr, ClientRectangle, CornerRadius);
                                gr.Clip ();
                        }
 
index 12804899dfc7baed69b784ca5789716ea3c0954d..edb1aa115c7d4039c8796c36698f436c53892d65 100644 (file)
@@ -28,7 +28,7 @@ using System;
 using System.Xml.Serialization;
 using System.ComponentModel;
 using System.Collections;
-using Crow.Cairo;
+using vkvg;
 
 
 namespace Crow
index 99678556afc66a9d73f7246f7de285072c65e9a1..d392c56d850a3794920913f43660fb3a64c09184 100644 (file)
@@ -28,7 +28,7 @@ using System.Xml.Serialization;
 using System.ComponentModel;
 using System.IO;
 using System.Text;
-using Crow.Cairo;
+using vkvg;
 
 namespace Crow
 {
@@ -172,22 +172,22 @@ namespace Crow
                }
                protected override int measureRawSize (LayoutingType lt)
                {
-                       if ((lt == LayoutingType.Width && contentSize.Width == 0) || (lt == LayoutingType.Height && contentSize.Height == 0)) {
-                if (size != default(Size))
-                    contentSize = size;
-                else
-                {
-                    using (Surface drawing = new ImageSurface(Format.A1, 1, 1))
-                    {
-                        using (Context ctx = new Context(drawing))
-                        {
-                            executePath(ctx);
-                            Rectangle r = ctx.StrokeExtents();
-                            contentSize = new Size(r.Right, r.Bottom);
-                        }
-                    }
-                }
-                       }
+                       //if ((lt == LayoutingType.Width && contentSize.Width == 0) || (lt == LayoutingType.Height && contentSize.Height == 0)) {
+   //             if (size != default(Size))
+   //                 contentSize = size;
+   //             else
+   //             {
+   //                 using (Surface drawing = new Surface(IFace.dev, 1, 1))
+   //                 {
+   //                     using (Context ctx = new Context(drawing))
+   //                     {
+   //                         executePath(ctx);
+   //                         Rectangle r = ctx.StrokeExtents();
+   //                         contentSize = new Size(r.Right, r.Bottom);
+   //                     }
+   //                 }
+   //             }
+                       //}
                        return lt == LayoutingType.Width ?
                                contentSize.Width + 2 * Margin: contentSize.Height + 2 * Margin;
                }
index 891e393e6163c9116d86bb23354df21ee04eb1b5..a5887d1399bab13ea60428b1c812cf4f7f2211ab 100644 (file)
@@ -25,7 +25,7 @@
 // THE SOFTWARE.
 
 using System;
-using Crow.Cairo;
+using vkvg;
 using System.Xml.Serialization;
 using System.ComponentModel;
 using System.Diagnostics;
@@ -166,7 +166,7 @@ namespace Crow
                }
                protected virtual void DrawCursor(Context gr, Rectangle _cursor)
                {
-                       CairoHelpers.CairoRectangle (gr, _cursor, CornerRadius);
+                       DrawingHelpers.CairoRectangle (gr, _cursor, CornerRadius);
             Foreground.SetAsSource(gr, _cursor);
             gr.StrokePreserve();
             CursorColor.SetAsSource(gr, _cursor);
index 53515eb83207dd8a02036799828faf338dbcb355..cc0ba3239860ae793b5a841e765666cda14d8846 100644 (file)
@@ -90,10 +90,10 @@ namespace Crow
                public override void onMouseEnter (object sender, MouseMoveEventArgs e)
                {
                        base.onMouseEnter (sender, e);
-                       if ((Parent as GenericStack).Orientation == Orientation.Horizontal)
-                               IFace.MouseCursor = MouseCursors.H;
-                       else
-                               IFace.MouseCursor = MouseCursors.V;
+                       //if ((Parent as GenericStack).Orientation == Orientation.Horizontal)
+                       //      IFace.MouseCursor = MouseCursors.H;
+                       //else
+                               //IFace.MouseCursor = MouseCursors.V;
                }
                public override void onMouseLeave (object sender, MouseMoveEventArgs e)
                {
index 113a43997ad8879d515e38409f41aaa299d3581b..95c36420895f9723b07e259e7dfd4627315a416f 100644 (file)
@@ -28,7 +28,7 @@ using System;
 using System.Xml.Serialization;
 using System.ComponentModel;
 using System.Diagnostics;
-using Crow.Cairo;
+using vkvg;
 using System.Linq;
 
 namespace Crow
@@ -192,29 +192,29 @@ namespace Crow
 
 
                void makeFloating (TabView tv) {                        
-                       lock (IFace.UpdateMutex) {                              
-                               ImageSurface di = new ImageSurface (Format.Argb32, dis, dis);
-                               IFace.DragImageHeight = dis;
-                               IFace.DragImageWidth = dis;
-                               using (Context ctx = new Context (di)) {
-                                       double div = Math.Max (LastPaintedSlot.Width, LastPaintedSlot.Height);
-                                       double s = (double)dis / div;
-                                       ctx.Scale (s, s);
-                                       if (bmp == null)
-                                               this.onDraw (ctx);
-                                       else {
-                                               if (LastPaintedSlot.Width>LastPaintedSlot.Height)
-                                                       ctx.SetSourceSurface (bmp, 0, (LastPaintedSlot.Width-LastPaintedSlot.Height)/2);
-                                               else
-                                                       ctx.SetSourceSurface (bmp, (LastPaintedSlot.Height-LastPaintedSlot.Width)/2, 0);
-
-                                               ctx.Paint ();
-                                       }
-                               }
-                               IFace.DragImage = di;
-                       }
-                       tv.RemoveChild (this);
-                       savedParent = tv;
+                       //lock (IFace.UpdateMutex) {                            
+                       //      ImageSurface di = new ImageSurface (Format.Argb32, dis, dis);
+                       //      IFace.DragImageHeight = dis;
+                       //      IFace.DragImageWidth = dis;
+                       //      using (Context ctx = new Context (di)) {
+                       //              double div = Math.Max (LastPaintedSlot.Width, LastPaintedSlot.Height);
+                       //              double s = (double)dis / div;
+                       //              ctx.Scale (s, s);
+                       //              if (bmp == null)
+                       //                      this.onDraw (ctx);
+                       //              else {
+                       //                      if (LastPaintedSlot.Width>LastPaintedSlot.Height)
+                       //                              ctx.SetSourceSurface (bmp, 0, (LastPaintedSlot.Width-LastPaintedSlot.Height)/2);
+                       //                      else
+                       //                              ctx.SetSourceSurface (bmp, (LastPaintedSlot.Height-LastPaintedSlot.Width)/2, 0);
+
+                       //                      ctx.Paint ();
+                       //              }
+                       //      }
+                       //      IFace.DragImage = di;
+                       //}
+                       //tv.RemoveChild (this);
+                       //savedParent = tv;
                }
 
                public override ILayoutable Parent {
index 550d60aa3ffaae6cf36edc6fbea453ff288aa6d6..9f2a9bad3ca73d286ecf6360b54966647a332602 100644 (file)
@@ -27,7 +27,7 @@
 using System;
 using System.Xml.Serialization;
 using System.ComponentModel;
-using Crow.Cairo;
+using vkvg;
 using System.Diagnostics;
 using System.Linq;
 
@@ -262,14 +262,14 @@ namespace Crow
                        Rectangle rBack = new Rectangle (Slot.Size);
 
                        Background.SetAsSource (gr, rBack);
-                       CairoHelpers.CairoRectangle(gr,rBack, CornerRadius);
+                       DrawingHelpers.CairoRectangle(gr,rBack, CornerRadius);
                        gr.Fill ();
 
                        gr.Save ();
 
                        if (ClipToClientRect) {
                                //clip to client zone
-                               CairoHelpers.CairoRectangle (gr, ClientRectangle, CornerRadius);
+                               DrawingHelpers.CairoRectangle (gr, ClientRectangle, CornerRadius);
                                gr.Clip ();
                        }
 
index d93cf4c8b64d3b6125248377349e8595c1a9976c..1fa24a4858c092e85cdfc8fb5086617c1552b050 100644 (file)
@@ -29,7 +29,7 @@ using System.ComponentModel;
 using System.IO;
 using System.Xml;
 using System.Reflection;
-using Crow.Cairo;
+using vkvg;
 
 namespace Crow
 {
@@ -120,7 +120,7 @@ namespace Crow
 
                        if (ClipToClientRect) {
                                //clip to client zone
-                               CairoHelpers.CairoRectangle (gr, ClientRectangle, CornerRadius);
+                               DrawingHelpers.CairoRectangle (gr, ClientRectangle, CornerRadius);
                                gr.Clip ();
                        }
 
index dcfb584c7fb5b0fb073ba1bf2b11296362a1e0e1..51d9aaf2f83b5cfab129c01b31d3679bac8b8eb2 100644 (file)
@@ -24,7 +24,7 @@
 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 // THE SOFTWARE.
 using System;
-using Crow.Cairo;
+using vkvg;
 
 namespace Crow
 {
@@ -54,94 +54,94 @@ namespace Crow
                {
                        base.onDraw (gr);
 
-                       double radius = 100;
+                       //double radius = 100;
 
-                       double pi3 = Math.PI / 3.0;
+                       //double pi3 = Math.PI / 3.0;
 
-                       MeshPattern mp = new MeshPattern ();
+                       //MeshPattern mp = new MeshPattern ();
 
-                       double x1 = radius,y1 = 0,
-                       x2 = 0, y2 = 0, x3 = 0, y3 = 0, x4 = 0, y4 = 0,
-                       xc = radius,yc = radius;
+                       //double x1 = radius,y1 = 0,
+                       //x2 = 0, y2 = 0, x3 = 0, y3 = 0, x4 = 0, y4 = 0,
+                       //xc = radius,yc = radius;
 
-                       double dx = Math.Sin (pi3) * radius;
-                       double dy = Math.Cos (pi3) * radius;
+                       //double dx = Math.Sin (pi3) * radius;
+                       //double dy = Math.Cos (pi3) * radius;
 
-                       mp.BeginPatch ();
-                       mp.MoveTo (xc, yc);
-                       mp.LineTo (x1, y1);
-                       x4 = xc + dx;
-                       y4 = yc - dy;
-                       computeControlPoints (xc, yc, x1, y1, out x2, out y2, out x3, out y3, x4, y4);
-                       mp.CurveTo (x2, y2, x3, y3, x4, y4);
+                       //mp.BeginPatch ();
+                       //mp.MoveTo (xc, yc);
+                       //mp.LineTo (x1, y1);
+                       //x4 = xc + dx;
+                       //y4 = yc - dy;
+                       //computeControlPoints (xc, yc, x1, y1, out x2, out y2, out x3, out y3, x4, y4);
+                       //mp.CurveTo (x2, y2, x3, y3, x4, y4);
 
-                       mp.SetCornerColorRGB (0, 1, 1, 1);
-                       mp.SetCornerColorRGB (1, 1, 0, 0);
-                       mp.SetCornerColorRGB (2, 1, 1, 0);
+                       //mp.SetCornerColorRGB (0, 1, 1, 1);
+                       //mp.SetCornerColorRGB (1, 1, 0, 0);
+                       //mp.SetCornerColorRGB (2, 1, 1, 0);
 
-                       x1 = x4;
-                       y1 = y4;
-                       y4 = yc + dy;
+                       //x1 = x4;
+                       //y1 = y4;
+                       //y4 = yc + dy;
 
-                       computeControlPoints (xc, yc, x1, y1, out x2, out y2, out x3, out y3, x4, y4);
-                       mp.CurveTo (x2, y2, x3, y3, x4, y4);
+                       //computeControlPoints (xc, yc, x1, y1, out x2, out y2, out x3, out y3, x4, y4);
+                       //mp.CurveTo (x2, y2, x3, y3, x4, y4);
 
-                       mp.SetCornerColorRGB (3, 0, 1, 0);
-                       mp.EndPatch ();
+                       //mp.SetCornerColorRGB (3, 0, 1, 0);
+                       //mp.EndPatch ();
 
-                       x1 = x4;
-                       y1 = y4;
-                       x4 = xc;
-                       y4 = yc * 2.0;
+                       //x1 = x4;
+                       //y1 = y4;
+                       //x4 = xc;
+                       //y4 = yc * 2.0;
 
-                       mp.BeginPatch ();
-                       mp.MoveTo (xc, yc);
-                       mp.LineTo (x1, y1);
-                       computeControlPoints (xc, yc, x1, y1, out x2, out y2, out x3, out y3, x4, y4);
-                       mp.CurveTo (x2, y2, x3, y3, x4, y4);
+                       //mp.BeginPatch ();
+                       //mp.MoveTo (xc, yc);
+                       //mp.LineTo (x1, y1);
+                       //computeControlPoints (xc, yc, x1, y1, out x2, out y2, out x3, out y3, x4, y4);
+                       //mp.CurveTo (x2, y2, x3, y3, x4, y4);
 
-                       mp.SetCornerColorRGB (0, 1, 1, 1);
-                       mp.SetCornerColorRGB (1, 0, 1, 0);
-                       mp.SetCornerColorRGB (2, 0, 1, 1);
+                       //mp.SetCornerColorRGB (0, 1, 1, 1);
+                       //mp.SetCornerColorRGB (1, 0, 1, 0);
+                       //mp.SetCornerColorRGB (2, 0, 1, 1);
 
-                       x1 = x4;
-                       y1 = y4;
-                       x4 = xc-dx;
-                       y4 = yc+dy;
+                       //x1 = x4;
+                       //y1 = y4;
+                       //x4 = xc-dx;
+                       //y4 = yc+dy;
 
-                       computeControlPoints (xc, yc, x1, y1, out x2, out y2, out x3, out y3, x4, y4);
-                       mp.CurveTo (x2, y2, x3, y3, x4, y4);
+                       //computeControlPoints (xc, yc, x1, y1, out x2, out y2, out x3, out y3, x4, y4);
+                       //mp.CurveTo (x2, y2, x3, y3, x4, y4);
 
-                       mp.SetCornerColorRGB (3, 0, 0, 1);
-                       mp.EndPatch ();
+                       //mp.SetCornerColorRGB (3, 0, 0, 1);
+                       //mp.EndPatch ();
 
-                       x1 = x4;
-                       y1 = y4;
-                       y4 = yc - dy;
+                       //x1 = x4;
+                       //y1 = y4;
+                       //y4 = yc - dy;
 
-                       mp.BeginPatch ();
-                       mp.MoveTo (xc, yc);
-                       mp.LineTo (x1, y1);
-                       computeControlPoints (xc, yc, x1, y1, out x2, out y2, out x3, out y3, x4, y4);
-                       mp.CurveTo (x2, y2, x3, y3, x4, y4);
+                       //mp.BeginPatch ();
+                       //mp.MoveTo (xc, yc);
+                       //mp.LineTo (x1, y1);
+                       //computeControlPoints (xc, yc, x1, y1, out x2, out y2, out x3, out y3, x4, y4);
+                       //mp.CurveTo (x2, y2, x3, y3, x4, y4);
 
-                       mp.SetCornerColorRGB (0, 1, 1, 1);
-                       mp.SetCornerColorRGB (1, 0, 0, 1);
-                       mp.SetCornerColorRGB (2, 1, 0, 1);
+                       //mp.SetCornerColorRGB (0, 1, 1, 1);
+                       //mp.SetCornerColorRGB (1, 0, 0, 1);
+                       //mp.SetCornerColorRGB (2, 1, 0, 1);
 
-                       x1 = x4;
-                       y1 = y4;
-                       x4 = radius;
-                       y4 = 0;
+                       //x1 = x4;
+                       //y1 = y4;
+                       //x4 = radius;
+                       //y4 = 0;
 
-                       computeControlPoints (xc, yc, x1, y1, out x2, out y2, out x3, out y3, x4, y4);
-                       mp.CurveTo (x2, y2, x3, y3, x4, y4);
+                       //computeControlPoints (xc, yc, x1, y1, out x2, out y2, out x3, out y3, x4, y4);
+                       //mp.CurveTo (x2, y2, x3, y3, x4, y4);
 
-                       mp.SetCornerColorRGB (3, 1, 0, 0);
-                       mp.EndPatch ();
+                       //mp.SetCornerColorRGB (3, 1, 0, 0);
+                       //mp.EndPatch ();
 
-                       gr.SetSource (mp);
-                       gr.Paint ();
+                       //gr.SetSource (mp);
+                       //gr.Paint ();
                }
        }
 }
index 71fd62053cd6e1ef436ea8982e92c261c983cb01..a37d9f67740d1fe2ce485d81f1d11a232ab274af 100644 (file)
@@ -25,7 +25,7 @@
 // THE SOFTWARE.
 
 using System;
-using Crow.Cairo;
+using vkvg;
 using System.Diagnostics;
 using System.Xml.Serialization;
 
index 8b20ddb7217ced56a9967de21aa6f5daa330ba78..7e09fd08549b50180b5962ec4a46ece760bc82f4 100644 (file)
@@ -29,7 +29,7 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Diagnostics;
-using Crow.Cairo;
+using vkvg;
 using System.Text.RegularExpressions;
 using System.Xml.Serialization;
 using System.ComponentModel;
@@ -150,12 +150,12 @@ namespace Crow
                        if (lines == null)
                                lines = getLines;
 
-                       using (ImageSurface img = new ImageSurface (Format.Argb32, 10, 10)) {
+                       using (Surface img = new Surface (IFace.dev, 10, 10)) {
                                using (Context gr = new Context (img)) {
                                        //Cairo.FontFace cf = gr.GetContextFontFace ();
 
-                                       gr.SelectFontFace (Font.Name, Font.Slant, Font.Wheight);
-                                       gr.SetFontSize (Font.Size);
+                                       gr.FontFace = Font.Name;
+                                       gr.FontSize = (uint)Font.Size;
 
 
                                        fe = gr.FontExtents;
@@ -184,10 +184,10 @@ namespace Crow
                {
                        base.onDraw (gr);
 
-                       gr.SelectFontFace (Font.Name, Font.Slant, Font.Wheight);
-                       gr.SetFontSize (Font.Size);
-                       gr.FontOptions = Interface.FontRenderingOptions;
-                       gr.Antialias = Interface.Antialias;
+                       //gr.SelectFontFace (Font.Name, Font.Slant, Font.Wheight);
+                       //gr.SetFontSize (Font.Size);
+                       //gr.FontOptions = Interface.FontRenderingOptions;
+                       //gr.Antialias = Interface.Antialias;
 
                        rText = new Rectangle (new Size (
                                measureRawSize (LayoutingType.Width), measureRawSize (LayoutingType.Height)));
@@ -259,7 +259,7 @@ namespace Crow
                                }
                        }
 
-                       gr.FontMatrix = new Matrix (widthRatio * Font.Size, 0, 0, heightRatio * Font.Size, 0, 0);
+                       //gr.FontMatrix = new Matrix (widthRatio * Font.Size, 0, 0, heightRatio * Font.Size, 0, 0);
 
 
                        int curLineCount = 0;
index b62fd2f2bd976c5e9a22c2bb9e03201df80985d8..e6d6490931e77d1b35faeb701f3a16eb210431f8 100644 (file)
@@ -28,7 +28,7 @@ using System;
 using System.Collections.Generic;
 using System.Xml.Serialization;
 using System.ComponentModel;
-using Crow.Cairo;
+using vkvg;
 
 namespace Crow
 {
@@ -145,44 +145,44 @@ namespace Crow
                {
                        base.onDraw (gr);
 
-                       if (values.Count == 0)
-                               return;
-                       Rectangle r = ClientRectangle;
+//                     if (values.Count == 0)
+//                             return;
+//                     Rectangle r = ClientRectangle;
 
-                       int i = values.Count -1;
+//                     int i = values.Count -1;
 
-                       double ptrX = (double)r.Right;
-                       double scaleY = (double)r.Height / (Maximum - Minimum);
-                       double stepX = (double)r.Width / (double)(nbValues-1);
+//                     double ptrX = (double)r.Right;
+//                     double scaleY = (double)r.Height / (Maximum - Minimum);
+//                     double stepX = (double)r.Width / (double)(nbValues-1);
 
-                       gr.LineWidth = 1.0;
-                       gr.SetDash (new double[]{ 1.0 },0.0);
+//                     gr.LineWidth = 1.0;
+//                     gr.SetDash (new double[]{ 1.0 },0.0);
 
 
 
-                       LowThresholdFill.SetAsSource (gr);
-                       gr.MoveTo (r.Left, r.Bottom - LowThreshold * scaleY);
-                       gr.LineTo (r.Right, r.Bottom - LowThreshold * scaleY);
-//                     gr.Rectangle (r.Left, r.Bottom - LowThreshold * scaleY, r.Width, LowThreshold * scaleY);
-                       gr.Stroke();
+//                     LowThresholdFill.SetAsSource (gr);
+//                     gr.MoveTo (r.Left, r.Bottom - LowThreshold * scaleY);
+//                     gr.LineTo (r.Right, r.Bottom - LowThreshold * scaleY);
+////                   gr.Rectangle (r.Left, r.Bottom - LowThreshold * scaleY, r.Width, LowThreshold * scaleY);
+//                     gr.Stroke();
 
-                       HighThresholdFill.SetAsSource (gr);
-                       gr.MoveTo (r.Left, (Maximum - HighThreshold) * scaleY);
-                       gr.LineTo (r.Right, (Maximum - HighThreshold) * scaleY);
-//                     gr.Rectangle (r.Left, r.Top, r.Width, (Maximum - HighThreshold) * scaleY);
-                       gr.Stroke();
+//                     HighThresholdFill.SetAsSource (gr);
+//                     gr.MoveTo (r.Left, (Maximum - HighThreshold) * scaleY);
+//                     gr.LineTo (r.Right, (Maximum - HighThreshold) * scaleY);
+////                   gr.Rectangle (r.Left, r.Top, r.Width, (Maximum - HighThreshold) * scaleY);
+                       //gr.Stroke();
 
-                       gr.MoveTo (ptrX, values [i] * scaleY);
+                       //gr.MoveTo (ptrX, values [i] * scaleY);
 
-                       Foreground.SetAsSource (gr);
-                       gr.SetDash (new double[]{ }, 0.0);
+                       //Foreground.SetAsSource (gr);
+                       //gr.SetDash (new double[]{ }, 0.0);
 
-                       while (i >= 0) {
-                                       gr.LineTo (ptrX, r.Bottom - values [i] * scaleY);
-                               ptrX -= stepX;
-                               i--;
-                       }
-                       gr.Stroke ();
+                       //while (i >= 0) {
+                       //              gr.LineTo (ptrX, r.Bottom - values [i] * scaleY);
+                       //      ptrX -= stepX;
+                       //      i--;
+                       //}
+                       //gr.Stroke ();
                }
        }
 }
index c6efabebdac68cd4540efa3a19b5999617249f59..a5df87911e7cf2e8b4112e224ad48906f5dffe3b 100644 (file)
@@ -31,7 +31,7 @@ using System.Xml.Serialization;
 using System.Reflection;
 using System.Reflection.Emit;
 using System.Runtime.CompilerServices;
-using Crow.Cairo;
+using vkvg;
 using System.Diagnostics;
 using Crow.IML;
 using System.Threading;
@@ -133,21 +133,21 @@ namespace Crow
                        parentElem.AppendChild (xe);
                }
                public Surface CreateIcon (int dragIconSize = 32) {
-                       ImageSurface di = new ImageSurface (Format.Argb32, dragIconSize, dragIconSize);
-                       using (Context ctx = new Context (di)) {
-                               double div = Math.Max (LastPaintedSlot.Width, LastPaintedSlot.Height);
-                               double s = (double)dragIconSize / div;
-                               ctx.Scale (s, s);
-                               if (bmp == null)
-                                       this.onDraw (ctx);
-                               else {
-                                       if (LastPaintedSlot.Width>LastPaintedSlot.Height)
-                                               ctx.SetSourceSurface (bmp, 0, (LastPaintedSlot.Width-LastPaintedSlot.Height)/2);
-                                       else
-                                               ctx.SetSourceSurface (bmp, (LastPaintedSlot.Height-LastPaintedSlot.Width)/2, 0);
-                                       ctx.Paint ();
-                               }
-                       }
+                       Surface di = null; //new ImageSurface (Format.Argb32, dragIconSize, dragIconSize);
+                       //using (Context ctx = new Context (di)) {
+                       //      double div = Math.Max (LastPaintedSlot.Width, LastPaintedSlot.Height);
+                       //      double s = (double)dragIconSize / div;
+                       //      ctx.Scale (s, s);
+                       //      if (bmp == null)
+                       //              this.onDraw (ctx);
+                       //      else {
+                       //              if (LastPaintedSlot.Width>LastPaintedSlot.Height)
+                       //                      ctx.SetSourceSurface (bmp, 0, (LastPaintedSlot.Width-LastPaintedSlot.Height)/2);
+                       //              else
+                       //                      ctx.SetSourceSurface (bmp, (LastPaintedSlot.Height-LastPaintedSlot.Width)/2, 0);
+                       //              ctx.Paint ();
+                       //      }
+                       //}
                        return di;
                }
         public string DesignName {
@@ -490,7 +490,7 @@ namespace Crow
                /// If enabled, resulting bitmap of graphic object is cached
                /// speeding up rendering of complex object. Default is enabled.
                /// </summary>
-               [DesignCategory ("Behavior")][DefaultValue(true)]
+               [DesignCategory ("Behavior")][DefaultValue(false)]
                public virtual bool CacheEnabled {
                        get { return cacheEnabled; }
                        set {
@@ -1656,7 +1656,7 @@ namespace Crow
                        Rectangle rBack = new Rectangle (Slot.Size);
 
                        background.SetAsSource (gr, rBack);
-                       CairoHelpers.CairoRectangle (gr, rBack, cornerRadius);
+                       DrawingHelpers.CairoRectangle (gr, rBack, cornerRadius);
                        gr.Fill ();
 
                        #if DEBUG_LOG
@@ -1679,10 +1679,10 @@ namespace Crow
                                bmp.SetSize (Slot.Width, Slot.Height);*/
                        bmp?.Dispose ();
                        //bmp = IFace.surf.CreateSimilar (Content.ColorAlpha, Slot.Width, Slot.Height);
-                       bmp = new ImageSurface(Format.Argb32, Slot.Width, Slot.Height);
+                       bmp = new Surface(IFace.dev, Slot.Width, Slot.Height);
 
                        using (Context gr = new Context (bmp)) {
-                               gr.Antialias = Interface.Antialias;
+                               //gr.Antialias = Interface.Antialias;
                                onDraw (gr);
                        }
 
@@ -1753,7 +1753,7 @@ namespace Crow
                }
                void paintDisabled(Context gr, Rectangle rb){
                        gr.Operator = Operator.Xor;
-                       gr.SetSourceRGBA (0.6, 0.6, 0.6, 0.3);
+                       gr.SetSourceColor (0.6, 0.6, 0.6, 0.3);
                        gr.Rectangle (rb);
                        gr.Fill ();
                        gr.Operator = Operator.Over;
index a1c0c13fa4b030bb6f9da0e2ad34cdc93fe0d985..8208083693dee5b20372a0e35e04935f7aa75399 100644 (file)
@@ -296,7 +296,7 @@ namespace Crow
 
                        if (!hoverBorder) {
                                currentDirection = Direction.None;
-                               IFace.MouseCursor = MouseCursors.Default;
+                               //IFace.MouseCursor = MouseCursors.Default;
                                return;
                        }
 
@@ -330,37 +330,37 @@ namespace Crow
                                else
                                        currentDirection = Direction.None;
 
-                               if (currentDirection != lastDir) {
-                                       switch (currentDirection) {
-                                       case Direction.None:
-                                               otkgw.MouseCursor = MouseCursors.Default;
-                                               break;
-                                       case Direction.N:
-                                               otkgw.MouseCursor = MouseCursors.V;
-                                               break;
-                                       case Direction.S:
-                                               otkgw.MouseCursor = MouseCursors.V;
-                                               break;
-                                       case Direction.E:
-                                               otkgw.MouseCursor = MouseCursors.H;
-                                               break;
-                                       case Direction.W:
-                                               otkgw.MouseCursor = MouseCursors.H;
-                                               break;
-                                       case Direction.NW:
-                                               otkgw.MouseCursor = MouseCursors.NW;
-                                               break;
-                                       case Direction.NE:
-                                               otkgw.MouseCursor = MouseCursors.NE;
-                                               break;
-                                       case Direction.SW:
-                                               otkgw.MouseCursor = MouseCursors.SW;
-                                               break;
-                                       case Direction.SE:
-                                               otkgw.MouseCursor = MouseCursors.SE;
-                                               break;
-                                       }
-                               }                               
+                               //if (currentDirection != lastDir) {
+                               //      switch (currentDirection) {
+                               //      case Direction.None:
+                               //              otkgw.MouseCursor = MouseCursors.Default;
+                               //              break;
+                               //      case Direction.N:
+                               //              otkgw.MouseCursor = MouseCursors.V;
+                               //              break;
+                               //      case Direction.S:
+                               //              otkgw.MouseCursor = MouseCursors.V;
+                               //              break;
+                               //      case Direction.E:
+                               //              otkgw.MouseCursor = MouseCursors.H;
+                               //              break;
+                               //      case Direction.W:
+                               //              otkgw.MouseCursor = MouseCursors.H;
+                               //              break;
+                               //      case Direction.NW:
+                               //              otkgw.MouseCursor = MouseCursors.NW;
+                               //              break;
+                               //      case Direction.NE:
+                               //              otkgw.MouseCursor = MouseCursors.NE;
+                               //              break;
+                               //      case Direction.SW:
+                               //              otkgw.MouseCursor = MouseCursors.SW;
+                               //              break;
+                               //      case Direction.SE:
+                               //              otkgw.MouseCursor = MouseCursors.SE;
+                               //              break;
+                               //      }
+                               //}                             
                        }                               
                }
                public override void onMouseDown (object sender, MouseButtonEventArgs e)
@@ -423,7 +423,7 @@ namespace Crow
                {
                        hoverBorder = false;
                        currentDirection = Direction.None;
-                       IFace.MouseCursor = MouseCursors.Default;
+                       //IFace.MouseCursor = MouseCursors.Default;
                }
                protected virtual void onBorderMouseEnter (object sender, MouseMoveEventArgs e)
                {
@@ -433,7 +433,7 @@ namespace Crow
 
                protected void butQuitPress (object sender, MouseButtonEventArgs e)
                {
-                       IFace.MouseCursor = MouseCursors.Default;
+                       //IFace.MouseCursor = MouseCursors.Default;
                        close ();
                }
 
index 11221364e837c56b19334ffff94a57f3bfcea9b4..702234115a715d143121d850b33bdedd3dc5a134 100644 (file)
@@ -32,7 +32,7 @@ using System.IO;
 using System.Linq;
 using System.Reflection;
 using System.Threading;
-using Crow.Cairo;
+using vkvg;
 using Crow.IML;
 
 
@@ -92,14 +92,15 @@ namespace Crow
                                }
                        }
 
-                       FontRenderingOptions = new FontOptions ();
-                       FontRenderingOptions.Antialias = Antialias.Subpixel;
-                       FontRenderingOptions.HintMetrics = HintMetrics.On;
-                       FontRenderingOptions.HintStyle = HintStyle.Full;
-                       FontRenderingOptions.SubpixelOrder = SubpixelOrder.Default;
+                       //FontRenderingOptions = new FontOptions ();
+                       //FontRenderingOptions.Antialias = Antialias.Subpixel;
+                       //FontRenderingOptions.HintMetrics = HintMetrics.On;
+                       //FontRenderingOptions.HintStyle = HintStyle.Full;
+                       //FontRenderingOptions.SubpixelOrder = SubpixelOrder.Default;
                }
 
-               public Interface(int width=800, int height=600){
+               public Interface(vkvg.Device dev, int width=800, int height=600){
+                       this.dev = dev;
 
                        clientRectangle = new Rectangle (0, 0, width, height);
 
@@ -109,6 +110,9 @@ namespace Crow
                }
                #endregion
 
+               public vkvg.Device dev;
+               public vkvg.Surface surf;
+
                protected bool running;
 
                public void Run () {
@@ -147,7 +151,7 @@ namespace Crow
                                {
                                        // TODO: dispose managed state (managed objects).
                                }
-
+                               surf?.Dispose ();
 
 
                                disposedValue = true;
@@ -240,9 +244,9 @@ namespace Crow
                /// will not be rendered on screen </summary>
                public const int MaxDiscardCount = 5;
                /// <summary> Global font rendering settings for Cairo </summary>
-               public static FontOptions FontRenderingOptions;
+               //public static FontOptions FontRenderingOptions;
                /// <summary> Global font rendering settings for Cairo </summary>
-               public static Antialias Antialias = Antialias.Subpixel;
+               //public static Antialias Antialias = Antialias.Subpixel;
 
                /// <summary>
                /// Each control need a ref to the root interface containing it, if not set in GraphicObject.currentInterface,
@@ -255,16 +259,13 @@ namespace Crow
 
                #endregion
 
-               /// <summary>Main Cairo surface</summary>
-               public Surface surf;
-
                #region Public Fields
                /// <summary>Graphic Tree of this interface</summary>
                public List<Widget> GraphicTree = new List<Widget>();
                /// <summary>Interface's resulting bitmap</summary>
-               public byte[] bmp;
+               //public byte[] bmp;
                /// <summary>resulting bitmap limited to last redrawn part</summary>
-               public byte[] dirtyBmp;
+               //public byte[] dirtyBmp;
                /// <summary>True when host has to repaint Interface</summary>
                public bool IsDirty;
                /// <summary>Coordinate of the dirty bmp on the original bmp</summary>
@@ -745,54 +746,54 @@ namespace Crow
                        #endif
                        if (DragImage != null)
                                clipping.AddRectangle(new Rectangle (DragImageX, DragImageY, DragImageWidth, DragImageHeight));
-                       using (surf = new ImageSurface (bmp, Format.Argb32, ClientRectangle.Width, ClientRectangle.Height, ClientRectangle.Width * 4)) {
-                               using (ctx = new Context (surf)) {
-                                       if (!clipping.IsEmpty) {
-                                               IsDirty = true;
-
-                                               clipping.clearAndClip (ctx);
-
-                                               for (int i = GraphicTree.Count - 1; i >= 0; i--) {
-                                                       Widget p = GraphicTree[i];
-                                                       if (!p.Visible)
-                                                               continue;
-                                                       if (!clipping.intersect (p.Slot))
-                                                               continue;
-
-                                                       ctx.Save ();
-                                                       p.Paint (ref ctx);
-                                                       ctx.Restore ();
-                                               }
 
-                                               if (DragAndDropOperation != null) {
-                                                       if (DragImage != null) {
-                                                               DirtyRect += new Rectangle (DragImageX, DragImageY, DragImageWidth, DragImageHeight);
-                                                               DragImageX = Mouse.X - DragImageWidth / 2;
-                                                               DragImageY = Mouse.Y - DragImageHeight / 2;
-                                                               ctx.Save ();
-                                                               ctx.ResetClip ();
-                                                               ctx.SetSourceSurface (DragImage, DragImageX, DragImageY);
-                                                               ctx.PaintWithAlpha (0.8);
-                                                               ctx.Restore ();
-                                                               DirtyRect += new Rectangle (DragImageX, DragImageY, DragImageWidth, DragImageHeight);
-                                                               IsDirty = true;
-                                                               //Console.WriteLine ("dragimage drawn: {0},{1}", DragImageX, DragImageY);
-                                                       }
-                                               }
+                       using (ctx = new Context (surf)) {
+                               if (!clipping.IsEmpty) {
+                                       IsDirty = true;
+
+                                       clipping.clear (ctx);
+
+                                       for (int i = GraphicTree.Count - 1; i >= 0; i--) {
+                                               Widget p = GraphicTree[i];
+                                               if (!p.Visible)
+                                                       continue;
+                                               if (!clipping.intersect (p.Slot))
+                                                       continue;
+
+                                               ctx.Save ();
+                                               p.Paint (ref ctx);
+                                               ctx.Restore ();
+                                       }
+
+                                       //if (DragAndDropOperation != null) {
+                                       //      if (DragImage != null) {
+                                       //              DirtyRect += new Rectangle (DragImageX, DragImageY, DragImageWidth, DragImageHeight);
+                                       //              DragImageX = Mouse.X - DragImageWidth / 2;
+                                       //              DragImageY = Mouse.Y - DragImageHeight / 2;
+                                       //              ctx.Save ();
+                                       //              ctx.ResetClip ();
+                                       //              ctx.SetSourceSurface (DragImage, DragImageX, DragImageY);
+                                       //              ctx.PaintWithAlpha (0.8);
+                                       //              ctx.Restore ();
+                                       //              DirtyRect += new Rectangle (DragImageX, DragImageY, DragImageWidth, DragImageHeight);
+                                       //              IsDirty = true;
+                                       //              //Console.WriteLine ("dragimage drawn: {0},{1}", DragImageX, DragImageY);
+                                       //      }
+                                       //}
 
 #if DEBUG_CLIP_RECTANGLE
-                                               ctx.LineWidth = 1;
-                                               clipping.stroke (ctx, Color.Magenta.AdjustAlpha (0.5));
-                                               ctx.Stroke ();
+                                       ctx.LineWidth = 1;
+                                       clipping.stroke (ctx, Color.Magenta.AdjustAlpha (0.5));
+                                       ctx.Stroke ();
 #endif
 
-                                               clipping.Reset ();
-                                               //}
-                                               //surf.WriteToPng (@"/mnt/data/test.png");
-                                                       
-                                       }
+                                       clipping.Reset ();
+                                       //}
+                                       //surf.WriteToPng (@"/mnt/data/test.png");
+                                               
                                }
                        }
+               
                        /*#if DEBUG_LOG
                        DebugLog.AddEvent (DbgEvtType.IFaceEndDrawing);
                        #endif*/
@@ -919,10 +920,8 @@ namespace Crow
                public virtual void ProcessResize(Rectangle bounds){
                        lock (UpdateMutex) {
                                clientRectangle = bounds;
-
-                               int stride = 4 * ClientRectangle.Width;
-                               int bmpSize = Math.Abs (stride) * ClientRectangle.Height;
-                               bmp = new byte[bmpSize];
+                               surf?.Dispose ();
+                               surf = new Surface (dev, ClientRectangle.Width, ClientRectangle.Height);
 
                                foreach (Widget g in GraphicTree)
                                        g.RegisterForLayouting (LayoutingType.All);
@@ -938,11 +937,11 @@ namespace Crow
                int mouseRepeatCount;
                MouseButtonEventArgs lastMouseDownEvent;
 
-               public MouseCursors MouseCursor {
-                       set {
-                               //backend.SetCursor (value);
-                       }
-               }
+               //public MouseCursors MouseCursor {
+               //      set {
+               //              //backend.SetCursor (value);
+               //      }
+               //}
                /// <summary>Processes mouse move events from the root container, this function
                /// should be called by the host on mouse move event to forward events to crow interfaces</summary>
                /// <returns>true if mouse is in the interface</returns>
diff --git a/Crow/src/Mono.Cairo/Antialias.cs b/Crow/src/Mono.Cairo/Antialias.cs
deleted file mode 100644 (file)
index 64da644..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-//
-// Mono.Cairo.Antialias.cs
-//
-// Authors:
-//   Duncan Mak (duncan@ximian.com)
-//   Hisham Mardam Bey (hisham.mardambey@gmail.com)
-//
-// (C) Ximian, Inc. 2003
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo
-{
-       
-       public enum Antialias
-       {
-               Default,
-               None,
-               Grey,
-               Subpixel,
-       }
-}
diff --git a/Crow/src/Mono.Cairo/Cairo.cs b/Crow/src/Mono.Cairo/Cairo.cs
deleted file mode 100644 (file)
index 6450f39..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-//
-// Cairo.cs - a simplistic binding of the Cairo API to C#.
-//
-// Authors: Duncan Mak (duncan@ximian.com)
-//          Hisham Mardam Bey (hisham.mardambey@gmail.com)
-//          John Luke (john.luke@gmail.com)
-//          Alp Toker (alp@atoker.com)
-//
-// (C) Ximian, Inc. 2003
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-// Copyright (C) 2005 John Luke
-// Copyright (C) 2006 Alp Toker
-//
-// 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.
-//
-
-using System;
-using System.Runtime.InteropServices;
-
-namespace Crow.Cairo
-{
-       public static class CairoAPI {
-               static public int Version {
-                       get {
-                               return Crow.Cairo.NativeMethods.cairo_version ();
-                       }
-               }
-
-               static public string VersionString {
-                       get {
-                               IntPtr x = Crow.Cairo.NativeMethods.cairo_version_string ();
-                               return Marshal.PtrToStringAnsi (x);
-                       }
-               }
-       }
-}
diff --git a/Crow/src/Mono.Cairo/CairoDebug.cs b/Crow/src/Mono.Cairo/CairoDebug.cs
deleted file mode 100644 (file)
index faff933..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-//
-// CairoDebug.cs
-//
-// Author:
-//   Michael Hutchinson (mhutch@xamarin.com)
-//
-// Copyright (C) 2013 Xamarin Inc. (http://www.xamarin.com)
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo {
-
-       static class CairoDebug
-       {
-               static System.Collections.Generic.Dictionary<IntPtr,string> traces;
-
-               public static readonly bool Enabled;
-
-               static CairoDebug ()
-               {
-                       var dbg = Environment.GetEnvironmentVariable ("MONO_CAIRO_DEBUG_DISPOSE");
-                       if (dbg == null)
-                               return;
-                       Enabled = true;
-                       traces = new System.Collections.Generic.Dictionary<IntPtr,string> ();
-               }
-
-               public static void OnAllocated (IntPtr obj)
-               {
-                       if (!Enabled)
-                               throw new InvalidOperationException ();
-
-                       traces[obj] = Environment.StackTrace;
-               }
-
-               public static void OnDisposed<T> (IntPtr obj, bool disposing)
-               {
-                       if (disposing && !Enabled)
-                               throw new InvalidOperationException ();
-
-                       if (Environment.HasShutdownStarted)
-                               return;
-
-                       if (!disposing) {
-                               Console.Error.WriteLine ("{0} is leaking, programmer is missing a call to Dispose", typeof(T).FullName);
-                               if (Enabled) {
-                                       string val;
-                                       if (traces.TryGetValue (obj, out val)) {
-                                               Console.Error.WriteLine ("Allocated from:");
-                                               Console.Error.WriteLine (val);
-                                       }
-                               } else {
-                                       Console.Error.WriteLine ("Set MONO_CAIRO_DEBUG_DISPOSE to track allocation traces");
-                               }
-                       }
-
-                       if (Enabled)
-                               traces.Remove (obj);
-               }
-       }
-
-}
diff --git a/Crow/src/Mono.Cairo/Content.cs b/Crow/src/Mono.Cairo/Content.cs
deleted file mode 100644 (file)
index f14305a..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-//
-// Mono.Cairo.Content.cs
-//
-// Authors:
-//   Duncan Mak (duncan@ximian.com)
-//   Hisham Mardam Bey (hisham.mardambey@gmail.com)
-//
-// (C) Ximian, Inc. 2003
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo
-{
-       //[Flags]
-       
-       public enum Content
-       {
-               Color = 0x1000,
-               Alpha = 0x2000,
-               ColorAlpha = 0x3000,
-       }
-}
diff --git a/Crow/src/Mono.Cairo/Context.cs b/Crow/src/Mono.Cairo/Context.cs
deleted file mode 100644 (file)
index 44e1b5e..0000000
+++ /dev/null
@@ -1,896 +0,0 @@
-//
-// Mono.Cairo.Context.cs
-//
-// Author:
-//   Duncan Mak (duncan@ximian.com)
-//   Miguel de Icaza (miguel@novell.com)
-//   Hisham Mardam Bey (hisham.mardambey@gmail.com)
-//   Alp Toker (alp@atoker.com)
-//
-// (C) Ximian Inc, 2003.
-// (C) Novell Inc, 2003.
-//
-// This is an OO wrapper API for the Cairo API.
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-using System;
-using System.Runtime.InteropServices;
-using System.Text;
-using Color = Crow.Color;
-
-namespace Crow.Cairo { 
-
-       [Obsolete ("Renamed Cairo.Context per suggestion from cairo binding guidelines.")]
-       public class Graphics : Context {
-               public Graphics (IntPtr state) : base (state) {}
-               public Graphics (Surface surface) : base (surface) {}
-       }
-
-       public class Context : IDisposable
-       {
-               IntPtr handle = IntPtr.Zero;
-
-               static int native_glyph_size, c_compiler_long_size;
-
-               static Context ()
-               {
-                       //
-                       // This is used to determine what kind of structure
-                       // we should use to marshal Glyphs, as the public
-                       // definition in Cairo uses `long', which can be
-                       // 32 bits or 64 bits depending on the platform.
-                       //
-                       // We assume that sizeof(long) == sizeof(void*)
-                       // except in the case of Win64 where sizeof(long)
-                       // is 32 bits
-                       //
-                       int ptr_size = Marshal.SizeOf (typeof (IntPtr));
-
-                       /*PlatformID platform = Environment.OSVersion.Platform;
-            RuntimeInformation.IsOSPlatform(OSPlatform.Linux); 
-            RuntimeInformation.OSArchitecture.HasFlag(Architecture.);
-                       if (platform == PlatformID.Win32NT ||
-                           platform == PlatformID.Win32S ||
-                           platform == PlatformID.Win32Windows ||
-                           platform == PlatformID.WinCE ||
-                           ptr_size == 4){
-                               c_compiler_long_size = 4;
-                               native_glyph_size = Marshal.SizeOf (typeof (NativeGlyph_4byte_longs));
-                       } else {*/
-                               c_compiler_long_size = 8;
-                               native_glyph_size = Marshal.SizeOf (typeof (Glyph));
-                       //}
-               }
-
-               public Context (Surface surface) : this (NativeMethods.cairo_create (surface.Handle), true)
-               {
-               }
-
-
-               public Context (IntPtr handle, bool owner)
-               {
-                       this.handle = handle;
-                       if (!owner)
-                               NativeMethods.cairo_reference (handle);
-                       if (CairoDebug.Enabled)
-                               CairoDebug.OnAllocated (handle);
-               }
-
-               [Obsolete]
-               public Context (IntPtr state) : this (state, true)
-               {
-               }
-
-               ~Context ()
-               {
-                       Dispose (false);
-               }
-
-               public void Dispose ()
-               {
-                       Dispose (true);
-                       GC.SuppressFinalize (this);
-               }
-
-               protected virtual void Dispose (bool disposing)
-               {
-                       if (!disposing || CairoDebug.Enabled)
-                               CairoDebug.OnDisposed<Context> (handle, disposing);
-
-                       if (!disposing|| handle == IntPtr.Zero)
-                               return;
-
-                       NativeMethods.cairo_destroy (handle);
-                       handle = IntPtr.Zero;
-
-               }
-
-               public void Save ()
-               {
-                       NativeMethods.cairo_save (handle);
-               }
-
-               public void Restore ()
-               {
-                       NativeMethods.cairo_restore (handle);
-               }
-
-               public Antialias Antialias {
-                       get { return NativeMethods.cairo_get_antialias (handle); }
-                       set { NativeMethods.cairo_set_antialias (handle, value); }
-               }
-
-               public Crow.Cairo.Status Status {
-                       get {
-                               return NativeMethods.cairo_status (handle);
-                       }
-               }
-
-               public IntPtr Handle {
-                       get {
-                               return handle;
-                       }
-               }
-
-               public Operator Operator {
-                       set {
-                               NativeMethods.cairo_set_operator (handle, value);
-                       }
-
-                       get {
-                               return NativeMethods.cairo_get_operator (handle);
-                       }
-               }
-
-               public double Tolerance {
-                       get {
-                               return NativeMethods.cairo_get_tolerance (handle);
-                       }
-
-                       set {
-                               NativeMethods.cairo_set_tolerance (handle, value);
-                       }
-               }
-
-               public Crow.Cairo.FillRule FillRule {
-                       set {
-                               NativeMethods.cairo_set_fill_rule (handle, value);
-                       }
-
-                       get {
-                               return NativeMethods.cairo_get_fill_rule (handle);
-                       }
-               }
-
-               public double LineWidth {
-                       set {
-                               NativeMethods.cairo_set_line_width (handle, value);
-                       }
-
-                       get {
-                               return NativeMethods.cairo_get_line_width (handle);
-                       }
-               }
-
-               public Crow.Cairo.LineCap LineCap {
-                       set {
-                               NativeMethods.cairo_set_line_cap (handle, value);
-                       }
-
-                       get {
-                               return NativeMethods.cairo_get_line_cap (handle);
-                       }
-               }
-
-               public Crow.Cairo.LineJoin LineJoin {
-                       set {
-                               NativeMethods.cairo_set_line_join (handle, value);
-                       }
-
-                       get {
-                               return NativeMethods.cairo_get_line_join (handle);
-                       }
-               }
-
-               public void SetDash (double [] dashes, double offset)
-               {
-                       NativeMethods.cairo_set_dash (handle, dashes, dashes.Length, offset);
-               }
-
-               [Obsolete("Use GetSource/SetSource")]
-               public Pattern Pattern {
-                       set {
-                               SetSource (value);
-                       }
-                       get {
-                               return GetSource ();
-                       }
-               }
-
-               //This is obsolete because it wasn't obvious it needed to be disposed
-               [Obsolete("Use GetSource/SetSource")]
-               public Pattern Source {
-                       set {
-                               SetSource (value);
-                       }
-                       get {
-                               return GetSource ();
-                       }
-               }
-
-               public void SetSource (Pattern source)
-               {
-                       NativeMethods.cairo_set_source (handle, source.Handle);
-               }
-
-               public Pattern GetSource ()
-               {
-                       var ptr = NativeMethods.cairo_get_source (handle);
-                       return Crow.Cairo.Pattern.Lookup (ptr, false);
-               }
-
-               public double MiterLimit {
-                       set {
-                               NativeMethods.cairo_set_miter_limit (handle, value);
-                       }
-
-                       get {
-                               return NativeMethods.cairo_get_miter_limit (handle);
-                       }
-               }
-
-               public PointD CurrentPoint {
-                       get {
-                               double x, y;
-                               NativeMethods.cairo_get_current_point (handle, out x, out y);
-                               return new PointD (x, y);
-                       }
-               }
-
-               public bool HasCurrentPoint {
-                       get {
-                               return NativeMethods.cairo_has_current_point (handle);
-                       }
-               }
-
-               [Obsolete ("Use GetTarget/SetTarget")]
-               public Crow.Cairo.Surface Target {
-                       set {
-                               if (handle != IntPtr.Zero)
-                                       NativeMethods.cairo_destroy (handle);
-
-                               handle = NativeMethods.cairo_create (value.Handle);
-                       }
-
-                       get {
-                               return GetTarget ();
-                       }
-               }
-
-               public Surface GetTarget ()
-               {
-                       return Surface.Lookup (NativeMethods.cairo_get_target (handle), false);
-               }
-
-               public void SetTarget (Surface target)
-               {
-                       if (handle != IntPtr.Zero)
-                               NativeMethods.cairo_destroy (handle);
-                       handle = NativeMethods.cairo_create (target.Handle);
-               }
-
-               [Obsolete("Use GetScaledFont/SetScaledFont")]
-               public ScaledFont ScaledFont {
-                       set {
-                               SetScaledFont (value);
-                       }
-
-                       get {
-                               return GetScaledFont ();
-                       }
-               }
-
-               public ScaledFont GetScaledFont ()
-               {
-                       return new ScaledFont (NativeMethods.cairo_get_scaled_font (handle), false);
-               }
-
-               public void SetScaledFont (ScaledFont font)
-               {
-                       NativeMethods.cairo_set_scaled_font (handle, font.Handle);
-               }
-
-               public uint ReferenceCount {
-                       get { return NativeMethods.cairo_get_reference_count (handle); }
-               }
-
-               public void SetSourceColor (Color color)
-               {
-                       NativeMethods.cairo_set_source_rgba (handle, color.R, color.G, color.B, color.A);
-               }
-
-               public void SetSourceRGB (double r, double g, double b)
-               {
-                       NativeMethods.cairo_set_source_rgb (handle, r, g, b);
-               }
-
-               public void SetSourceRGBA (double r, double g, double b, double a)
-               {
-                       NativeMethods.cairo_set_source_rgba (handle, r, g, b, a);
-               }
-
-               //[Obsolete ("Use SetSource method (with double parameters)")]
-               public void SetSourceSurface (Surface source, int x, int y)
-               {
-                       NativeMethods.cairo_set_source_surface (handle, source.Handle, x, y);
-               }
-
-               public void SetSource (Surface source, double x, double y)
-               {
-                       NativeMethods.cairo_set_source_surface (handle, source.Handle, x, y);
-               }
-
-               public void SetSource (Surface source)
-               {
-                       NativeMethods.cairo_set_source_surface (handle, source.Handle, 0, 0);
-               }
-
-#region Path methods
-
-               public void NewPath ()
-               {
-                       NativeMethods.cairo_new_path (handle);
-               }
-
-               public void NewSubPath ()
-               {
-                       NativeMethods.cairo_new_sub_path (handle);
-               }
-
-               public void MoveTo (PointD p)
-               {
-                       MoveTo (p.X, p.Y);
-               }
-
-               public void MoveTo (double x, double y)
-               {
-                       NativeMethods.cairo_move_to (handle, x, y);
-               }
-
-               public void LineTo (PointD p)
-               {
-                       LineTo (p.X, p.Y);
-               }
-
-               public void LineTo (double x, double y)
-               {
-                       NativeMethods.cairo_line_to (handle, x, y);
-               }
-
-               public void CurveTo (PointD p1, PointD p2, PointD p3)
-               {
-                       CurveTo (p1.X, p1.Y, p2.X, p2.Y, p3.X, p3.Y);
-               }
-
-               public void CurveTo (double x1, double y1, double x2, double y2, double x3, double y3)
-               {
-                       NativeMethods.cairo_curve_to (handle, x1, y1, x2, y2, x3, y3);
-               }
-
-               public void RelMoveTo (Distance d)
-               {
-                       RelMoveTo (d.Dx, d.Dy);
-               }
-
-               public void RelMoveTo (double dx, double dy)
-               {
-                       NativeMethods.cairo_rel_move_to (handle, dx, dy);
-               }
-
-               public void RelLineTo (Distance d)
-               {
-                       RelLineTo (d.Dx, d.Dy);
-               }
-
-               public void RelLineTo (double dx, double dy)
-               {
-                       NativeMethods.cairo_rel_line_to (handle, dx, dy);
-               }
-
-               public void RelCurveTo (Distance d1, Distance d2, Distance d3)
-               {
-                       RelCurveTo (d1.Dx, d1.Dy, d2.Dx, d2.Dy, d3.Dx, d3.Dy);
-               }
-
-               public void RelCurveTo (double dx1, double dy1, double dx2, double dy2, double dx3, double dy3)
-               {
-                       NativeMethods.cairo_rel_curve_to (handle, dx1, dy1, dx2, dy2, dx3, dy3);
-               }
-
-               public void Arc (double xc, double yc, double radius, double angle1, double angle2)
-               {
-                       NativeMethods.cairo_arc (handle, xc, yc, radius, angle1, angle2);
-               }
-
-               public void ArcNegative (double xc, double yc, double radius, double angle1, double angle2)
-               {
-                       NativeMethods.cairo_arc_negative (handle, xc, yc, radius, angle1, angle2);
-               }
-
-               public void Rectangle (Crow.Rectangle rectangle)
-               {
-                       Rectangle (rectangle.X, rectangle.Y, rectangle.Width, rectangle.Height);
-               }
-
-               public void Rectangle (PointD p, double width, double height)
-               {
-                       Rectangle (p.X, p.Y, width, height);
-               }
-
-               public void Rectangle (double x, double y, double width, double height)
-               {
-                       NativeMethods.cairo_rectangle (handle, x, y, width, height);
-               }
-
-               public void ClosePath ()
-               {
-                       NativeMethods.cairo_close_path (handle);
-               }
-
-               public Path CopyPath ()
-               {
-                       return new Path (NativeMethods.cairo_copy_path (handle));
-               }
-
-               public Path CopyPathFlat ()
-               {
-                       return new Path (NativeMethods.cairo_copy_path_flat (handle));
-               }
-
-               public void AppendPath (Path path)
-               {
-                       NativeMethods.cairo_append_path (handle, path.Handle);
-               }
-
-#endregion
-
-#region Painting Methods
-               public void Paint ()
-               {
-                       NativeMethods.cairo_paint (handle);
-               }
-
-               public void PaintWithAlpha (double alpha)
-               {
-                       NativeMethods.cairo_paint_with_alpha (handle, alpha);
-               }
-
-               public void Mask (Pattern pattern)
-               {
-                       NativeMethods.cairo_mask (handle, pattern.Handle);
-               }
-
-               public void MaskSurface (Surface surface, double surface_x, double surface_y)
-               {
-                       NativeMethods.cairo_mask_surface (handle, surface.Handle, surface_x, surface_y);
-               }
-
-               public void Stroke ()
-               {
-                       NativeMethods.cairo_stroke (handle);
-               }
-
-               public void StrokePreserve ()
-               {
-                       NativeMethods.cairo_stroke_preserve (handle);
-               }
-
-               public Crow.Rectangle StrokeExtents ()
-               {
-                       double x1, y1, x2, y2;
-                       NativeMethods.cairo_stroke_extents (handle, out x1, out y1, out x2, out y2);
-                       return new Crow.Rectangle ((int)x1, (int)y1, (int)(x2 - x1), (int)(y2 - y1));
-               }
-
-               public void Fill ()
-               {
-                       NativeMethods.cairo_fill (handle);
-               }
-
-               public Crow.Rectangle FillExtents ()
-               {
-                       double x1, y1, x2, y2;
-                       NativeMethods.cairo_fill_extents (handle, out x1, out y1, out x2, out y2);
-                       return new Crow.Rectangle ((int)x1, (int)y1, (int)(x2 - x1), (int)(y2 - y1));
-               }
-
-               public void FillPreserve ()
-               {
-                       NativeMethods.cairo_fill_preserve (handle);
-               }
-
-#endregion
-
-               public void Clip ()
-               {
-                       NativeMethods.cairo_clip (handle);
-               }
-
-               public void ClipPreserve ()
-               {
-                       NativeMethods.cairo_clip_preserve (handle);
-               }
-
-               public void ResetClip ()
-               {
-                       NativeMethods.cairo_reset_clip (handle);
-               }
-
-               public bool InClip (double x, double y)
-               {
-                       return NativeMethods.cairo_in_clip (handle, x, y);
-               }
-               public RectangleList GetClipRectangles (){
-                       return (RectangleList)Marshal.PtrToStructure (NativeMethods.cairo_copy_clip_rectangle_list (handle), typeof(RectangleList));
-               }
-               public void ClipExtendRectangle (){
-                       double x1, y1, x2, y2;
-                       NativeMethods.cairo_clip_extents (handle, out x1, out y1, out x2, out y2);
-                       NativeMethods.cairo_rectangle (handle, x1, y1, x2 - x1, y2 - y1); 
-               }
-               public bool InStroke (double x, double y)
-               {
-                       return NativeMethods.cairo_in_stroke (handle, x, y);
-               }
-
-               public bool InFill (double x, double y)
-               {
-                       return NativeMethods.cairo_in_fill (handle, x, y);
-               }
-
-               public Pattern PopGroup ()
-               {
-                       return Pattern.Lookup (NativeMethods.cairo_pop_group (handle), true);
-               }
-
-               public void PopGroupToSource ()
-               {
-                       NativeMethods.cairo_pop_group_to_source (handle);
-               }
-
-               public void PushGroup ()
-               {
-                       NativeMethods.cairo_push_group (handle);
-               }
-
-               public void PushGroup (Content content)
-               {
-                       NativeMethods.cairo_push_group_with_content (handle, content);
-               }
-
-               [Obsolete ("Use GetGroupTarget()")]
-               public Surface GroupTarget {
-                       get {
-                               return GetGroupTarget ();
-                       }
-               }
-
-               public Surface GetGroupTarget ()
-               {
-                       IntPtr surface = NativeMethods.cairo_get_group_target (handle);
-                       return Surface.Lookup (surface, false);
-               }
-
-               public void Rotate (double angle)
-               {
-                       NativeMethods.cairo_rotate (handle, angle);
-               }
-
-               public void Scale (double sx, double sy)
-               {
-                       NativeMethods.cairo_scale (handle, sx, sy);
-               }
-
-               public void Translate (double tx, double ty)
-               {
-                       NativeMethods.cairo_translate (handle, tx, ty);
-               }
-
-               public void Transform (Matrix m)
-               {
-                       NativeMethods.cairo_transform (handle, m);
-               }
-
-               [Obsolete("Use UserToDevice instead")]
-               public void TransformPoint (ref double x, ref double y)
-               {
-                       NativeMethods.cairo_user_to_device (handle, ref x, ref y);
-               }
-
-               [Obsolete("Use UserToDeviceDistance instead")]
-               public void TransformDistance (ref double dx, ref double dy)
-               {
-                       NativeMethods.cairo_user_to_device_distance (handle, ref dx, ref dy);
-               }
-
-               [Obsolete("Use InverseTransformPoint instead")]
-               public void InverseTransformPoint (ref double x, ref double y)
-               {
-                       NativeMethods.cairo_device_to_user (handle, ref x, ref y);
-               }
-
-               [Obsolete("Use DeviceToUserDistance instead")]
-               public void InverseTransformDistance (ref double dx, ref double dy)
-               {
-                       NativeMethods.cairo_device_to_user_distance (handle, ref dx, ref dy);
-               }
-
-               public void UserToDevice (ref double x, ref double y)
-               {
-                       NativeMethods.cairo_user_to_device (handle, ref x, ref y);
-               }
-
-               public void UserToDeviceDistance (ref double dx, ref double dy)
-               {
-                       NativeMethods.cairo_user_to_device_distance (handle, ref dx, ref dy);
-               }
-
-               public void DeviceToUser (ref double x, ref double y)
-               {
-                       NativeMethods.cairo_device_to_user (handle, ref x, ref y);
-               }
-
-               public void DeviceToUserDistance (ref double dx, ref double dy)
-               {
-                       NativeMethods.cairo_device_to_user_distance (handle, ref dx, ref dy);
-               }
-
-               public Matrix Matrix {
-                       set {
-                               NativeMethods.cairo_set_matrix (handle, value);
-                       }
-
-                       get {
-                               Matrix m = new Matrix();
-                               NativeMethods.cairo_get_matrix (handle, m);
-                               return m;
-                       }
-               }
-
-               public void SetFontSize (double scale)
-               {
-                       NativeMethods.cairo_set_font_size (handle, scale);
-               }
-
-               public void IdentityMatrix ()
-               {
-                       NativeMethods.cairo_identity_matrix (handle);
-               }
-
-               [Obsolete ("Use SetFontSize() instead.")]
-               public void FontSetSize (double scale)
-               {
-                       SetFontSize (scale);
-               }
-
-               [Obsolete ("Use SetFontSize() instead.")]
-               public double FontSize {
-                       set { SetFontSize (value); }
-               }
-
-               public Matrix FontMatrix {
-                       get {
-                               Matrix m;
-                               NativeMethods.cairo_get_font_matrix (handle, out m);
-                               return m;
-                       }
-                       set { NativeMethods.cairo_set_font_matrix (handle, value); }
-               }
-
-               public FontOptions FontOptions {
-                       get {
-                               FontOptions options = new FontOptions ();
-                               NativeMethods.cairo_get_font_options (handle, options.Handle);
-                               return options;
-                       }
-                       set { NativeMethods.cairo_set_font_options (handle, value.Handle); }
-               }
-
-               [StructLayout(LayoutKind.Sequential)]
-               internal struct NativeGlyph_4byte_longs {
-                       public int index;
-                       public double x;
-                       public double y;
-
-                       public NativeGlyph_4byte_longs (Glyph source)
-                       {
-                               index = (int) source.index;
-                               x = source.x;
-                               y = source.y;
-                       }
-               }
-
-               static internal IntPtr FromGlyphToUnManagedMemory(Glyph [] glyphs)
-               {
-                       IntPtr dest = Marshal.AllocHGlobal (native_glyph_size * glyphs.Length);
-                       long pos = dest.ToInt64();
-
-                       if (c_compiler_long_size == 8){
-                               foreach (Glyph g in glyphs){
-                                       Marshal.StructureToPtr (g, (IntPtr)pos, false);
-                                       pos += native_glyph_size;
-                               }
-                       } else {
-                               foreach (Glyph g in glyphs){
-                                       NativeGlyph_4byte_longs n = new NativeGlyph_4byte_longs (g);
-
-                                       Marshal.StructureToPtr (n, (IntPtr)pos, false);
-                                       pos += native_glyph_size;
-                               }
-                       }
-
-                       return dest;
-               }
-
-               public void ShowGlyphs (Glyph[] glyphs)
-               {
-                       IntPtr ptr;
-
-                       ptr = FromGlyphToUnManagedMemory (glyphs);
-
-                       NativeMethods.cairo_show_glyphs (handle, ptr, glyphs.Length);
-
-                       Marshal.FreeHGlobal (ptr);
-               }
-
-               [Obsolete("The matrix argument was never used, use ShowGlyphs(Glyphs []) instead")]
-               public void ShowGlyphs (Matrix matrix, Glyph[] glyphs)
-               {
-                       ShowGlyphs (glyphs);
-               }
-
-               [Obsolete("The matrix argument was never used, use GlyphPath(Glyphs []) instead")]
-               public void GlyphPath (Matrix matrix, Glyph[] glyphs)
-               {
-                       GlyphPath (glyphs);
-               }
-
-               public void GlyphPath (Glyph[] glyphs)
-               {
-                       IntPtr ptr;
-
-                       ptr = FromGlyphToUnManagedMemory (glyphs);
-
-                       NativeMethods.cairo_glyph_path (handle, ptr, glyphs.Length);
-
-                       Marshal.FreeHGlobal (ptr);
-
-               }
-
-               public FontExtents FontExtents {
-                       get {
-                               FontExtents f_extents;
-                               NativeMethods.cairo_font_extents (handle, out f_extents);
-                               return f_extents;
-                       }
-               }
-
-               public void CopyPage ()
-               {
-                       NativeMethods.cairo_copy_page (handle);
-               }
-
-               [Obsolete ("Use SelectFontFace() instead.")]
-               public void FontFace (string family, FontSlant slant, FontWeight weight)
-               {
-                       SelectFontFace (family, slant, weight);
-               }
-
-               [Obsolete("Use GetFontFace/SetFontFace")]
-               public FontFace ContextFontFace {
-                       get {
-                               return GetContextFontFace ();
-                       }
-                       set {
-                               SetContextFontFace (value);
-                       }
-               }
-
-               public FontFace GetContextFontFace ()
-               {
-                       return Crow.Cairo.FontFace.Lookup (NativeMethods.cairo_get_font_face (handle), false);
-               }
-
-               public void SetContextFontFace (FontFace value)
-               {
-                       NativeMethods.cairo_set_font_face (handle, value == null ? IntPtr.Zero : value.Handle);
-               }
-
-               public void SelectFontFace (string family, FontSlant slant, FontWeight weight)
-               {
-                       NativeMethods.cairo_select_font_face (handle, family, slant, weight);
-               }
-
-               public void ShowPage ()
-               {
-                       NativeMethods.cairo_show_page (handle);
-               }
-
-               private static byte[] TerminateUtf8(byte[] utf8)
-               {
-                       if (utf8.Length > 0 && utf8[utf8.Length - 1] == 0)
-                               return utf8;
-                       var termedArray = new byte[utf8.Length + 1];
-                       Array.Copy(utf8, termedArray, utf8.Length);
-                       termedArray[utf8.Length] = 0;
-                       return termedArray;
-               }
-
-               private static byte[] TerminateUtf8(string s)
-               {
-                       // compute the byte count including the trailing \0
-                       var byteCount = Encoding.UTF8.GetMaxByteCount(s.Length + 1);
-                       var bytes = new byte[byteCount];
-                       Encoding.UTF8.GetBytes(s, 0, s.Length, bytes, 0);
-                       return bytes;
-               }
-
-               public void ShowText(string str)
-               {
-                       NativeMethods.cairo_show_text (handle, str);
-               }
-
-
-               public void TextPath(string str)
-               {
-                       NativeMethods.cairo_text_path (handle, TerminateUtf8(str));
-               }
-
-               public void TextPath(byte[] utf8)
-               {
-                       NativeMethods.cairo_text_path (handle, TerminateUtf8(utf8));
-               }
-
-               public TextExtents TextExtents(string s)
-               {
-                       TextExtents extents;
-                       NativeMethods.cairo_text_extents (handle, s, out extents);
-                       return extents;
-               }
-
-
-               public TextExtents GlyphExtents (Glyph[] glyphs)
-               {
-                       IntPtr ptr = FromGlyphToUnManagedMemory (glyphs);
-
-                       TextExtents extents;
-
-                       NativeMethods.cairo_glyph_extents (handle, ptr, glyphs.Length, out extents);
-
-                       Marshal.FreeHGlobal (ptr);
-
-                       return extents;
-               }
-       }
-}
diff --git a/Crow/src/Mono.Cairo/DRMDevice.cs b/Crow/src/Mono.Cairo/DRMDevice.cs
deleted file mode 100644 (file)
index 05e142c..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-//
-// Mono.Cairo.Device.cs
-//
-// Authors:
-//                     JP Bruyère (jp_bruyere@hotmail.com)
-//
-// This is an OO wrapper API for the Cairo API
-//
-// Copyright (C) 2016 JP Bruyère
-//
-// 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.
-//
-using System;
-
-namespace Crow.Cairo
-{
-       public class DRMDevice : Device
-       {
-               public DRMDevice () : base (NativeMethods.cairo_drm_device_default (), true)
-               {
-               }
-               public DRMDevice (int fd) : base (NativeMethods.cairo_drm_device_get_for_fd (fd), true)
-               {
-               }
-               public DRMDevice (IntPtr udev_device) : base (NativeMethods.cairo_drm_device_get (udev_device), true)
-               {
-               }
-
-               public int FileDescriptor {
-                       get { return NativeMethods.cairo_drm_device_get_fd (Handle); }
-               }
-
-               public void DeviceThrottle () { NativeMethods.cairo_drm_device_throttle (Handle);}
-       }
-}
-
diff --git a/Crow/src/Mono.Cairo/DRMSurface.cs b/Crow/src/Mono.Cairo/DRMSurface.cs
deleted file mode 100644 (file)
index f624967..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-//
-// Mono.Cairo.GLSurface.cs
-//
-// Authors:
-//                     JP Bruyère (jp_bruyere@hotmail.com)
-//
-// This is an OO wrapper API for the Cairo API
-//
-// Copyright (C) 2016 JP Bruyère
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo {
-
-       public class DRMSurface : Surface
-       {
-               
-               public DRMSurface (IntPtr ptr, bool own) : base (ptr, own)
-               {}
-
-               public DRMSurface (DRMDevice device, Format format, int width, int height)
-                       : base (NativeMethods.cairo_drm_surface_create (device.Handle, format, width, height), true)
-               {}
-
-               public DRMSurface (DRMDevice device, uint name, Format format, int width, int height, int stride)
-                       : base (NativeMethods.cairo_drm_surface_create_for_name (device.Handle, name, format, width, height, stride), true)
-               {}
-
-               public DRMSurface (DRMDevice device, IntPtr imageSurface)
-                       : base (NativeMethods.cairo_drm_surface_create_from_cacheable_image (device.Handle, imageSurface), true)
-               {}
-       }
-}
diff --git a/Crow/src/Mono.Cairo/Device.cs b/Crow/src/Mono.Cairo/Device.cs
deleted file mode 100644 (file)
index dc9910c..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-//
-// Mono.Cairo.Device.cs
-//
-// Authors:
-//                     JP Bruyère (jp_bruyere@hotmail.com)
-//
-// This is an OO wrapper API for the Cairo API
-//
-// Copyright (C) 2016 JP Bruyère
-//
-// 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.
-//
-using System;
-
-namespace Crow.Cairo
-{
-       public class Device : IDisposable
-       {
-               IntPtr handle = IntPtr.Zero;
-
-               protected Device()
-               {
-               }
-
-               protected Device (IntPtr ptr) : this (ptr, true)
-               {
-               }
-
-               protected Device (IntPtr handle, bool owner)
-               {
-                       this.handle = handle;
-                       if (!owner)
-                               NativeMethods.cairo_device_reference (handle);
-                       if (CairoDebug.Enabled)
-                               CairoDebug.OnAllocated (handle);
-               }
-
-               ~Device ()
-               {
-                       Dispose (false);
-               }
-
-               public IntPtr Handle {
-                       get {
-                               return handle;
-                       }
-               }
-               public string Status {
-                       get {
-                return ""; //System.Runtime.InteropServices.Marshal.PtrToStringAuto(NativeMethods.cairo_status_to_string (NativeMethods.cairo_device_status (handle)));
-                       }
-               }
-               public void SetThreadAware (bool value){
-                       NativeMethods.cairo_gl_device_set_thread_aware (handle, value ? 1 : 0);
-               }
-               public Status Acquire()
-               {
-                       return NativeMethods.cairo_device_acquire (handle);
-               }
-               public void Release()
-               {
-                       NativeMethods.cairo_device_release (handle);
-               }
-
-               public void Dispose ()
-               {
-                       Dispose (true);
-                       GC.SuppressFinalize (this);
-               }
-
-               protected virtual void Dispose (bool disposing)
-               {
-                       if (!disposing || CairoDebug.Enabled)
-                               CairoDebug.OnDisposed<Device> (handle, disposing);
-
-                       if (!disposing || handle == IntPtr.Zero)
-                               return;
-
-                       NativeMethods.cairo_device_destroy (handle);
-                       handle = IntPtr.Zero;
-               }
-       }
-}
-
diff --git a/Crow/src/Mono.Cairo/DirectFBSurface.cs b/Crow/src/Mono.Cairo/DirectFBSurface.cs
deleted file mode 100644 (file)
index 6443157..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-//
-// Mono.Cairo.DirectFBSurface.cs
-//
-// Authors:
-//    Alp Toker
-//
-// (C) Alp Toker, 2006.
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo {
-       public class DirectFBSurface : Surface
-       {
-               internal DirectFBSurface (IntPtr handle, bool owns) : base (handle, owns)
-               {
-               }
-
-               public DirectFBSurface (IntPtr dfb, IntPtr dfb_surface)
-                       : base (NativeMethods.cairo_directfb_surface_create (dfb, dfb_surface), true)
-               {
-               }
-       }
-}
diff --git a/Crow/src/Mono.Cairo/Distance.cs b/Crow/src/Mono.Cairo/Distance.cs
deleted file mode 100644 (file)
index d716ab1..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-//
-// Mono.Cairo.Context.cs
-//
-// Author:
-//   Duncan Mak (duncan@ximian.com)
-//   Miguel de Icaza (miguel@novell.com)
-//   Hisham Mardam Bey (hisham.mardambey@gmail.com)
-//   Alp Toker (alp@atoker.com)
-//
-// (C) Ximian Inc, 2003.
-// (C) Novell Inc, 2003.
-//
-// This is an OO wrapper API for the Cairo API.
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-namespace Crow.Cairo {
-
-       public struct Distance
-       {
-               public Distance (double dx, double dy)
-               {
-                       this.dx = dx;
-                       this.dy = dy;
-               }
-
-               double dx, dy;
-               public double Dx {
-                       get { return dx; }
-                       set { dx = value; }
-               }
-
-               public double Dy {
-                       get { return dy; }
-                       set { dy = value; }
-               }
-       }
-}
diff --git a/Crow/src/Mono.Cairo/EGLDevice.cs b/Crow/src/Mono.Cairo/EGLDevice.cs
deleted file mode 100644 (file)
index 44590c7..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-//
-// Mono.Cairo.Device.cs
-//
-// Authors:
-//                     JP Bruyère (jp_bruyere@hotmail.com)
-//
-// This is an OO wrapper API for the Cairo API
-//
-// Copyright (C) 2016 JP Bruyère
-//
-// 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.
-//
-using System;
-
-namespace Crow.Cairo
-{
-       public class EGLDevice : Device
-       {
-               public EGLDevice (IntPtr dpy, IntPtr gl_ctx) : base (NativeMethods.cairo_egl_device_create (dpy, gl_ctx), true)
-               {
-               }
-       }
-}
-
diff --git a/Crow/src/Mono.Cairo/Extend.cs b/Crow/src/Mono.Cairo/Extend.cs
deleted file mode 100644 (file)
index 4af536d..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-//
-// Mono.Cairo.Extend.cs
-//
-// Authors:
-//   Duncan Mak (duncan@ximian.com)
-//   Hisham Mardam Bey (hisham.mardambey@gmail.com)
-//   John Luke (john.luke@gmail.com)
-//
-// (C) Ximian, Inc. 2003
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-// Copyright (C) 2005 John Luke
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo
-{
-       
-       public enum Extend
-       {
-               None,
-               Repeat,
-               Reflect,
-               Pad,
-       }
-}
diff --git a/Crow/src/Mono.Cairo/FillRule.cs b/Crow/src/Mono.Cairo/FillRule.cs
deleted file mode 100644 (file)
index 80f61ed..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-//
-// Mono.Cairo.FillRule.cs
-//
-// Authors:
-//   Duncan Mak (duncan@ximian.com)
-//   Hisham Mardam Bey (hisham.mardambey@gmail.com)
-//
-// (C) Ximian, Inc. 2003
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo
-{
-       
-       public enum FillRule
-       {
-               Winding,
-               EvenOdd
-       }
-}
diff --git a/Crow/src/Mono.Cairo/Filter.cs b/Crow/src/Mono.Cairo/Filter.cs
deleted file mode 100644 (file)
index a73ea58..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-//
-// Mono.Cairo.Filter.cs
-//
-// Authors:
-//   Duncan Mak (duncan@ximian.com)
-//   Hisham Mardam Bey (hisham.mardambey@gmail.com)
-//
-// (C) Ximian, Inc. 2003
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo
-{
-       
-       public enum Filter
-       {
-               Fast,
-               Good,
-               Best,
-               Nearest,
-               Bilinear,
-               Gaussian,
-       }
-}
diff --git a/Crow/src/Mono.Cairo/FontExtents.cs b/Crow/src/Mono.Cairo/FontExtents.cs
deleted file mode 100644 (file)
index ea26d9b..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-//
-// Mono.Cairo.FontExtents.cs
-//
-// Authors: Duncan Mak (duncan@ximian.com)
-//          Hisham Mardam Bey (hisham.mardambey@gmail.com)
-//
-// (C) Ximian, Inc. 2003
-//
-// This is a simplistic binding of the Cairo API to C#. All functions
-// in cairo.h are transcribed into their C# equivelants
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-using System;
-using System.Runtime.InteropServices;
-
-namespace Crow.Cairo
-{
-       [StructLayout (LayoutKind.Sequential)]
-       public struct FontExtents
-       {
-               double ascent;
-               double descent;
-               double height;
-               double maxXAdvance;
-               double maxYAdvance;
-               
-               public double Ascent {
-                       get { return ascent; }
-                       set { ascent = value; }
-               }
-               
-               public double Descent {
-                       get { return descent; }
-                       set { descent = value; }
-               }
-               
-               public double Height {
-                       get { return height; }
-                       set { height = value; }
-               }
-               
-               public double MaxXAdvance {
-                       get { return maxXAdvance; }
-                       set { maxXAdvance = value; }
-               }
-               
-               public double MaxYAdvance {
-                       get { return maxYAdvance; }
-                       set { maxYAdvance = value; }
-               }
-
-               public FontExtents (double ascent, double descent, double height, double maxXAdvance, double maxYAdvance)
-               {
-                       this.ascent = ascent;
-                       this.descent = descent;
-                       this.height = height;
-                       this.maxXAdvance = maxXAdvance;
-                       this.maxYAdvance = maxYAdvance;
-               }
-
-               public override bool Equals (object obj)
-               {
-                       if (obj is FontExtents)
-                               return this == (FontExtents) obj;
-                       return false;
-               }
-
-               public override int GetHashCode ()
-               {
-                       return (int) Ascent ^ (int) Descent ^ (int) Height ^ (int) MaxXAdvance ^ (int) MaxYAdvance;
-               }
-
-               public static bool operator == (FontExtents extents, FontExtents other)
-               {
-                       return extents.Ascent == other.Ascent && extents.Descent == other.Descent && extents.Height == other.Height && extents.MaxXAdvance == other.MaxXAdvance && extents.MaxYAdvance == other.MaxYAdvance;
-               }
-
-               public static bool operator != (FontExtents extents, FontExtents other)
-               {
-                       return !(extents == other);
-               }
-       }
-}
diff --git a/Crow/src/Mono.Cairo/FontFace.cs b/Crow/src/Mono.Cairo/FontFace.cs
deleted file mode 100644 (file)
index 64c428e..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-//
-// Mono.Cairo.FontFace.cs
-//
-// Author:
-//   Alp Toker (alp@atoker.com)
-//   Miguel de Icaza (miguel@novell.com)
-//
-// (C) Ximian Inc, 2003.
-//
-// This is an OO wrapper API for the Cairo API.
-//
-// Copyright (C) 2004, 2007 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-using System;
-
-namespace Crow.Cairo
-{
-       public class FontFace : IDisposable
-       {
-               IntPtr handle;
-
-               internal static FontFace Lookup (IntPtr handle, bool owner)
-               {
-                       if (handle == IntPtr.Zero)
-                               return null;
-                       return new FontFace (handle, owner);
-               }
-
-               ~FontFace ()
-               {
-                       Dispose (false);
-               }
-
-               public void Dispose ()
-               {
-                       Dispose (true);
-                       GC.SuppressFinalize (this);
-               }
-
-               protected virtual void Dispose (bool disposing)
-               {
-                       if (!disposing || CairoDebug.Enabled)
-                               CairoDebug.OnDisposed<FontFace> (handle, disposing);
-
-                       if (!disposing|| handle == IntPtr.Zero)
-                               return;
-
-                       NativeMethods.cairo_font_face_destroy (handle);
-                       handle = IntPtr.Zero;
-               }
-
-               [Obsolete]
-               public FontFace (IntPtr handle) : this (handle, true)
-               {
-               }
-
-               public FontFace (IntPtr handle, bool owned)
-               {
-                       this.handle = handle;
-                       if (!owned)
-                               NativeMethods.cairo_font_face_reference (handle);
-                       if (CairoDebug.Enabled)
-                               CairoDebug.OnAllocated (handle);
-               }
-
-               public IntPtr Handle {
-                       get {
-                               return handle;
-                       }
-               }
-
-               public Status Status {
-                       get {
-                               return NativeMethods.cairo_font_face_status (handle);
-                       }
-               }
-               
-               public FontType FontType {
-                       get {
-                               return NativeMethods.cairo_font_face_get_type (handle);
-                       }
-               }
-
-               public uint ReferenceCount {
-                       get { return NativeMethods.cairo_font_face_get_reference_count (handle); }
-               }
-       }
-}
-
diff --git a/Crow/src/Mono.Cairo/FontOptions.cs b/Crow/src/Mono.Cairo/FontOptions.cs
deleted file mode 100644 (file)
index f90a3a4..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-//
-// Mono.Cairo.FontOptions.cs
-//
-// Author:
-//   John Luke (john.luke@gmail.com)
-//
-// (C) John Luke 2005.
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo
-{
-       public class FontOptions : IDisposable
-       {
-               IntPtr handle;
-
-               public FontOptions () : this (NativeMethods.cairo_font_options_create ())
-               {
-               }
-
-               ~FontOptions ()
-               {
-                       Dispose (false);
-               }
-
-               internal FontOptions (IntPtr handle)
-               {
-                       this.handle = handle;
-                       if (CairoDebug.Enabled)
-                               CairoDebug.OnAllocated (handle);
-               }
-
-               public FontOptions Copy ()
-               {
-                       return new FontOptions (NativeMethods.cairo_font_options_copy (handle));
-               }
-
-               [Obsolete ("Use Dispose()")]
-               public void Destroy ()
-               {
-                       Dispose ();
-               }
-
-               public void Dispose ()
-               {
-                       Dispose (true);
-                       GC.SuppressFinalize (this);
-               }
-
-               protected virtual void Dispose (bool disposing)
-               {
-                       if (!disposing || CairoDebug.Enabled)
-                               CairoDebug.OnDisposed<FontOptions> (handle, disposing);
-
-                       if (!disposing|| handle == IntPtr.Zero)
-                               return;
-
-                       NativeMethods.cairo_font_options_destroy (handle);
-                       handle = IntPtr.Zero;
-               }
-
-               public static bool operator == (FontOptions options, FontOptions other)
-               {
-                       return Equals (options, other);
-               }
-
-               public static bool operator != (FontOptions options, FontOptions other)
-               {
-                       return !(options == other);
-               }
-
-               public override bool Equals (object other)
-               {
-                       return Equals (other as FontOptions);
-               }
-
-               bool Equals (FontOptions options)
-               {
-                       return options != null && NativeMethods.cairo_font_options_equal (Handle, options.Handle);
-               }
-
-               public IntPtr Handle {
-                       get { return handle; }
-               }
-
-               public override int GetHashCode ()
-               {
-                       return (int) NativeMethods.cairo_font_options_hash (handle);
-               }
-               
-               public void Merge (FontOptions other)
-               {
-                       if (other == null)
-                               throw new ArgumentNullException ("other");
-                       NativeMethods.cairo_font_options_merge (handle, other.Handle);
-               }
-
-               public Antialias Antialias {
-                       get { return NativeMethods.cairo_font_options_get_antialias (handle); }
-                       set { NativeMethods.cairo_font_options_set_antialias (handle, value); }
-               }
-
-               public HintMetrics HintMetrics {
-                       get { return NativeMethods.cairo_font_options_get_hint_metrics (handle);}
-                       set { NativeMethods.cairo_font_options_set_hint_metrics (handle, value); }
-               }
-
-               public HintStyle HintStyle {
-                       get { return NativeMethods.cairo_font_options_get_hint_style (handle);}
-                       set { NativeMethods.cairo_font_options_set_hint_style (handle, value); }
-               }
-
-               public Status Status {
-                       get { return NativeMethods.cairo_font_options_status (handle); }
-               }
-
-               public SubpixelOrder SubpixelOrder {
-                       get { return NativeMethods.cairo_font_options_get_subpixel_order (handle);}
-                       set { NativeMethods.cairo_font_options_set_subpixel_order (handle, value); }
-               }
-       }
-}
-
diff --git a/Crow/src/Mono.Cairo/FontSlant.cs b/Crow/src/Mono.Cairo/FontSlant.cs
deleted file mode 100644 (file)
index b3d8a1a..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-//
-// Mono.Cairo.FontSlant.cs
-//
-// Authors:
-//   Duncan Mak (duncan@ximian.com)
-//   Hisham Mardam Bey (hisham.mardambey@gmail.com)
-//
-// (C) Ximian, Inc. 2003
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo
-{
-       
-       public enum FontSlant
-       {
-               Normal,
-               Italic,
-               Oblique
-       }
-}
diff --git a/Crow/src/Mono.Cairo/FontType.cs b/Crow/src/Mono.Cairo/FontType.cs
deleted file mode 100644 (file)
index 5db44d4..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-//
-// Mono.Cairo.FontType.cs
-//
-// Authors:
-//    John Luke
-//
-// (C) John Luke, 2006.
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo {
-
-       
-       public enum FontType
-       {
-               Toy,
-               FreeType,
-               Win32,
-               Atsui,
-       }
-}
diff --git a/Crow/src/Mono.Cairo/FontWeight.cs b/Crow/src/Mono.Cairo/FontWeight.cs
deleted file mode 100644 (file)
index 0b8fc6a..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-//
-// Mono.Cairo.FontWeight.cs
-//
-// Authors:
-//   Duncan Mak (duncan@ximian.com)
-//   Hisham Mardam Bey (hisham.mardambey@gmail.com)
-//
-// (C) Ximian, Inc. 2003
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo
-{
-       
-       public enum FontWeight
-       {
-               Normal,
-               Bold,
-       }
-}
diff --git a/Crow/src/Mono.Cairo/Format.cs b/Crow/src/Mono.Cairo/Format.cs
deleted file mode 100644 (file)
index 54c8be1..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-//
-// Mono.Cairo.Format.cs
-//
-// Authors: Duncan Mak (duncan@ximian.com)
-//          Hisham Mardam Bey (hisham.mardambey@gmail.com)
-//
-// (C) Ximian, Inc. 2003
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo
-{
-       
-       public enum Format
-       {
-               Argb32  = 0,
-               Rgb24   = 1,
-               A8      = 2,
-               A1      = 3,
-               Rgb16565 = 4,
-
-               //[Obsolete ("Use Argb32")]
-               ARGB32 = Argb32,
-               //[Obsolete ("Use Rgb24")]
-               RGB24   = Rgb24,
-       }
-}
diff --git a/Crow/src/Mono.Cairo/GLSurface.cs b/Crow/src/Mono.Cairo/GLSurface.cs
deleted file mode 100644 (file)
index 179012a..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-//
-// Mono.Cairo.GLSurface.cs
-//
-// Authors:
-//                     JP Bruyère (jp_bruyere@hotmail.com)
-//
-// This is an OO wrapper API for the Cairo API
-//
-// Copyright (C) 2016 JP Bruyère
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo {
-
-       public class GLSurface : Surface
-       {
-               
-               public GLSurface (IntPtr ptr, bool own) : base (ptr, own)
-               {}
-
-               public GLSurface (Device device, Crow.Cairo.Content content, uint tex, int width, int height)
-                       : base (NativeMethods.cairo_gl_surface_create_for_texture (device.Handle, (uint)content, tex, width, height), true)
-               {}
-
-               public GLSurface (EGLDevice device, IntPtr eglSurf, int width, int height)
-                       : base (NativeMethods.cairo_gl_surface_create_for_egl (device.Handle, eglSurf, width, height), true)
-               {}
-
-               public GLSurface (GLXDevice device, IntPtr window, int width, int height)
-                       : base (NativeMethods.cairo_gl_surface_create_for_window (device.Handle, window, width, height),true)
-               {}
-
-               public GLSurface (WGLDevice device, IntPtr hdc, int width, int height)
-                       : base (NativeMethods.cairo_gl_surface_create_for_dc (device.Handle, hdc, width, height), true)
-               {}
-
-               public void SwapBuffers(){
-                       NativeMethods.cairo_gl_surface_swapbuffers (this.Handle);
-               }
-       }
-}
diff --git a/Crow/src/Mono.Cairo/GLXDevice.cs b/Crow/src/Mono.Cairo/GLXDevice.cs
deleted file mode 100644 (file)
index 00cbce1..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-//
-// Mono.Cairo.Device.cs
-//
-// Authors:
-//                     JP Bruyère (jp_bruyere@hotmail.com)
-//
-// This is an OO wrapper API for the Cairo API
-//
-// Copyright (C) 2016 JP Bruyère
-//
-// 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.
-//
-using System;
-
-namespace Crow.Cairo
-{
-       public class GLXDevice : Device
-       {
-               public GLXDevice (IntPtr dpy, IntPtr gl_ctx) : base (NativeMethods.cairo_glx_device_create (dpy, gl_ctx), true)
-               {
-               }
-
-               public IntPtr Display {
-                       get { return NativeMethods.cairo_glx_device_get_display (Handle); }
-               }
-
-               public IntPtr Context {
-                       get { return NativeMethods.cairo_glx_device_get_context (Handle); }
-               }
-       }
-}
-
diff --git a/Crow/src/Mono.Cairo/GlitzSurface.cs b/Crow/src/Mono.Cairo/GlitzSurface.cs
deleted file mode 100644 (file)
index 4aa2498..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-//
-// Mono.Cairo.GlitzSurface.cs
-//
-// Authors:
-//    Alp Toker
-//
-// (C) Alp Toker, 2006.
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo {
-       public class GlitzSurface : Surface
-       {
-               internal GlitzSurface (IntPtr handle, bool owns) : base (handle, owns)
-               {
-               }
-
-               public GlitzSurface (IntPtr glitz_surface)
-                       : base (NativeMethods.cairo_glitz_surface_create (glitz_surface), true)
-               {
-               }
-       }
-}
diff --git a/Crow/src/Mono.Cairo/Glyph.cs b/Crow/src/Mono.Cairo/Glyph.cs
deleted file mode 100644 (file)
index ad51156..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-//
-// Mono.Cairo.Glyph.cs
-//
-// Authors: Duncan Mak (duncan@ximian.com)
-//          Hisham Mardam Bey (hisham.mardambey@gmail.com)
-//
-// (C) Ximian, Inc. 2003
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-using System;
-using System.Runtime.InteropServices;
-
-namespace Crow.Cairo
-{
-       [StructLayout(LayoutKind.Sequential)]
-       public struct Glyph
-       {
-               internal long index;
-               internal double x;
-               internal double y;
-               
-               public Glyph (long index, double x, double y)
-               {
-                       this.index = index;
-                       this.x = x;
-                       this.y = y;
-               }
-               
-               public long Index {
-                       get { return index; }
-                       set { index = value; }
-               }
-               
-               public double X {
-                       get { return x; }
-                       set { x = value; }
-               }
-               
-               public double Y {
-                       get { return y; }
-                       set { y = value; }
-               }
-
-               public override bool Equals (object obj)
-               {
-                       if (obj is Glyph)
-                               return this == (Glyph)obj;
-                       return false;
-               }
-
-               public override int GetHashCode ()
-               {
-                       return (int) Index ^ (int) X ^ (int) Y;
-               }
-
-               internal static IntPtr GlyphsToIntPtr (Glyph[] glyphs)
-               {
-                       int size = Marshal.SizeOf (glyphs[0]);
-                       IntPtr dest = Marshal.AllocHGlobal (size * glyphs.Length);
-                       long pos = dest.ToInt64 ();
-                       for (int i = 0; i < glyphs.Length; i++, pos += size)
-                               Marshal.StructureToPtr (glyphs[i], (IntPtr) pos, false);
-                       return dest;
-               }
-
-               public static bool operator == (Glyph glyph, Glyph other)
-               {
-                       return glyph.Index == other.Index && glyph.X == other.X && glyph.Y == other.Y;
-               }
-
-               public static bool operator != (Glyph glyph, Glyph other)
-               {
-                       return !(glyph == other);
-               }
-       }
-}
diff --git a/Crow/src/Mono.Cairo/Gradient.cs b/Crow/src/Mono.Cairo/Gradient.cs
deleted file mode 100644 (file)
index 427cc05..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Mono.Cairo.Gradient.cs
-//
-// Author: Jordi Mas (jordi@ximian.com)
-//         Hisham Mardam Bey (hisham.mardambey@gmail.com)
-// (C) Ximian Inc, 2004.
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-using System;
-using Color = Crow.Color;
-namespace Crow.Cairo {
-
-       public class Gradient : Pattern
-       {
-               protected Gradient (IntPtr handle, bool owned) : base (handle, owned)
-               {
-               }
-
-               [Obsolete]
-               protected Gradient ()
-               {
-               }
-
-               public int ColorStopCount {
-                       get {
-                               int cnt;
-                               NativeMethods.cairo_pattern_get_color_stop_count (Handle, out cnt);
-                               return cnt;
-                       }
-               }
-
-               public Status AddColorStop (double offset, Color c)
-               {
-                       NativeMethods.cairo_pattern_add_color_stop_rgba (Handle, offset, c.R, c.G, c.B, c.A);
-                       return Status;
-               }
-
-               public Status AddColorStopRgb (double offset, Color c)
-               {
-                       NativeMethods.cairo_pattern_add_color_stop_rgb (Handle, offset, c.R, c.G, c.B);
-                       return Status;
-               }
-       }
-}
-
diff --git a/Crow/src/Mono.Cairo/HintMetrics.cs b/Crow/src/Mono.Cairo/HintMetrics.cs
deleted file mode 100644 (file)
index d830f3e..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-//
-// Mono.Cairo.HintMetrics.cs
-//
-// Authors: Duncan Mak (duncan@ximian.com)
-//          Hisham Mardam Bey (hisham.mardambey@gmail.com)
-//
-// (C) Ximian, Inc. 2003
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo
-{
-       
-       public enum HintMetrics
-       {
-               Default,
-               Off,
-               On,
-       }
-}
diff --git a/Crow/src/Mono.Cairo/HintStyle.cs b/Crow/src/Mono.Cairo/HintStyle.cs
deleted file mode 100644 (file)
index 343daf3..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-//
-// Mono.Cairo.HintStyle.cs
-//
-// Authors: Duncan Mak (duncan@ximian.com)
-//          Hisham Mardam Bey (hisham.mardambey@gmail.com)
-//
-// (C) Ximian, Inc. 2003
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo
-{
-       
-       public enum HintStyle
-       {
-               Default,
-               None,
-               Slight,
-               Medium,
-               Full,
-       }
-}
diff --git a/Crow/src/Mono.Cairo/ImageSurface.cs b/Crow/src/Mono.Cairo/ImageSurface.cs
deleted file mode 100644 (file)
index 1737fe1..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-//
-// Mono.Cairo.ImageSurface.cs
-//
-// Authors:
-//    Duncan Mak
-//    Miguel de Icaza.
-//
-// (C) Ximian Inc, 2003.
-// (C) Novell, Inc. 2003.
-//
-// This is an OO wrapper API for the Cairo API
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-using System;
-using System.Runtime.InteropServices;
-
-namespace Crow.Cairo {
-
-       public class ImageSurface : Surface
-       {
-               internal ImageSurface (IntPtr handle, bool owns) : base (handle, owns)
-               {
-               }
-
-               public ImageSurface (Format format, int width, int height)
-                       : base (NativeMethods.cairo_image_surface_create (format, width, height), true)
-               {
-               }
-
-               [Obsolete ("Use ImageSurface (byte[] data, Cairo.Format format, int width, int height, int stride)")]
-               public ImageSurface (ref byte[] data, Crow.Cairo.Format format, int width, int height, int stride)
-                       : this (data, format, width, height, stride)
-               {
-               }
-
-               public ImageSurface (byte[] data, Format format, int width, int height, int stride)
-                       : base (NativeMethods.cairo_image_surface_create_for_data (data, format, width, height, stride), true)
-               {
-               }
-
-               public ImageSurface (IntPtr data, Format format, int width, int height, int stride)
-                       : base (NativeMethods.cairo_image_surface_create_for_data (data, format, width, height, stride), true)
-               {
-               }
-
-               public ImageSurface (string filename)
-                       : base (NativeMethods.cairo_image_surface_create_from_png (filename), true)
-               {
-               }
-
-               public int Width {
-                       get { return NativeMethods.cairo_image_surface_get_width (Handle); }
-               }
-
-               public int Height {
-                       get { return NativeMethods.cairo_image_surface_get_height (Handle); }
-               }
-
-               public byte[] Data {
-                       get {
-                               IntPtr ptr = NativeMethods.cairo_image_surface_get_data (Handle);
-                               int length = Height * Stride;
-                               byte[] data = new byte[length];
-                               Marshal.Copy (ptr, data, 0, length);
-                               return data;
-                       }
-               }
-
-               public IntPtr DataPtr {
-                       get {
-                               return NativeMethods.cairo_image_surface_get_data (Handle);
-                       }
-               }
-
-               public Format Format {
-                       get { return NativeMethods.cairo_image_surface_get_format (Handle); }
-               }
-
-               public int Stride {
-                       get { return NativeMethods.cairo_image_surface_get_stride (Handle); }
-               }
-       }
-}
diff --git a/Crow/src/Mono.Cairo/LineCap.cs b/Crow/src/Mono.Cairo/LineCap.cs
deleted file mode 100644 (file)
index 1560cda..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-//
-// Mono.Cairo.LineCap.cs
-//
-// Authors: Duncan Mak (duncan@ximian.com)
-//          Hisham Mardam Bey (hisham.mardambey@gmail.com)
-//
-// (C) Ximian, Inc. 2003
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo
-{
-       
-       public enum LineCap
-       {
-               Butt,
-               Round,
-               Square,
-       }
-}
diff --git a/Crow/src/Mono.Cairo/LineJoin.cs b/Crow/src/Mono.Cairo/LineJoin.cs
deleted file mode 100644 (file)
index 1d5389b..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-//
-// Mono.Cairo.LineJoin.cs
-//
-// Authors: Duncan Mak (duncan@ximian.com)
-//          Hisham Mardam Bey (hisham.mardambey@gmail.com)
-//
-// (C) Ximian, Inc. 2003
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo
-{
-       
-       public enum LineJoin
-       {
-               Miter,
-               Round,
-               Bevel
-       }
-}
-
diff --git a/Crow/src/Mono.Cairo/LinearGradient.cs b/Crow/src/Mono.Cairo/LinearGradient.cs
deleted file mode 100644 (file)
index 100d1e6..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-//
-// Mono.Cairo.LinearGradient.cs
-//
-// Author: Jordi Mas (jordi@ximian.com)
-//         Hisham Mardam Bey (hisham.mardambey@gmail.com)
-// (C) Ximian Inc, 2004.
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo {
-
-       public class LinearGradient : Gradient
-       {
-               internal LinearGradient (IntPtr handle, bool owned) : base (handle, owned)
-               {
-               }
-
-               public LinearGradient (double x0, double y0, double x1, double y1)
-                       : base (NativeMethods.cairo_pattern_create_linear (x0, y0, x1, y1), true)
-               {
-               }
-
-               public PointD[] LinearPoints {
-                       get {
-                               double x0, y0, x1, y1;
-                               PointD[] points = new PointD [2];
-
-                               NativeMethods.cairo_pattern_get_linear_points (Handle, out x0, out y0, out x1, out y1);
-
-                               points[0] = new PointD (x0, y0);
-                               points[1] = new PointD (x1, y1);
-                               return points;
-                       }
-               }
-       }
-}
-
diff --git a/Crow/src/Mono.Cairo/Matrix.cs b/Crow/src/Mono.Cairo/Matrix.cs
deleted file mode 100644 (file)
index 9c30845..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-//
-// Mono.Cairo.Matrix.cs
-//
-// Author: Duncan Mak
-//         Hisham Mardam Bey (hisham.mardambey@gmail.com)
-//         Idan Gazit (idan@fastmail.fm)
-//
-// (C) Ximian Inc, 2003 - 2005.
-//
-// This is an OO wrapper API for the Cairo API
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-using System;
-using System.Runtime.InteropServices;
-
-namespace Crow.Cairo {
-
-       [StructLayout(LayoutKind.Sequential)]
-       public class Matrix //: ICloneable
-       {
-               public double Xx;
-               public double Yx;
-               public double Xy;
-               public double Yy;
-               public double X0;
-               public double Y0;
-
-               public Matrix (double xx, double yx, double xy, double yy,
-                               double x0, double y0)
-               {
-                       this.Xx = xx; this.Yx = yx; this.Xy = xy;
-                       this.Yy = yy; this.X0 = x0; this.Y0 = y0;
-               }
-
-               public Matrix ()
-               {
-                       this.InitIdentity ();
-               }
-
-               public bool IsIdentity ()
-               {
-                       return (this == new Matrix ());
-               }
-
-               public void InitIdentity ()
-               {
-                       // this.Init(1,0,0,1,0,0);
-                       NativeMethods.cairo_matrix_init_identity (this);
-               }
-
-               public void Init (double xx, double yx, double xy, double yy,
-                                 double x0, double y0)
-               {
-                       this.Xx = xx; this.Yx = yx; this.Xy = xy;
-                       this.Yy = yy; this.X0 = x0; this.Y0 = y0;
-               }
-
-               public void InitTranslate (double tx, double ty)
-               {
-                       //this.Init (1, 0, 0, 1, tx, ty);
-                       NativeMethods.cairo_matrix_init_translate (this, tx, ty);
-               }
-
-               public void Translate (double tx, double ty)
-               {
-                       NativeMethods.cairo_matrix_translate (this, tx, ty);
-               }
-
-               public void InitScale (double sx, double sy)
-               {
-                       //this.Init (sx, 0, 0, sy, 0, 0);
-                       NativeMethods.cairo_matrix_init_scale (this, sx, sy);
-               }
-
-               public void Scale (double sx, double sy)
-               {
-                       NativeMethods.cairo_matrix_scale (this, sx, sy);
-               }
-
-               public void InitRotate (double radians)
-               {
-                       /*
-                       double s, c;
-                       s = Math.Sin (radians);
-                       c = Math.Cos (radians);
-                       this.Init (c, s, -s, c, 0, 0);
-                       */
-                       NativeMethods.cairo_matrix_init_rotate (this, radians);
-               }
-
-               public void Rotate (double radians)
-               {
-                       NativeMethods.cairo_matrix_rotate (this, radians);
-               }
-
-               public Crow.Cairo.Status Invert ()
-               {
-                       return NativeMethods.cairo_matrix_invert (this);
-               }
-
-               public void Multiply (Matrix b)
-               {
-                       Matrix a = (Matrix) this.Clone ();
-                       NativeMethods.cairo_matrix_multiply (this, a, b);
-               }
-
-               public static Matrix Multiply (Matrix a, Matrix b) {
-                       Matrix result = new Matrix ();
-                       NativeMethods.cairo_matrix_multiply (result, a, b);
-                       return result;
-               }
-
-
-               public void TransformDistance (ref double dx, ref double dy)
-               {
-                       NativeMethods.cairo_matrix_transform_distance (this, ref dx, ref dy);
-               }
-
-               public void TransformPoint (ref double x, ref double y)
-               {
-                       NativeMethods.cairo_matrix_transform_point (this, ref x, ref y);
-               }
-
-               public override String ToString ()
-               {
-                       String s = String.Format ("xx:{0:##0.0#} yx:{1:##0.0#} xy:{2:##0.0#} yy:{3:##0.0#} x0:{4:##0.0#} y0:{5:##0.0#}",
-                               this.Xx, this.Yx, this.Xy, this.Yy, this.X0, this.Y0);
-                       return s;
-               }
-
-               public static bool operator == (Matrix lhs, Matrix rhs)
-               {
-                       return (lhs.Xx == rhs.Xx &&
-                               lhs.Xy == rhs.Xy &&
-                               lhs.Yx == rhs.Yx &&
-                               lhs.Yy == rhs.Yy &&
-                               lhs.X0 == rhs.X0 &&
-                               lhs.Y0 == rhs.Y0 );
-               }
-
-               public static bool operator != (Matrix lhs, Matrix rhs)
-               {
-                       return !(lhs==rhs);
-               }
-
-
-
-               public override bool Equals(object o)
-               {
-                       if (! (o is Matrix))
-                               return false;
-                       else
-                               return (this == (Matrix) o);
-               }
-
-               public override int GetHashCode()
-               {
-                       return  (int)this.Xx ^ (int)this.Xx>>32 ^
-                               (int)this.Xy ^ (int)this.Xy>>32 ^
-                               (int)this.Yx ^ (int)this.Yx>>32 ^
-                               (int)this.Yy ^ (int)this.Yy>>32 ^
-                               (int)this.X0 ^ (int)this.X0>>32 ^
-                               (int)this.Y0 ^ (int)this.Y0>>32;
-               }
-
-               public object Clone()
-               {
-                       return this.MemberwiseClone ();
-               }
-
-       }
-}
diff --git a/Crow/src/Mono.Cairo/MeshPattern.cs b/Crow/src/Mono.Cairo/MeshPattern.cs
deleted file mode 100644 (file)
index 96bc3c8..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-//
-// Mono.Cairo.Pattern.cs
-//
-// Author: Jordi Mas (jordi@ximian.com)
-//         Hisham Mardam Bey (hisham.mardambey@gmail.com)
-// (C) Ximian Inc, 2004.
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo {
-
-       public class MeshPattern : Pattern
-       {
-               internal MeshPattern (IntPtr handle, bool owned) : base (handle, owned)
-               {
-               }
-
-               public MeshPattern ()
-                       : base (NativeMethods.cairo_pattern_create_mesh(), true)
-               {
-               }
-
-               //no idea why this is here, the base one is identical, but we can't remove it now
-               public new Extend Extend {
-                       set { NativeMethods.cairo_pattern_set_extend (Handle, value); }
-                       get { return NativeMethods.cairo_pattern_get_extend (Handle); }
-               }
-
-               public Filter Filter {
-                       set { NativeMethods.cairo_pattern_set_filter (Handle, value); }
-                       get { return NativeMethods.cairo_pattern_get_filter (Handle); }
-               }
-
-               public void BeginPatch(){
-                       NativeMethods.cairo_mesh_pattern_begin_patch (Handle);
-               }
-               public void EndPatch(){
-                       NativeMethods.cairo_mesh_pattern_end_patch (Handle);
-               }
-               public void MoveTo(double x, double y){
-                       NativeMethods.cairo_mesh_pattern_move_to (Handle, x, y);
-               }
-               public void LineTo(double x, double y){
-                       NativeMethods.cairo_mesh_pattern_line_to (Handle, x, y);
-               }
-               public void CurveTo(double x1, double y1, double x2, double y2, double x3, double y3)
-               {
-                       NativeMethods.cairo_mesh_pattern_curve_to (Handle, x1, y1, x2, y2, x3, y3);
-               }
-               public void SetControlPoint(uint point_num, double x, double y){
-                       NativeMethods.cairo_mesh_pattern_set_control_point (Handle, point_num, x, y);
-               }
-               public void SetCornerColorRGB(uint corner_num, double r, double g, double b){
-                       NativeMethods.cairo_mesh_pattern_set_corner_color_rgb (Handle, corner_num, r, g, b);
-               }
-               public void SetCornerColorRGBA(uint corner_num, double r, double g, double b, double a){
-                       NativeMethods.cairo_mesh_pattern_set_corner_color_rgba (Handle, corner_num, r, g, b, a);
-               }
-               public uint PatchCount {
-                       get {
-                               uint count = 0;
-                               NativeMethods.cairo_mesh_pattern_get_patch_count(Handle, out count);
-                               return count;
-                       }       
-               }
-               public Path GetPath(uint patch_num){
-                       return new Path(NativeMethods.cairo_mesh_pattern_get_path(Handle, patch_num));
-               }
-               public void GetControlPoint(){
-               }
-               public void GetCornerColorRGBA(){
-                       
-               }
-       }
-}
-
diff --git a/Crow/src/Mono.Cairo/NativeMethods-internal.cs b/Crow/src/Mono.Cairo/NativeMethods-internal.cs
deleted file mode 100644 (file)
index 6e6d507..0000000
+++ /dev/null
@@ -1,1026 +0,0 @@
-//
-// Cairo.cs - a simplistic binding of the Cairo API to C#.
-//
-// Authors: Duncan Mak (duncan@ximian.com)
-//          Hisham Mardam Bey (hisham.mardambey@gmail.com)
-//          John Luke (john.luke@gmail.com)
-//          Alp Toker (alp@atoker.com)
-//
-// (C) Ximian, Inc. 2003
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-// Copyright (C) 2005 John Luke
-// Copyright (C) 2006 Alp Toker
-//
-// 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.
-//
-
-using System;
-using System.Runtime.InteropServices;
-using System.Runtime.CompilerServices;
-
-namespace Cairo
-{
-       // sort the functions like in the following page so it is easier to find what is missing
-       // http://cairographics.org/manual/index-all.html
-
-       public static class NativeMethods
-       {
-               #if MONOTOUCH
-               const string cairo = "__Internal";
-               #else
-               const string cairo = "libcairo-2.dll";
-               #endif
-
-               //[MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               //public static extern void cairo_append_path (IntPtr cr, Path path);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_arc (IntPtr cr, double xc, double yc, double radius, double angle1, double angle2);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_arc_negative (IntPtr cr, double xc, double yc, double radius, double angle1, double angle2);
-
-               //              [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               //              public static extern IntPtr cairo_atsui_font_face_create_for_atsu_font_id (IntPtr font_id);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_clip (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_clip_preserve (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_clip_extents (IntPtr cr, out double x1, out double y1, out double x2, out double y2);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_close_path (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_copy_page (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_copy_path (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_copy_path_flat (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_append_path (IntPtr cr, IntPtr path);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_create (IntPtr target);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_curve_to (IntPtr cr, double x1, double y1, double x2, double y2, double x3, double y3);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_debug_reset_static_data ();
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_destroy (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_device_to_user (IntPtr cr, ref double x, ref double y);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_device_to_user_distance (IntPtr cr, ref double dx, ref double dy);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_fill (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_fill_extents (IntPtr cr, out double x1, out double y1, out double x2, out double y2);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_fill_preserve (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_font_extents (IntPtr cr, out FontExtents extents);
-
-               #region FontFace
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_font_face_destroy (IntPtr font_face);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern FontType cairo_font_face_get_type (IntPtr font_face);
-
-               //[MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               //public static extern void cairo_font_face_get_user_data (IntPtr font_face);
-
-               //[MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               //public static extern void cairo_font_face_set_user_data (IntPtr font_face);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_font_face_reference (IntPtr font_face);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Status cairo_font_face_status (IntPtr font_face);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern uint cairo_font_face_get_reference_count (IntPtr surface);
-               #endregion
-
-               #region FontOptions
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_font_options_copy (IntPtr original);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_font_options_create ();
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_font_options_destroy (IntPtr options);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern bool cairo_font_options_equal (IntPtr options, IntPtr other);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Antialias cairo_font_options_get_antialias (IntPtr options);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern HintMetrics cairo_font_options_get_hint_metrics (IntPtr options);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern HintStyle cairo_font_options_get_hint_style (IntPtr options);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern SubpixelOrder cairo_font_options_get_subpixel_order (IntPtr options);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern long cairo_font_options_hash (IntPtr options);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_font_options_merge (IntPtr options, IntPtr other);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_font_options_set_antialias (IntPtr options, Antialias aa);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_font_options_set_hint_metrics (IntPtr options, HintMetrics metrics);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_font_options_set_hint_style (IntPtr options, HintStyle style);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_font_options_set_subpixel_order (IntPtr options, SubpixelOrder order);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Status cairo_font_options_status (IntPtr options);
-               #endregion
-
-               #region Freetype / FontConfig
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_ft_font_face_create_for_ft_face (IntPtr face, int load_flags);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_ft_font_face_create_for_pattern (IntPtr fc_pattern);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_ft_font_options_substitute (FontOptions options, IntPtr pattern);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_ft_scaled_font_lock_face (IntPtr scaled_font);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_ft_scaled_font_unlock_face (IntPtr scaled_font);
-               #endregion
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Antialias cairo_get_antialias (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_get_current_point (IntPtr cr, out double x, out double y);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern FillRule cairo_get_fill_rule (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_get_font_face (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_get_font_matrix (IntPtr cr, out Matrix matrix);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_get_font_options (IntPtr cr, IntPtr options);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_get_group_target (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern LineCap cairo_get_line_cap (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern LineJoin cairo_get_line_join (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern double cairo_get_line_width (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_get_matrix (IntPtr cr, Matrix matrix);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern double cairo_get_miter_limit (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Operator cairo_get_operator (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern uint cairo_get_reference_count (IntPtr surface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_get_source (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_get_target (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern double cairo_get_tolerance (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_glitz_surface_create (IntPtr surface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_glyph_extents (IntPtr cr, IntPtr glyphs, int num_glyphs, out TextExtents extents);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_glyph_path (IntPtr cr, IntPtr glyphs, int num_glyphs);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               [return: MarshalAs (UnmanagedType.U1)]
-               public static extern bool cairo_has_current_point (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_identity_matrix (IntPtr cr);
-
-               #region Image Surface
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_image_surface_create (Cairo.Format format, int width, int height);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               public static extern IntPtr cairo_image_surface_create_for_data (byte[] data, Cairo.Format format, int width, int height, int stride);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_image_surface_create_for_data (IntPtr data, Cairo.Format format, int width, int height, int stride);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_image_surface_create_from_png  (string filename);
-
-               //[MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               //public static extern IntPtr cairo_image_surface_create_from_png_stream  (string filename);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_image_surface_get_data (IntPtr surface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Format cairo_image_surface_get_format (IntPtr surface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern int cairo_image_surface_get_height (IntPtr surface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern int cairo_image_surface_get_stride (IntPtr surface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern int cairo_image_surface_get_width  (IntPtr surface);
-               #endregion
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               [return: MarshalAs (UnmanagedType.U1)]
-               public static extern bool cairo_in_clip (IntPtr cr, double x, double y);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               [return: MarshalAs (UnmanagedType.U1)]
-               public static extern bool cairo_in_fill (IntPtr cr, double x, double y);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               [return: MarshalAs (UnmanagedType.U1)]
-               public static extern bool cairo_in_stroke (IntPtr cr, double x, double y);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_line_to (IntPtr cr, double x, double y);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_mask (IntPtr cr, IntPtr pattern);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_mask_surface (IntPtr cr, IntPtr surface, double x, double y);
-
-               #region Matrix
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_matrix_init (Matrix matrix, double xx, double yx, double xy, double yy, double x0, double y0);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_matrix_init_identity (Matrix matrix);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_matrix_init_rotate (Matrix matrix, double radians);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_matrix_init_scale (Matrix matrix, double sx, double sy);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_matrix_init_translate (Matrix matrix, double tx, double ty);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Status cairo_matrix_invert (Matrix matrix);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_matrix_multiply (Matrix result, Matrix a, Matrix b);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_matrix_scale (Matrix matrix, double sx, double sy);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_matrix_rotate (Matrix matrix, double radians);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_matrix_transform_distance (Matrix matrix, ref double dx, ref double dy);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_matrix_transform_point (Matrix matrix, ref double x, ref double y);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_matrix_translate (Matrix matrix, double tx, double ty);
-               #endregion
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_move_to (IntPtr cr, double x, double y);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_new_path (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_new_sub_path (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_paint (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_paint_with_alpha (IntPtr cr, double alpha);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_path_destroy (IntPtr path);
-
-               #region Pattern
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_pattern_add_color_stop_rgb (IntPtr pattern, double offset, double red, double green, double blue);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_pattern_add_color_stop_rgba (IntPtr pattern, double offset, double red, double green, double blue, double alpha);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Status cairo_pattern_get_color_stop_count (IntPtr pattern, out int count);
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Status cairo_pattern_get_color_stop_rgba (IntPtr pattern, int index, out double offset, out double red, out double green, out double blue, out double alpha);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_pattern_create_for_surface (IntPtr surface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Status cairo_pattern_get_surface (IntPtr pattern, out IntPtr surface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_pattern_create_linear (double x0, double y0, double x1, double y1);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Status cairo_pattern_get_linear_points (IntPtr pattern, out double x0, out double y0, out double x1, out double y1);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_pattern_create_radial (double cx0, double cy0, double radius0, double cx1, double cy1, double radius1);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Status cairo_pattern_get_radial_circles (IntPtr pattern, out double x0, out double y0, out double r0, out double x1, out double y1, out double r1);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_pattern_create_rgb (double r, double g, double b);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_pattern_create_rgba (double r, double g, double b, double a);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Status cairo_pattern_get_rgba (IntPtr pattern, out double red, out double green, out double blue, out double alpha);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_pattern_destroy (IntPtr pattern);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Extend cairo_pattern_get_extend (IntPtr pattern);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Filter cairo_pattern_get_filter (IntPtr pattern);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_pattern_get_matrix (IntPtr pattern, Matrix matrix);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern PatternType cairo_pattern_get_type (IntPtr pattern);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_pattern_reference (IntPtr pattern);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_pattern_set_extend (IntPtr pattern, Extend extend);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_pattern_set_filter (IntPtr pattern, Filter filter);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_pattern_set_matrix (IntPtr pattern, Matrix matrix);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Status cairo_pattern_status (IntPtr pattern);
-               #endregion
-
-               #region PdfSurface
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_pdf_surface_create (string filename, double width, double height);
-
-               //[MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               //public static extern IntPtr cairo_pdf_surface_create_for_stream (string filename, double width, double height);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_pdf_surface_set_size (IntPtr surface, double x, double y);
-               #endregion
-
-               #region PostscriptSurface
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_ps_surface_create (string filename, double width, double height);
-
-               //[MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               //public static extern IntPtr cairo_ps_surface_create_for_stream (string filename, double width, double height);
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_ps_surface_dsc_begin_page_setup (IntPtr surface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_ps_surface_dsc_begin_setup (IntPtr surface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_ps_surface_dsc_comment (IntPtr surface, string comment);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_ps_surface_set_size (IntPtr surface, double x, double y);
-               #endregion
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_pop_group (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_pop_group_to_source (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_push_group (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_push_group_with_content (IntPtr cr, Content content);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_quartz_surface_create (IntPtr context, bool flipped, int width, int height);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_rectangle (IntPtr cr, double x, double y, double width, double height);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_reference (IntPtr cr);
-
-               #region Regions
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern bool cairo_region_contains_point (IntPtr region, int x, int y);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern RegionOverlap cairo_region_contains_rectangle (IntPtr region, ref Crow.Rectangle rectangle);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_region_copy (IntPtr original);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_region_create ();
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_region_create_rectangle (ref Crow.Rectangle rect);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_region_create_rectangles (IntPtr rects, int count);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_region_destroy (IntPtr region);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern bool cairo_region_equal (IntPtr a, IntPtr b);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_region_get_extents (IntPtr region, out Crow.Rectangle extents);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_region_get_rectangle (IntPtr region, int nth, out Crow.Rectangle rectangle);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Status cairo_region_intersect (IntPtr dst, IntPtr other);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Status cairo_region_intersect_rectangle (IntPtr dst, ref Crow.Rectangle rectangle);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern bool cairo_region_is_empty (IntPtr region);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern int cairo_region_num_rectangles (IntPtr region);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_region_reference (IntPtr region);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Status cairo_region_status (IntPtr region);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Status cairo_region_subtract (IntPtr dst, IntPtr other);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Status cairo_region_subtract_rectangle (IntPtr dst, ref Crow.Rectangle rectangle);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_region_translate (IntPtr region, int dx, int dy);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Status cairo_region_union (IntPtr dst, IntPtr other);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Status cairo_region_union_rectangle (IntPtr dst, ref Crow.Rectangle rectangle);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Status cairo_region_xor (IntPtr dst, IntPtr other);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Status cairo_region_xor_rectangle (IntPtr dst, ref Crow.Rectangle rectangle);
-               #endregion
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_rel_curve_to (IntPtr cr, double dx1, double dy1, double dx2, double dy2, double dx3, double dy3);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_rel_line_to (IntPtr cr, double dx, double dy);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_rel_move_to (IntPtr cr, double dx, double dy);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_reset_clip (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_restore (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_rotate (IntPtr cr, double angle);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_save (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_scale (IntPtr cr, double sx, double sy);
-
-               #region ScaledFont
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_scaled_font_create (IntPtr fontFace, Matrix matrix, Matrix ctm, IntPtr options);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_scaled_font_destroy (IntPtr scaled_font);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_scaled_font_extents (IntPtr scaled_font, out FontExtents extents);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_scaled_font_get_ctm (IntPtr scaled_font, out Matrix matrix);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_scaled_font_get_font_face (IntPtr scaled_font);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_scaled_font_get_font_matrix (IntPtr scaled_font, out Matrix matrix);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_scaled_font_get_font_options (IntPtr scaled_font);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern FontType cairo_scaled_font_get_type (IntPtr scaled_font);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_scaled_font_glyph_extents (IntPtr scaled_font, IntPtr glyphs, int num_glyphs, out TextExtents extents);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_scaled_font_reference (IntPtr scaled_font);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Status cairo_scaled_font_status (IntPtr scaled_font);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_set_scaled_font (IntPtr cr, IntPtr scaled_font);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_get_scaled_font (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               public static extern void cairo_scaled_font_text_extents (IntPtr scaled_font, byte[] utf8, out TextExtents extents);
-               #endregion
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_select_font_face (IntPtr cr, string family, FontSlant slant, FontWeight weight);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_set_antialias (IntPtr cr, Antialias antialias);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               public static extern void cairo_set_dash (IntPtr cr, double [] dashes, int ndash, double offset);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_get_dash (IntPtr cr, IntPtr dashes, out double offset);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern int cairo_get_dash_count (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_set_fill_rule (IntPtr cr, Cairo.FillRule fill_rule);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_set_font_face (IntPtr cr, IntPtr fontFace);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               public static extern void cairo_set_font_matrix (IntPtr cr, Matrix matrix);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_set_font_options (IntPtr cr, IntPtr options);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_set_font_size (IntPtr cr, double size);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_set_line_cap (IntPtr cr, LineCap line_cap);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_set_line_join (IntPtr cr, LineJoin line_join);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_set_line_width (IntPtr cr, double width);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_set_matrix (IntPtr cr, Matrix matrix);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_set_miter_limit (IntPtr cr, double limit);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_set_operator (IntPtr cr, Cairo.Operator op);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_set_source (IntPtr cr, IntPtr pattern);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_set_source_rgb (IntPtr cr, double red, double green, double blue);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_set_source_rgba (IntPtr cr, double red, double green, double blue, double alpha);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_set_source_surface (IntPtr cr, IntPtr surface, double x, double y);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_set_tolerance (IntPtr cr, double tolerance);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_show_glyphs (IntPtr ct, IntPtr glyphs, int num_glyphs);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_show_page (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_show_text (IntPtr cr, string str);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Status cairo_status (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_status_to_string (Status status);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_stroke (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_stroke_extents (IntPtr cr, out double x1, out double y1, out double x2, out double y2);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_stroke_preserve (IntPtr cr);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_rectangle_list_destroy (IntPtr rectangle_list);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_copy_clip_rectangle_list (IntPtr cr);
-
-               #region Surface
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_surface_create_similar (IntPtr surface, Cairo.Content content, int width, int height);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_surface_destroy (IntPtr surface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_surface_finish (IntPtr surface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_surface_flush (IntPtr surface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Content cairo_surface_get_content (IntPtr surface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_surface_get_device_offset (IntPtr surface, out double x, out double y);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_surface_get_font_options (IntPtr surface, IntPtr FontOptions);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern uint cairo_surface_get_reference_count (IntPtr surface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern SurfaceType cairo_surface_get_type (IntPtr surface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_surface_mark_dirty (IntPtr surface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_surface_mark_dirty_rectangle (IntPtr surface, int x, int y, int width, int height);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_surface_reference (IntPtr surface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_surface_set_device_offset (IntPtr surface, double x, double y);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_surface_set_fallback_resolution (IntPtr surface, double x, double y);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Status cairo_surface_status (IntPtr surface);
-               #endregion
-
-               #region SVG surface
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_surface_write_to_png (IntPtr surface, string filename);
-
-               //[MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               //public static extern void cairo_surface_write_to_png_stream (IntPtr surface, WriteFunc writeFunc);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_svg_surface_create (string fileName, double width, double height);
-
-               //[MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               //public static extern IntPtr cairo_svg_surface_create_for_stream (double width, double height);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_svg_surface_restrict_to_version (IntPtr surface, SvgVersion version);
-               #endregion
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_text_extents (IntPtr cr, string txt, out TextExtents extents);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               public static extern void cairo_text_path (IntPtr ct, byte[] utf8);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_transform (IntPtr cr, Matrix matrix);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_translate (IntPtr cr, double tx, double ty);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_user_to_device (IntPtr cr, ref double x, ref double y);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_user_to_device_distance (IntPtr cr, ref double dx, ref double dy);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern int cairo_version ();
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_version_string ();
-
-               #region DirectFBSurface
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_directfb_surface_create (IntPtr dfb, IntPtr surface);
-               #endregion
-
-               #region win32 fonts
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_win32_font_face_create_for_logfontw (IntPtr logfontw);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_win32_scaled_font_done_font (IntPtr scaled_font);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern double cairo_win32_scaled_font_get_metrics_factor (IntPtr scaled_font);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Status cairo_win32_scaled_font_select_font (IntPtr scaled_font, IntPtr hdc);
-               #endregion
-
-               #region win32 surface
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_win32_surface_create (IntPtr hdc);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_win32_surface_create_with_ddb (IntPtr hdc, Format format, int width, int height);
-               #endregion
-
-               #region XcbSurface
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_xcb_surface_create (IntPtr connection, uint drawable, IntPtr visual, int width, int height);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_xcb_surface_create_for_bitmap (IntPtr connection, uint bitmap, IntPtr screen, int width, int height);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_xcb_surface_set_size (IntPtr surface, int width, int height);
-               #endregion
-
-               #region XlibSurface
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_xlib_surface_create (IntPtr display, IntPtr drawable, IntPtr visual, int width, int height);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_xlib_surface_create_for_bitmap (IntPtr display, IntPtr bitmap, IntPtr screen, int width, int height);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern int cairo_xlib_surface_get_depth (IntPtr surface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_xlib_surface_get_display (IntPtr surface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_xlib_surface_get_drawable (IntPtr surface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern int cairo_xlib_surface_get_height (IntPtr surface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_xlib_surface_get_screen (IntPtr surface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_xlib_surface_get_visual (IntPtr surface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern int cairo_xlib_surface_get_width (IntPtr surface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_xlib_surface_set_drawable (IntPtr surface, IntPtr drawable, int width, int height);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_xlib_surface_set_size (IntPtr surface, int width, int height);
-               #endregion
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_gl_device_set_thread_aware(IntPtr device, int value);
-
-               #region GLSurface
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_gl_surface_create (IntPtr device, uint content, int width, int height);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_gl_surface_create_for_texture (IntPtr device, uint content, uint tex, int width, int height);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_gl_surface_set_size (IntPtr surface, int width, int height);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern int cairo_gl_surface_get_width (IntPtr surface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern int cairo_gl_surface_get_height (IntPtr surface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_gl_surface_swapbuffers (IntPtr surf);
-               #endregion
-
-               #region GLX Functions
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_glx_device_create (IntPtr dpy, IntPtr gl_ctx);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_glx_device_get_display (IntPtr device);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_glx_device_get_context (IntPtr device);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_gl_surface_create_for_window (IntPtr device, IntPtr window, int width, int height);
-               #endregion
-
-               #region WGL Fucntions
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_wgl_device_create (IntPtr hglrc);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_wgl_device_get_context (IntPtr device);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_gl_surface_create_for_dc (IntPtr device, IntPtr hdc, int width, int height);
-               #endregion
-
-               #region EGL Functions
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_egl_device_create (IntPtr dpy, IntPtr gl_ctx);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_gl_surface_create_for_egl (IntPtr device, IntPtr eglSurface, int width, int height);
-               #endregion
-
-               #region DRM Functions
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_drm_device_get (IntPtr udev_device);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_drm_device_get_for_fd (int fd);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_drm_device_default ();
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern int cairo_drm_device_get_fd (IntPtr cairo_device);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern  void cairo_drm_device_throttle (IntPtr cairo_device);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_drm_surface_create (IntPtr cairo_device, Format format,       int width, int height);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_drm_surface_create_for_name (IntPtr cairo_device, uint name, Format format,   int width, int height, int stride);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_drm_surface_create_from_cacheable_image (IntPtr cairo_device, IntPtr imageSurface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Status cairo_drm_surface_enable_scan_out (IntPtr drmSurface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_drm_surface_get_handle (IntPtr drmSurface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_drm_surface_get_name (IntPtr drmSurface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Format cairo_drm_surface_get_format (IntPtr drmSurface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern int cairo_drm_surface_get_width (IntPtr drmSurface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern int cairo_drm_surface_get_height (IntPtr drmSurface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern int cairo_drm_surface_get_stride (IntPtr drmSurface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_drm_surface_map_to_image (IntPtr drmSurface);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void       cairo_drm_surface_unmap (IntPtr drmSurface,     IntPtr imageSurface);
-               #endregion
-
-               #region Device
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Status cairo_device_acquire(IntPtr device);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_device_destroy (IntPtr device);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern IntPtr cairo_device_reference (IntPtr device);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void cairo_device_release(IntPtr device);
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern Status cairo_device_status(IntPtr device);
-               #endregion
-
-
-
-               [MethodImplAttribute(MethodImplOptions.InternalCall)][System.Security.SecuritySafeCriticalAttribute]
-               public static extern void crow_cairo_region_clear(IntPtr ctx, IntPtr reg);
-
-       }
-}
\ No newline at end of file
diff --git a/Crow/src/Mono.Cairo/NativeMethods.cs b/Crow/src/Mono.Cairo/NativeMethods.cs
deleted file mode 100644 (file)
index 5c4dfcf..0000000
+++ /dev/null
@@ -1,1065 +0,0 @@
-//
-// Cairo.cs - a simplistic binding of the Cairo API to C#.
-//
-// Authors: Duncan Mak (duncan@ximian.com)
-//          Hisham Mardam Bey (hisham.mardambey@gmail.com)
-//          John Luke (john.luke@gmail.com)
-//          Alp Toker (alp@atoker.com)
-//
-// (C) Ximian, Inc. 2003
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-// Copyright (C) 2005 John Luke
-// Copyright (C) 2006 Alp Toker
-//
-// 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.
-//
-
-using System;
-using System.Runtime.InteropServices;
-
-namespace Crow.Cairo
-{
-       // sort the functions like in the following page so it is easier to find what is missing
-       // http://cairographics.org/manual/index-all.html
-
-       internal static class NativeMethods
-       {
-#if MONOTOUCH
-               const string cairo = "__Internal";
-#else
-       const string cairo = "cairo";
-#endif
-
-        //[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-        //internal static extern void cairo_append_path (IntPtr cr, Path path);
-
-        [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_arc (IntPtr cr, double xc, double yc, double radius, double angle1, double angle2);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_arc_negative (IntPtr cr, double xc, double yc, double radius, double angle1, double angle2);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_atsui_font_face_create_for_atsu_font_id (IntPtr font_id);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_clip (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_clip_preserve (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_clip_extents (IntPtr cr, out double x1, out double y1, out double x2, out double y2);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_close_path (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_copy_page (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_copy_path (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_copy_path_flat (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_append_path (IntPtr cr, IntPtr path);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_create (IntPtr target);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_curve_to (IntPtr cr, double x1, double y1, double x2, double y2, double x3, double y3);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_debug_reset_static_data ();
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_destroy (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_device_to_user (IntPtr cr, ref double x, ref double y);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_device_to_user_distance (IntPtr cr, ref double dx, ref double dy);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_fill (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_fill_extents (IntPtr cr, out double x1, out double y1, out double x2, out double y2);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_fill_preserve (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_font_extents (IntPtr cr, out FontExtents extents);
-
-               #region FontFace
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_font_face_destroy (IntPtr font_face);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern FontType cairo_font_face_get_type (IntPtr font_face);
-
-               //[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               //internal static extern void cairo_font_face_get_user_data (IntPtr font_face);
-
-               //[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               //internal static extern void cairo_font_face_set_user_data (IntPtr font_face);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_font_face_reference (IntPtr font_face);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Status cairo_font_face_status (IntPtr font_face);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern uint cairo_font_face_get_reference_count (IntPtr surface);
-               #endregion
-
-               #region FontOptions
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_font_options_copy (IntPtr original);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_font_options_create ();
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_font_options_destroy (IntPtr options);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               [return: MarshalAs (UnmanagedType.U1)]
-               internal static extern bool cairo_font_options_equal (IntPtr options, IntPtr other);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Antialias cairo_font_options_get_antialias (IntPtr options);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern HintMetrics cairo_font_options_get_hint_metrics (IntPtr options);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern HintStyle cairo_font_options_get_hint_style (IntPtr options);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern SubpixelOrder cairo_font_options_get_subpixel_order (IntPtr options);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern long cairo_font_options_hash (IntPtr options);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_font_options_merge (IntPtr options, IntPtr other);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_font_options_set_antialias (IntPtr options, Antialias aa);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_font_options_set_hint_metrics (IntPtr options, HintMetrics metrics);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_font_options_set_hint_style (IntPtr options, HintStyle style);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_font_options_set_subpixel_order (IntPtr options, SubpixelOrder order);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Status cairo_font_options_status (IntPtr options);
-               #endregion
-
-               #region Freetype / FontConfig
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_ft_font_face_create_for_ft_face (IntPtr face, int load_flags);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_ft_font_face_create_for_pattern (IntPtr fc_pattern);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_ft_font_options_substitute (FontOptions options, IntPtr pattern);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_ft_scaled_font_lock_face (IntPtr scaled_font);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_ft_scaled_font_unlock_face (IntPtr scaled_font);
-               #endregion
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Antialias cairo_get_antialias (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_get_current_point (IntPtr cr, out double x, out double y);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern FillRule cairo_get_fill_rule (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_get_font_face (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_get_font_matrix (IntPtr cr, out Matrix matrix);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_get_font_options (IntPtr cr, IntPtr options);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_get_group_target (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern LineCap cairo_get_line_cap (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern LineJoin cairo_get_line_join (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern double cairo_get_line_width (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_get_matrix (IntPtr cr, Matrix matrix);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern double cairo_get_miter_limit (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Operator cairo_get_operator (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern uint cairo_get_reference_count (IntPtr surface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_get_source (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_get_target (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern double cairo_get_tolerance (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_glitz_surface_create (IntPtr surface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_glyph_extents (IntPtr cr, IntPtr glyphs, int num_glyphs, out TextExtents extents);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_glyph_path (IntPtr cr, IntPtr glyphs, int num_glyphs);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               [return: MarshalAs (UnmanagedType.U1)]
-               internal static extern bool cairo_has_current_point (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_identity_matrix (IntPtr cr);
-
-               #region Image Surface
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_image_surface_create (Crow.Cairo.Format format, int width, int height);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_image_surface_create_for_data (byte[] data, Crow.Cairo.Format format, int width, int height, int stride);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_image_surface_create_for_data (IntPtr data, Crow.Cairo.Format format, int width, int height, int stride);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_image_surface_create_from_png  (string filename);
-
-               //[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               //internal static extern IntPtr cairo_image_surface_create_from_png_stream  (string filename);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_image_surface_get_data (IntPtr surface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Format cairo_image_surface_get_format (IntPtr surface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern int cairo_image_surface_get_height (IntPtr surface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern int cairo_image_surface_get_stride (IntPtr surface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern int cairo_image_surface_get_width  (IntPtr surface);
-               #endregion
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               [return: MarshalAs (UnmanagedType.U1)]
-               internal static extern bool cairo_in_clip (IntPtr cr, double x, double y);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               [return: MarshalAs (UnmanagedType.U1)]
-               internal static extern bool cairo_in_fill (IntPtr cr, double x, double y);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               [return: MarshalAs (UnmanagedType.U1)]
-               internal static extern bool cairo_in_stroke (IntPtr cr, double x, double y);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_line_to (IntPtr cr, double x, double y);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_mask (IntPtr cr, IntPtr pattern);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_mask_surface (IntPtr cr, IntPtr surface, double x, double y);
-
-               #region Matrix
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_matrix_init (Matrix matrix, double xx, double yx, double xy, double yy, double x0, double y0);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_matrix_init_identity (Matrix matrix);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_matrix_init_rotate (Matrix matrix, double radians);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_matrix_init_scale (Matrix matrix, double sx, double sy);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_matrix_init_translate (Matrix matrix, double tx, double ty);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Status cairo_matrix_invert (Matrix matrix);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_matrix_multiply (Matrix result, Matrix a, Matrix b);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_matrix_scale (Matrix matrix, double sx, double sy);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_matrix_rotate (Matrix matrix, double radians);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_matrix_transform_distance (Matrix matrix, ref double dx, ref double dy);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_matrix_transform_point (Matrix matrix, ref double x, ref double y);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_matrix_translate (Matrix matrix, double tx, double ty);
-               #endregion
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_move_to (IntPtr cr, double x, double y);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_new_path (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_new_sub_path (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_paint (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_paint_with_alpha (IntPtr cr, double alpha);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_path_destroy (IntPtr path);
-
-               #region Pattern
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_pattern_add_color_stop_rgb (IntPtr pattern, double offset, double red, double green, double blue);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_pattern_add_color_stop_rgba (IntPtr pattern, double offset, double red, double green, double blue, double alpha);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Status cairo_pattern_get_color_stop_count (IntPtr pattern, out int count);
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Status cairo_pattern_get_color_stop_rgba (IntPtr pattern, int index, out double offset, out double red, out double green, out double blue, out double alpha);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_pattern_create_for_surface (IntPtr surface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Status cairo_pattern_get_surface (IntPtr pattern, out IntPtr surface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_pattern_create_linear (double x0, double y0, double x1, double y1);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Status cairo_pattern_get_linear_points (IntPtr pattern, out double x0, out double y0, out double x1, out double y1);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_pattern_create_radial (double cx0, double cy0, double radius0, double cx1, double cy1, double radius1);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Status cairo_pattern_get_radial_circles (IntPtr pattern, out double x0, out double y0, out double r0, out double x1, out double y1, out double r1);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_pattern_create_rgb (double r, double g, double b);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_pattern_create_rgba (double r, double g, double b, double a);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Status cairo_pattern_get_rgba (IntPtr pattern, out double red, out double green, out double blue, out double alpha);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_pattern_destroy (IntPtr pattern);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Extend cairo_pattern_get_extend (IntPtr pattern);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Filter cairo_pattern_get_filter (IntPtr pattern);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_pattern_get_matrix (IntPtr pattern, Matrix matrix);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern PatternType cairo_pattern_get_type (IntPtr pattern);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_pattern_reference (IntPtr pattern);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_pattern_set_extend (IntPtr pattern, Extend extend);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_pattern_set_filter (IntPtr pattern, Filter filter);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_pattern_set_matrix (IntPtr pattern, Matrix matrix);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Status cairo_pattern_status (IntPtr pattern);
-
-               //mesh pattern
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_pattern_create_mesh ();
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_mesh_pattern_begin_patch (IntPtr pattern);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_mesh_pattern_end_patch (IntPtr pattern);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_mesh_pattern_move_to (IntPtr pattern, double x, double y);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_mesh_pattern_line_to (IntPtr pattern, double x, double y);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_mesh_pattern_curve_to (IntPtr pattern, double x1, double y1,
-                       double x2, double y2, double x3, double y3);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_mesh_pattern_set_control_point (IntPtr pattern, uint point_num, double x, double y);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_mesh_pattern_set_corner_color_rgb (IntPtr pattern, uint corner_num,
-                       double r, double g, double b);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_mesh_pattern_set_corner_color_rgba (IntPtr pattern, uint corner_num,
-                       double r, double g, double b, double a);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Status cairo_mesh_pattern_get_patch_count (IntPtr pattern, out uint count);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_mesh_pattern_get_path (IntPtr pattern, uint patch_num);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Status cairo_mesh_pattern_get_control_point (IntPtr pattern,
-                       uint patch_num, uint point_num, out double x, out double y);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Status cairo_mesh_pattern_get_corner_color_rgba (IntPtr pattern,
-                       uint patch_num, uint point_num, out double r, out double g, out double b, out double a);
-               #endregion
-
-               #region PdfSurface
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_pdf_surface_create (string filename, double width, double height);
-
-               //[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               //internal static extern IntPtr cairo_pdf_surface_create_for_stream (string filename, double width, double height);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_pdf_surface_set_size (IntPtr surface, double x, double y);
-               #endregion
-
-               #region PostscriptSurface
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_ps_surface_create (string filename, double width, double height);
-
-               //[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               //internal static extern IntPtr cairo_ps_surface_create_for_stream (string filename, double width, double height);
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_ps_surface_dsc_begin_page_setup (IntPtr surface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_ps_surface_dsc_begin_setup (IntPtr surface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_ps_surface_dsc_comment (IntPtr surface, string comment);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_ps_surface_set_size (IntPtr surface, double x, double y);
-               #endregion
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_pop_group (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_pop_group_to_source (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_push_group (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_push_group_with_content (IntPtr cr, Content content);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_quartz_surface_create (IntPtr context, bool flipped, int width, int height);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_rectangle (IntPtr cr, double x, double y, double width, double height);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_reference (IntPtr cr);
-
-               #region Regions
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern bool cairo_region_contains_point (IntPtr region, int x, int y);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern RegionOverlap cairo_region_contains_rectangle (IntPtr region, ref Crow.Rectangle rectangle);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_region_copy (IntPtr original);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_region_create ();
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_region_create_rectangle (ref Crow.Rectangle rect);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_region_create_rectangles (IntPtr rects, int count);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_region_destroy (IntPtr region);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern bool cairo_region_equal (IntPtr a, IntPtr b);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_region_get_extents (IntPtr region, out Crow.Rectangle extents);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_region_get_rectangle (IntPtr region, int nth, out Crow.Rectangle rectangle);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Status cairo_region_intersect (IntPtr dst, IntPtr other);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Status cairo_region_intersect_rectangle (IntPtr dst, ref Crow.Rectangle rectangle);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern bool cairo_region_is_empty (IntPtr region);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern int cairo_region_num_rectangles (IntPtr region);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_region_reference (IntPtr region);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Status cairo_region_status (IntPtr region);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Status cairo_region_subtract (IntPtr dst, IntPtr other);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Status cairo_region_subtract_rectangle (IntPtr dst, ref Crow.Rectangle rectangle);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_region_translate (IntPtr region, int dx, int dy);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Status cairo_region_union (IntPtr dst, IntPtr other);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Status cairo_region_union_rectangle (IntPtr dst, ref Crow.Rectangle rectangle);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Status cairo_region_xor (IntPtr dst, IntPtr other);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Status cairo_region_xor_rectangle (IntPtr dst, ref Crow.Rectangle rectangle);
-               #endregion
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_rel_curve_to (IntPtr cr, double dx1, double dy1, double dx2, double dy2, double dx3, double dy3);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_rel_line_to (IntPtr cr, double dx, double dy);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_rel_move_to (IntPtr cr, double dx, double dy);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_reset_clip (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_restore (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_rotate (IntPtr cr, double angle);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_save (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_scale (IntPtr cr, double sx, double sy);
-
-               #region ScaledFont
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_scaled_font_create (IntPtr fontFace, Matrix matrix, Matrix ctm, IntPtr options);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_scaled_font_destroy (IntPtr scaled_font);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_scaled_font_extents (IntPtr scaled_font, out FontExtents extents);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_scaled_font_get_ctm (IntPtr scaled_font, out Matrix matrix);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_scaled_font_get_font_face (IntPtr scaled_font);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_scaled_font_get_font_matrix (IntPtr scaled_font, out Matrix matrix);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_scaled_font_get_font_options (IntPtr scaled_font);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern FontType cairo_scaled_font_get_type (IntPtr scaled_font);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_scaled_font_glyph_extents (IntPtr scaled_font, IntPtr glyphs, int num_glyphs, out TextExtents extents);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_scaled_font_reference (IntPtr scaled_font);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Status cairo_scaled_font_status (IntPtr scaled_font);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_set_scaled_font (IntPtr cr, IntPtr scaled_font);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_get_scaled_font (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_scaled_font_text_extents (IntPtr scaled_font, byte[] utf8, out TextExtents extents);
-               #endregion
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_select_font_face (IntPtr cr, string family, FontSlant slant, FontWeight weight);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_set_antialias (IntPtr cr, Antialias antialias);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_set_dash (IntPtr cr, double [] dashes, int ndash, double offset);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_get_dash (IntPtr cr, IntPtr dashes, out double offset);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern int cairo_get_dash_count (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_set_fill_rule (IntPtr cr, Crow.Cairo.FillRule fill_rule);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_set_font_face (IntPtr cr, IntPtr fontFace);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_set_font_matrix (IntPtr cr, Matrix matrix);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_set_font_options (IntPtr cr, IntPtr options);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_set_font_size (IntPtr cr, double size);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_set_line_cap (IntPtr cr, LineCap line_cap);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_set_line_join (IntPtr cr, LineJoin line_join);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_set_line_width (IntPtr cr, double width);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_set_matrix (IntPtr cr, Matrix matrix);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_set_miter_limit (IntPtr cr, double limit);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_set_operator (IntPtr cr, Crow.Cairo.Operator op);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_set_source (IntPtr cr, IntPtr pattern);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_set_source_rgb (IntPtr cr, double red, double green, double blue);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_set_source_rgba (IntPtr cr, double red, double green, double blue, double alpha);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_set_source_surface (IntPtr cr, IntPtr surface, double x, double y);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_set_tolerance (IntPtr cr, double tolerance);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_show_glyphs (IntPtr ct, IntPtr glyphs, int num_glyphs);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_show_page (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_show_text (IntPtr cr, string text);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Status cairo_status (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_status_to_string (Status status);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_stroke (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_stroke_extents (IntPtr cr, out double x1, out double y1, out double x2, out double y2);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_stroke_preserve (IntPtr cr);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_rectangle_list_destroy (IntPtr rectangle_list);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_copy_clip_rectangle_list (IntPtr cr);
-
-               #region Surface
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_surface_create_similar (IntPtr surface, Crow.Cairo.Content content, int width, int height);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_surface_destroy (IntPtr surface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_surface_finish (IntPtr surface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_surface_flush (IntPtr surface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Content cairo_surface_get_content (IntPtr surface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_surface_get_device_offset (IntPtr surface, out double x, out double y);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_surface_get_font_options (IntPtr surface, IntPtr FontOptions);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern uint cairo_surface_get_reference_count (IntPtr surface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern SurfaceType cairo_surface_get_type (IntPtr surface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_surface_mark_dirty (IntPtr surface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_surface_mark_dirty_rectangle (IntPtr surface, int x, int y, int width, int height);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_surface_reference (IntPtr surface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_surface_set_device_offset (IntPtr surface, double x, double y);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_surface_set_fallback_resolution (IntPtr surface, double x, double y);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Status cairo_surface_status (IntPtr surface);
-               #endregion
-
-               #region SVG surface
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_surface_write_to_png (IntPtr surface, string filename);
-
-               //[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               //internal static extern void cairo_surface_write_to_png_stream (IntPtr surface, WriteFunc writeFunc);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_svg_surface_create (string fileName, double width, double height);
-
-               //[DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               //internal static extern IntPtr cairo_svg_surface_create_for_stream (double width, double height);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_svg_surface_restrict_to_version (IntPtr surface, SvgVersion version);
-               #endregion
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_text_extents (IntPtr cr, string text, out TextExtents extents);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_text_path (IntPtr ct, byte[] utf8);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_transform (IntPtr cr, Matrix matrix);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_translate (IntPtr cr, double tx, double ty);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_user_to_device (IntPtr cr, ref double x, ref double y);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_user_to_device_distance (IntPtr cr, ref double dx, ref double dy);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern int cairo_version ();
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_version_string ();
-
-               #region DirectFBSurface
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_directfb_surface_create (IntPtr dfb, IntPtr surface);
-               #endregion
-
-               #region win32 fonts
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_win32_font_face_create_for_logfontw (IntPtr logfontw);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_win32_scaled_font_done_font (IntPtr scaled_font);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern double cairo_win32_scaled_font_get_metrics_factor (IntPtr scaled_font);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Status cairo_win32_scaled_font_select_font (IntPtr scaled_font, IntPtr hdc);
-               #endregion
-
-               #region win32 surface
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_win32_surface_create (IntPtr hdc);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_win32_surface_create_with_ddb (IntPtr hdc, Format format, int width, int height);
-               #endregion
-
-               #region XcbSurface
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_xcb_surface_create (IntPtr connection, uint drawable, IntPtr visual, int width, int height);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_xcb_surface_create_for_bitmap (IntPtr connection, uint bitmap, IntPtr screen, int width, int height);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_xcb_surface_set_size (IntPtr surface, int width, int height);
-               #endregion
-
-               #region XlibSurface
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_xlib_surface_create (IntPtr display, IntPtr drawable, IntPtr visual, int width, int height);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_xlib_surface_create_for_bitmap (IntPtr display, IntPtr bitmap, IntPtr screen, int width, int height);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern int cairo_xlib_surface_get_depth (IntPtr surface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_xlib_surface_get_display (IntPtr surface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_xlib_surface_get_drawable (IntPtr surface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern int cairo_xlib_surface_get_height (IntPtr surface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_xlib_surface_get_screen (IntPtr surface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_xlib_surface_get_visual (IntPtr surface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern int cairo_xlib_surface_get_width (IntPtr surface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_xlib_surface_set_drawable (IntPtr surface, IntPtr drawable, int width, int height);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_xlib_surface_set_size (IntPtr surface, int width, int height);
-               #endregion
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_gl_device_set_thread_aware(IntPtr device, int value);
-
-               #region GLSurface
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_gl_surface_create (IntPtr device, uint content, int width, int height);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_gl_surface_create_for_texture (IntPtr device, uint content, uint tex, int width, int height);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_gl_surface_set_size (IntPtr surface, int width, int height);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern int cairo_gl_surface_get_width (IntPtr surface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern int cairo_gl_surface_get_height (IntPtr surface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_gl_surface_swapbuffers (IntPtr surf);
-               #endregion
-
-               #region GLX Functions
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_glx_device_create (IntPtr dpy, IntPtr gl_ctx);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_glx_device_get_display (IntPtr device);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_glx_device_get_context (IntPtr device);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_gl_surface_create_for_window (IntPtr device, IntPtr window, int width, int height);
-               #endregion
-
-               #region WGL Fucntions
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_wgl_device_create (IntPtr hglrc);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_wgl_device_get_context (IntPtr device);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_gl_surface_create_for_dc (IntPtr device, IntPtr hdc, int width, int height);
-               #endregion
-
-               #region EGL Functions
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_egl_device_create (IntPtr dpy, IntPtr gl_ctx);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_gl_surface_create_for_egl (IntPtr device, IntPtr eglSurface, int width, int height);
-               #endregion
-
-               #region DRM Functions
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_drm_device_get (IntPtr udev_device);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_drm_device_get_for_fd (int fd);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_drm_device_default ();
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern int cairo_drm_device_get_fd (IntPtr cairo_device);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern  void cairo_drm_device_throttle (IntPtr cairo_device);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_drm_surface_create (IntPtr cairo_device, Format format,     int width, int height);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_drm_surface_create_for_name (IntPtr cairo_device, uint name, Format format, int width, int height, int stride);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_drm_surface_create_from_cacheable_image (IntPtr cairo_device, IntPtr imageSurface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Status cairo_drm_surface_enable_scan_out (IntPtr drmSurface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_drm_surface_get_handle (IntPtr drmSurface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_drm_surface_get_name (IntPtr drmSurface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Format cairo_drm_surface_get_format (IntPtr drmSurface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern int cairo_drm_surface_get_width (IntPtr drmSurface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern int cairo_drm_surface_get_height (IntPtr drmSurface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern int cairo_drm_surface_get_stride (IntPtr drmSurface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_drm_surface_map_to_image (IntPtr drmSurface);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void     cairo_drm_surface_unmap (IntPtr drmSurface,     IntPtr imageSurface);
-               #endregion
-
-               #region Device
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Status cairo_device_acquire(IntPtr device);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_device_destroy (IntPtr device);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern IntPtr cairo_device_reference (IntPtr device);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern void cairo_device_release(IntPtr device);
-
-               [DllImport (cairo, CallingConvention=CallingConvention.Cdecl)]
-               internal static extern Status cairo_device_status(IntPtr device);
-               #endregion
-       }
-}
\ No newline at end of file
diff --git a/Crow/src/Mono.Cairo/Operator.cs b/Crow/src/Mono.Cairo/Operator.cs
deleted file mode 100644 (file)
index 1c11ccc..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-//
-// Mono.Cairo.Operator.cs
-//
-// Authors: Duncan Mak (duncan@ximian.com)
-//          Hisham Mardam Bey (hisham.mardambey@gmail.com)
-//          John Luke (john.luke@gmail.com)
-//
-// (C) Ximian, Inc. 2003
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-// Copyright (C) 2005 John Luke
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo
-{
-       
-       public enum Operator
-       {
-               Clear,
-               Source,
-               Over,
-               In,
-               Out,
-               Atop,
-
-               Dest,
-               DestOver,
-               DestIn,
-               DestOut,
-               DestAtop,
-               
-               Xor,
-               Add,
-               Saturate,
-               Multiply,
-               Screen,
-               Overlay,
-               Darken,
-               Lighten,
-
-       }
-}
diff --git a/Crow/src/Mono.Cairo/PSSurface.cs b/Crow/src/Mono.Cairo/PSSurface.cs
deleted file mode 100644 (file)
index cf90794..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-//
-// Mono.Cairo.PostscriptSurface.cs
-//
-// Authors:
-//    John Luke
-//
-// (C) John Luke, 2006.
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo {
-
-       public class PSSurface : Surface
-       {
-               internal PSSurface (IntPtr handle, bool owns) : base (handle, owns)
-               {
-               }
-
-               public PSSurface (string filename, double width, double height)
-                       : base (NativeMethods.cairo_ps_surface_create (filename, width, height), true)
-               {
-               }
-
-               public void BeginPageSetup ()
-               {
-                       NativeMethods.cairo_ps_surface_dsc_begin_page_setup (Handle);
-               }
-
-               public void BeginSetup ()
-               {
-                       NativeMethods.cairo_ps_surface_dsc_begin_setup (Handle);
-               }
-
-               public void DscComment (string comment)
-               {
-                       NativeMethods.cairo_ps_surface_dsc_comment (Handle, comment);
-               }
-
-               public void SetSize (double width, double height)
-               {
-                       NativeMethods.cairo_ps_surface_set_size (Handle, width, height);
-               }
-       }
-}
diff --git a/Crow/src/Mono.Cairo/Path.cs b/Crow/src/Mono.Cairo/Path.cs
deleted file mode 100644 (file)
index a55f03b..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Mono.Cairo.Context.cs
-//
-// Author:
-//   Miguel de Icaza (miguel@novell.com)
-//
-// This is an OO wrapper API for the Cairo API.
-//
-// Copyright 2007 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-using System;
-using System.Runtime.InteropServices;
-using Crow.Cairo;
-
-namespace Crow.Cairo {
-
-       public class Path : IDisposable
-       {
-               IntPtr handle = IntPtr.Zero;
-
-               internal Path (IntPtr handle)
-               {
-                       this.handle = handle;
-                       if (CairoDebug.Enabled)
-                               CairoDebug.OnAllocated (handle);
-               }
-
-               ~Path ()
-               {
-                       Dispose (false);
-               }
-
-               public IntPtr Handle { get { return handle; } }
-
-               public void Dispose ()
-               {
-                       Dispose (true);
-                       GC.SuppressFinalize (this);
-               }
-
-               protected virtual void Dispose (bool disposing)
-               {
-                       if (!disposing || CairoDebug.Enabled)
-                               CairoDebug.OnDisposed<Path> (handle, disposing);
-
-                       if (!disposing|| handle == IntPtr.Zero)
-                               return;
-
-                       NativeMethods.cairo_path_destroy (handle);
-                       handle = IntPtr.Zero;
-               }
-       }
-}
diff --git a/Crow/src/Mono.Cairo/Pattern.cs b/Crow/src/Mono.Cairo/Pattern.cs
deleted file mode 100644 (file)
index 3e933a1..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-//
-// Mono.Cairo.Pattern.cs
-//
-// Author: Jordi Mas (jordi@ximian.com)
-//         Hisham Mardam Bey (hisham.mardambey@gmail.com)
-// (C) Ximian Inc, 2004.
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-using System;
-using System.Collections;
-
-namespace Crow.Cairo {
-   
-       public class Pattern : IDisposable
-       {
-               [Obsolete]
-               protected IntPtr pattern = IntPtr.Zero;
-
-               public static Pattern Lookup (IntPtr pattern, bool owner)
-               {
-                       if (pattern == IntPtr.Zero)
-                               return null;
-                       
-                       PatternType pt = NativeMethods.cairo_pattern_get_type (pattern);
-                       switch (pt) {
-                       case PatternType.Solid:
-                               return new SolidPattern (pattern, owner);
-                       case PatternType.Surface:
-                               return new SurfacePattern (pattern, owner);
-                       case PatternType.Linear:
-                               return new LinearGradient (pattern, owner);
-                       case PatternType.Radial:
-                               return new RadialGradient (pattern, owner);
-                       default:
-                               return new Pattern (pattern, owner);
-                       }
-               }
-
-               [Obsolete]
-               protected Pattern ()
-               {
-               }
-               
-               internal Pattern (IntPtr handle, bool owned)
-               {
-                       Handle = handle;
-                       if (!owned)
-                               NativeMethods.cairo_pattern_reference (handle);
-                       if (CairoDebug.Enabled)
-                               CairoDebug.OnAllocated (handle);
-               }
-
-               ~Pattern ()
-               {
-                       Dispose (false);
-               }
-               
-               [Obsolete ("Use the SurfacePattern constructor")]
-               public Pattern (Surface surface)
-                       : this ( NativeMethods.cairo_pattern_create_for_surface (surface.Handle), true)
-               {
-               }
-               
-               [Obsolete]
-               protected void Reference ()
-               {
-                       NativeMethods.cairo_pattern_reference (pattern);
-               }
-
-               public void Dispose ()
-               {
-                       Dispose (true);
-                       GC.SuppressFinalize (this);
-               }
-
-               protected virtual void Dispose (bool disposing)
-               {
-                       if (!disposing || CairoDebug.Enabled)
-                               CairoDebug.OnDisposed<Pattern> (Handle, disposing);
-
-                       if (!disposing|| Handle == IntPtr.Zero)
-                               return;
-
-                       NativeMethods.cairo_pattern_destroy (Handle);
-                       Handle = IntPtr.Zero;
-               }
-
-               [Obsolete ("Use Dispose()")]
-               public void Destroy ()
-               {
-                       Dispose ();
-               }
-
-               public Status Status
-               {
-                       get { return NativeMethods.cairo_pattern_status (Handle); }
-               }
-
-               public Extend Extend
-               {
-                       get { return NativeMethods.cairo_pattern_get_extend (Handle); }
-                       set { NativeMethods.cairo_pattern_set_extend (Handle, value); }
-               }
-
-               public Matrix Matrix {
-                       set {
-                               NativeMethods.cairo_pattern_set_matrix (Handle, value);
-                       }
-
-                       get {
-                               Matrix m = new Matrix ();
-                               NativeMethods.cairo_pattern_get_matrix (Handle, m);
-                               return m;
-                       }
-               }
-
-#pragma warning disable 612
-               public IntPtr Handle {
-                       get { return pattern; }
-                       private set { pattern = value; }
-               }
-#pragma warning restore 612
-
-               [Obsolete]
-               public IntPtr Pointer {
-                       get { return pattern; }
-               }
-
-               public PatternType PatternType {
-                       get { return NativeMethods.cairo_pattern_get_type (Handle); }
-               }
-       }
-}
-
diff --git a/Crow/src/Mono.Cairo/PatternType.cs b/Crow/src/Mono.Cairo/PatternType.cs
deleted file mode 100644 (file)
index deac3ab..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-//
-// Mono.Cairo.PatternType.cs
-//
-// Authors:
-//    John Luke
-//
-// (C) John Luke, 2006.
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo {
-
-       
-       public enum PatternType
-       {
-               Solid,
-               Surface,
-               Linear,
-               Radial,
-               Mesh,
-               RasterSource
-       }
-}
-
diff --git a/Crow/src/Mono.Cairo/PdfSurface.cs b/Crow/src/Mono.Cairo/PdfSurface.cs
deleted file mode 100644 (file)
index 09a2d12..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-//
-// Mono.Cairo.PdfSurface.cs
-//
-// Authors:
-//    John Luke
-//
-// (C) John Luke, 2006.
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo {
-
-       public class PdfSurface : Surface
-       {
-               internal PdfSurface (IntPtr handle, bool owns) : base (handle, owns)
-               {
-               }
-
-               public PdfSurface (string filename, double width, double height)
-                       : base (NativeMethods.cairo_pdf_surface_create (filename, width, height), true)
-               {
-               }
-
-               public void SetSize (double width, double height)
-               {
-                       NativeMethods.cairo_pdf_surface_set_size (Handle, width, height);
-               }
-       }
-}
-
diff --git a/Crow/src/Mono.Cairo/Point.cs b/Crow/src/Mono.Cairo/Point.cs
deleted file mode 100644 (file)
index cf07f31..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-//
-// Mono.Cairo.Context.cs
-//
-// Author:
-//   Duncan Mak (duncan@ximian.com)
-//   Miguel de Icaza (miguel@novell.com)
-//   Hisham Mardam Bey (hisham.mardambey@gmail.com)
-//   Alp Toker (alp@atoker.com)
-//
-// (C) Ximian Inc, 2003.
-// (C) Novell Inc, 2003.
-//
-// This is an OO wrapper API for the Cairo API.
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-namespace Crow.Cairo {
-       public struct Point
-       {
-               public Point (int x, int y)
-               {
-                       this.x = x;
-                       this.y = y;
-               }
-
-               int x, y;
-               public int X {
-                       get { return x; }
-                       set { x = value; }
-               }
-
-               public int Y {
-                       get { return y; }
-                       set { y = value; }
-               }
-       }
-}
diff --git a/Crow/src/Mono.Cairo/PointD.cs b/Crow/src/Mono.Cairo/PointD.cs
deleted file mode 100644 (file)
index 8bc019c..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-//
-// Mono.Cairo.Context.cs
-//
-// Author:
-//   Duncan Mak (duncan@ximian.com)
-//   Miguel de Icaza (miguel@novell.com)
-//   Hisham Mardam Bey (hisham.mardambey@gmail.com)
-//   Alp Toker (alp@atoker.com)
-//
-// (C) Ximian Inc, 2003.
-// (C) Novell Inc, 2003.
-//
-// This is an OO wrapper API for the Cairo API.
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-namespace Crow.Cairo {
-
-       public struct PointD
-       {
-               public PointD (double x, double y)
-               {
-                       this.x = x;
-                       this.y = y;
-               }
-
-               double x, y;
-               public double X {
-                       get { return x; }
-                       set { x = value; }
-               }
-
-               public double Y {
-                       get { return y; }
-                       set { y = value; }
-               }
-       }
-}
diff --git a/Crow/src/Mono.Cairo/RadialGradient.cs b/Crow/src/Mono.Cairo/RadialGradient.cs
deleted file mode 100644 (file)
index 6abe267..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-//
-// Mono.Cairo.Pattern.cs
-//
-// Author: Jordi Mas (jordi@ximian.com)
-//         Hisham Mardam Bey (hisham.mardambey@gmail.com)
-// (C) Ximian Inc, 2004.
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo {
-
-       public class RadialGradient : Gradient
-       {
-               internal RadialGradient (IntPtr handle, bool owned) : base (handle, owned)
-               {
-               }
-
-               public RadialGradient (double cx0, double cy0, double radius0, double cx1, double cy1, double radius1)
-                       : base (NativeMethods.cairo_pattern_create_radial (cx0, cy0, radius0, cx1, cy1, radius1), true)
-               {
-               }
-       }
-}
-
diff --git a/Crow/src/Mono.Cairo/Region.cs b/Crow/src/Mono.Cairo/Region.cs
deleted file mode 100644 (file)
index 5e8d8d6..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-// Copyright (C) 2011 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-using System;
-using System.Runtime.InteropServices;
-
-namespace Crow.Cairo
-{
-       [StructLayout(LayoutKind.Sequential)]
-       public struct RectangleList {
-               public Status Status;
-               public IntPtr Rectangles;
-               public int NumRectangles;
-       }
-
-       public enum RegionOverlap {
-               In,
-               Out,
-               Part,
-       }
-
-       public class Region : IDisposable {
-
-               IntPtr handle;
-               public IntPtr Handle {
-                       get { return handle; }
-               }
-
-               [Obsolete]
-               public Region (IntPtr handle) : this (handle, false) {}
-
-               public Region (IntPtr handle, bool owned)
-               {
-                       this.handle = handle;
-                       if (!owned)
-                               NativeMethods.cairo_region_reference (handle);
-                       if (CairoDebug.Enabled)
-                               CairoDebug.OnAllocated (handle);
-               }
-
-               public Region () : this (NativeMethods.cairo_region_create () , true)
-               {
-               }
-
-               public Region (Crow.Rectangle rect)
-               {
-                       handle = NativeMethods.cairo_region_create_rectangle (ref rect);
-               }
-
-               public Region (RectangleList rects)
-               {
-                       handle = NativeMethods.cairo_region_create_rectangles (rects.Rectangles, rects.NumRectangles);
-               }
-
-               public Region Copy ()
-               {
-                       return new Region (NativeMethods.cairo_region_copy (Handle), true);
-               }
-
-               #region IDisposable
-               ~Region ()
-               {
-                       Dispose (false);
-               }
-
-               public void Dispose ()
-               {
-                       Dispose (true);
-                       GC.SuppressFinalize (this);
-               }
-
-               protected virtual void Dispose (bool disposing)
-               {
-                       if (!disposing || CairoDebug.Enabled)
-                               CairoDebug.OnDisposed<Region> (handle, disposing);
-
-                       if (!disposing|| handle == IntPtr.Zero)
-                               return;
-
-                       NativeMethods.cairo_region_destroy (Handle);
-                       handle = IntPtr.Zero;
-               }
-               #endregion
-
-               public override bool Equals (object obj)
-               {
-                       return (obj is Region) && NativeMethods.cairo_region_equal (Handle, (obj as Region).Handle);
-               }
-
-               public override int GetHashCode ()
-               {
-                       return Handle.GetHashCode ();
-               }
-
-               public Status Status {
-                       get { return NativeMethods.cairo_region_status (Handle); }
-               }
-
-               public Crow.Rectangle Extents {
-                       get {
-                               Crow.Rectangle result;
-                               NativeMethods.cairo_region_get_extents (Handle, out result);
-                               return result;
-                       }
-               }
-
-               public int NumRectangles {
-                       get { return NativeMethods.cairo_region_num_rectangles (Handle); }
-               }
-
-               public Crow.Rectangle GetRectangle (int nth)
-               {
-                       Crow.Rectangle val;
-                       NativeMethods.cairo_region_get_rectangle (Handle, nth, out val);
-                       return val;
-               }
-
-               public bool IsEmpty {
-                       get { return NativeMethods.cairo_region_is_empty (Handle); }
-               }
-
-               public RegionOverlap Contains (Crow.Rectangle rectangle)
-               {
-                       return NativeMethods.cairo_region_contains_rectangle (Handle, ref rectangle);
-               }
-
-               public bool Contains (int x, int y)
-               {
-                       return NativeMethods.cairo_region_contains_point (Handle, x, y);
-               }
-
-               public void Translate (int dx, int dy)
-               {
-                       NativeMethods.cairo_region_translate (Handle, dx, dy);
-               }
-
-               public Status Subtract (Region other)
-               {
-                       return NativeMethods.cairo_region_subtract (Handle, other.Handle);
-               }
-
-               public Status SubtractRectangle (Crow.Rectangle rectangle)
-               {
-                       return NativeMethods.cairo_region_subtract_rectangle (Handle, ref rectangle);
-               }
-
-               public Status Intersect (Region other)
-               {
-                       return NativeMethods.cairo_region_intersect (Handle, other.Handle);
-               }
-
-               public Status IntersectRectangle (Crow.Rectangle rectangle)
-               {
-                       return NativeMethods.cairo_region_intersect_rectangle (Handle, ref rectangle);
-               }
-
-               public Status Union (Region other)
-               {
-                       return NativeMethods.cairo_region_union (Handle, other.Handle);
-               }
-
-               public Status UnionRectangle (Crow.Rectangle rectangle)
-               {
-                       return NativeMethods.cairo_region_union_rectangle (Handle, ref rectangle);
-               }
-
-               public Status Xor (Region other)
-               {
-                       return NativeMethods.cairo_region_xor (Handle, other.Handle);
-               }
-
-               public Status XorRectangle (Crow.Rectangle rectangle)
-               {
-                       return NativeMethods.cairo_region_xor_rectangle (Handle, ref rectangle);
-               }
-       }
-}
diff --git a/Crow/src/Mono.Cairo/ScaledFont.cs b/Crow/src/Mono.Cairo/ScaledFont.cs
deleted file mode 100644 (file)
index 594d1be..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-//
-// Mono.Cairo.ScaledFont.cs
-//
-// (c) 2008 Jordi Mas i Hernandez (jordimash@gmail.com)
-//
-// 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.
-//
-
-using System;
-using System.Runtime.InteropServices;
-
-namespace Crow.Cairo {
-   
-       public class ScaledFont : IDisposable
-       {
-               protected IntPtr handle = IntPtr.Zero;
-
-               internal ScaledFont (IntPtr handle, bool owner)
-               {
-                       this.handle = handle;
-                       if (!owner)
-                               NativeMethods.cairo_scaled_font_reference (handle);
-                       if (CairoDebug.Enabled)
-                               CairoDebug.OnAllocated (handle);
-               }
-
-               public ScaledFont (FontFace fontFace, Matrix matrix, Matrix ctm, FontOptions options)
-                       : this (NativeMethods.cairo_scaled_font_create (fontFace.Handle, matrix, ctm, options.Handle), true)
-               {
-               }
-
-               ~ScaledFont ()
-               {
-                       Dispose (false);
-               }
-
-               public IntPtr Handle {
-                       get {
-                               return handle;
-                       }
-               }
-
-               public FontExtents FontExtents {
-                       get {
-                               FontExtents extents;
-                               NativeMethods.cairo_scaled_font_extents (handle, out extents);
-                               return extents;
-                       }
-               }
-
-               public Matrix FontMatrix {
-                       get {
-                               Matrix m;
-                               NativeMethods.cairo_scaled_font_get_font_matrix (handle, out m);
-                               return m;
-                       }
-               }
-
-               public FontType FontType {
-                       get {
-                               return NativeMethods.cairo_scaled_font_get_type (handle);
-                       }
-               }
-
-               public TextExtents GlyphExtents (Glyph[] glyphs)
-               {
-                       IntPtr ptr = Context.FromGlyphToUnManagedMemory (glyphs);
-                       TextExtents extents;
-
-                       NativeMethods.cairo_scaled_font_glyph_extents (handle, ptr, glyphs.Length, out extents);
-
-                       Marshal.FreeHGlobal (ptr);
-                       return extents;
-               }
-       
-               public Status Status
-               {
-                       get { return NativeMethods.cairo_scaled_font_status (handle); }
-               }
-
-               public void Dispose ()
-               {
-                       Dispose (true);
-                       GC.SuppressFinalize (this);
-               }
-
-               protected virtual void Dispose (bool disposing)
-               {
-                       if (!disposing || CairoDebug.Enabled)
-                               CairoDebug.OnDisposed<ScaledFont> (handle, disposing);
-
-                       if (!disposing|| handle == IntPtr.Zero)
-                               return;
-
-                       NativeMethods.cairo_scaled_font_destroy (handle);
-                       handle = IntPtr.Zero;
-               }
-
-               [Obsolete]
-               protected void Reference ()
-               {
-                       NativeMethods.cairo_scaled_font_reference (handle);
-               }
-       }
-}
-
diff --git a/Crow/src/Mono.Cairo/SolidPattern.cs b/Crow/src/Mono.Cairo/SolidPattern.cs
deleted file mode 100644 (file)
index 6cd89f8..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-//
-// Mono.Cairo.Pattern.cs
-//
-// Author: Jordi Mas (jordi@ximian.com)
-//         Hisham Mardam Bey (hisham.mardambey@gmail.com)
-// (C) Ximian Inc, 2004.
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-using System;
-using Color = Crow.Color;
-namespace Crow.Cairo {
-
-       public class SolidPattern : Pattern
-       {
-               internal SolidPattern (IntPtr handle, bool owned) : base (handle, owned)
-               {
-               }
-
-               public SolidPattern (Color color)
-                       : base (NativeMethods.cairo_pattern_create_rgba (color.R, color.G, color.B, color.A), true)
-               {
-               }
-
-               public SolidPattern (double r, double g, double b)
-                       : base (NativeMethods.cairo_pattern_create_rgb (r, g, b), true)
-               {
-               }
-
-               public SolidPattern (double r, double g, double b, double a)
-                       : base (NativeMethods.cairo_pattern_create_rgba (r, g, b, a), true)
-               {
-               }
-
-               public SolidPattern (Color color, bool solid)
-                       : base (solid
-                                       ? NativeMethods.cairo_pattern_create_rgb (color.R, color.G, color.B)
-                                       : NativeMethods.cairo_pattern_create_rgba (color.R, color.G, color.B, color.A),
-                               true)
-               {
-               }
-
-               public Color Color {
-                       get {
-                               double red, green, blue, alpha;
-                               NativeMethods.cairo_pattern_get_rgba  (Handle, out red, out green, out blue, out alpha);
-                               return new Color (red, green, blue, alpha);
-                       }
-               }
-       }
-}
-
diff --git a/Crow/src/Mono.Cairo/Status.cs b/Crow/src/Mono.Cairo/Status.cs
deleted file mode 100644 (file)
index 2df1558..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-//
-// Mono.Cairo.Status.cs
-//
-// Authors:
-//   Duncan Mak (duncan@ximian.com)
-//   Hisham Mardam Bey (hisham.mardambey@gmail.com)
-//   John Luke (john.luke@gmail.com)
-//   Alp Toker (alp@atoker.com)
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-// Copyright (C) 2005 John Luke
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo
-{
-       
-       public enum Status
-       {
-               Success = 0,
-               NoMemory,
-               InvalidRestore,
-               InvalidPopGroup,
-               NoCurrentPoint,
-               InvalidMatrix,
-               InvalidStatus,
-               NullPointer,
-               InvalidString,
-               InvalidPathData,
-               ReadError,
-               WriteError,
-               SurfaceFinished,
-               SurfaceTypeMismatch,
-               PatternTypeMismatch,
-               InvalidContent,
-               InvalidFormat,
-               InvalidVisual,
-               FileNotFound,
-               InvalidDash,
-               InvalidDscComment,
-               InvalidIndex,
-               ClipNotRepresentable,
-       }
-}
diff --git a/Crow/src/Mono.Cairo/SubpixelOrder.cs b/Crow/src/Mono.Cairo/SubpixelOrder.cs
deleted file mode 100644 (file)
index 95f3cbe..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-//
-// Mono.Cairo.Cairo.cs
-//
-// Authors:
-//   John Luke (john.luke@gmail.com)
-//
-// Copyright (C) John Luke 2005
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo
-{
-       
-       public enum SubpixelOrder
-       {
-               Default,
-               Rgb,
-               Bgr,
-               Vrgb,
-               Vbgr,
-       }
-}
diff --git a/Crow/src/Mono.Cairo/Surface.cs b/Crow/src/Mono.Cairo/Surface.cs
deleted file mode 100644 (file)
index 88ebb10..0000000
+++ /dev/null
@@ -1,233 +0,0 @@
-//
-// Mono.Cairo.Surface.cs
-//
-// Authors:
-//    Duncan Mak
-//    Miguel de Icaza.
-//    Alp Toker
-//
-// (C) Ximian Inc, 2003.
-// (C) Novell, Inc. 2003.
-//
-// This is an OO wrapper API for the Cairo API
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-using System;
-using System.Collections;
-
-namespace Crow.Cairo {
-
-       public class Surface : IDisposable
-       {
-               IntPtr handle = IntPtr.Zero;
-
-               [Obsolete]
-               protected Surface()
-               {
-               }
-
-               [Obsolete]
-               protected Surface (IntPtr ptr) : this (ptr, true)
-               {
-               }
-
-               protected Surface (IntPtr handle, bool owner)
-               {
-                       this.handle = handle;
-                       if (!owner)
-                               NativeMethods.cairo_surface_reference (handle);
-                       if (CairoDebug.Enabled)
-                               CairoDebug.OnAllocated (handle);
-               }
-
-               public static Surface Lookup (IntPtr surface, bool owned)
-               {
-                       SurfaceType st = NativeMethods.cairo_surface_get_type (surface);
-                       switch (st) {
-                       case SurfaceType.Image:
-                               return new ImageSurface (surface, owned);
-                       case SurfaceType.Xlib:
-                               return new XlibSurface (surface, owned);
-                       case SurfaceType.Xcb:
-                               return new XcbSurface (surface, owned);
-                       case SurfaceType.Glitz:
-                               return new GlitzSurface (surface, owned);
-                       case SurfaceType.Win32:
-                               return new Win32Surface (surface, owned);
-                       case SurfaceType.Pdf:
-                               return new PdfSurface (surface, owned);
-                       case SurfaceType.PS:
-                               return new PSSurface (surface, owned);
-                       case SurfaceType.DirectFB:
-                               return new DirectFBSurface (surface, owned);
-                       case SurfaceType.Svg:
-                               return new SvgSurface (surface, owned);
-                       case SurfaceType.GL:
-                               return new GLSurface (surface, owned);
-                       default:
-                               return new Surface (surface, owned);
-                       }
-               }
-
-               [Obsolete ("Use an ImageSurface constructor instead.")]
-               public static Crow.Cairo.Surface CreateForImage (
-                       ref byte[] data, Crow.Cairo.Format format, int width, int height, int stride)
-               {
-                       IntPtr p = NativeMethods.cairo_image_surface_create_for_data (
-                               data, format, width, height, stride);
-
-                       return new Crow.Cairo.Surface (p, true);
-               }
-
-               [Obsolete ("Use an ImageSurface constructor instead.")]
-               public static Crow.Cairo.Surface CreateForImage (
-                       Crow.Cairo.Format format, int width, int height)
-               {
-                       IntPtr p = NativeMethods.cairo_image_surface_create (
-                               format, width, height);
-
-                       return new Crow.Cairo.Surface (p, true);
-               }
-
-
-               public Crow.Cairo.Surface CreateSimilar (
-                       Crow.Cairo.Content content, int width, int height)
-               {
-                       IntPtr p = NativeMethods.cairo_surface_create_similar (
-                               this.Handle, content, width, height);
-
-                       return Surface.Lookup(p, true);
-               }
-
-               ~Surface ()
-               {
-                       Dispose (false);
-               }
-
-               //[Obsolete ("Use Context.SetSource() followed by Context.Paint()")]
-               public void Show (Context gr, double x, double y)
-               {
-                       NativeMethods.cairo_set_source_surface (gr.Handle, handle, x, y);
-                       NativeMethods.cairo_paint (gr.Handle);
-               }
-
-               public void Dispose ()
-               {
-                       Dispose (true);
-                       GC.SuppressFinalize (this);
-               }
-
-               protected virtual void Dispose (bool disposing)
-               {
-                       if (!disposing || CairoDebug.Enabled)
-                               CairoDebug.OnDisposed<Surface> (handle, disposing);
-
-                       if (!disposing|| handle == IntPtr.Zero)
-                               return;
-
-                       NativeMethods.cairo_surface_destroy (handle);
-                       handle = IntPtr.Zero;
-               }
-               public virtual void SetSize (int width, int height) {                   
-               }
-
-               public Status Finish ()
-               {
-                       NativeMethods.cairo_surface_finish (handle);
-                       return Status;
-               }
-
-               public void Flush ()
-               {
-                       NativeMethods.cairo_surface_flush (handle);
-               }
-
-               public void MarkDirty ()
-               {
-                       NativeMethods.cairo_surface_mark_dirty (Handle);
-               }
-
-               public void MarkDirty (Crow.Rectangle rectangle)
-               {
-                       NativeMethods.cairo_surface_mark_dirty_rectangle (Handle, rectangle.X, rectangle.Y, rectangle.Width, rectangle.Height);
-               }
-
-               public IntPtr Handle {
-                       get {
-                               return handle;
-                       }
-               }
-
-               public PointD DeviceOffset {
-                       get {
-                               double x, y;
-                               NativeMethods.cairo_surface_get_device_offset (handle, out x, out y);
-                               return new PointD (x, y);
-                       }
-
-                       set {
-                               NativeMethods.cairo_surface_set_device_offset (handle, value.X, value.Y);
-                       }
-               }
-
-               [Obsolete ("Use Dispose()")]
-               public void Destroy()
-               {
-                       Dispose ();
-               }
-
-               public void SetFallbackResolution (double x, double y)
-               {
-                       NativeMethods.cairo_surface_set_fallback_resolution (handle, x, y);
-               }
-
-               public void WriteToPng (string filename)
-               {
-                       NativeMethods.cairo_surface_write_to_png (handle, filename);
-               }
-
-               [Obsolete ("Use Handle instead.")]
-               public IntPtr Pointer {
-                       get {
-                               return handle;
-                       }
-               }
-
-               public Status Status {
-                       get { return NativeMethods.cairo_surface_status (handle); }
-               }
-
-               public Content Content {
-                       get { return NativeMethods.cairo_surface_get_content (handle); }
-               }
-
-               public SurfaceType SurfaceType {
-                       get { return NativeMethods.cairo_surface_get_type (handle); }
-               }
-
-               public uint ReferenceCount {
-                       get { return NativeMethods.cairo_surface_get_reference_count (handle); }
-               }
-       }
-}
diff --git a/Crow/src/Mono.Cairo/SurfacePattern.cs b/Crow/src/Mono.Cairo/SurfacePattern.cs
deleted file mode 100644 (file)
index 53a90d3..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-//
-// Mono.Cairo.Pattern.cs
-//
-// Author: Jordi Mas (jordi@ximian.com)
-//         Hisham Mardam Bey (hisham.mardambey@gmail.com)
-// (C) Ximian Inc, 2004.
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo {
-
-       public class SurfacePattern : Pattern
-       {
-               internal SurfacePattern (IntPtr handle, bool owned) : base (handle, owned)
-               {
-               }
-
-               public SurfacePattern (Surface surface)
-                       : base (NativeMethods.cairo_pattern_create_for_surface (surface.Handle), true)
-               {
-               }
-
-               //no idea why this is here, the base one is identical, but we can't remove it now
-               public new Extend Extend {
-                       set { NativeMethods.cairo_pattern_set_extend (Handle, value); }
-                       get { return NativeMethods.cairo_pattern_get_extend (Handle); }
-               }
-
-               public Filter Filter {
-                       set { NativeMethods.cairo_pattern_set_filter (Handle, value); }
-                       get { return NativeMethods.cairo_pattern_get_filter (Handle); }
-               }
-       }
-}
-
diff --git a/Crow/src/Mono.Cairo/SurfaceType.cs b/Crow/src/Mono.Cairo/SurfaceType.cs
deleted file mode 100644 (file)
index bd992db..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-//
-// Mono.Cairo.SurfaceType.cs
-//
-// Authors:
-//    John Luke
-//
-// (C) John Luke, 2006.
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo {
-
-       
-       public enum SurfaceType
-       {
-               Image,
-               Pdf,
-               PS,
-               Xlib,
-               Xcb,
-               Glitz,
-               Quartz,
-               Win32,
-               BeOS,
-               DirectFB,
-               Svg,
-               OS2,
-               Win32Printing,
-               QuartzImage,
-               Script,
-               Qt,
-               Recording,
-               VG,
-               GL,
-               Drm,
-               Tee,
-               Xml,
-               Skia,
-               SubSurface
-       }
-}
diff --git a/Crow/src/Mono.Cairo/SvgSurface.cs b/Crow/src/Mono.Cairo/SvgSurface.cs
deleted file mode 100644 (file)
index c7d7298..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-//
-// Mono.Cairo.SvgSurface.cs
-//
-// Authors:
-//    John Luke
-//
-// (C) John Luke, 2006.
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo {
-
-       public class SvgSurface : Surface
-       {
-               internal SvgSurface (IntPtr handle, bool owns) : base (handle, owns)
-               {
-               }
-
-               public SvgSurface (string filename, double width, double height)
-                       : base (NativeMethods.cairo_svg_surface_create (filename, width, height), true)
-               {
-               }
-
-               public void RestrictToVersion (SvgVersion version)
-               {
-                       NativeMethods.cairo_svg_surface_restrict_to_version (Handle, version);
-               }
-       }
-}
-
diff --git a/Crow/src/Mono.Cairo/SvgVersion.cs b/Crow/src/Mono.Cairo/SvgVersion.cs
deleted file mode 100644 (file)
index 916fb86..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-//
-// Mono.Cairo.SvgVersion.cs
-//
-// Authors:
-//    John Luke
-//
-// (C) John Luke, 2006.
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo {
-
-       
-       public enum SvgVersion
-       {
-               // FIXME: yuck
-               OnePointOne = 0,
-               OnePointTwo,
-       }
-}
-
diff --git a/Crow/src/Mono.Cairo/TextExtents.cs b/Crow/src/Mono.Cairo/TextExtents.cs
deleted file mode 100644 (file)
index 965ca04..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-//
-// Mono.Cairo.TextExtents.cs
-//
-// Authors:
-//   Duncan Mak (duncan@ximian.com)
-//   Hisham Mardam Bey (hisham.mardambey@gmail.com)
-//
-// (C) Ximian, Inc. 2003
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-using System;
-using System.Runtime.InteropServices;
-
-namespace Crow.Cairo
-{
-       [StructLayout (LayoutKind.Sequential)]
-       public struct TextExtents
-       {
-               double xbearing;
-               double ybearing;
-               double width;
-               double height;
-               double xadvance;
-               double yadvance;
-               
-               public double XBearing {
-                       get { return xbearing; }
-                       set { xbearing = value; }
-               }
-               
-               public double YBearing {
-                       get { return ybearing; }
-                       set { ybearing = value; }
-               }
-               
-               public double Width {
-                       get { return width; }
-                       set { width = value; }
-               }
-               
-               public double Height {
-                       get { return height; }
-                       set { height = value; }
-               }
-               
-               public double XAdvance {
-                       get { return xadvance; }
-                       set { xadvance = value; }
-               }
-               
-               public double YAdvance {
-                       get { return yadvance; }
-                       set { yadvance = value; }
-               }
-
-               public override bool Equals (object obj)
-               {
-                       if (obj is TextExtents)
-                               return this == (TextExtents)obj;
-                       return false;
-               }
-
-               public override int GetHashCode ()
-               {
-                       return (int)XBearing ^ (int)YBearing ^ (int)Width ^ (int)Height ^ (int)XAdvance ^ (int)YAdvance;
-               }
-
-               public static bool operator == (TextExtents extents, TextExtents other)
-               {
-                       return extents.XBearing == other.XBearing && extents.YBearing == other.YBearing && extents.Width == other.Width && extents.Height == other.Height && extents.XAdvance == other.XAdvance && extents.YAdvance == other.YAdvance;
-               }
-
-               public static bool operator != (TextExtents extents, TextExtents other)
-               {
-                       return !(extents == other);
-               }
-       }
-}
diff --git a/Crow/src/Mono.Cairo/WGLDevice.cs b/Crow/src/Mono.Cairo/WGLDevice.cs
deleted file mode 100644 (file)
index 308cfad..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-//
-// Mono.Cairo.Device.cs
-//
-// Authors:
-//                     JP Bruyère (jp_bruyere@hotmail.com)
-//
-// This is an OO wrapper API for the Cairo API
-//
-// Copyright (C) 2016 JP Bruyère
-//
-// 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.
-//
-using System;
-
-namespace Crow.Cairo
-{
-       public class WGLDevice : Device
-       {
-               public WGLDevice (IntPtr hglrc) : base (NativeMethods.cairo_wgl_device_create (hglrc), true)
-               {
-               }
-
-               public IntPtr Context {
-                       get { return NativeMethods.cairo_wgl_device_get_context (Handle); }
-               }
-       }
-}
-
diff --git a/Crow/src/Mono.Cairo/Win32Surface.cs b/Crow/src/Mono.Cairo/Win32Surface.cs
deleted file mode 100644 (file)
index 4776a19..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-//
-// Mono.Cairo.Win32Surface.cs
-//
-// Authors:
-//    John Luke
-//
-// (C) John Luke, 2006.
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo {
-       
-       public class Win32Surface : Surface
-       {
-               internal Win32Surface (IntPtr handle, bool owns) : base (handle, owns)
-               {
-               }
-               
-               public Win32Surface (IntPtr hdc)
-                       : base (NativeMethods.cairo_win32_surface_create (hdc), true)
-               {
-               }
-       }
-}
diff --git a/Crow/src/Mono.Cairo/XcbSurface.cs b/Crow/src/Mono.Cairo/XcbSurface.cs
deleted file mode 100644 (file)
index 32a6784..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-//
-// Mono.Cairo.XcbSurface.cs
-//
-// Authors:
-//    Alp Toker
-//
-// (C) Alp Toker, 2006.
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo {
-       public class XcbSurface : Surface
-       {
-               internal XcbSurface (IntPtr handle, bool owns) : base (handle, owns)
-               {
-               }
-
-               public XcbSurface (IntPtr connection, uint drawable, IntPtr visual, int width, int height)
-                       : base (NativeMethods.cairo_xcb_surface_create (connection, drawable, visual, width, height), true)
-               {
-               }
-
-               public static XcbSurface FromBitmap (IntPtr connection, uint bitmap, IntPtr screen, int width, int height)
-               {
-                       IntPtr ptr = NativeMethods.cairo_xcb_surface_create_for_bitmap (connection, bitmap, screen, width, height);
-                       return new XcbSurface (ptr, true);
-               }
-               public override void SetSize (int width, int height)
-               {                       
-                       NativeMethods.cairo_xcb_surface_set_size (Handle, width, height);
-               }
-       }
-}
diff --git a/Crow/src/Mono.Cairo/XlibSurface.cs b/Crow/src/Mono.Cairo/XlibSurface.cs
deleted file mode 100644 (file)
index 186024e..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-//
-// Mono.Cairo.XlibSurface.cs
-//
-// Authors:
-//    Duncan Mak
-//    Miguel de Icaza.
-//
-// (C) Ximian Inc, 2003.
-// (C) Novell, Inc. 2003.
-//
-// This is an OO wrapper API for the Cairo API
-//
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
-//
-// 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.
-//
-
-using System;
-
-namespace Crow.Cairo {
-
-       public class XlibSurface : Surface
-       {
-               public XlibSurface (IntPtr display, IntPtr drawable, IntPtr visual, int width, int height)
-                       : base (NativeMethods.cairo_xlib_surface_create (display, drawable, visual, width, height), true)
-               {
-               }
-
-               public XlibSurface (IntPtr ptr, bool own) : base (ptr, own)
-               {
-               }
-
-               public static XlibSurface FromBitmap (IntPtr display, IntPtr bitmap, IntPtr screen, int width, int height)
-               {
-                       IntPtr ptr = NativeMethods.cairo_xlib_surface_create_for_bitmap (display, bitmap, screen, width, height);
-                       return new XlibSurface(ptr, true);
-               }
-
-               public void SetDrawable (IntPtr drawable, int width, int height)
-               {
-                       NativeMethods.cairo_xlib_surface_set_drawable (Handle, drawable, width, height);
-               }
-
-               public void SetSize (int width, int height)
-               {
-                       NativeMethods.cairo_xlib_surface_set_size (Handle, width, height);
-               }
-
-               public int Depth {
-                       get { return NativeMethods.cairo_xlib_surface_get_depth (Handle); }
-               }
-               
-               public IntPtr Display {
-                       get { return NativeMethods.cairo_xlib_surface_get_display (Handle); }
-               }
-
-               public IntPtr Drawable {
-                       get { return NativeMethods.cairo_xlib_surface_get_drawable (Handle); }
-               }
-
-               public int Height {
-                       get { return NativeMethods.cairo_xlib_surface_get_height (Handle); }
-               }
-
-               public IntPtr Screen {
-                       get { return NativeMethods.cairo_xlib_surface_get_screen (Handle); }
-               }
-
-               public IntPtr Visual {
-                       get { return NativeMethods.cairo_xlib_surface_get_visual (Handle); }
-               }
-
-               public int Width {
-                       get { return NativeMethods.cairo_xlib_surface_get_width (Handle); }
-               }
-
-       }
-}
index 9c63c11fb4daa72a8dda528c87b3095ed8d1d559..850ee9c260b9b7d3933d20001efaa921daba1fa6 100644 (file)
@@ -28,12 +28,12 @@ using System;
 
 namespace Crow
 {
-       public class MouseCursorChangedEventArgs : EventArgs
-       {
-               public XCursor NewCursor;
-               public MouseCursorChangedEventArgs (XCursor newCursor) : base()
-               {
-                       NewCursor = newCursor;
-               }
-       }
+       //public class MouseCursorChangedEventArgs : EventArgs
+       //{
+       //      public XCursor NewCursor;
+       //      public MouseCursorChangedEventArgs (XCursor newCursor) : base()
+       //      {
+       //              NewCursor = newCursor;
+       //      }
+       //}
 }
index 133bc4efb834eac7fe5ab892aab88d4aeaad21da..2b8c28046820a71007f76e9ee875b981515352b8 100644 (file)
@@ -26,7 +26,7 @@
 
 using System;
 using System.IO;
-using Crow.Cairo;
+using vkvg;
 using System.Collections.Generic;
 
 namespace Crow
index de9df7c8d672db12a5411ce1b9c2388370cbcdc2..27f965891d3dba918ba7f4695f64429341dd50a0 100644 (file)
@@ -58,17 +58,25 @@ namespace Crow
                public double LengthD {
                        get { return Math.Sqrt (Math.Pow (_x, 2) + Math.Pow (_y, 2)); }
                }
-        public static implicit operator Crow.Cairo.Point(Point p)
+        //public static implicit operator Crow.Cairo.Point(Point p)
+        //{
+        //    return new Crow.Cairo.Point(p.X, p.Y);
+        //}
+        //public static implicit operator Crow.Cairo.PointD(Point p)
+        //{
+        //    return new Crow.Cairo.PointD(p.X, p.Y);
+        //}
+        public static implicit operator Point(int i)
         {
-            return new Crow.Cairo.Point(p.X, p.Y);
+            return new Point(i, i);
         }
-        public static implicit operator Crow.Cairo.PointD(Point p)
+               public static implicit operator Point(vkvg.PointD p)
         {
-            return new Crow.Cairo.PointD(p.X, p.Y);
+            return new Point((int)p.X, (int)p.Y);
         }
-        public static implicit operator Point(int i)
+               public static implicit operator vkvg.PointD(Point p)
         {
-            return new Point(i, i);
+            return new vkvg.PointD(p.X, p.Y);
         }
         public static Point operator /(Point p, int d)
         {
index b59341572025de9ff7d332b9ef6212aa1d5a8e5d..4ee7c8a6dbec5ec9f52bfaf414b947d65e4f2c3b 100644 (file)
@@ -25,9 +25,6 @@
 // THE SOFTWARE.
 
 using System;
-using System.Collections.Generic;
-using System.Text;
-using System.Xml.Serialization;
 using System.Runtime.InteropServices;
 
 namespace Crow
index c915ac44207ad971e891b087edda9f533871f2ba..e53b42ca2c133cd9d85fe16b1fd658e142f5d3b2 100644 (file)
@@ -25,7 +25,7 @@
 // THE SOFTWARE.
 
 using System.Collections.Generic;
-using Crow.Cairo;
+using vkvg;
 
 namespace Crow {
        public class Rectangles
index f14c7cf72ddf2b0346b4dc7da7146626631dcf80..c19e74953dceb4b40cc278122695e0deee947502 100644 (file)
@@ -31,7 +31,7 @@ using System.Text;
 using System.Xml.Serialization;
 using System.Reflection;
 using System.Diagnostics;
-using Crow.Cairo;
+using vkvg;
 
 
 
@@ -51,7 +51,7 @@ namespace Crow
 
                public override void SetAsSource (Context ctx, Rectangle bounds = default(Rectangle))
                {
-                       ctx.SetSourceRGBA (color.R, color.G, color.B, color.A);
+                       ctx.SetSourceColor (color);
                }
                public static object Parse(string s)
                {
index 33f689559ed2cd63756c63ed9d9cc23288b4af38..cf7c39b0fa3afed0c68d0e140751d9cf069ab09a 100644 (file)
@@ -26,7 +26,7 @@
 
 using System;
 using System.IO;
-using Crow.Cairo;
+using vkvg;
 
 namespace Crow
 {
@@ -96,16 +96,16 @@ namespace Crow
                                        widthRatio = heightRatio;
                        }
 
-                       using (ImageSurface tmp = new ImageSurface (Format.Argb32, bounds.Width, bounds.Height)) {
-                               using (Context gr = new Context (tmp)) {
-                                       gr.Translate (bounds.Left, bounds.Top);
-                                       gr.Scale (widthRatio, heightRatio);
-                                       gr.Translate ((bounds.Width/widthRatio - Dimensions.Width)/2, (bounds.Height/heightRatio - Dimensions.Height)/2);
+                       //using (ImageSurface tmp = new ImageSurface (Format.Argb32, bounds.Width, bounds.Height)) {
+                       //      using (Context gr = new Context (tmp)) {
+                       //              gr.Translate (bounds.Left, bounds.Top);
+                       //              gr.Scale (widthRatio, heightRatio);
+                       //              gr.Translate ((bounds.Width/widthRatio - Dimensions.Width)/2, (bounds.Height/heightRatio - Dimensions.Height)/2);
 
-                                       hSVG.RenderCairo (gr);
-                               }
-                               ctx.SetSource (tmp);
-                       }       
+                       //              hSVG.RenderCairo (gr);
+                       //      }
+                       //      ctx.SetSource (tmp);
+                       //}     
                }
                #endregion
 
diff --git a/Crow/src/backends/IBackend.cs b/Crow/src/backends/IBackend.cs
deleted file mode 100644 (file)
index f33dd8f..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-//
-// IBackend.cs
-//
-// Author:
-//       Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
-//
-// Copyright (c) 2013-2017 Jean-Philippe Bruyère
-//
-// 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.
-using System;
-
-namespace Crow
-{
-       public enum MouseCursors
-       {
-               Default,
-               Cross,
-               Arrow,
-               Text,
-               SW,
-               SE,
-               NW,
-               NE,
-               N,
-               S,
-               V,
-               H,
-               MaxEnum,
-       }
-       public interface IBackend
-       {
-               void Init(Interface iFace);
-               void CleanUp();
-               void Flush();
-               void ProcessEvents();
-
-               void SetCursor (MouseCursors newCur);
-               void SetCursorPosition (int x, int y);
-
-               bool IsDown (Key key);
-               bool Shift { get; }
-               bool Ctrl { get; }
-               bool Alt { get; }
-       }
-}
-
diff --git a/Crow/src/backends/IKeyboard.cs b/Crow/src/backends/IKeyboard.cs
deleted file mode 100644 (file)
index d04655e..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-//
-// IKeyboard.cs
-//
-// Author:
-//       Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
-//
-// Copyright (c) 2013-2017 Jean-Philippe Bruyère
-//
-// 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.
-using System;
-
-namespace Crow
-{
-       public interface IKeyboard
-       {
-               event EventHandler<KeyEventArgs> KeyDown;
-               event EventHandler<KeyEventArgs> KeyUp;
-               event EventHandler<KeyPressEventArgs> KeyPress;
-
-
-               void HandleEvent (uint Keycode, bool pressed);
-
-               bool IsDown (Key key);
-               bool Shift { get; }
-               bool Ctrl { get; }
-               bool Alt { get; }
-
-               void Destroy ();
-       }
-}
-
diff --git a/Crow/src/backends/win32/User32/Cursor.cs b/Crow/src/backends/win32/User32/Cursor.cs
deleted file mode 100644 (file)
index f324d57..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-using System.Security;
-
-namespace OpenToolkit.NT.Native
-{
-    public static partial class User32
-    {
-        /// <summary>
-        /// Provides a subset of functions from the Windows API,
-        /// specifically those imported from user32.dll that deal with the cursor.
-        /// </summary>
-        public static class Cursor
-        {
-            /// <summary>
-            /// Loads the specified cursor resource from a set of pre-defined cursors (see <see cref="CursorName"/>).
-            /// </summary>
-            /// <param name="cursorName">An identifier for one of the pre-defined cursors.</param>
-            /// <returns>
-            /// If the function succeeds, the return value is the handle to the newly loaded cursor.
-            /// If the function fails, the return value is <see cref="IntPtr.Zero"/>.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            public static IntPtr LoadCursor(CursorName cursorName)
-                => LoadCursor(IntPtr.Zero, (int)cursorName);
-
-            /// <summary>
-            /// Loads the specified cursor resource from the executable (.EXE) file associated
-            /// with an application instance.
-            /// </summary>
-            /// <param name="moduleInstance">
-            /// A handle to an instance of the module whose executable file contains the cursor to be loaded.
-            /// </param>
-            /// <param name="cursorName">The name of the cursor resource to be loaded.</param>
-            /// <returns>
-            /// If the function succeeds, the return value is the handle to the newly loaded cursor.
-            /// If the function fails, the return value is <see cref="IntPtr.Zero"/>.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport(Library, SetLastError = true, CharSet = CharSet.Unicode)]
-            public static extern IntPtr LoadCursor
-            (
-                [In] IntPtr moduleInstance,
-                [In] string cursorName
-            );
-
-            /// <summary>
-            /// Loads the specified cursor resource from a set of pre-defined cursors (see <see cref="CursorName"/>).
-            /// </summary>
-            /// <param name="moduleInstance">Usually a handle to an instance, but null in this overload.</param>
-            /// <param name="cursorIdentifier">
-            /// An integer consisting of the resource identifier in the low-order word and zero in the high-order word.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds, the return value is the handle to the newly loaded cursor.
-            /// If the function fails, the return value is <see cref="IntPtr.Zero"/>.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport(Library, SetLastError = true)]
-            private static extern IntPtr LoadCursor
-            (
-                [In] [Optional] IntPtr moduleInstance,
-                [In] int cursorIdentifier
-            );
-
-            /// <summary>
-            /// Confines the cursor to a rectangular area on the screen. If a subsequent cursor position
-            /// (set by the <see cref="SetCursorPos(int, int)"/> function or the mouse) lies outside the rectangle,
-            /// the system automatically adjusts the position to keep the cursor inside the rectangular area.
-            /// </summary>
-            /// <param name="rect">
-            /// A pointer to the structure that contains the screen coordinates of the upper-left and lower-right
-            /// corners of the confining rectangle. If this parameter is null,
-            /// the cursor is free to move anywhere on the screen.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds, the return value is true.
-            /// If the function fails, the return value is false.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport(Library, SetLastError = true)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool ClipCursor([In] [Optional] ref Rect rect);
-
-            /// <summary>
-            /// Confines the cursor to a rectangular area on the screen. If a subsequent cursor position
-            /// (set by the <see cref="SetCursorPos(int, int)"/> function or the mouse) lies outside the rectangle,
-            /// the system automatically adjusts the position to keep the cursor inside the rectangular area.
-            /// </summary>
-            /// <param name="rect">
-            /// A pointer to the structure that contains the screen coordinates of the upper-left and lower-right
-            /// corners of the confining rectangle. If this parameter is null,
-            /// the cursor is free to move anywhere on the screen.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds, the return value is true.
-            /// If the function fails, the return value is false.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport(Library, SetLastError = true)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool ClipCursor([In] [Optional] IntPtr rect);
-
-            /// <summary>
-            /// Displays or hides the cursor.
-            /// </summary>
-            /// <param name="show">
-            /// If true, the display count is incremented by one. If false, the display count is decremented by one.
-            /// </param>
-            /// <returns>The return value specifies the new display counter.</returns>
-            [DllImport(Library)]
-            public static extern int ShowCursor([In] bool show);
-
-            /// <summary>
-            /// Retrieves the cursor's position, in screen coordinates.
-            /// </summary>
-            /// <param name="point">
-            /// A pointer to a <see cref="Point"/> structure that receives the screen coordinates of the cursor.
-            /// </param>
-            /// <returns>
-            /// Returns true if successful or false otherwise.<para/>
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport(Library, SetLastError = true)]
-            [SuppressUnmanagedCodeSecurity]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool GetCursorPos([Out] out Point point);
-
-            /// <summary>
-            /// Moves the cursor to the specified screen coordinates. If the new coordinates are not within the
-            /// screen rectangle set by the most recent <see cref="ClipCursor(ref Rect)"/> function call, the system
-            /// automatically adjusts the coordinates so that the cursor stays within the rectangle.
-            /// </summary>
-            /// <param name="x">The new x-coordinate of the cursor, in screen coordinates.</param>
-            /// <param name="y">The new y-coordinate of the cursor, in screen coordinates.</param>
-            /// <returns>
-            /// Returns true if successful or false otherwise.<para/>
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport(Library, SetLastError = true)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool SetCursorPos([In] int x, [In] int y);
-
-            /// <summary>
-            /// Retrieves a handle to the current cursor.
-            /// </summary>
-            /// <returns>
-            /// The return value is the handle to the current cursor. If there is
-            /// no cursor, the return value is null.
-            /// </returns>
-            [DllImport(Library)]
-            public static extern IntPtr GetCursor();
-
-            /// <summary>
-            /// Sets the cursor shape.
-            /// </summary>
-            /// <param name="cursor">
-            /// A handle to the cursor. The cursor must have been created by the CreateCursor function or loaded by
-            /// the <see cref="LoadCursor(IntPtr, string)"/> or LoadImage function. If this parameter is null,
-            /// the cursor is removed from the screen.
-            /// </param>
-            /// <returns>
-            /// The return value is the handle to the previous cursor, if there was one.
-            /// If there was no previous cursor, the return value is null.
-            /// </returns>
-            [DllImport(Library)]
-            public static extern IntPtr SetCursor([In] [Optional] IntPtr cursor);
-        }
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Delegates/TimerProc.cs b/Crow/src/backends/win32/User32/Delegates/TimerProc.cs
deleted file mode 100644 (file)
index 765e326..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// An application-defined callback function that processes <see cref="WindowMessage.Timer"/> messages. TimerProc
-    /// is a placeholder for the application-defined function name.
-    /// </summary>
-    /// <param name="hwnd">A handle to the window associated with the timer. </param>
-    /// <param name="msg">The <see cref="WindowMessage.Timer"/> message.</param>
-    /// <param name="timerID">The timer's identifier.</param>
-    /// <param name="elapsedTime">
-    /// The number of milliseconds that have elapsed since the system was started. This is the
-    /// value returned by the GetTickCount function.
-    /// </param>
-    [UnmanagedFunctionPointer(CallingConvention.Winapi)]
-    public delegate void TimerProc
-    (
-        [In] IntPtr hwnd,
-        [In] WindowMessage msg,
-        [In] UIntPtr timerID,
-        [In] uint elapsedTime
-    );
-}
diff --git a/Crow/src/backends/win32/User32/Delegates/WindowProc.cs b/Crow/src/backends/win32/User32/Delegates/WindowProc.cs
deleted file mode 100644 (file)
index e3cc193..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-using System.Security;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// An application-defined function that processes messages sent to a window. WindowProc is a placeholder for the
-    /// application-defined function name.
-    /// </summary>
-    /// <param name="hwnd">A handle to the window.</param>
-    /// <param name="msg">The message.</param>
-    /// <param name="wparam">
-    /// Additional message information. The contents of this parameter depend on the value of the
-    /// <paramref name="msg"/> parameter.
-    /// </param>
-    /// <param name="lparam">
-    /// Additional message information. The contents of this parameter depend on the value of the
-    /// <paramref name="msg"/> parameter.
-    /// </param>
-    /// <returns>The return value is the result of the message processing and depends on the message sent.</returns>
-    [SuppressUnmanagedCodeSecurity]
-    [UnmanagedFunctionPointer(CallingConvention.Winapi)]
-    public delegate IntPtr WindowProc
-    (
-        [In] IntPtr hwnd,
-        [In] WindowMessage msg,
-        [In] IntPtr wparam,
-        [In] IntPtr lparam
-    );
-}
diff --git a/Crow/src/backends/win32/User32/Device.cs b/Crow/src/backends/win32/User32/Device.cs
deleted file mode 100644 (file)
index 9a4bea3..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-
-namespace OpenToolkit.NT.Native
-{
-    public static partial class User32
-    {
-        /// <summary>
-        /// Provides a subset of functions from the Windows API,
-        /// specifically those imported from user32.dll that deal with devices.
-        /// </summary>
-        public static class Device
-        {
-            /// <summary>
-            /// Registers the device or type of device for which a window will receive notifications.
-            /// </summary>
-            /// <param name="recipient">
-            /// A handle to the window or service that will receive device events for the devices specified in the
-            /// <paramref name="notificationFilter"/> parameter. The same window handle can be used in multiple calls
-            /// to <see cref="RegisterDeviceNotification(IntPtr, IntPtr, DeviceNotificationEnum)"/>.<para/>
-            /// Services can specify either a window handle or service status handle.
-            /// </param>
-            /// <param name="notificationFilter">
-            /// A pointer to a block of data that specifies the type of device for which notifications should be sent.
-            /// This block always begins with the DEV_BROADCAST_HDR structure. The data following this header is
-            /// dependent on the value of the dbch_devicetype member, which can be
-            /// <see cref="DeviceBroadcastType.DeviceInterface"/> or <see cref="DeviceBroadcastType.Handle"/>.<para/>
-            /// For more information, see the Remarks section in the official documentation.
-            /// </param>
-            /// <param name="flags">Specifies additional information for this function call.</param>
-            /// <returns>
-            /// If the function succeeds, the return value is a device notification handle.
-            /// If the function fails, the return value is <see cref="IntPtr.Zero"/>.<para/>
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport(Library, SetLastError = true)]
-            public static extern IntPtr RegisterDeviceNotification
-            (
-                [In] IntPtr recipient,
-                [In] IntPtr notificationFilter,
-                [In] DeviceNotificationEnum flags
-            );
-
-            /// <summary>
-            /// Closes the specified device notification handle.
-            /// </summary>
-            /// <param name="handle">
-            /// Device notification handle returned by the
-            /// <see cref="RegisterDeviceNotification(IntPtr, IntPtr, DeviceNotificationEnum)"/> function.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds, the return value is true.
-            /// If the function fails, the return value is false.<para/>
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport(Library, SetLastError = true)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool UnregisterDeviceNotification([In] IntPtr handle);
-        }
-    }
-}
diff --git a/Crow/src/backends/win32/User32/DeviceContext.cs b/Crow/src/backends/win32/User32/DeviceContext.cs
deleted file mode 100644 (file)
index e1d2a5d..0000000
+++ /dev/null
@@ -1,213 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-
-namespace OpenToolkit.NT.Native
-{
-    public static partial class User32
-    {
-        /// <summary>
-        /// Provides a subset of functions from the Windows API,
-        /// specifically those imported from user32.dll that deal with device contexts.
-        /// </summary>
-        public static class DeviceContext
-        {
-            /// <summary>
-            /// Retrieves a handle to a device context (DC) for the client area
-            /// of a specified window or for the entire screen.
-            /// </summary>
-            /// <param name="window">
-            /// A handle to the window whose DC is to be retrieved.
-            /// If this value is <see cref="IntPtr.Zero"/>, the DC for the entire screen is retrieved.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds, the return value is a handle
-            /// to the DC for the specified window's client area.
-            /// If the function fails, the return value is <see cref="IntPtr.Zero"/>.
-            /// </returns>
-            [DllImport(Library)]
-            public static extern IntPtr GetDC([In] [Optional] IntPtr window);
-
-            /// <summary>
-            /// Releases a device context (DC), freeing it for use by other applications. The effect of this function
-            /// depends on the type of DC.<para/>
-            /// It frees only common and window DCs. It has no effect on class or private DCs.
-            /// </summary>
-            /// <param name="window">A handle to the window whose DC is to be released.</param>
-            /// <param name="dc">A handle to the DC to be released.</param>
-            /// <returns>
-            /// The return value indicates whether the DC was released.
-            /// If the DC was released, the return value is true.<para/>
-            /// If the DC was not released, the return value is false.
-            /// </returns>
-            [DllImport(Library)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool ReleaseDC([In] IntPtr window, [In] IntPtr dc);
-
-            /// <summary>
-            /// Changes the settings of the default display device to the specified graphics mode.<para/>
-            /// To change the settings of a specified display device, use the
-            /// <see cref="ChangeDisplaySettingsEx(string, IntPtr, IntPtr, DisplaySettingsChanges, IntPtr)"/>
-            /// function.
-            /// </summary>
-            /// <param name="deviceMode">
-            /// A <see cref="DeviceMode"/> structure that describes the new graphics mode. If
-            /// <paramref name="deviceMode"/> is <see cref="IntPtr.Zero"/>, all the values currently in the registry
-            /// will be used for the display setting. Passing <see cref="IntPtr.Zero"/> for the
-            /// <paramref name="deviceMode"/> parameter and 0 for the <paramref name="changeFlags"/> parameter is the
-            /// easiest way to return to the default mode after a dynamic mode change.
-            /// </param>
-            /// <param name="changeFlags">Indicates how the graphics mode should be changed.</param>
-            /// <returns>
-            /// A <see cref="ChangeDisplaySettingsResult"/> indicating the status of the change operation.
-            /// </returns>
-            [DllImport(Library)]
-            public static extern ChangeDisplaySettingsResult ChangeDisplaySettings
-            (
-                [In] ref DeviceMode deviceMode,
-                [In] DisplaySettingsChanges changeFlags
-            );
-
-            /// <summary>
-            /// Changes the settings of the specified display device to the specified graphics mode.
-            /// </summary>
-            /// <param name="deviceName">
-            /// A string that specifies the display device whose graphics mode will change.<para/>
-            /// Only display device names as returned by
-            /// <see cref="EnumDisplayDevices(string, uint, out DisplayDevice, uint)"/> are valid.
-            /// </param>
-            /// <param name="deviceMode">
-            /// A <see cref="DeviceMode"/> structure that describes the new graphics mode. If
-            /// <paramref name="deviceMode"/> is <see cref="IntPtr.Zero"/>, all the values currently in the registry
-            /// will be used for the display setting. Passing <see cref="IntPtr.Zero"/> for the
-            /// <paramref name="deviceMode"/> parameter and 0 for the <paramref name="changeFlags"/> parameter is the
-            /// easiest way to return to the default mode after a dynamic mode change.
-            /// </param>
-            /// <param name="window">Reserved, must be null.</param>
-            /// <param name="changeFlags">Indicates how the graphics mode should be changed.</param>
-            /// <param name="changeParams">
-            /// If <paramref name="changeFlags"/> is <see cref="DisplaySettingsChanges.VideoParameters"/>, this
-            /// parameter is a pointer to a VIDEOPARAMETERS structure.<para/>
-            /// Otherwise <paramref name="changeParams"/> must be NULL.
-            /// </param>
-            /// <returns>
-            /// A <see cref="ChangeDisplaySettingsResult"/> indicating the status of the change operation.
-            /// </returns>
-            [DllImport(Library, CharSet = CharSet.Unicode)]
-            public static extern ChangeDisplaySettingsResult ChangeDisplaySettingsEx
-            (
-                [In] [Optional] string deviceName,
-                [In] [Optional] IntPtr deviceMode,
-                [Optional] IntPtr window,
-                [In] DisplaySettingsChanges changeFlags,
-                [In] IntPtr changeParams
-            );
-
-            /// <summary>
-            /// Retrieves information about one of the graphics modes for a display device. To retrieve information
-            /// for all the graphics modes of a display device, make a series of calls to this function.
-            /// </summary>
-            /// <param name="deviceName">
-            /// A string that specifies the display device about whose graphics mode the function
-            /// will obtain information.<para/>
-            /// This parameter is either null or a <see cref="DisplayDevice.DeviceName"/> returned from
-            /// <see cref="EnumDisplayDevices(string, uint, out DisplayDevice, uint)"/>. A null value specifies the
-            /// current display device on the computer on which the calling thread is running.
-            /// </param>
-            /// <param name="modeSetting">Specifies the type of information to be retrieved.</param>
-            /// <param name="deviceMode">
-            /// A <see cref="DeviceMode"/> structure into which the function stores information about the specified
-            /// graphics mode. Before calling
-            /// <see cref="EnumDisplaySettings(string, DisplayModeSetting, out DeviceMode)"/>, set the
-            /// <see cref="DeviceMode.Size"/> member to <see cref="DeviceMode.SizeInBytes"/>,
-            /// and set the <see cref="DeviceMode.DriverExtra"/> member to indicate the size, in bytes,
-            /// of the additional space available to receive private driver data.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds, the return value is true.
-            /// If the function fails, the return value is false.
-            /// </returns>
-            [DllImport(Library, CharSet = CharSet.Unicode)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool EnumDisplaySettings
-            (
-                [In] string deviceName,
-                [In] DisplayModeSetting modeSetting,
-                [Out] out DeviceMode deviceMode
-            );
-
-            /// <summary>
-            /// Retrieves information about one of the graphics modes for a display device. To retrieve information
-            /// for all the graphics modes of a display device, make a series of calls to this function.
-            /// </summary>
-            /// <param name="deviceName">
-            /// A string that specifies the display device about whose graphics mode the function
-            /// will obtain information.<para/>
-            /// This parameter is either null or a <see cref="DisplayDevice.DeviceName"/> returned from
-            /// <see cref="EnumDisplayDevices(string, uint, out DisplayDevice, uint)"/>. A null value specifies the
-            /// current display device on the computer on which the calling thread is running.
-            /// </param>
-            /// <param name="modeSetting">Specifies the type of information to be retrieved.</param>
-            /// <param name="deviceMode">
-            /// A <see cref="DeviceMode"/> structure into which the function stores information about the specified
-            /// graphics mode. Before calling
-            /// <see cref="EnumDisplaySettings(string, DisplayModeSetting, out DeviceMode)"/>, set the
-            /// <see cref="DeviceMode.Size"/> member to <see cref="DeviceMode.SizeInBytes"/>,
-            /// and set the <see cref="DeviceMode.DriverExtra"/> member to indicate the size, in bytes,
-            /// of the additional space available to receive private driver data.
-            /// </param>
-            /// <param name="displayModeFlags">
-            /// Sets constraints on which graphics modes to return for the given display device.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds, the return value is true.
-            /// If the function fails, the return value is false.
-            /// </returns>
-            [DllImport(Library, CharSet = CharSet.Unicode)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool EnumDisplaySettingsEx
-            (
-                [In] string deviceName,
-                [In] DisplayModeSetting modeSetting,
-                [Out] out DeviceMode deviceMode,
-                [In] EnumDisplayModes displayModeFlags
-            );
-
-            /// <summary>
-            /// Obtains information about the display devices in the current session.
-            /// </summary>
-            /// <param name="deviceName">
-            /// A pointer to the device name. If NULL, function returns information for the display adapter(s)
-            /// on the machine, based on <paramref name="deviceIndex"/>.
-            /// </param>
-            /// <param name="deviceIndex">An index value that specifies the display device of interest.</param>
-            /// <param name="displayDevice">
-            /// A <see cref="DisplayDevice"/> structure that receives information about the display device
-            /// specified by <paramref name="deviceIndex"/>.<para/>
-            /// Before calling <see cref="EnumDisplayDevices(string, uint, out DisplayDevice, uint)"/>, you must
-            /// initialize the <see cref="DisplayDevice.Size"/> member of <see cref="DisplayDevice"/>
-            /// to <see cref="DisplayDevice.SizeInBytes"/>.
-            /// </param>
-            /// <param name="flags">
-            /// Set this to 1 to retrieve the device interface name for GUID_DEVINTERFACE_MONITOR, which is registered
-            /// by the operating system on a per monitor basis. The value is placed in the
-            /// <see cref="DisplayDevice.DeviceID"/> member in <paramref name="displayDevice"/>. The resulting device
-            /// interface name can be used with SetupAPI functions and serves as a link between GDI monitor
-            /// devices and SetupAPI monitor devices.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds, the return value is true.<para/>
-            /// If the function fails, the return value is false.
-            /// The function fails if <paramref name="deviceIndex"/> is greater than the largest device index.
-            /// </returns>
-            [DllImport(Library, CharSet = CharSet.Unicode)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool EnumDisplayDevices
-            (
-                [In] [Optional] string deviceName,
-                [In] uint deviceIndex,
-                [Out] out DisplayDevice displayDevice,
-                [In] uint flags
-            );
-        }
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/ChangeDisplaySettingsResult.cs b/Crow/src/backends/win32/User32/Enums/ChangeDisplaySettingsResult.cs
deleted file mode 100644 (file)
index 89e2b39..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-using System;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Used in <see cref="User32.DeviceContext.ChangeDisplaySettings(ref DeviceMode, DisplaySettingsChanges)"/>
-    /// and <see cref="User32.DeviceContext.ChangeDisplaySettingsEx(string, IntPtr, IntPtr, DisplaySettingsChanges,
-    /// IntPtr)"/> to indicate the result of the function call.
-    /// </summary>
-    public enum ChangeDisplaySettingsResult : int
-    {
-        /// <summary>
-        /// The settings change was successful.
-        /// </summary>
-        Successful = 0,
-
-        /// <summary>
-        /// The computer must be restarted for the graphics mode to work.
-        /// </summary>
-        Restart = 1,
-
-        /// <summary>
-        /// The display driver failed the specified graphics mode.
-        /// </summary>
-        Failed = -1,
-
-        /// <summary>
-        /// The graphics mode is not supported.
-        /// </summary>
-        BadMode = -2,
-
-        /// <summary>
-        /// Unable to write settings to the registry.
-        /// </summary>
-        NotUpdated = -3,
-
-        /// <summary>
-        /// An invalid set of flags was passed in.
-        /// </summary>
-        BadFlags = -4,
-
-        /// <summary>
-        /// An invalid parameter was passed in. This can include an invalid flag or combination of flags.
-        /// </summary>
-        BadParam = -5,
-
-        /// <summary>
-        /// The settings change was unsuccessful because the system is DualView capable.
-        /// Only supported on XP and higher.
-        /// </summary>
-        BadDualView = -6,
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/CursorName.cs b/Crow/src/backends/win32/User32/Enums/CursorName.cs
deleted file mode 100644 (file)
index c8aac66..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Specifies resource identifiers for the pre-defined cursors.
-    /// </summary>
-    public enum CursorName
-    {
-        /// <summary>
-        /// Standard arrow and small hourglass.
-        /// </summary>
-        AppStarting = 32650,
-
-        /// <summary>
-        /// Standard arrow.
-        /// </summary>
-        Arrow = 32512,
-
-        /// <summary>
-        /// Crosshair.
-        /// </summary>
-        Cross = 32515,
-
-        /// <summary>
-        /// Hand.
-        /// </summary>
-        Hand = 32649,
-
-        /// <summary>
-        /// Arrow and question mark.
-        /// </summary>
-        Help = 32651,
-
-        /// <summary>
-        /// I-beam.
-        /// </summary>
-        IBeam = 32513,
-
-        /// <summary>
-        /// Obsolete for applications marked version 4.0 or later.
-        /// </summary>
-        Icon = 32641,
-
-        /// <summary>
-        /// Slashed circle.
-        /// </summary>
-        No = 32648,
-
-        /// <summary>
-        /// Obsolete for applications marked version 4.0 or later. Use <see cref="SizeAll"/>.
-        /// </summary>
-        Size = 32640,
-
-        /// <summary>
-        /// Four-pointed arrow pointing north, south, east, and west.
-        /// </summary>
-        SizeAll = 32646,
-
-        /// <summary>
-        /// Double-pointed arrow pointing northeast and southwest.
-        /// </summary>
-        SizeNortheastSouthwest = 32643,
-
-        /// <summary>
-        /// Double-pointed arrow pointing north and south.
-        /// </summary>
-        SizeNorthSouth = 32645,
-
-        /// <summary>
-        /// Double-pointed arrow pointing northwest and southeast.
-        /// </summary>
-        SizeNorthwestSoutheast = 32642,
-
-        /// <summary>
-        /// Double-pointed arrow pointing west and east.
-        /// </summary>
-        SizeWestEast = 32644,
-
-        /// <summary>
-        /// Vertical arrow.
-        /// </summary>
-        UpArrow = 32516,
-
-        /// <summary>
-        /// Hourglass.
-        /// </summary>
-        Wait = 32514
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/DeviceBroadcastType.cs b/Crow/src/backends/win32/User32/Enums/DeviceBroadcastType.cs
deleted file mode 100644 (file)
index 1389972..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Used in the <see cref="BroadcastDeviceInterface"/>.
-    /// </summary>
-    public enum DeviceBroadcastType : uint
-    {
-        /// <summary>
-        /// This member is not officially documented. Use with care.
-        /// </summary>
-        Oem = 0,
-
-        /// <summary>
-        /// This member is not officially documented. Use with care.
-        /// </summary>
-        DevNode = 1,
-
-        /// <summary>
-        /// This member is not officially documented. Use with care.
-        /// </summary>
-        Volume = 2,
-
-        /// <summary>
-        /// This member is not officially documented. Use with care.
-        /// </summary>
-        Port = 3,
-
-        /// <summary>
-        /// This member is not officially documented. Use with care.
-        /// </summary>
-        Net = 4,
-
-        /// <summary>
-        /// This member is not officially documented. Use with care.
-        /// </summary>
-        DeviceInterface = 5,
-
-        /// <summary>
-        /// This member is not officially documented. Use with care.
-        /// </summary>
-        Handle = 6
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/DeviceModeFieldFlags.cs b/Crow/src/backends/win32/User32/Enums/DeviceModeFieldFlags.cs
deleted file mode 100644 (file)
index ea642a9..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-using System;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Used in the <see cref="DeviceMode"/> structure to specify whether certain members of the structure
-    /// have been initialized.<para/>
-    /// If a member is initialized, its corresponding bit is set, otherwise the bit is clear.
-    /// A driver supports only those <see cref="DeviceMode"/> members that are appropriate for the
-    /// printer or display technology.
-    /// </summary>
-    [Flags]
-    public enum DeviceModeFieldFlags : uint
-    {
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.PrinterDeviceOptions.Orientation"/> field is set.
-        /// </summary>
-        Orientation = 0x00000001,
-
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.PrinterDeviceOptions.PaperSize"/> field is set.
-        /// </summary>
-        PaperSize = 0x00000002,
-
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.PrinterDeviceOptions.PaperLength"/> field is set.
-        /// </summary>
-        PaperLength = 0x00000004,
-
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.PrinterDeviceOptions.PaperWidth"/> field is set.
-        /// </summary>
-        PaperWidth = 0x00000008,
-
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.PrinterDeviceOptions.Scale"/> field is set.
-        /// </summary>
-        Scale = 0x00000010,
-
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.DisplayDeviceOptions.Position"/> field is set.
-        /// </summary>
-        Position = 0x00000020,
-
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.Nup"/> field is set.
-        /// </summary>
-        Nup = 0x00000040,
-
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.DisplayDeviceOptions.DisplayOrientation"/> field is set.
-        /// </summary>
-        DisplayOrientation = 0x00000080,
-
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.PrinterDeviceOptions.Copies"/> field is set.
-        /// </summary>
-        Copies = 0x00000100,
-
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.PrinterDeviceOptions.DefaultSource"/> field is set.
-        /// </summary>
-        DefaultSource = 0x00000200,
-
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.PrinterDeviceOptions.PrintQuality"/> field is set.
-        /// </summary>
-        PrintQuality = 0x00000400,
-
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.Color"/> field is set.
-        /// </summary>
-        Color = 0x00000800,
-
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.Duplex"/> field is set.
-        /// </summary>
-        Duplex = 0x00001000,
-
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.YResolution"/> field is set.
-        /// </summary>
-        YResolution = 0x00002000,
-
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.TrueTypeOption"/> field is set.
-        /// </summary>
-        TrueTypeOption = 0x00004000,
-
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.Collate"/> field is set.
-        /// </summary>
-        Collate = 0x00008000,
-
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.FormName"/> field is set.
-        /// </summary>
-        FormName = 0x00010000,
-
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.LogPixels"/> field is set.
-        /// </summary>
-        LogPixels = 0x00020000,
-
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.BitsPerPixel"/> field is set.
-        /// </summary>
-        BitsPerPixel = 0x00040000,
-
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.WidthInPixels"/> field is set.
-        /// </summary>
-        WidthInPixels = 0x00080000,
-
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.HeightInPixels"/> field is set.
-        /// </summary>
-        HeightInPixels = 0x00100000,
-
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.DisplayFlags"/> field is set.
-        /// </summary>
-        DisplayFlags = 0x00200000,
-
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.DisplayFrequency"/> field is set.
-        /// </summary>
-        DisplayFrequency = 0x00400000,
-
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.IcmMethod"/> field is set.
-        /// </summary>
-        IcmMethod = 0x00800000,
-
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.IcmIntent"/> field is set.
-        /// </summary>
-        IcmIntent = 0x01000000,
-
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.MediaType"/> field is set.
-        /// </summary>
-        MediaType = 0x02000000,
-
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.DitherType"/> field is set.
-        /// </summary>
-        DitherType = 0x04000000,
-
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.PanningWidth"/> field is set.
-        /// </summary>
-        PanningWidth = 0x08000000,
-
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.PanningHeight"/> field is set.
-        /// </summary>
-        PanningHeight = 0x10000000,
-
-        /// <summary>
-        /// Specifies whether the <see cref="DeviceMode.DisplayDeviceOptions.DisplayFixedOutput"/> field is set.
-        /// </summary>
-        DisplayFixedOutput = 0x20000000,
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/DeviceNotification.cs b/Crow/src/backends/win32/User32/Enums/DeviceNotification.cs
deleted file mode 100644 (file)
index f0a455a..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Used in
-    /// <see cref="User32.Device.RegisterDeviceNotification(System.IntPtr, System.IntPtr, DeviceNotificationEnum)"/>
-    /// to specify additional information.
-    /// </summary>
-    public enum DeviceNotificationEnum
-    {
-        /// <summary>
-        /// The recipient parameter is a window handle.
-        /// </summary>
-        WindowHandle = 0x00000000,
-
-        /// <summary>
-        /// The recipient parameter is a service status handle.
-        /// </summary>
-        ServiceHandle = 0x00000001,
-
-        /// <summary>
-        /// Notifies the recipient of device interface events for all device interface classes.
-        /// (The dbcc_classguid member is ignored.)<para/>
-        /// This value can be used only if the dbch_devicetype member is
-        /// <see cref="DeviceBroadcastType.DeviceInterface"/>.
-        /// </summary>
-        AllInterfaceClasses = 0x00000004
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/DisplayDeviceStateFlags.cs b/Crow/src/backends/win32/User32/Enums/DisplayDeviceStateFlags.cs
deleted file mode 100644 (file)
index 54a4491..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-using System;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Used in <see cref="DisplayDevice"/> to represent the device state.
-    /// </summary>
-    [Flags]
-    public enum DisplayDeviceStateFlags : uint
-    {
-        /// <summary>
-        /// This member is not officially documented. Use with care.
-        /// </summary>
-        AttachedToDesktop = 0x00000001,
-
-        /// <summary>
-        /// This member is not officially documented. Use with care.
-        /// </summary>
-        MultiDriver = 0x00000002,
-
-        /// <summary>
-        /// The primary desktop is on the device. For a system with a single display card, this is always set. For a
-        /// system with multiple display cards, only one device can have this set.
-        /// </summary>
-        PrimaryDevice = 0x00000004,
-
-        /// <summary>
-        /// Represents a pseudo device used to mirror application drawing for remoting or other purposes.<para/>
-        /// An invisible pseudo monitor is associated with this device.
-        /// </summary>
-        MirroringDriver = 0x00000008,
-
-        /// <summary>
-        /// The device is VGA compatible.
-        /// </summary>
-        VgaCompatible = 0x00000010,
-
-        /// <summary>
-        /// The device is removable; it cannot be the primary display.
-        /// </summary>
-        Removable = 0x00000020,
-
-        /// <summary>
-        /// The device has more display modes than its output devices support.
-        /// </summary>
-        ModesPruned = 0x08000000,
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/DisplayFixedOutputType.cs b/Crow/src/backends/win32/User32/Enums/DisplayFixedOutputType.cs
deleted file mode 100644 (file)
index 71256c0..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// For fixed-resolution displays, specifies how the device can present a lower-resolution
-    /// mode on a higher-resolution display.
-    /// </summary>
-    public enum DisplayFixedOutputType : uint
-    {
-        /// <summary>
-        /// The display device presents a lower-resolution mode image by stretching it to fill the larger screen space.
-        /// </summary>
-        Stretch = 1,
-
-        /// <summary>
-        /// The display device presents a lower resolution mode image by centering it in the larger screen space.
-        /// </summary>
-        Center = 2,
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/DisplayFlags.cs b/Crow/src/backends/win32/User32/Enums/DisplayFlags.cs
deleted file mode 100644 (file)
index 17ad23f..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-using System;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Specifies the device's display mode.
-    /// </summary>
-    [Flags]
-    public enum DisplayFlags : uint
-    {
-        /// <summary>
-        /// Specifies that the display is a noncolor device. If this flag is not set, color is assumed.
-        /// </summary>
-        Grayscale = 0x00000001,
-
-        /// <summary>
-        /// Specifies that the display mode is interlaced. If the flag is not set, noninterlaced is assumed.
-        /// </summary>
-        Interlaced = 0x00000002,
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/DisplayModeSetting.cs b/Crow/src/backends/win32/User32/Enums/DisplayModeSetting.cs
deleted file mode 100644 (file)
index 6c00421..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Used in <see cref="User32.DeviceContext.EnumDisplaySettings(string, DisplayModeSetting, out DeviceMode)"/> and
-    /// <see cref="User32.DeviceContext.EnumDisplaySettingsEx(string, DisplayModeSetting, out DeviceMode,
-    /// EnumDisplayModes)"/> to specify which information should be retrieved.
-    /// </summary>
-    public enum DisplayModeSetting : uint
-    {
-        /// <summary>
-        /// Retrieve the current settings for the display device.
-        /// </summary>
-        CurrentSettings = unchecked((uint)(-1)),
-
-        /// <summary>
-        /// Retrieve the settings for the display device that are currently stored in the registry.
-        /// </summary>
-        RegistrySettings = unchecked((uint)(-2))
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/DisplayOrientation.cs b/Crow/src/backends/win32/User32/Enums/DisplayOrientation.cs
deleted file mode 100644 (file)
index c7bd5a4..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Defines possible display orientations.
-    /// </summary>
-    public enum DisplayOrientation : uint
-    {
-        /// <summary>
-        /// The current mode's display device orientation is the natural orientation of the device,
-        /// and should be used as the default.
-        /// </summary>
-        Default = 0,
-
-        /// <summary>
-        /// The display device orientation is 90 degrees (measured clockwise) from that of <see cref="Default"/>.
-        /// </summary>
-        Rotated90 = 1,
-
-        /// <summary>
-        /// The display device orientation is 180 degrees (measured clockwise) from that of <see cref="Default"/>.
-        /// </summary>
-        Rotated180 = 2,
-
-        /// <summary>
-        /// The display device orientation is 270 degrees (measured clockwise) from that of <see cref="Default"/>.
-        /// </summary>
-        Rotated270 = 3,
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/DisplaySettingsChanges.cs b/Crow/src/backends/win32/User32/Enums/DisplaySettingsChanges.cs
deleted file mode 100644 (file)
index e65084f..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-using System;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Used in <see cref="User32.DeviceContext.ChangeDisplaySettings(ref DeviceMode, DisplaySettingsChanges)"/>
-    /// and <see cref="User32.DeviceContext.ChangeDisplaySettingsEx(string, IntPtr, IntPtr, DisplaySettingsChanges,
-    /// IntPtr)"/> to indicate how the graphics mode should be changed.
-    /// </summary>
-    [Flags]
-    public enum DisplaySettingsChanges : uint
-    {
-        /// <summary>
-        /// The graphics mode for the current screen will be changed dynamically.
-        /// </summary>
-        Dynamic = 0,
-
-        /// <summary>
-        /// The graphics mode for the current screen will be changed dynamically and the graphics mode will be
-        /// updated in the registry. The mode information is stored in the USER profile.
-        /// </summary>
-        UpdateRegistry = 0x00000001,
-
-        /// <summary>
-        /// The system tests if the requested graphics mode could be set.
-        /// </summary>
-        Test = 0x00000002,
-
-        /// <summary>
-        /// The mode is temporary in nature.<para/>
-        /// If you change to and from another desktop, this mode will not be reset.
-        /// </summary>
-        Fullscreen = 0x00000004,
-
-        /// <summary>
-        /// The settings will be saved in the global settings area so that they will affect all users on the machine.
-        /// Otherwise, only the settings for the user are modified.
-        /// This flag is only valid when specified with the <see cref="UpdateRegistry"/> flag.
-        /// </summary>
-        Global = 0x00000008,
-
-        /// <summary>
-        /// This device will become the primary device.
-        /// </summary>
-        SetPrimary = 0x00000010,
-
-        /// <summary>
-        /// Not supported by <see cref="User32.DeviceContext.ChangeDisplaySettings"/>.<para/>
-        /// Only supported on Vista and higher.
-        /// </summary>
-        VideoParameters = 0x00000020,
-
-        /// <summary>
-        /// Not supported by <see cref="User32.DeviceContext.ChangeDisplaySettings"/>.<para/>
-        /// Only supported on Vista and higher.
-        /// </summary>
-        EnableUnsafeModes = 0x00000100,
-
-        /// <summary>
-        /// Not supported by <see cref="User32.DeviceContext.ChangeDisplaySettings"/>.<para/>
-        /// Only supported on Vista and higher.
-        /// </summary>
-        DisableUnsafeModes = 0x00000200,
-
-        /// <summary>
-        /// The settings should be changed, even if the requested settings are the same as the current settings.
-        /// </summary>
-        Reset = 0x40000000,
-
-        /// <summary>
-        /// The settings will be saved in the registry, but will not take effect.
-        /// This flag is only valid when specified with the <see cref="UpdateRegistry"/> flag.
-        /// </summary>
-        NoReset = 0x10000000
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/EnumDisplayModes.cs b/Crow/src/backends/win32/User32/Enums/EnumDisplayModes.cs
deleted file mode 100644 (file)
index 08c1cb2..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-using System;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Flags used in <see cref="User32.DeviceContext.EnumDisplaySettingsEx(string, DisplayModeSetting, out DeviceMode,
-    /// EnumDisplayModes)"/> to specify which graphics modes to return.
-    /// </summary>
-    [Flags]
-    public enum EnumDisplayModes
-    {
-        /// <summary>
-        /// If set, the function will return all graphics modes reported by the adapter driver, regardless of
-        /// monitor capabilities. Otherwise, it will only return modes that are compatible with current monitors.
-        /// </summary>
-        RawMode = 0x00000002,
-
-        /// <summary>
-        /// If set, the function will return graphics modes in all orientations. Otherwise, it will only return
-        /// modes that have the same orientation as the one currently set for the requested display.
-        /// </summary>
-        RotatedMode = 0x00000004,
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/ExtendedWindowStyles.cs b/Crow/src/backends/win32/User32/Enums/ExtendedWindowStyles.cs
deleted file mode 100644 (file)
index 538b674..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-using System;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Defines extended window style flags for usage in <see cref="User32.Window.AdjustWindowRectEx(ref Rect,
-    /// WindowStyles, bool, ExtendedWindowStyles)"/> and <see cref="User32.Window.CreateWindowEx(
-    /// ExtendedWindowStyles, string, string, WindowStyles, int, int, int, int, IntPtr, IntPtr, IntPtr, IntPtr)"/>.
-    /// </summary>
-    [Flags]
-    public enum ExtendedWindowStyles : uint
-    {
-        /// <summary>
-        /// The window has a double border; the window can, optionally, be created with a title bar
-        /// by specifying the <see cref="WindowStyles.Caption"/> style in the dwStyle parameter.
-        /// </summary>
-        DialogModalFrame = 0x00000001,
-
-        /// <summary>
-        /// The child window created with this style does not send the <see cref="WindowMessage.ParentNotify"/> message
-        /// to its parent window when it is created or destroyed.
-        /// </summary>
-        NoParentModify = 0x00000004,
-
-        /// <summary>
-        /// The window should be placed above all non-topmost windows and should stay above them,
-        /// even when the window is deactivated. To add or remove this style, use the
-        /// <see cref="User32.Window.SetWindowPos(IntPtr, IntPtr, int, int, int, int, SetWindowPosFlags)"/> function.
-        /// </summary>
-        Topmost = 0x00000008,
-
-        /// <summary>
-        /// The window accepts drag-drop files.
-        /// </summary>
-        AcceptFiles = 0x00000010,
-
-        /// <summary>
-        /// The window should not be painted until siblings beneath the window
-        /// (that were created by the same thread) have been painted.
-        /// The window appears transparent because the bits of underlying
-        /// sibling windows have already been painted.<para/>
-        /// To achieve transparency without these restrictions, use the SetWindowRgn function.
-        /// </summary>
-        Transparent = 0x00000020,
-
-        /// <summary>
-        /// The window is a MDI child window.
-        /// </summary>
-        MdiChild = 0x00000040,
-
-        /// <summary>
-        /// The window is intended to be used as a floating toolbar. A tool window has a title bar
-        /// that is shorter than a normal title bar, and the window title is drawn using a smaller font.
-        /// A tool window does not appear in the taskbar or in the dialog that appears when the user presses ALT+TAB.
-        /// If a tool window has a system menu, its icon is not displayed on the title bar. However,
-        /// you can display the system menu by right-clicking or by typing ALT+SPACE.
-        /// </summary>
-        ToolWindow = 0x00000080,
-
-        /// <summary>
-        /// The window has a border with a raised edge.
-        /// </summary>
-        WindowEdge = 0x00000100,
-
-        /// <summary>
-        /// The window has a border with a sunken edge.
-        /// </summary>
-        ClientEdge = 0x00000200,
-
-        /// <summary>
-        /// The title bar of the window includes a question mark. When the user clicks the question mark,
-        /// the cursor changes to a question mark with a pointer. If the user then clicks a child window,
-        /// the child receives a <see cref="WindowMessage.Help"/> message. The child window should pass the message to
-        /// the parent window procedure, which should call the WinHelp function using the HELP_WM_HELP command.
-        /// The Help application displays a pop-up window that typically contains help for the child window.<para/>
-        /// <see cref="ContextHelp"/> cannot be used with the <see cref="WindowStyles.MaximizeBox"/>
-        /// or <see cref="WindowStyles.MinimizeBox"/> styles.
-        /// </summary>
-        ContextHelp = 0x00000400,
-
-        /// <summary>
-        /// The window has generic "right-aligned" properties. This depends on the window class.
-        /// This style has an effect only if the shell language is Hebrew, Arabic, or another language
-        /// that supports reading-order alignment; otherwise, the style is ignored.<para/>
-        /// Using the <see cref="Right"/> style for static or edit controls has the same effect as using the SS_RIGHT
-        /// or ES_RIGHT style, respectively. Using this style with button controls has the same effect
-        /// as using BS_RIGHT and BS_RIGHTBUTTON styles.
-        /// </summary>
-        Right = 0x00001000,
-
-        /// <summary>
-        /// The window has generic left-aligned properties. This is the default.
-        /// </summary>
-        Left = 0x00000000,
-
-        /// <summary>
-        /// If the shell language is Hebrew, Arabic, or another language that supports reading-order alignment,
-        /// the window text is displayed using right-to-left reading-order properties. For other languages,
-        /// the style is ignored.
-        /// </summary>
-        RtlReading = 0x00002000,
-
-        /// <summary>
-        /// The window text is displayed using left-to-right reading-order properties. This is the default.
-        /// </summary>
-        LtrReading = 0x00000000,
-
-        /// <summary>
-        /// If the shell language is Hebrew, Arabic, or another language that supports reading order alignment,
-        /// the vertical scroll bar (if present) is to the left of the client area.
-        /// For other languages, the style is ignored.
-        /// </summary>
-        LeftScrollbar = 0x00004000,
-
-        /// <summary>
-        /// The vertical scroll bar (if present) is to the right of the client area. This is the default.
-        /// </summary>
-        RightScrollbar = 0x00000000,
-
-        /// <summary>
-        /// The window itself contains child windows that should take part in dialog box navigation.<para/>
-        /// If this style is specified, the dialog manager recurses into children of this window when performing
-        /// navigation operations such as handling the TAB key, an arrow key, or a keyboard mnemonic.
-        /// </summary>
-        ControlParent = 0x00010000,
-
-        /// <summary>
-        /// The window has a three-dimensional border style intended to be used for items
-        /// that do not accept user input.
-        /// </summary>
-        StaticEdge = 0x00020000,
-
-        /// <summary>
-        /// Forces a top-level window onto the taskbar when the window is visible.
-        /// </summary>
-        AppWindow = 0x00040000,
-
-        /// <summary>
-        /// The window is an overlapped window.
-        /// </summary>
-        OverlappedWindow = WindowEdge | ClientEdge,
-
-        /// <summary>
-        /// The window is palette window, which is a modeless dialog box that presents an array of commands.
-        /// </summary>
-        PaletteWindow = WindowEdge | ToolWindow | Topmost,
-
-        /// <summary>
-        /// The window is a layered window. This style cannot be used if the window has
-        /// a class style of either <see cref="WindowClassStyles.OwnDeviceContext"/> or
-        /// <see cref="WindowClassStyles.ClassDeviceContext"/>.<para/>
-        /// </summary>
-        Layered = 0x00080000,
-
-        /// <summary>
-        /// The window does not pass its window layout to its child windows.<para/>
-        /// </summary>
-        NoInheritLayout = 0x00100000,
-
-        /// <summary>
-        /// The window does not render to a redirection surface. This is for windows that do not have visible
-        /// content or that use mechanisms other than surfaces to provide their visual.<para/>
-        /// </summary>
-        NoRedirectionBitmap = 0x00200000,
-
-        /// <summary>
-        /// If the shell language is Hebrew, Arabic, or another language that supports reading order alignment,
-        /// the horizontal origin of the window is on the right edge.
-        /// Increasing horizontal values advance to the left.<para/>
-        /// </summary>
-        LayoutRtl = 0x00400000,
-
-        /// <summary>
-        /// Paints all descendants of a window in bottom-to-top painting order using double-buffering.<para/>
-        /// This cannot be used if the window has a class style of either <see cref="WindowClassStyles.OwnDeviceContext"/>
-        /// or <see cref="WindowClassStyles.ClassDeviceContext"/>.<para/>
-        /// </summary>
-        Composited = 0x02000000,
-
-        /// <summary>
-        /// A top-level window created with this style does not become the foreground window when the user clicks it.
-        /// The system does not bring this window to the foreground when the user minimizes or closes
-        /// the foreground window.<para/>
-        /// The window should not be activated through programmatic access or via keyboard navigation by accessible
-        /// technology, such as Narrator.<para/>
-        /// To activate the window, use the SetActiveWindow or <see cref="User32.Window.SetForegroundWindow"/>
-        /// function.<para/>
-        /// The window does not appear on the taskbar by default. To force the window to appear on the taskbar,
-        /// use the <see cref="ExtendedWindowStyles.AppWindow"/> style.<para/>
-        /// </summary>
-        NoActivate = 0x08000000
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/GetMouseMovePointsResolution.cs b/Crow/src/backends/win32/User32/Enums/GetMouseMovePointsResolution.cs
deleted file mode 100644 (file)
index a138f79..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Specifies the resolution desired by <see cref="User32.Mouse.GetMouseMovePointsEx(uint, ref MouseMovePoint,
-    /// MouseMovePoint*, int, GetMouseMovePointsResolution)"/>.
-    /// </summary>
-    public enum GetMouseMovePointsResolution : uint
-    {
-        /// <summary>
-        /// Retrieves the points using the display resolution.
-        /// </summary>
-        UseDisplayPoints = 1,
-
-        /// <summary>
-        /// Retrieves high resolution points. Points can range from zero to 65,535 (0xFFFF) in both x- and
-        /// y-coordinates. This is the resolution provided by absolute coordinate pointing devices
-        /// such as drawing tablets.
-        /// </summary>
-        UseHighResolutionPoints = 2
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/GetRawInputDataCommand.cs b/Crow/src/backends/win32/User32/Enums/GetRawInputDataCommand.cs
deleted file mode 100644 (file)
index efc773c..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Specifies which type of raw input data to get in a <see cref="User32.RawInput.GetRawInputData(System.IntPtr,
-    /// GetRawInputDataCommand, System.IntPtr, ref uint, uint)"/> function call.
-    /// </summary>
-    public enum GetRawInputDataCommand : uint
-    {
-        /// <summary>
-        /// Get the raw data from the <see cref="RawInput"/> structure.
-        /// </summary>
-        Input = 0x10000003,
-
-        /// <summary>
-        /// Get the header information from the <see cref="RawInput"/> structure.
-        /// </summary>
-        Header = 0x10000005
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/GetRawInputDeviceInfoEnum.cs b/Crow/src/backends/win32/User32/Enums/GetRawInputDeviceInfoEnum.cs
deleted file mode 100644 (file)
index 01f82ff..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Used in <see cref="User32.RawInput.GetRawInputDeviceInfo(System.IntPtr,
-    /// GetRawInputDeviceInfoEnum, byte[], ref uint)"/> to specify what data to return in the data parameter.
-    /// </summary>
-    public enum GetRawInputDeviceInfoEnum : uint
-    {
-        /// <summary>
-        /// data points to the previously parsed data.
-        /// </summary>
-        PreparsedData = 0x20000005,
-
-        /// <summary>
-        /// data points to a string that contains the device name.<para/>
-        /// For this command only, the value in dataSize is the character count (not the byte count).
-        /// </summary>
-        DeviceName = 0x20000007,
-
-        /// <summary>
-        /// data points to an <see cref="RawInputDeviceInfo"/> structure.
-        /// </summary>
-        DeviceInfo = 0x2000000b
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/GetWindowLongIndex.cs b/Crow/src/backends/win32/User32/Enums/GetWindowLongIndex.cs
deleted file mode 100644 (file)
index 279608c..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Pre-defines memory offsets in extra window memory for specific pieces information to be used in
-    /// <see cref="User32.Window.GetWindowLong(System.IntPtr, GetWindowLongIndex)"/> and
-    /// <see cref="User32.Window.SetWindowLong(System.IntPtr, GetWindowLongIndex, System.IntPtr)"/>.
-    /// </summary>
-    public enum GetWindowLongIndex
-    {
-        /// <summary>
-        /// Retrieves the address of the window procedure, or a handle
-        /// representing the address of the window procedure.
-        /// You must use the CallWindowProc function to call the window procedure.
-        /// </summary>
-        WindowProcedure = -4,
-
-        /// <summary>
-        /// Retrieves a handle to the application instance.
-        /// </summary>
-        HInstance = -6,
-
-        /// <summary>
-        /// Retrieves a handle to the parent window, if any.<para/>
-        /// Not supported in <see cref="User32.Window.SetWindowLong(System.IntPtr, int, System.IntPtr)"/>.
-        /// </summary>
-        HWndParent = -8,
-
-        /// <summary>
-        /// Retrieves the identifier of the window.
-        /// </summary>
-        ID = -12,
-
-        /// <summary>
-        /// Retrieves the window styles.
-        /// </summary>
-        Style = -16,
-
-        /// <summary>
-        /// Retrieves the extended window styles.
-        /// </summary>
-        ExStyle = -20,
-
-        /// <summary>
-        /// Retrieves the user data associated with the window.
-        /// This data is intended for use by the application that created the window.
-        /// Its value is initially zero.
-        /// </summary>
-        UserData = -21
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/IconName.cs b/Crow/src/backends/win32/User32/Enums/IconName.cs
deleted file mode 100644 (file)
index d410b30..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Specifies resource identifiers for the pre-defined icons.
-    /// </summary>
-    public enum IconName
-    {
-        /// <summary>
-        /// Application icon.
-        /// </summary>
-        Application = 32512,
-
-        /// <summary>
-        /// Stop sign icon.
-        /// </summary>
-        Hand = 32513,
-
-        /// <summary>
-        /// Question-mark icon.
-        /// </summary>
-        Question = 32514,
-
-        /// <summary>
-        /// Exclamation point icon.
-        /// </summary>
-        Exclamation = 32515,
-
-        /// <summary>
-        /// Asterisk icon.
-        /// </summary>
-        Asterisk = 32516,
-
-        /// <summary>
-        /// Application icon.
-        /// </summary>
-        WinLogo = 32517,
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/MapVirtualKeyType.cs b/Crow/src/backends/win32/User32/Enums/MapVirtualKeyType.cs
deleted file mode 100644 (file)
index 70de9c0..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Used in <see cref="MapVirtualKeyType"/> to specify the translation to be performed.
-    /// </summary>
-    public enum MapVirtualKeyType : uint
-    {
-        /// <summary>
-        /// uCode is a virtual-key code and is translated into a scan code. If it is a virtual-key code that does not
-        /// distinguish between left- and right-hand keys, the left-hand scan code is returned.
-        /// If there is no translation, the function returns 0.
-        /// </summary>
-        VirtualKeyToScanCode = 0,
-
-        /// <summary>
-        /// uCode is a scan code and is translated into a virtual-key code that does not distinguish between left- and
-        /// right-hand keys. If there is no translation, the function returns 0.
-        /// </summary>
-        ScanCodeToVirtualKey = 1,
-
-        /// <summary>
-        /// uCode is a virtual-key code and is translated into an unshifted character value in the low-order word of
-        /// the return value. Dead keys (diacritics) are indicated by setting the top bit of the return value.
-        /// If there is no translation, the function returns 0.
-        /// </summary>
-        VirtualKeyToCharacter = 2,
-
-        /// <summary>
-        /// Windows NT/2000/XP: uCode is a scan code and is translated into a virtual-key code that distinguishes
-        /// between left- and right-hand keys. If there is no translation, the function returns 0.
-        /// </summary>
-        ScanCodeToVirtualKeyExtended = 3,
-
-        /// <summary>
-        /// This member is not officially documented. Use with care.
-        /// </summary>
-        VirtualKeyToScanCodeExtended = 4
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/MonitorFromDefaultValue.cs b/Crow/src/backends/win32/User32/Enums/MonitorFromDefaultValue.cs
deleted file mode 100644 (file)
index 50eb7e2..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Specifies what values to return if
-    /// <see cref="User32.Monitor.MonitorFromPoint(Point, MonitorFromDefaultValue)"/> and
-    /// <see cref="User32.Monitor.MonitorFromWindow(System.IntPtr, MonitorFromDefaultValue)"/>
-    /// fail to find a monitor for the given arguments.
-    /// </summary>
-    public enum MonitorFromDefaultValue : uint
-    {
-        /// <summary>
-        /// Returns null.
-        /// </summary>
-        DefaultToNull = 0,
-
-        /// <summary>
-        /// Returns a handle to the primary display monitor.
-        /// </summary>
-        DefaultToPrimary = 1,
-
-        /// <summary>
-        /// Returns a handle to the display monitor that is nearest to the window/display monitor.
-        /// </summary>
-        DefaultToNearest = 2
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/PeekMessageActions.cs b/Crow/src/backends/win32/User32/Enums/PeekMessageActions.cs
deleted file mode 100644 (file)
index 160bc91..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-using System;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Used in <see cref="User32.Message.PeekMessage(out Msg, IntPtr, uint, uint, PeekMessageActions)"/>
-    /// to define what actions to take for retrieved messages.
-    /// </summary>
-    [Flags]
-    public enum PeekMessageActions : uint
-    {
-        /// <summary>
-        /// Messages are not removed from the queue after processing by <see cref="User32.Message.PeekMessage"/>.
-        /// </summary>
-        NoRemove = 0,
-
-        /// <summary>
-        /// Messages are removed from the queue after processing by <see cref="User32.Message.PeekMessage"/>.
-        /// </summary>
-        Remove = 1,
-
-        /// <summary>
-        /// Prevents the system from releasing any thread that is waiting for the caller to go idle
-        /// (see WaitForInputIdle). Combine this value with either <see cref="NoRemove"/> or <see cref="Remove"/>.
-        /// </summary>
-        NoYield = 2,
-
-        /// <summary>
-        /// Process mouse and keyboard messages.
-        /// </summary>
-        QSInput = QueueMessageTypes.Input << 16,
-
-        /// <summary>
-        /// Process paint messages.
-        /// </summary>
-        QSPaint = QueueMessageTypes.Paint << 16,
-
-        /// <summary>
-        /// Process all posted messages, including timers and hotkeys.
-        /// </summary>
-        QSPostMessage = (QueueMessageTypes.PostMessage | QueueMessageTypes.Hotkey | QueueMessageTypes.Timer) << 16,
-
-        /// <summary>
-        /// Process all sent messages.
-        /// </summary>
-        QSSendMessage = QueueMessageTypes.SendMessage << 16
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/PrinterColor.cs b/Crow/src/backends/win32/User32/Enums/PrinterColor.cs
deleted file mode 100644 (file)
index 2e3606e..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Specifies the color mode to use with color printers.
-    /// </summary>
-    public enum PrinterColor : short
-    {
-        /// <summary>
-        /// Use monochrome printing mode.
-        /// </summary>
-        Monochrome = 1,
-
-        /// <summary>
-        /// Use color printing mode.
-        /// </summary>
-        Color = 2,
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/PrinterDefaultSource.cs b/Crow/src/backends/win32/User32/Enums/PrinterDefaultSource.cs
deleted file mode 100644 (file)
index d2bb026..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// For a printer, specifies the paper source.
-    /// </summary>
-    public enum PrinterDefaultSource : short
-    {
-        /// <summary>
-        /// Select the upper paper bin.
-        /// This value is also used for the paper source for printers that only have one paper bin.
-        /// </summary>
-        Upper = 1,
-
-        /// <summary>
-        /// Same as <see cref="Upper"/>.
-        /// </summary>
-        OnlyOne = 1,
-
-        /// <summary>
-        /// Select the lower bin.
-        /// </summary>
-        Lower = 2,
-
-        /// <summary>
-        /// Select the middle paper bin.
-        /// </summary>
-        Middle = 3,
-
-        /// <summary>
-        /// Manually select the paper bin.
-        /// </summary>
-        Manual = 4,
-
-        /// <summary>
-        /// Select the auto envelope bin.
-        /// </summary>
-        Envelope = 5,
-
-        /// <summary>
-        /// Select the manual envelope bin.
-        /// </summary>
-        EnvelopeManual = 6,
-
-        /// <summary>
-        /// Auto-select the bin.
-        /// </summary>
-        Auto = 7,
-
-        /// <summary>
-        /// Select the bin with the tractor paper.
-        /// </summary>
-        Tractor = 8,
-
-        /// <summary>
-        /// Select the bin with the smaller paper format.
-        /// </summary>
-        SmallFormat = 9,
-
-        /// <summary>
-        /// Select the bin with the larger paper format.
-        /// </summary>
-        LargeFormat = 10,
-
-        /// <summary>
-        /// Select the bin with large capacity.
-        /// </summary>
-        LargeCapacity = 11,
-
-        /// <summary>
-        /// Select the cassette bin.
-        /// </summary>
-        Cassette = 14,
-
-        /// <summary>
-        /// Select the bin with the required form.
-        /// </summary>
-        FormSource = 15,
-
-        /// <summary>
-        /// Starting value for user-defined printer sources.
-        /// </summary>
-        User = 256,
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/PrinterDitherType.cs b/Crow/src/backends/win32/User32/Enums/PrinterDitherType.cs
deleted file mode 100644 (file)
index 7b8a886..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// For printers, specifies types of dithering.
-    /// </summary>
-    public enum PrinterDitherType : uint
-    {
-        /// <summary>
-        /// No dithering.
-        /// </summary>
-        None = 1,
-
-        /// <summary>
-        /// Dithering with a coarse brush.
-        /// </summary>
-        Coarse = 2,
-
-        /// <summary>
-        /// Dithering with a fine brush.
-        /// </summary>
-        Fine = 3,
-
-        /// <summary>
-        /// Line art dithering, a special dithering method that produces well defined borders between black, white,
-        /// and gray scaling. It is not suitable for images that include continuous graduations in intensity and hue,
-        /// such as scanned photographs.
-        /// </summary>
-        LineArt = 4,
-
-        /// <summary>
-        /// Error diffusion dithering.<para/>
-        /// Only supported on Windows 95, 98, and Millennium Edition.
-        /// </summary>
-        ErrorDiffusion = 5,
-
-        /// <summary>
-        /// Reserved. Do not use.
-        /// </summary>
-        Reserved6 = 6,
-
-        /// <summary>
-        /// Reserved. Do not use.
-        /// </summary>
-        Reserved7 = 7,
-
-        /// <summary>
-        /// Reserved. Do not use.
-        /// </summary>
-        Reserved8 = 8,
-
-        /// <summary>
-        /// Reserved. Do not use.
-        /// </summary>
-        Reserved9 = 9,
-
-        /// <summary>
-        /// Device does gray scaling.
-        /// </summary>
-        Grayscale = 10,
-
-        /// <summary>
-        /// This is the starting value for user-defined values.
-        /// </summary>
-        User = 256,
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/PrinterDuplex.cs b/Crow/src/backends/win32/User32/Enums/PrinterDuplex.cs
deleted file mode 100644 (file)
index 1caa897..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Specifies duplex (double-sided) printing for duplex-capable printers.
-    /// </summary>
-    public enum PrinterDuplex : short
-    {
-        /// <summary>
-        /// Print single-sided.
-        /// </summary>
-        SimpleX = 1,
-
-        /// <summary>
-        /// Print double-sided, using long edge binding.
-        /// </summary>
-        Vertical = 2,
-
-        /// <summary>
-        /// Print double-sided, using short edge binding.
-        /// </summary>
-        Horizontal = 3,
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/PrinterIcmIntent.cs b/Crow/src/backends/win32/User32/Enums/PrinterIcmIntent.cs
deleted file mode 100644 (file)
index 9ae6e24..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Specifies which color matching method, or intent, is used by default.
-    /// </summary>
-    public enum PrinterIcmIntent : uint
-    {
-        /// <summary>
-        /// Optimize for color saturation.<para/>
-        /// This value is the most appropriate choice for business graphs when dithering is not desired.
-        /// </summary>
-        Saturate = 1,
-
-        /// <summary>
-        /// Optimize for color contrast.<para/>
-        /// This value is the most appropriate choice for scanned or photographic images when dithering is desired.
-        /// </summary>
-        Contrast = 2,
-
-        /// <summary>
-        /// Optimize to match the exact color requested.<para/>
-        /// This value is most appropriate for use with business logos
-        /// or other images when an exact color match is desired.
-        /// </summary>
-        Colorimetric = 3,
-
-        /// <summary>
-        /// Optimize to match the exact color requested without white point mapping.<para/>
-        /// This value is most appropriate for use with proofing.
-        /// </summary>
-        AbsoluteColorimetric = 4,
-
-        /// <summary>
-        /// This is the starting value for user-defined values.
-        /// </summary>
-        User = 256,
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/PrinterIcmMethod.cs b/Crow/src/backends/win32/User32/Enums/PrinterIcmMethod.cs
deleted file mode 100644 (file)
index 0a98c6c..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Specifies how Image Color Management (ICM) is handled.
-    /// </summary>
-    public enum PrinterIcmMethod : uint
-    {
-        /// <summary>
-        /// Specifies that ICM is disabled.
-        /// </summary>
-        None = 1,
-
-        /// <summary>
-        /// Specifies that ICM is handled by the system on which the page description language (PDL) data is generated.
-        /// </summary>
-        System = 2,
-
-        /// <summary>
-        /// Specifies that ICM is handled by the printer driver.
-        /// </summary>
-        Driver = 3,
-
-        /// <summary>
-        /// Specifies that ICM is handled by the destination device.
-        /// </summary>
-        Device = 4,
-
-        /// <summary>
-        /// This is the starting value for user-defined values.
-        /// </summary>
-        User = 256,
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/PrinterMediaType.cs b/Crow/src/backends/win32/User32/Enums/PrinterMediaType.cs
deleted file mode 100644 (file)
index 3db4d06..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Specifies the type of media being printed on.
-    /// </summary>
-    public enum PrinterMediaType : uint
-    {
-        /// <summary>
-        /// Plain paper.
-        /// </summary>
-        Standard = 1,
-
-        /// <summary>
-        /// Transparent film.
-        /// </summary>
-        Transparency = 2,
-
-        /// <summary>
-        /// Glossy paper.
-        /// </summary>
-        Glossy = 3,
-
-        /// <summary>
-        /// This is the starting value for user-defined values.
-        /// </summary>
-        User = 256,
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/PrinterNupHandling.cs b/Crow/src/backends/win32/User32/Enums/PrinterNupHandling.cs
deleted file mode 100644 (file)
index 2e0372d..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Specifies the responsibility for performing page layout for N-up printing.
-    /// </summary>
-    public enum PrinterNupHandling : uint
-    {
-        /// <summary>
-        /// The print server does the page layout.
-        /// </summary>
-        System = 1,
-
-        /// <summary>
-        /// The application does the page layout.
-        /// </summary>
-        OneUp = 2,
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/PrinterPaperOrientation.cs b/Crow/src/backends/win32/User32/Enums/PrinterPaperOrientation.cs
deleted file mode 100644 (file)
index 0543a35..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// For printers, the orientation for output.
-    /// </summary>
-    public enum PrinterPaperOrientation : short
-    {
-        /// <summary>
-        /// "Portrait" orientation.
-        /// </summary>
-        Portrait = 1,
-
-        /// <summary>
-        /// "Landscape" orientation.
-        /// </summary>
-        Landscape = 2,
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/PrinterPaperSize.cs b/Crow/src/backends/win32/User32/Enums/PrinterPaperSize.cs
deleted file mode 100644 (file)
index e0ac4a9..0000000
+++ /dev/null
@@ -1,600 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Lists all defined types for paper size, with <see cref="Letter"/>, <see cref="Legal"/>, <see cref="A3"/> and
-    /// <see cref="A4"/> being the most typical. All types not included in this enum are reserved.<para/>
-    /// Note that the paper size types cannot be combined with one another.
-    /// </summary>
-    public enum PrinterPaperSize : short
-    {
-        /// <summary>
-        /// US Letter 8 1/2 x 11 in
-        /// </summary>
-        Letter = 1,
-
-        /// <summary>
-        /// US Letter Small 8 1/2 x 11 in
-        /// </summary>
-        LetterSmall = 2,
-
-        /// <summary>
-        /// US Tabloid 11 x 17 in
-        /// </summary>
-        Tabloid = 3,
-
-        /// <summary>
-        /// US Ledger 17 x 11 in
-        /// </summary>
-        Ledger = 4,
-
-        /// <summary>
-        /// US Legal 8 1/2 x 14 in
-        /// </summary>
-        Legal = 5,
-
-        /// <summary>
-        /// US Statement 5 1/2 x 8 1/2 in
-        /// </summary>
-        Statement = 6,
-
-        /// <summary>
-        /// US Executive 7 1/4 x 10 1/2 in
-        /// </summary>
-        Executive = 7,
-
-        /// <summary>
-        /// A3 297 x 420 mm
-        /// </summary>
-        A3 = 8,
-
-        /// <summary>
-        /// A4 210 x 297 mm
-        /// </summary>
-        A4 = 9,
-
-        /// <summary>
-        /// A4 Small 210 x 297 mm
-        /// </summary>
-        A4Small = 10,
-
-        /// <summary>
-        /// A5 148 x 210 mm
-        /// </summary>
-        A5 = 11,
-
-        /// <summary>
-        /// B4 (JIS) 257 x 364 mm
-        /// </summary>
-        B4 = 12,
-
-        /// <summary>
-        /// B5 (JIS) 182 x 257 mm
-        /// </summary>
-        B5 = 13,
-
-        /// <summary>
-        /// Folio 8 1/2 x 13 in
-        /// </summary>
-        Folio = 14,
-
-        /// <summary>
-        /// Quarto 215 x 275 mm
-        /// </summary>
-        Quarto = 15,
-
-        /// <summary>
-        /// 10 x 14 in
-        /// </summary>
-        TenByFourteenInches = 16,
-
-        /// <summary>
-        /// 11 x 17 in
-        /// </summary>
-        ElevenBySeventeenInches = 17,
-
-        /// <summary>
-        /// US Note 8 1/2 x 11 in
-        /// </summary>
-        Note = 18,
-
-        /// <summary>
-        /// US Envelope #9 3 7/8 x 8 7/8
-        /// </summary>
-        Envelope9 = 19,
-
-        /// <summary>
-        /// US Envelope #10 4 1/8 x 9 1/2
-        /// </summary>
-        Envelope10 = 20,
-
-        /// <summary>
-        /// US Envelope #11 4 1/2 x 10 3/8
-        /// </summary>
-        Envelope11 = 21,
-
-        /// <summary>
-        /// US Envelope #12 4 3/4 x 11 in
-        /// </summary>
-        Envelope12 = 22,
-
-        /// <summary>
-        /// US Envelope #14 5 x 11 1/2
-        /// </summary>
-        Envelope14 = 23,
-
-        /// <summary>
-        /// C size sheet
-        /// </summary>
-        CSheet = 24,
-
-        /// <summary>
-        /// D size sheet
-        /// </summary>
-        DSheet = 25,
-
-        /// <summary>
-        /// E size sheet
-        /// </summary>
-        ESheet = 26,
-
-        /// <summary>
-        /// Envelope DL 110 x 220mm
-        /// </summary>
-        EnvelopeDL = 27,
-
-        /// <summary>
-        /// Envelope C5 162 x 229 mm
-        /// </summary>
-        EnvelopeC5 = 28,
-
-        /// <summary>
-        /// Envelope C3 324 x 458 mm
-        /// </summary>
-        EnvelopeC3 = 29,
-
-        /// <summary>
-        /// Envelope C4 229 x 324 mm
-        /// </summary>
-        EnvelopeC4 = 30,
-
-        /// <summary>
-        /// Envelope C6 114 x 162 mm
-        /// </summary>
-        EnvelopeC6 = 31,
-
-        /// <summary>
-        /// Envelope C65 114 x 229 mm
-        /// </summary>
-        EnvelopeC65 = 32,
-
-        /// <summary>
-        /// Envelope B4 250 x 353 mm
-        /// </summary>
-        EnvelopeB4 = 33,
-
-        /// <summary>
-        /// Envelope B5 176 x 250 mm
-        /// </summary>
-        EnvelopeB5 = 34,
-
-        /// <summary>
-        /// Envelope B6 176 x 125 mm
-        /// </summary>
-        EnvelopeB6 = 35,
-
-        /// <summary>
-        /// Envelope 110 x 230 mm
-        /// </summary>
-        EnvelopeItaly = 36,
-
-        /// <summary>
-        /// US Envelope Monarch 3.875 x 7.5 in
-        /// </summary>
-        EnvelopeMonarch = 37,
-
-        /// <summary>
-        /// 6 3/4 US Envelope 3 5/8 x 6 1/2 in
-        /// </summary>
-        EnvelopePersonal = 38,
-
-        /// <summary>
-        /// US Std Fanfold 14 7/8 x 11 in
-        /// </summary>
-        FanfoldUS = 39,
-
-        /// <summary>
-        /// German Std Fanfold 8 1/2 x 12 in
-        /// </summary>
-        FanfoldStandardGerman = 40,
-
-        /// <summary>
-        /// German Legal Fanfold 8 1/2 x 13 in
-        /// </summary>
-        FanfoldLegalGerman = 41,
-
-        /// <summary>
-        /// B4 (ISO) 250 x 353 mm
-        /// </summary>
-        IsoB4 = 42,
-
-        /// <summary>
-        /// Japanese Postcard 100 x 148 mm
-        /// </summary>
-        JapanesePostcard = 43,
-
-        /// <summary>
-        /// 9 x 11 in
-        /// </summary>
-        NineByElevenInches = 44,
-
-        /// <summary>
-        /// 10 x 11 in
-        /// </summary>
-        TenByElevenInches = 45,
-
-        /// <summary>
-        /// 15 x 11 in
-        /// </summary>
-        FifteenByElevenInches = 46,
-
-        /// <summary>
-        /// Envelope Invite 220 x 220 mm
-        /// </summary>
-        EnvelopeInvite = 47,
-
-        /// <summary>
-        /// RESERVED--DO NOT USE
-        /// </summary>
-        Reserved48 = 48,
-
-        /// <summary>
-        /// RESERVED--DO NOT USE
-        /// </summary>
-        Reserved49 = 49,
-
-        /// <summary>
-        /// US Letter Extra 9 1/2 x 12 in
-        /// </summary>
-        LetterExtra = 50,
-
-        /// <summary>
-        /// US Legal Extra 9 1/2 x 15 in
-        /// </summary>
-        LegalExtra = 51,
-
-        /// <summary>
-        /// US Tabloid Extra 11.69 x 18 in
-        /// </summary>
-        TabloidExtra = 52,
-
-        /// <summary>
-        /// A4 Extra 9.27 x 12.69 in
-        /// </summary>
-        A4Extra = 53,
-
-        /// <summary>
-        /// Letter Transverse 8 1/2 x 11 in
-        /// </summary>
-        LetterTransverse = 54,
-
-        /// <summary>
-        /// A4 Transverse 210 x 297 mm
-        /// </summary>
-        A4Transverse = 55,
-
-        /// <summary>
-        /// Letter Extra Transverse 9 1/2 x 12 in
-        /// </summary>
-        LetterExtraTransverse = 56,
-
-        /// <summary>
-        /// SuperA/SuperA/A4 227 x 356 mm
-        /// </summary>
-        APlus = 57,
-
-        /// <summary>
-        /// SuperB/SuperB/A3 305 x 487 mm
-        /// </summary>
-        BPlus = 58,
-
-        /// <summary>
-        /// US Letter Plus 8.5 x 12.69 in
-        /// </summary>
-        LetterPlus = 59,
-
-        /// <summary>
-        /// A4 Plus 210 x 330 mm
-        /// </summary>
-        A4Plus = 60,
-
-        /// <summary>
-        /// A5 Transverse 148 x 210 mm
-        /// </summary>
-        A5Transverse = 61,
-
-        /// <summary>
-        /// B5 (JIS) Transverse 182 x 257 mm
-        /// </summary>
-        B5Transverse = 62,
-
-        /// <summary>
-        /// A3 Extra 322 x 445 mm
-        /// </summary>
-        A3Extra = 63,
-
-        /// <summary>
-        /// A5 Extra 174 x 235 mm
-        /// </summary>
-        A5Extra = 64,
-
-        /// <summary>
-        /// B5 (ISO) Extra 201 x 276 mm
-        /// </summary>
-        B5Extra = 65,
-
-        /// <summary>
-        /// A2 420 x 594 mm
-        /// </summary>
-        A2 = 66,
-
-        /// <summary>
-        /// A3 Transverse 297 x 420 mm
-        /// </summary>
-        A3Transverse = 67,
-
-        /// <summary>
-        /// A3 Extra Transverse 322 x 445 mm
-        /// </summary>
-        A3ExtraTransverse = 68,
-
-        /// <summary>
-        /// Japanese Double Postcard 200 x 148 mm
-        /// </summary>
-        DoubleJapanesePostcard = 69,
-
-        /// <summary>
-        /// A6 105 x 148 mm
-        /// </summary>
-        A6 = 70,
-
-        /// <summary>
-        /// Japanese Envelope Kaku #2
-        /// </summary>
-        JapaneseEnvelopeKaku2 = 71,
-
-        /// <summary>
-        /// Japanese Envelope Kaku #3
-        /// </summary>
-        JapaneseEnvelopeKaku3 = 72,
-
-        /// <summary>
-        /// Japanese Envelope Chou #3
-        /// </summary>
-        JapaneseEnvelopeChou3 = 73,
-
-        /// <summary>
-        /// Japanese Envelope Chou #4
-        /// </summary>
-        JapaneseEnvelopeChou4 = 74,
-
-        /// <summary>
-        /// Letter Rotated 11 x 8 1/2 11 in
-        /// </summary>
-        LetterRotated = 75,
-
-        /// <summary>
-        /// A3 Rotated 420 x 297 mm
-        /// </summary>
-        A3Rotated = 76,
-
-        /// <summary>
-        /// A4 Rotated 297 x 210 mm
-        /// </summary>
-        A4Rotated = 77,
-
-        /// <summary>
-        /// A5 Rotated 210 x 148 mm
-        /// </summary>
-        A5Rotated = 78,
-
-        /// <summary>
-        /// B4 (JIS) Rotated 364 x 257 mm
-        /// </summary>
-        B4JisRotated = 79,
-
-        /// <summary>
-        /// B5 (JIS) Rotated 257 x 182 mm
-        /// </summary>
-        B5JisRotated = 80,
-
-        /// <summary>
-        /// Japanese Postcard Rotated 148 x 100 mm
-        /// </summary>
-        JapanesePostcardRotated = 81,
-
-        /// <summary>
-        /// Double Japanese Postcard Rotated 148 x 200 mm
-        /// </summary>
-        DoubleJapanesePostcardRotated = 82,
-
-        /// <summary>
-        /// A6 Rotated 148 x 105 mm
-        /// </summary>
-        A6Rotated = 83,
-
-        /// <summary>
-        /// Japanese Envelope Kaku #2 Rotated
-        /// </summary>
-        JapaneseEnvelopeKaku2Rotated = 84,
-
-        /// <summary>
-        /// Japanese Envelope Kaku #3 Rotated
-        /// </summary>
-        JapaneseEnvelopeKaku3Rotated = 85,
-
-        /// <summary>
-        /// Japanese Envelope Chou #3 Rotated
-        /// </summary>
-        JapaneseEnvelopeChou3Rotated = 86,
-
-        /// <summary>
-        /// Japanese Envelope Chou #4 Rotated
-        /// </summary>
-        JapaneseEnvelopeChou4Rotated = 87,
-
-        /// <summary>
-        /// B6 (JIS) 128 x 182 mm
-        /// </summary>
-        B6Jis = 88,
-
-        /// <summary>
-        /// B6 (JIS) Rotated 182 x 128 mm
-        /// </summary>
-        B6JisRotated = 89,
-
-        /// <summary>
-        /// 12 x 11 in
-        /// </summary>
-        TwelveByElevenInches = 90,
-
-        /// <summary>
-        /// Japanese Envelope You #4
-        /// </summary>
-        JapaneseEnvelopeYou4 = 91,
-
-        /// <summary>
-        /// Japanese Envelope You #4 Rotated
-        /// </summary>
-        JapaneseEnvelopeYou4Rotated = 92,
-
-        /// <summary>
-        /// PRC 16K 146 x 215 mm
-        /// </summary>
-        Prc16K = 93,
-
-        /// <summary>
-        /// PRC 32K 97 x 151 mm
-        /// </summary>
-        Prc32K = 94,
-
-        /// <summary>
-        /// PRC 32K(Big) 97 x 151 mm
-        /// </summary>
-        Prc32KBig = 95,
-
-        /// <summary>
-        /// PRC Envelope #1 102 x 165 mm
-        /// </summary>
-        PrcEnvelope1 = 96,
-
-        /// <summary>
-        /// PRC Envelope #2 102 x 176 mm
-        /// </summary>
-        PrcEnvelope2 = 97,
-
-        /// <summary>
-        /// PRC Envelope #3 125 x 176 mm
-        /// </summary>
-        PrcEnvelope3 = 98,
-
-        /// <summary>
-        /// PRC Envelope #4 110 x 208 mm
-        /// </summary>
-        PrcEnvelope4 = 99,
-
-        /// <summary>
-        /// PRC Envelope #5 110 x 220 mm
-        /// </summary>
-        PrcEnvelope5 = 100,
-
-        /// <summary>
-        /// PRC Envelope #6 120 x 230 mm
-        /// </summary>
-        PrcEnvelope6 = 101,
-
-        /// <summary>
-        /// PRC Envelope #7 160 x 230 mm
-        /// </summary>
-        PrcEnvelope7 = 102,
-
-        /// <summary>
-        /// PRC Envelope #8 120 x 309 mm
-        /// </summary>
-        PrcEnvelope8 = 103,
-
-        /// <summary>
-        /// PRC Envelope #9 229 x 324 mm
-        /// </summary>
-        PrcEnvelope9 = 104,
-
-        /// <summary>
-        /// PRC Envelope #10 324 x 458 mm
-        /// </summary>
-        PrcEnvelope10 = 105,
-
-        /// <summary>
-        /// PRC 16K Rotated
-        /// </summary>
-        P16KRotated = 106,
-
-        /// <summary>
-        /// PRC 32K Rotated
-        /// </summary>
-        P32KRotated = 107,
-
-        /// <summary>
-        /// PRC 32K(Big) Rotated
-        /// </summary>
-        P32KBigRotated = 108,
-
-        /// <summary>
-        /// PRC Envelope #1 Rotated 165 x 102 mm
-        /// </summary>
-        PrcEnvelope1Rotated = 109,
-
-        /// <summary>
-        /// PRC Envelope #2 Rotated 176 x 102 mm
-        /// </summary>
-        PrcEnvelope2Rotated = 110,
-
-        /// <summary>
-        /// PRC Envelope #3 Rotated 176 x 125 mm
-        /// </summary>
-        PrcEnvelope3Rotated = 111,
-
-        /// <summary>
-        /// PRC Envelope #4 Rotated 208 x 110 mm
-        /// </summary>
-        PrcEnvelope4Rotated = 112,
-
-        /// <summary>
-        /// PRC Envelope #5 Rotated 220 x 110 mm
-        /// </summary>
-        PrcEnvelope5Rotated = 113,
-
-        /// <summary>
-        /// PRC Envelope #6 Rotated 230 x 120 mm
-        /// </summary>
-        PrcEnvelope6Rotated = 114,
-
-        /// <summary>
-        /// PRC Envelope #7 Rotated 230 x 160 mm
-        /// </summary>
-        PrcEnvelope7Rotated = 115,
-
-        /// <summary>
-        /// PRC Envelope #8 Rotated 309 x 120 mm
-        /// </summary>
-        PrcEnvelope8Rotated = 116,
-
-        /// <summary>
-        /// PRC Envelope #9 Rotated 324 x 229 mm
-        /// </summary>
-        PrcEnvelope9Rotated = 117,
-
-        /// <summary>
-        /// PRC Envelope #10 Rotated 458 x 324 mm
-        /// </summary>
-        PrcEnvelope10Rotated = 118,
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/PrinterPrintQuality.cs b/Crow/src/backends/win32/User32/Enums/PrinterPrintQuality.cs
deleted file mode 100644 (file)
index e3392a6..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// For printers, specifies the printer resolution.<para/>
-    /// Either specify one of these pre-defined values or specify a positive device-dependent resolution in DPI.
-    /// </summary>
-    public enum PrinterPrintQuality : short
-    {
-        /// <summary>
-        /// Draft-resolution printouts.
-        /// </summary>
-        Draft = -1,
-
-        /// <summary>
-        /// Low-resolution printouts.
-        /// </summary>
-        Low = -2,
-
-        /// <summary>
-        /// Medium-resolution printouts.
-        /// </summary>
-        Medium = -3,
-
-        /// <summary>
-        /// High-resolution printouts.
-        /// </summary>
-        High = -4,
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/PrinterTrueTypeOption.cs b/Crow/src/backends/win32/User32/Enums/PrinterTrueTypeOption.cs
deleted file mode 100644 (file)
index 650542e..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Specifies how TrueType fonts should be printed.
-    /// </summary>
-    public enum PrinterTrueTypeOption : short
-    {
-        /// <summary>
-        /// Device will print TrueType fonts as graphics.
-        /// </summary>
-        Bitmap = 1,
-
-        /// <summary>
-        /// Device will download TrueType fonts.
-        /// </summary>
-        Download = 2,
-
-        /// <summary>
-        /// Device will substitute device fonts for TrueType fonts.
-        /// </summary>
-        SubstituteDevice = 3,
-
-        /// <summary>
-        /// Downloads TrueType fonts as outline soft fonts.
-        /// </summary>
-        DownloadOutline = 4,
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/QueueMessageTypes.cs b/Crow/src/backends/win32/User32/Enums/QueueMessageTypes.cs
deleted file mode 100644 (file)
index cf9a09e..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-using System;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Flags used in <see cref="User32.Message.GetQueueStatus(QueueMessageTypes)"/>
-    /// to specify the types of messages to check for.
-    /// </summary>
-    [Flags]
-    public enum QueueMessageTypes : uint
-    {
-        /// <summary>
-        /// A <see cref="WindowMessage.KeyUp"/>, <see cref="WindowMessage.KeyDown"/>,
-        /// <see cref="WindowMessage.SystemKeyUp"/>, or <see cref="WindowMessage.SystemKeyDown"/> message
-        /// is in the queue.
-        /// </summary>
-        Key = 0x0001,
-
-        /// <summary>
-        /// A <see cref="WindowMessage.MouseMove"/> message is in the queue.
-        /// </summary>
-        MouseMove = 0x0002,
-
-        /// <summary>
-        /// A mouse-button message (<see cref="WindowMessage.LButtonUp"/>,
-        /// <see cref="WindowMessage.RButtonDown"/>, and so on).
-        /// </summary>
-        MouseButton = 0x0004,
-
-        /// <summary>
-        /// A posted message (other than those listed here) is in the queue.
-        /// </summary>
-        PostMessage = 0x0008,
-
-        /// <summary>
-        /// A <see cref="WindowMessage.Timer"/> message is in the queue.
-        /// </summary>
-        Timer = 0x0010,
-
-        /// <summary>
-        /// A <see cref="WindowMessage.Paint"/> message is in the queue.
-        /// </summary>
-        Paint = 0x0020,
-
-        /// <summary>
-        /// A message sent by another thread or application is in the queue.
-        /// </summary>
-        SendMessage = 0x0040,
-
-        /// <summary>
-        /// A <see cref="WindowMessage.Hotkey"/> message is in the queue.
-        /// </summary>
-        Hotkey = 0x0080,
-
-        /// <summary>
-        /// A posted message (other than those listed here) is in the queue.
-        /// </summary>
-        AllPostMessage = 0x0100,
-
-        /// <summary>
-        /// A raw input message is in the queue. For more information, see Raw Input.
-        /// Windows XP and higher only.
-        /// </summary>
-        RawInput = 0x0400,
-
-        /// <summary>
-        /// A <see cref="WindowMessage.MouseMove"/> message or mouse-button message
-        /// (<see cref="WindowMessage.LButtonUp"/>, <see cref="WindowMessage.RButtonDown"/>, and so on).
-        /// </summary>
-        Mouse = MouseMove | MouseButton,
-
-        /// <summary>
-        /// An input message is in the queue. This is composed of <see cref="Key"/>,
-        /// <see cref="Mouse"/> and <see cref="RawInput"/>.
-        /// Windows XP and higher only.
-        /// </summary>
-        Input = Mouse | Key | RawInput,
-
-        /// <summary>
-        /// An input message is in the queue. This is composed of <see cref="Key"/> and <see cref="Mouse"/>.
-        /// Windows 2000 and earlier.
-        /// </summary>
-        InputLegacy = Mouse | Key,
-
-        /// <summary>
-        /// An input, <see cref="WindowMessage.Timer"/>, <see cref="WindowMessage.Paint"/>,
-        /// <see cref="WindowMessage.Hotkey"/>, or posted message is in the queue.
-        /// </summary>
-        AllEvents = Input | PostMessage | Timer | Paint | Hotkey,
-
-        /// <summary>
-        /// Any message is in the queue.
-        /// </summary>
-        AllInput = Input | PostMessage | Timer | Paint | Hotkey | SendMessage
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/RawInputDeviceFlags.cs b/Crow/src/backends/win32/User32/Enums/RawInputDeviceFlags.cs
deleted file mode 100644 (file)
index 3d4230e..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-using System;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Used in <see cref="RawInputDevice"/> to specify how to interpret the data in the structure.
-    /// </summary>
-    [Flags]
-    public enum RawInputDeviceFlags : uint
-    {
-        /// <summary>
-        /// If set, this removes the top level collection from the inclusion list.
-        /// This tells the operating system to stop reading from a device which matches the top level collection.
-        /// </summary>
-        Remove = 0x00000001,
-
-        /// <summary>
-        /// If set, this specifies the top level collections to exclude when reading a complete usage page.
-        /// This flag only affects a TLC whose usage page is already specified with RawInputDeviceEnum.PAGEONLY.
-        /// </summary>
-        Exclude = 0x00000010,
-
-        /// <summary>
-        /// If set, this specifies all devices whose top level collection is from the specified UsagePage.
-        /// Note that usUsage must be zero. To exclude a particular top level collection, use EXCLUDE.
-        /// </summary>
-        PageOnly = 0x00000020,
-
-        /// <summary>
-        /// If set, this prevents any devices specified by UsagePage or Usage from generating legacy messages.
-        /// This is only for the mouse and keyboard. See RawInputDevice Remarks.
-        /// </summary>
-        NoLegacy = 0x00000030,
-
-        /// <summary>
-        /// If set, this enables the caller to receive the input even when the caller is not in the foreground.
-        /// Note that Target must be specified in RawInputDevice.
-        /// </summary>
-        InputSink = 0x00000100,
-
-        /// <summary>
-        /// If set, the mouse button click does not activate the other window.
-        /// </summary>
-        CaptureMouse = 0x00000200, // effective when mouse nolegacy is specified, otherwise it would be an error
-
-        /// <summary>
-        /// If set, the application-defined keyboard device hotkeys are not handled.
-        /// However, the system hotkeys; for example, ALT+TAB and CTRL+ALT+DEL, are still handled.
-        /// By default, all keyboard hotkeys are handled.
-        /// NOHOTKEYS can be specified even if NOLEGACY is not specified and Target is NULL in RawInputDevice.
-        /// </summary>
-        NoHotkeys = 0x00000200, // effective for keyboard.
-
-        /// <summary>
-        /// Microsoft Windows XP Service Pack 1 (SP1): If set, the application command keys are handled. APPKEYS can be
-        /// specified only if NOLEGACY is specified for a keyboard device.
-        /// </summary>
-        AppKeys = 0x00000400, // effective for keyboard.
-
-        /// <summary>
-        /// If set, this enables the caller to receive input in the background only if the foreground application
-        /// does not process it. In other words, if the foreground application is not registered for raw input,
-        /// then the background application that is registered will receive the input.<para/>
-        /// Only supported on Vista later.
-        /// </summary>
-        ExInputSink = 0x00001000,
-
-        /// <summary>
-        /// If set, this enables the caller to receive WM_INPUT_DEVICE_CHANGE notifications for device arrival and
-        /// device removal.<para/>
-        /// Only supported on Vista and later.
-        /// </summary>
-        DevNotify = 0x00002000
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/RawInputDeviceType.cs b/Crow/src/backends/win32/User32/Enums/RawInputDeviceType.cs
deleted file mode 100644 (file)
index 95fa067..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Specifies the type of raw input device.
-    /// </summary>
-    public enum RawInputDeviceType : uint
-    {
-        /// <summary>
-        /// Data comes from a mouse.
-        /// </summary>
-        Mouse = 0,
-
-        /// <summary>
-        /// Data comes from a keyboard.
-        /// </summary>
-        Keyboard = 1,
-
-        /// <summary>
-        /// Data comes from an HID that is not a keyboard or a mouse.
-        /// </summary>
-        Hid = 2
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/RawKeyboardScanCodeFlags.cs b/Crow/src/backends/win32/User32/Enums/RawKeyboardScanCodeFlags.cs
deleted file mode 100644 (file)
index e4725d5..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Flags for scan code information.
-    /// </summary>
-    public enum RawKeyboardScanCodeFlags : ushort
-    {
-        /// <summary>
-        /// The key is down.
-        /// </summary>
-        Make = 0x0,
-
-        /// <summary>
-        /// The key is up.
-        /// </summary>
-        Break = 0x1,
-
-        /// <summary>
-        /// The scan code has the E0 prefix.
-        /// </summary>
-        E0 = 0x2,
-
-        /// <summary>
-        /// The scan code has the E1 prefix.
-        /// </summary>
-        E1 = 0x4,
-
-        /// <summary>
-        /// This member is not officially documented. Use with care.
-        /// </summary>
-        TermsrvSetLed = 0x8,
-
-        /// <summary>
-        /// This member is not officially documented. Use with care.
-        /// </summary>
-        TermsrvShadow = 0x10
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/RawMouseButtonFlags.cs b/Crow/src/backends/win32/User32/Enums/RawMouseButtonFlags.cs
deleted file mode 100644 (file)
index 174f659..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-using System;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Specifies the transition state of the mouse buttons.
-    /// </summary>
-    [Flags]
-    public enum RawMouseButtonFlags : ushort
-    {
-        /// <summary>
-        /// Left Button changed to down.
-        /// </summary>
-        LeftButtonDown = 0x0001,
-
-        /// <summary>
-        /// Left Button changed to up.
-        /// </summary>
-        LeftButtonUp = 0x0002,
-
-        /// <summary>
-        /// Right Button changed to down.
-        /// </summary>
-        RightButtonDown = 0x0004,
-
-        /// <summary>
-        /// Right Button changed to up.
-        /// </summary>
-        RightButtonUp = 0x0008,
-
-        /// <summary>
-        /// Middle Button changed to down.
-        /// </summary>
-        MiddleButtonDown = 0x0010,
-
-        /// <summary>
-        /// Middle Button changed to up.
-        /// </summary>
-        MiddleButtonUp = 0x0020,
-
-        /// <summary>
-        /// Same as <see cref="LeftButtonDown"/>.
-        /// </summary>
-        Button1Down = LeftButtonDown,
-
-        /// <summary>
-        /// Same as <see cref="LeftButtonUp"/>.
-        /// </summary>
-        Button1Up = LeftButtonUp,
-
-        /// <summary>
-        /// Same as <see cref="RightButtonDown"/>.
-        /// </summary>
-        Button2Down = RightButtonDown,
-
-        /// <summary>
-        /// Same as <see cref="RightButtonUp"/>.
-        /// </summary>
-        Button2Up = RightButtonUp,
-
-        /// <summary>
-        /// Same as <see cref="MiddleButtonDown"/>.
-        /// </summary>
-        Button3Down = MiddleButtonDown,
-
-        /// <summary>
-        /// Same as <see cref="MiddleButtonUp"/>.
-        /// </summary>
-        Button3Up = MiddleButtonUp,
-
-        /// <summary>
-        /// XBUTTON1 changed to down.
-        /// </summary>
-        Button4Down = 0x0040,
-
-        /// <summary>
-        /// XBUTTON1 changed to up.
-        /// </summary>
-        Button4Up = 0x0080,
-
-        /// <summary>
-        /// XBUTTON2 changed to down.
-        /// </summary>
-        Button5Down = 0x0100,
-
-        /// <summary>
-        /// XBUTTON2 changed to up.
-        /// </summary>
-        Button5Up = 0x0200,
-
-        /// <summary>
-        /// Raw input comes from a mouse wheel. The wheel delta is stored in <see cref="RawMouse.ButtonData"/>.
-        /// </summary>
-        Wheel = 0x0400,
-
-        /// <summary>
-        /// This member is not officially documented. Use with care.
-        /// </summary>
-        HWheel = 0x0800
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/RawMouseFlags.cs b/Crow/src/backends/win32/User32/Enums/RawMouseFlags.cs
deleted file mode 100644 (file)
index c299c9e..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-using System;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Mouse indicator flags (found in winuser.h).
-    /// </summary>
-    [Flags]
-    public enum RawMouseFlags : ushort
-    {
-        /// <summary>
-        /// LastX/Y indicate relative motion.
-        /// </summary>
-        MouseMoveRelative = 0x00,
-
-        /// <summary>
-        /// LastX/Y indicate absolute motion.
-        /// </summary>
-        MouseMoveAbsolute = 0x01,
-
-        /// <summary>
-        /// The coordinates are mapped to the virtual desktop.
-        /// </summary>
-        MouseVirtualDesktop = 0x02,
-
-        /// <summary>
-        /// Requery for mouse attributes.
-        /// </summary>
-        MouseAttributesChanged = 0x04
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/SetWindowPosFlags.cs b/Crow/src/backends/win32/User32/Enums/SetWindowPosFlags.cs
deleted file mode 100644 (file)
index 6a80fb0..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-using System;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Window sizing and positioning flags.
-    /// </summary>
-    [Flags]
-    public enum SetWindowPosFlags : uint
-    {
-        /// <summary>
-        /// Retains the current size (ignores the cx and cy parameters).
-        /// </summary>
-        NoSize = 0x0001,
-
-        /// <summary>
-        /// Retains the current position (ignores the x and y parameters).
-        /// </summary>
-        NoMove = 0x0002,
-
-        /// <summary>
-        /// Retains the current Z order (ignores the hwndInsertAfter parameter).
-        /// </summary>
-        NoZOrder = 0x0004,
-
-        /// <summary>
-        /// Does not redraw changes. If this flag is set, no repainting of any kind occurs.
-        /// This applies to the client area, the nonclient area (including the title bar and scroll bars),
-        /// and any part of the parent window uncovered as a result of the window being moved.
-        /// When this flag is set, the application must explicitly invalidate or redraw any parts
-        /// of the window and parent window that need redrawing.
-        /// </summary>
-        NoRedraw = 0x0008,
-
-        /// <summary>
-        /// Does not activate the window. If this flag is not set,
-        /// the window is activated and moved to the top of either the topmost or non-topmost group
-        /// (depending on the setting of the hwndInsertAfter member).
-        /// </summary>
-        NoActivate = 0x0010,
-
-        /// <summary>
-        /// Sends a <see cref="WindowMessage.NCCalcSize"/> message to the window, even if the window's size is not
-        /// being changed. If this flag is not specified, <see cref="WindowMessage.NCCalcSize"/> is sent only when
-        /// the window's size is being changed.
-        /// </summary>
-        FrameChanged = 0x0020,
-
-        /// <summary>
-        /// Displays the window.
-        /// </summary>
-        ShowWindow = 0x0040,
-
-        /// <summary>
-        /// Hides the window.
-        /// </summary>
-        HideWindow = 0x0080,
-
-        /// <summary>
-        /// Discards the entire contents of the client area. If this flag is not specified,
-        /// the valid contents of the client area are saved and copied back into the client area
-        /// after the window is sized or repositioned.
-        /// </summary>
-        NoCopyBits = 0x0100,
-
-        /// <summary>
-        /// Does not change the owner window's position in the Z order.
-        /// </summary>
-        NoOwnerZOrder = 0x0200,
-
-        /// <summary>
-        /// Prevents the window from receiving the <see cref="WindowMessage.WindowPosChanging"/> message.
-        /// </summary>
-        NoSendChanging = 0x0400,
-
-        /// <summary>
-        /// Draws a frame (defined in the window's class description) around the window.
-        /// </summary>
-        DrawFrame = FrameChanged,
-
-        /// <summary>
-        /// Same as the <see cref="NoOwnerZOrder"/> flag.
-        /// </summary>
-        NoReposition = NoOwnerZOrder,
-
-        /// <summary>
-        /// Prevents generation of the <see cref="WindowMessage.SyncPaint"/> message.
-        /// </summary>
-        DeferErase = 0x2000,
-
-        /// <summary>
-        /// If the calling thread and the thread that owns the window are attached to different input queues,
-        /// the system posts the request to the thread that owns the window. This prevents the calling thread
-        /// from blocking its execution while other threads process the request.
-        /// </summary>
-        AsyncWindowPos = 0x4000
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/SetWindowPosHwndEnum.cs b/Crow/src/backends/win32/User32/Enums/SetWindowPosHwndEnum.cs
deleted file mode 100644 (file)
index 9df8394..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Specifies a set of pre-defined values for special behavior in <see cref="User32.Window.SetWindowPos(
-    /// System.IntPtr, SetWindowPosHwndEnum, int, int, int, int, SetWindowPosFlags)"/>.
-    /// </summary>
-    public enum SetWindowPosHwndEnum
-    {
-        /// <summary>
-        /// Places the window above all non-topmost windows (that is, behind all topmost windows).
-        /// This flag has no effect if the window is already a non-topmost window.
-        /// </summary>
-        NoTopmost = -2,
-
-        /// <summary>
-        /// Places the window above all non-topmost windows.
-        /// The window maintains its topmost position even when it is deactivated.
-        /// </summary>
-        Topmost = -1,
-
-        /// <summary>
-        /// Places the window at the top of the Z order.
-        /// </summary>
-        Top = 0,
-
-        /// <summary>
-        /// Places the window at the bottom of the Z order. If the hWnd parameter identifies a topmost window,
-        /// the window loses its topmost status and is placed at the bottom of all other windows.
-        /// </summary>
-        Bottom = 1,
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/ShowWindowCommand.cs b/Crow/src/backends/win32/User32/Enums/ShowWindowCommand.cs
deleted file mode 100644 (file)
index 22ea736..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Used in <see cref="User32.Window.ShowWindow(System.IntPtr, ShowWindowCommand)"/> to control
-    /// how a window is to be shown.
-    /// </summary>
-    public enum ShowWindowCommand
-    {
-        /// <summary>
-        /// Hides the window and activates another window.
-        /// </summary>
-        Hide = 0,
-
-        /// <summary>
-        /// Activates and displays a window. If the window is minimized or maximized, the system restores it to
-        /// its original size and position.
-        /// An application should specify this flag when displaying the window for the first time.
-        /// </summary>
-        ShowNormal = 1,
-
-        /// <summary>
-        /// Activates the window and displays it as a minimized window.
-        /// </summary>
-        ShowMinimized = 2,
-
-        /// <summary>
-        /// Activates the window and displays it as a maximized window.
-        /// </summary>
-        ShowMaximized = 3,
-
-        /// <summary>
-        /// Maximizes the specified window.
-        /// </summary>
-        Maximize = 3,
-
-        /// <summary>
-        /// Displays a window in its most recent size and position. This value is similar to <see cref="ShowNormal"/>,
-        /// except that the window is not activated.
-        /// </summary>
-        ShowNoActivate = 4,
-
-        /// <summary>
-        /// Activates the window and displays it in its current size and position.
-        /// </summary>
-        Show = 5,
-
-        /// <summary>
-        /// Minimizes the specified window and activates the next top-level window in the Z order.
-        /// </summary>
-        Minimize = 6,
-
-        /// <summary>
-        /// Displays the window as a minimized window. This value is similar to <see cref="ShowMinimized"/>,
-        /// except the window is not activated.
-        /// </summary>
-        ShowMinimizedNoActivate = 7,
-
-        /// <summary>
-        /// Displays the window in its current size and position. This value is similar to <see cref="ShowNormal"/>,
-        /// except the window is not activated.
-        /// </summary>
-        ShowNA = 8,
-
-        /// <summary>
-        /// Activates and displays the window. If the window is minimized or maximized, the system restores it to
-        /// its original size and position.
-        /// An application should specify this flag when restoring a minimized window.
-        /// </summary>
-        Restore = 9,
-
-        /// <summary>
-        /// Sets the show state based on the <see cref="ShowWindowCommand"/> value specified in the STARTUPINFO
-        /// structure passed to the CreateProcess function by the program that started the application.
-        /// </summary>
-        ShowDefault = 10,
-
-        /// <summary>
-        /// Windows 2000/XP: Minimizes a window, even if the thread that owns the window is not responding.
-        /// This flag should only be used when minimizing windows from a different thread.
-        /// </summary>
-        ForceMinimize = 11
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/TrackMouseEvents.cs b/Crow/src/backends/win32/User32/Enums/TrackMouseEvents.cs
deleted file mode 100644 (file)
index e4a55dd..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-using System;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Used in <see cref="TrackMouseEvent"/> to request specific services.
-    /// </summary>
-    [Flags]
-    public enum TrackMouseEvents : uint
-    {
-        /// <summary>
-        /// The caller wants hover notification. Notification is delivered as a <see cref="WindowMessage.MouseHover"/>
-        /// message.<para/>
-        /// If the caller requests hover tracking while hover tracking is already active,
-        /// the hover timer will be reset.<para/>
-        /// This flag is ignored if the mouse pointer is not over the specified window or area.
-        /// </summary>
-        Hover = 0x00000001,
-
-        /// <summary>
-        /// The caller wants leave notification. Notification is delivered as a <see cref="WindowMessage.MouseLeave"/>
-        /// message. If the mouse is not over the specified window or area,
-        /// a leave notification is generated immediately and no further tracking is performed.
-        /// </summary>
-        Leave = 0x00000002,
-
-        /// <summary>
-        /// The caller wants hover and leave notification for the nonclient areas.
-        /// Notification is delivered as <see cref="WindowMessage.NCMouseHover"/>
-        /// and <see cref="WindowMessage.NCMouseLeave"/> messages.
-        /// </summary>
-        NonClient = 0x00000010,
-
-        /// <summary>
-        /// The function fills in the structure instead of treating it as a tracking request.
-        /// The structure is filled such that had that structure been passed to TrackMouseEvent,
-        /// it would generate the current tracking. The only anomaly is that the hover time-out
-        /// returned is always the actual time-out and not <see cref="TrackMouseEvent.DefaultHoverTime"/>, if
-        /// <see cref="TrackMouseEvent.DefaultHoverTime"/> was specified during the original
-        /// <see cref="User32.Mouse.TrackMouseEvent"/> request.
-        /// </summary>
-        Query = 0x40000000,
-
-        /// <summary>
-        /// The caller wants to cancel a prior tracking request. The caller should also specify the type
-        /// of tracking that it wants to cancel. For example, to cancel hover tracking, the caller must
-        /// pass the <see cref="Cancel"/> and <see cref="Hover"/> flags.
-        /// </summary>
-        Cancel = 0x80000000
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/VirtualKey.cs b/Crow/src/backends/win32/User32/Enums/VirtualKey.cs
deleted file mode 100644 (file)
index 40529d8..0000000
+++ /dev/null
@@ -1,874 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Lists all virtual keys.
-    /// </summary>
-    public enum VirtualKey : uint
-    {
-        /// <summary>
-        /// Left mouse button.
-        /// </summary>
-        LButton = 0x01,
-
-        /// <summary>
-        /// Right mouse button.
-        /// </summary>
-        RButton = 0x02,
-
-        /// <summary>
-        /// Control-break processing.
-        /// </summary>
-        Cancel = 0x03,
-
-        /// <summary>
-        /// Middle mouse button (three-button mouse).<para/>
-        /// Not contiguous with L and R Button.
-        /// </summary>
-        MButton = 0x04,
-
-        /// <summary>
-        /// X1 mouse button.
-        /// Not contiguous with L and R Button.
-        /// </summary>
-        XButton1 = 0x05,
-
-        /// <summary>
-        /// X2 mouse button.
-        /// Not contiguous with L and R Button.
-        /// </summary>
-        XButton2 = 0x06,
-
-        /*
-         * 0x07: Undefined
-         */
-
-        /// <summary>
-        /// BACKSPACE key.
-        /// </summary>
-        Back = 0x08,
-
-        /// <summary>
-        /// TAB key.
-        /// </summary>
-        Tab = 0x09,
-
-        /*
-         * 0x0A - 0x0B: Reserved
-         */
-
-        /// <summary>
-        /// CLEAR key.
-        /// </summary>
-        Clear = 0x0C,
-
-        /// <summary>
-        /// ENTER key.
-        /// </summary>
-        Return = 0x0D,
-
-        /*
-         * 0x0E - 0x0F: Undefined
-         */
-
-        /// <summary>
-        /// SHIFT key.
-        /// </summary>
-        Shift = 0x10,
-
-        /// <summary>
-        /// CTRL key.
-        /// </summary>
-        Control = 0x11,
-
-        /// <summary>
-        /// ALT key.
-        /// </summary>
-        Menu = 0x12,
-
-        /// <summary>
-        /// PAUSE key.
-        /// </summary>
-        Pause = 0x13,
-
-        /// <summary>
-        /// CAPS LOCK key
-        /// </summary>
-        Capital = 0x14,
-
-        /// <summary>
-        /// IME Kana mode.
-        /// </summary>
-        Kana = 0x15,
-
-        /// <summary>
-        /// IME Hanguel mode (maintained for compatibility; use <see cref="Hangul"/>).
-        /// </summary>
-        Hangeul = 0x15,
-
-        /// <summary>
-        /// IME Hangul mode.
-        /// </summary>
-        Hangul = 0x15,
-
-        /*
-         * 0x16: Undefined
-         */
-
-        /// <summary>
-        /// IME Junja mode
-        /// </summary>
-        Junja = 0x17,
-
-        /// <summary>
-        /// IME final mode.
-        /// </summary>
-        Final = 0x18,
-
-        /// <summary>
-        /// IME Hanja mode.
-        /// </summary>
-        Hanja = 0x19,
-
-        /// <summary>
-        /// IME Kanji mode.
-        /// </summary>
-        Kanji = 0x19,
-
-        /*
-         * 0x1A: Undefined
-         */
-
-        /// <summary>
-        /// ESC key
-        /// </summary>
-        Escape = 0x1B,
-
-        /// <summary>
-        /// IME convert.
-        /// </summary>
-        Convert = 0x1C,
-
-        /// <summary>
-        /// IME nonconvert.
-        /// </summary>
-        NonConvert = 0x1D,
-
-        /// <summary>
-        /// IME accept.
-        /// </summary>
-        Accept = 0x1E,
-
-        /// <summary>
-        /// IME mode change request.
-        /// </summary>
-        ModeChange = 0x1F,
-
-        /// <summary>
-        /// SPACEBAR.
-        /// </summary>
-        Space = 0x20,
-
-        /// <summary>
-        /// PAGE UP key.
-        /// </summary>
-        Prior = 0x21,
-
-        /// <summary>
-        /// PAGE DOWN key.
-        /// </summary>
-        Next = 0x22,
-
-        /// <summary>
-        /// END key.
-        /// </summary>
-        End = 0x23,
-
-        /// <summary>
-        /// HOME key.
-        /// </summary>
-        Home = 0x24,
-
-        /// <summary>
-        /// LEFT ARROW key.
-        /// </summary>
-        Left = 0x25,
-
-        /// <summary>
-        /// UP ARROW key.
-        /// </summary>
-        Up = 0x26,
-
-        /// <summary>
-        /// RIGHT ARROW key.
-        /// </summary>
-        Right = 0x27,
-
-        /// <summary>
-        /// DOWN ARROW key.
-        /// </summary>
-        Down = 0x28,
-
-        /// <summary>
-        /// SELECT key.
-        /// </summary>
-        Select = 0x29,
-
-        /// <summary>
-        /// PRINT key.
-        /// </summary>
-        Print = 0x2A,
-
-        /// <summary>
-        /// EXECUTE key.
-        /// </summary>
-        Execute = 0x2B,
-
-        /// <summary>
-        /// PRINT SCREEN key.
-        /// </summary>
-        Snapshot = 0x2C,
-
-        /// <summary>
-        /// INS key.
-        /// </summary>
-        Insert = 0x2D,
-
-        /// <summary>
-        /// DEL key.
-        /// </summary>
-        Delete = 0x2E,
-
-        /// <summary>
-        /// HELP key.
-        /// </summary>
-        Help = 0x2F,
-
-        /*
-         * 0 - 9 are the same as ASCII '0' - '9' (0x30 - 0x39)
-         * 0x40: Unassigned
-         * A - Z are the same as ASCII 'A' - 'Z' (0x41 - 0x5A)
-         */
-
-        /// <summary>
-        /// Left Windows key (Natural keyboard).
-        /// </summary>
-        LWin = 0x5B,
-
-        /// <summary>
-        /// Right Windows key (Natural keyboard).
-        /// </summary>
-        RWin = 0x5C,
-
-        /// <summary>
-        /// Applications key (Natural keyboard).
-        /// </summary>
-        Apps = 0x5D,
-
-        /*
-         * 0x5E: Reserved
-         */
-
-        /// <summary>
-        /// Computer Sleep key.
-        /// </summary>
-        Sleep = 0x5F,
-
-        /// <summary>
-        /// Numeric keypad 0 key.
-        /// </summary>
-        Numpad0 = 0x60,
-
-        /// <summary>
-        /// Numeric keypad 1 key
-        /// </summary>
-        Numpad1 = 0x61,
-
-        /// <summary>
-        /// Numeric keypad 2 key
-        /// </summary>
-        Numpad2 = 0x62,
-
-        /// <summary>
-        /// Numeric keypad 3 key
-        /// </summary>
-        Numpad3 = 0x63,
-
-        /// <summary>
-        /// Numeric keypad 4 key
-        /// </summary>
-        Numpad4 = 0x64,
-
-        /// <summary>
-        /// Numeric keypad 5 key
-        /// </summary>
-        Numpad5 = 0x65,
-
-        /// <summary>
-        /// Numeric keypad 6 key
-        /// </summary>
-        Numpad6 = 0x66,
-
-        /// <summary>
-        /// Numeric keypad 7 key
-        /// </summary>
-        Numpad7 = 0x67,
-
-        /// <summary>
-        /// Numeric keypad 8 key
-        /// </summary>
-        Numpad8 = 0x68,
-
-        /// <summary>
-        /// Numeric keypad 9 key
-        /// </summary>
-        Numpad9 = 0x69,
-
-        /// <summary>
-        /// Multiply key.
-        /// </summary>
-        Multiply = 0x6A,
-
-        /// <summary>
-        /// Add key.
-        /// </summary>
-        Add = 0x6B,
-
-        /// <summary>
-        /// Separator key.
-        /// </summary>
-        Separator = 0x6C,
-
-        /// <summary>
-        /// Subtract key.
-        /// </summary>
-        Subtract = 0x6D,
-
-        /// <summary>
-        /// Decimal key.
-        /// </summary>
-        Decimal = 0x6E,
-
-        /// <summary>
-        /// Divide key.
-        /// </summary>
-        Divide = 0x6F,
-
-        /// <summary>
-        /// F1 key.
-        /// </summary>
-        F1 = 0x70,
-
-        /// <summary>
-        /// F2 key.
-        /// </summary>
-        F2 = 0x71,
-
-        /// <summary>
-        /// F3 key.
-        /// </summary>
-        F3 = 0x72,
-
-        /// <summary>
-        /// F4 key.
-        /// </summary>
-        F4 = 0x73,
-
-        /// <summary>
-        /// F5 key.
-        /// </summary>
-        F5 = 0x74,
-
-        /// <summary>
-        /// F6 key.
-        /// </summary>
-        F6 = 0x75,
-
-        /// <summary>
-        /// F7 key.
-        /// </summary>
-        F7 = 0x76,
-
-        /// <summary>
-        /// F8 key.
-        /// </summary>
-        F8 = 0x77,
-
-        /// <summary>
-        /// F9 key.
-        /// </summary>
-        F9 = 0x78,
-
-        /// <summary>
-        /// F10 key.
-        /// </summary>
-        F10 = 0x79,
-
-        /// <summary>
-        /// F11 key.
-        /// </summary>
-        F11 = 0x7A,
-
-        /// <summary>
-        /// F12 key.
-        /// </summary>
-        F12 = 0x7B,
-
-        /// <summary>
-        /// F13 key.
-        /// </summary>
-        F13 = 0x7C,
-
-        /// <summary>
-        /// F14 key.
-        /// </summary>
-        F14 = 0x7D,
-
-        /// <summary>
-        /// F15 key.
-        /// </summary>
-        F15 = 0x7E,
-
-        /// <summary>
-        /// F16 key.
-        /// </summary>
-        F16 = 0x7F,
-
-        /// <summary>
-        /// F17 key.
-        /// </summary>
-        F17 = 0x80,
-
-        /// <summary>
-        /// F18 key.
-        /// </summary>
-        F18 = 0x81,
-
-        /// <summary>
-        /// F19 key.
-        /// </summary>
-        F19 = 0x82,
-
-        /// <summary>
-        /// F20 key.
-        /// </summary>
-        F20 = 0x83,
-
-        /// <summary>
-        /// F21 key.
-        /// </summary>
-        F21 = 0x84,
-
-        /// <summary>
-        /// F22 key.
-        /// </summary>
-        F22 = 0x85,
-
-        /// <summary>
-        /// F23 key.
-        /// </summary>
-        F23 = 0x86,
-
-        /// <summary>
-        /// F24 key.
-        /// </summary>
-        F24 = 0x87,
-
-        /*
-         * 0x88 - 0x8F: Unassigned
-         */
-
-        /// <summary>
-        /// NUM LOCK key.
-        /// </summary>
-        NumLock = 0x90,
-
-        /// <summary>
-        /// SCROLL LOCK key.
-        /// </summary>
-        Scroll = 0x91,
-
-        /*
-         * 0x92 - 0x96: OEM specific
-         */
-
-        /*
-         * 0x97 - 0x9F: Unassigned
-         */
-
-        /*
-         * L* & R* - left and right Alt, Ctrl and Shift virtual keys.
-         * Used only as parameters to GetAsyncKeyState() and GetKeyState().
-         * No other API or message will distinguish left and right keys in this way.
-         */
-
-        /// <summary>
-        /// Left SHIFT key.
-        /// </summary>
-        LShift = 0xA0,
-
-        /// <summary>
-        /// Right SHIFT key.
-        /// </summary>
-        RShift = 0xA1,
-
-        /// <summary>
-        /// Left CONTROL key.
-        /// </summary>
-        LControl = 0xA2,
-
-        /// <summary>
-        /// Right CONTROL key.
-        /// </summary>
-        RControl = 0xA3,
-
-        /// <summary>
-        /// Left MENU key.
-        /// </summary>
-        LMenu = 0xA4,
-
-        /// <summary>
-        /// Right MENU key.
-        /// </summary>
-        RMenu = 0xA5,
-
-        /// <summary>
-        /// Browser Back key.
-        /// </summary>
-        BrowserBack = 0xA6,
-
-        /// <summary>
-        /// Browser Forward key
-        /// </summary>
-        BrowserForward = 0xA7,
-
-        /// <summary>
-        /// Browser Refresh key.
-        /// </summary>
-        BrowserRefresh = 0xA8,
-
-        /// <summary>
-        /// Browser Stop key.
-        /// </summary>
-        BrowserStop = 0xA9,
-
-        /// <summary>
-        /// Browser Search key.
-        /// </summary>
-        BrowserSearch = 0xAA,
-
-        /// <summary>
-        /// Browser Favorites key.
-        /// </summary>
-        BrowserFavorites = 0xAB,
-
-        /// <summary>
-        /// Browser Start and Home key.
-        /// </summary>
-        BrowserHome = 0xAC,
-
-        /// <summary>
-        /// Volume Mute key.
-        /// </summary>
-        VolumeMute = 0xAD,
-
-        /// <summary>
-        /// Volume Down key.
-        /// </summary>
-        VolumeDown = 0xAE,
-
-        /// <summary>
-        /// Volume Up key.
-        /// </summary>
-        VolumeUp = 0xAF,
-
-        /// <summary>
-        /// Next Track key.
-        /// </summary>
-        MediaNextTrack = 0xB0,
-
-        /// <summary>
-        /// Previous Track key.
-        /// </summary>
-        MediaPreviousTrack = 0xB1,
-
-        /// <summary>
-        /// Stop Media key.
-        /// </summary>
-        MediaStop = 0xB2,
-
-        /// <summary>
-        /// Play/Pause Media key.
-        /// </summary>
-        MediaPlayPause = 0xB3,
-
-        /// <summary>
-        /// Start Mail key.
-        /// </summary>
-        LaunchMail = 0xB4,
-
-        /// <summary>
-        /// Select Media key.
-        /// </summary>
-        LaunchMediaSelect = 0xB5,
-
-        /// <summary>
-        /// Start Application 1 key.
-        /// </summary>
-        LaunchApp1 = 0xB6,
-
-        /// <summary>
-        /// Start Application 2 key.
-        /// </summary>
-        LaunchApp2 = 0xB7,
-
-        /*
-         * 0xB8 - 0xB9 : reserved
-         */
-
-        /// <summary>
-        /// Used for miscellaneous characters; it can vary by keyboard.
-        /// For the US standard keyboard, the ';:' key.
-        /// </summary>
-        Oem1 = 0xBA,
-
-        /// <summary>
-        /// For any country/region, the '+' key.
-        /// </summary>
-        OemPlus = 0xBB,
-
-        /// <summary>
-        /// For any country/region, the ',' key.
-        /// </summary>
-        OemComma = 0xBC,
-
-        /// <summary>
-        /// For any country/region, the '-' key.
-        /// </summary>
-        OemMinus = 0xBD,
-
-        /// <summary>
-        /// For any country/region, the '.' key.
-        /// </summary>
-        OemPeriod = 0xBE,
-
-        /// <summary>
-        /// Used for miscellaneous characters; it can vary by keyboard.
-        /// For the US standard keyboard, the '/?' key.
-        /// </summary>
-        Oem2 = 0xBF,
-
-        /// <summary>
-        /// Used for miscellaneous characters; it can vary by keyboard.
-        /// For the US standard keyboard, the '`~' key.
-        /// </summary>
-        Oem3 = 0xC0,
-
-        /*
-         * 0xC1 - 0xD7: Reserved
-         */
-
-        /*
-         * 0xD8 - 0xDA: Unassigned
-         */
-
-        /// <summary>
-        /// Used for miscellaneous characters; it can vary by keyboard.
-        /// For the US standard keyboard, the '[{' key
-        /// </summary>
-        Oem4 = 0xDB,
-
-        /// <summary>
-        /// Used for miscellaneous characters; it can vary by keyboard.
-        /// For the US standard keyboard, the '\|' key
-        /// </summary>
-        Oem5 = 0xDC,
-
-        /// <summary>
-        /// Used for miscellaneous characters; it can vary by keyboard.
-        /// For the US standard keyboard, the ']}' key
-        /// </summary>
-        Oem6 = 0xDD,
-
-        /// <summary>
-        /// Used for miscellaneous characters; it can vary by keyboard.
-        /// For the US standard keyboard, the 'single-quote/double-quote' key
-        /// </summary>
-        Oem7 = 0xDE,
-
-        /// <summary>
-        /// Used for miscellaneous characters; it can vary by keyboard.
-        /// </summary>
-        Oem8 = 0xDF,
-
-        /*
-         * 0xE0: Reserved
-         */
-
-        /*
-         * Various extended or enhanced keyboards
-         */
-
-        /// <summary>
-        /// OEM specific.
-        /// 'AX' key on Japanese AX keyboard.
-        /// </summary>
-        OemAX = 0xE1,
-
-        /// <summary>
-        /// Either the angle bracket key or the backslash key on the RT 102-key keyboard.
-        /// </summary>
-        Oem102 = 0xE2,
-
-        /// <summary>
-        /// OEM specific.
-        /// Help key on ICO.
-        /// </summary>
-        IcoHelp = 0xE3,
-
-        /// <summary>
-        /// OEM specific.
-        /// 00 key on ICO.
-        /// </summary>
-        Ico00 = 0xE4,
-
-        /// <summary>
-        /// IME PROCESS key.
-        /// </summary>
-        ProcessKey = 0xE5,
-
-        /// <summary>
-        /// OEM specific.
-        /// Clear key on ICO.
-        /// </summary>
-        IcoClear = 0xE6,
-
-        /// <summary>
-        /// Used to pass Unicode characters as if they were keystrokes. The <see cref="Packet"/> key is
-        /// the low word of a 32-bit Virtual Key value used for non-keyboard input methods.
-        /// </summary>
-        Packet = 0xE7,
-
-        /*
-         * 0xE8: Unassigned
-         */
-
-        /*
-         * Nokia/Ericsson definitions
-         */
-
-        /// <summary>
-        /// OEM specific Reset key.
-        /// </summary>
-        OemReset = 0xE9,
-
-        /// <summary>
-        /// OEM specific Jump key.
-        /// </summary>
-        OemJump = 0xEA,
-
-        /// <summary>
-        /// OEM specific PA1 key.
-        /// </summary>
-        OemPA1 = 0xEB,
-
-        /// <summary>
-        /// OEM specific PA2 key.
-        /// </summary>
-        OemPA2 = 0xEC,
-
-        /// <summary>
-        /// OEM specific PA3 key.
-        /// </summary>
-        OemPA3 = 0xED,
-
-        /// <summary>
-        /// OEM specific WSCtrl key.
-        /// </summary>
-        OemWSCtrl = 0xEE,
-
-        /// <summary>
-        /// OEM specific CUseL key.
-        /// </summary>
-        OemCUseL = 0xEF,
-
-        /// <summary>
-        /// OEM specific attn key.
-        /// </summary>
-        OemAttn = 0xF0,
-
-        /// <summary>
-        /// OEM specific Finish key.
-        /// </summary>
-        OemFinish = 0xF1,
-
-        /// <summary>
-        /// OEM specific Copy key.
-        /// </summary>
-        OemCopy = 0xF2,
-
-        /// <summary>
-        /// OEM specific Auto key.
-        /// </summary>
-        OemAuto = 0xF3,
-
-        /// <summary>
-        /// OEM specific Enlw key.
-        /// </summary>
-        OemEnlw = 0xF4,
-
-        /// <summary>
-        /// OEM specific Backtab key.
-        /// </summary>
-        OemBacktab = 0xF5,
-
-        /// <summary>
-        /// Attn key.
-        /// </summary>
-        Attn = 0xF6,
-
-        /// <summary>
-        /// CrSel key.
-        /// </summary>
-        CrSel = 0xF7,
-
-        /// <summary>
-        /// ExSel key.
-        /// </summary>
-        ExSel = 0xF8,
-
-        /// <summary>
-        /// Erase EOF key.
-        /// </summary>
-        ErEof = 0xF9,
-
-        /// <summary>
-        /// Play key.
-        /// </summary>
-        Play = 0xFA,
-
-        /// <summary>
-        /// Zoom key.
-        /// </summary>
-        Zoom = 0xFB,
-
-        /// <summary>
-        /// Reserved.
-        /// </summary>
-        NoName = 0xFC,
-
-        /// <summary>
-        /// PA1 key.
-        /// </summary>
-        PA1 = 0xFD,
-
-        /// <summary>
-        /// Clear key.
-        /// </summary>
-        OemClear = 0xFE,
-
-        /// <summary>
-        /// The highest possible value for virtual keys.
-        /// </summary>
-        Last = 0xFF,
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/WindowClassStyles.cs b/Crow/src/backends/win32/User32/Enums/WindowClassStyles.cs
deleted file mode 100644 (file)
index b3f9d5f..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-using System;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Defines additional elements of the window class.
-    /// </summary>
-    [Flags]
-    public enum WindowClassStyles : uint
-    {
-        /// <summary>
-        /// Redraws the entire window if a movement or size adjustment changes the height of the client area.
-        /// </summary>
-        VRedraw = 0x0001,
-
-        /// <summary>
-        /// Redraws the entire window if a movement or size adjustment changes the width of the client area.
-        /// </summary>
-        HRedraw = 0x0002,
-
-        /// <summary>
-        /// Sends a double-click message to the window procedure when the user double-clicks
-        /// the mouse while the cursor is within a window belonging to the class.
-        /// </summary>
-        DoubleClicks = 0x0008,
-
-        /// <summary>
-        /// Allocates a unique device context for each window in the class.
-        /// </summary>
-        OwnDeviceContext = 0x0020,
-
-        /// <summary>
-        /// Allocates one device context to be shared by all windows in the class. Because window classes are process
-        /// specific, it is possible for multiple threads of an application to create a window of the same class.
-        /// It is also possible for the threads to attempt to use the device context simultaneously. When this
-        /// happens, the system allows only one thread to successfully finish its drawing operation.
-        /// </summary>
-        ClassDeviceContext = 0x0040,
-
-        /// <summary>
-        /// Sets the clipping rectangle of the child window to that of the parent window so that the child can draw on
-        /// the parent. A window with the <see cref="ParentDeviceContext"/> style bit receives a regular device context
-        /// from the system's cache of device contexts. It does not give the child the parent's device context or
-        /// device context settings. Specifying <see cref="ParentDeviceContext"/> enhances an application's
-        /// performance.
-        /// </summary>
-        ParentDeviceContext = 0x0080,
-
-        /// <summary>
-        /// Disables Close on the window menu.
-        /// </summary>
-        NoClose = 0x0200,
-
-        /// <summary>
-        /// Saves, as a bitmap, the portion of the screen image obscured by a window of this class. When the window is
-        /// removed, the system uses the saved bitmap to restore the screen image, including other windows that were
-        /// obscured. Therefore, the system does not send <see cref="WindowMessage.Paint"/> to windows that were
-        /// obscured if the memory used by the bitmap has not been discarded and if other screen actions
-        /// have not invalidated the stored image.<para/>
-        /// This style is useful for small windows (for example, menus or dialog boxes) that are displayed briefly
-        /// and then removed before other screen activity takes place. This style increases the time required to
-        /// display the window, because the system must first allocate memory to store the bitmap.
-        /// </summary>
-        SaveBits = 0x0800,
-
-        /// <summary>
-        /// Aligns the window's client area on a byte boundary (in the x direction).
-        /// This style affects the width of the window and its horizontal placement on the display.
-        /// </summary>
-        ByteAlignClient = 0x1000,
-
-        /// <summary>
-        /// Aligns the window on a byte boundary (in the x direction).
-        /// This style affects the width of the window and its horizontal placement on the display.
-        /// </summary>
-        ByteAlignWindow = 0x2000,
-
-        /// <summary>
-        /// Indicates that the window class is an application global class. For more information, see the
-        /// "Application Global Classes" section of About Window Classes.
-        /// </summary>
-        GlobalClass = 0x4000,
-
-        /// <summary>
-        /// This member is not officially documented. Use with care.
-        /// </summary>
-        Ime = 0x00010000,
-
-        /// <summary>
-        /// Enables the drop shadow effect on a window. The effect is turned on and off through SPI_SETDROPSHADOW.
-        /// Typically, this is enabled for small, short-lived windows such as menus to emphasize their Z-order
-        /// relationship to other windows. Windows created from a class with this style must be top-level windows;
-        /// they may not be child windows.
-        /// </summary>
-        DropShadow = 0x00020000
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/WindowMessage.cs b/Crow/src/backends/win32/User32/Enums/WindowMessage.cs
deleted file mode 100644 (file)
index cb7be8b..0000000
+++ /dev/null
@@ -1,1661 +0,0 @@
-using System;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Specifies the different types of window messages.
-    /// </summary>
-    public enum WindowMessage : uint
-    {
-        /// <summary>
-        /// Performs no operation. An application sends the <see cref="Null"/> message if it wants to
-        /// post a message that the recipient window will ignore.
-        /// </summary>
-        Null = 0x0000,
-
-        /// <summary>
-        /// Sent when an application requests that a window be created by calling the
-        /// <see cref="User32.Window.CreateWindowEx(ExtendedWindowStyles, string, string,
-        /// WindowStyles, int, int, int, int, IntPtr, IntPtr, IntPtr, IntPtr)"/> or CreateWindow function.
-        /// (The message is sent before the function returns.) The window procedure of the
-        /// new window receives this message after the window is created, but before the window becomes visible.
-        /// </summary>
-        Create = 0x0001,
-
-        /// <summary>
-        /// Sent when a window is being destroyed. It is sent to the window procedure of the window being destroyed
-        /// after the window is removed from the screen.<para/>
-        /// This message is sent first to the window being destroyed and then to the child windows (if any) as they
-        /// are destroyed. During the processing of the message, it can be assumed that all child windows still exist.
-        /// </summary>
-        Destroy = 0x0002,
-
-        /// <summary>
-        /// Sent after a window has been moved.
-        /// </summary>
-        Move = 0x0003,
-
-        /// <summary>
-        /// Sent to a window after its size has changed.
-        /// </summary>
-        Size = 0x0005,
-
-        /// <summary>
-        /// Sent to both the window being activated and the window being deactivated. If the windows use the same
-        /// input queue, the message is sent synchronously, first to the window procedure of the top-level window being
-        /// deactivated, then to the window procedure of the top-level window being activated. If the windows use
-        /// different input queues, the message is sent asynchronously, so the window is activated immediately.
-        /// </summary>
-        Activate = 0x0006,
-
-        /// <summary>
-        /// Sent to a window after it has gained the keyboard focus.
-        /// </summary>
-        SetFocus = 0x0007,
-
-        /// <summary>
-        /// Sent to a window immediately before it loses the keyboard focus.
-        /// </summary>
-        KillFocus = 0x0008,
-
-        /// <summary>
-        /// Sent when an application changes the enabled state of a window. It is sent to the window whose enabled
-        /// state is changing. This message is sent before the EnableWindow function returns, but after the enabled
-        /// state (<see cref="WindowStyles.Disabled"/> style bit) of the window has changed.
-        /// </summary>
-        Enable = 0x000A,
-
-        /// <summary>
-        /// An application sends the <see cref="SetRedraw"/> message to a window to allow changes in that window
-        /// to be redrawn or to prevent changes in that window from being redrawn.
-        /// </summary>
-        SetRedraw = 0x000B,
-
-        /// <summary>
-        /// Sets the text of a window.
-        /// </summary>
-        SetText = 0x000C,
-
-        /// <summary>
-        /// Copies the text that corresponds to a window into a buffer provided by the caller.
-        /// </summary>
-        GetText = 0x000D,
-
-        /// <summary>
-        /// Determines the length, in characters, of the text associated with a window.
-        /// </summary>
-        GetTextLength = 0x000E,
-
-        /// <summary>
-        /// Sent when the system or another application makes a request to paint a portion of an application's window.
-        /// The message is sent when the UpdateWindow or RedrawWindow function is called, or by the
-        /// <see cref="User32.Message.DispatchMessage(ref Msg)"/> function when the application obtains a
-        /// <see cref="WindowMessage.Paint"/> message by using the
-        /// <see cref="User32.Message.GetMessage(out Msg, IntPtr, uint, uint)"/> or
-        /// <see cref="User32.Message.PeekMessage(out Msg, IntPtr, uint, uint, PeekMessageActions)"/> function.
-        /// </summary>
-        Paint = 0x000F,
-
-        /// <summary>
-        /// Sent as a signal that a window or an application should terminate.
-        /// </summary>
-        Close = 0x0010,
-
-        /// <summary>
-        /// Sent when the user chooses to end the session or when an application calls one of the system shutdown
-        /// functions. If any application returns zero, the session is not ended. The system stops sending
-        /// <see cref="QueryEndSession"/> messages as soon as one application returns zero.
-        /// </summary>
-        QueryEndSession = 0x0011,
-
-        /// <summary>
-        /// Indicates a request to terminate an application, and is generated when the application calls the
-        /// <see cref="User32.Message.PostQuitMessage(int)"/> function. This message causes the
-        /// <see cref="User32.Message.GetMessage(out Msg, IntPtr, uint, uint)"/> function to return zero.
-        /// </summary>
-        Quit = 0x0012,
-
-        /// <summary>
-        /// Sent to an icon when the user requests that the window be restored to its previous size and position.
-        /// </summary>
-        QueryOpen = 0x0013,
-
-        /// <summary>
-        /// Sent when the window background must be erased (for example, when a window is resized).
-        /// The message is sent to prepare an invalidated portion of a window for painting.
-        /// </summary>
-        EraseBackground = 0x0014,
-
-        /// <summary>
-        /// The <see cref="SystemColorChange"/> message is sent to all top-level windows when
-        /// a change is made to a system color setting.
-        /// </summary>
-        SystemColorChange = 0x0015,
-
-        /// <summary>
-        /// Sent to an application after the system processes the results of the <see cref="QueryEndSession"/> message.
-        /// The <see cref="EndSession"/> message informs the application whether the session is ending.
-        /// </summary>
-        EndSession = 0x0016,
-
-        /// <summary>
-        /// Sent to a window when the window is about to be hidden or shown.
-        /// </summary>
-        ShowWindow = 0x0018,
-
-        /// <summary>
-        /// Sent by an application to all top-level windows after making a change to the
-        /// WIN.INI file. The SystemParametersInfo function sends this message
-        /// after an application uses the function to change a setting in WIN.INI.
-        /// </summary>
-        WinIniChange = 0x001A,
-
-        /// <summary>
-        /// A message that is sent to all top-level windows when the SystemParametersInfo function changes
-        /// a system-wide setting or when policy settings have changed.<para/>
-        /// Applications should send <see cref="SettingChange"/> to all top-level windows when they make changes to
-        /// system parameters. (This message cannot be sent directly to a window.) To send the
-        /// <see cref="SettingChange"/> message to all top-level windows, use the SendMessageTimeout function with the
-        /// hwnd parameter set to <see cref="User32.Message.BroadcastHandle"/>.
-        /// </summary>
-        SettingChange = WinIniChange,
-
-        /// <summary>
-        /// Sent to all top-level windows whenever the user changes device-mode settings.
-        /// </summary>
-        DeviceModeChange = 0x001B,
-
-        /// <summary>
-        /// Sent when a window belonging to a different application than the active window is about to be activated.
-        /// The message is sent to the application whose window is being activated
-        /// and to the application whose window is being deactivated.
-        /// </summary>
-        ActivateApp = 0x001C,
-
-        /// <summary>
-        /// Sent to all top-level windows in the system after changing the pool of font resources.
-        /// </summary>
-        FontChange = 0x001D,
-
-        /// <summary>
-        /// A message that is sent whenever there is a change in the system time.
-        /// </summary>
-        TimeChange = 0x001E,
-
-        /// <summary>
-        /// Sent to cancel certain modes, such as mouse capture. For example, the system sends this message to the
-        /// active window when a dialog box or message box is displayed. Certain functions also send this message
-        /// explicitly to the specified window regardless of whether it is the active window. For example,
-        /// the EnableWindow function sends this message when disabling the specified window.
-        /// </summary>
-        CancelMode = 0x001F,
-
-        /// <summary>
-        /// Sent to a window if the mouse causes the cursor to move within a window and mouse input is not captured.
-        /// </summary>
-        SetCursor = 0x0020,
-
-        /// <summary>
-        /// Sent when the cursor is in an inactive window and the user presses a mouse button. The parent window
-        /// receives this message only if the child window passes it to the
-        /// <see cref="User32.Window.DefWindowProc(IntPtr, WindowMessage, IntPtr, IntPtr)"/>
-        /// function.
-        /// </summary>
-        MouseActivate = 0x0021,
-
-        /// <summary>
-        /// Sent to a child window when the user clicks the window's title bar or
-        /// when the window is activated, moved, or sized.
-        /// </summary>
-        ChildActivate = 0x0022,
-
-        /// <summary>
-        /// Sent by a computer-based training (CBT) application to separate user-input messages
-        /// from other messages sent through the WH_JOURNALPLAYBACK procedure.
-        /// </summary>
-        QueueSync = 0x0023,
-
-        /// <summary>
-        /// Sent to a window when the size or position of the window is about to change. An application can use
-        /// this message to override the window's default maximized size and position,
-        /// or its default minimum or maximum tracking size.
-        /// </summary>
-        GetMinMaxInfo = 0x0024,
-
-        /// <summary>
-        /// Obsolete. Used in Windows NT 3.51 and earlier.
-        /// </summary>
-        PaintIcon = 0x0026,
-
-        /// <summary>
-        /// Obsolete. Used in Windows NT 3.51 and earlier.
-        /// </summary>
-        IconEraseBackground = 0x0027,
-
-        /// <summary>
-        /// Sent to a dialog box procedure to set the keyboard focus to a different control in the dialog box.
-        /// </summary>
-        NextDialogCtl = 0x0028,
-
-        /// <summary>
-        /// Sent from Print Manager whenever a job is added to or removed from the Print Manager queue.
-        /// </summary>
-        SpoolerStatus = 0x002A,
-
-        /// <summary>
-        /// Sent to the parent window of an owner-drawn button, combo box, list box, or menu when a
-        /// visual aspect of the button, combo box, list box, or menu has changed.
-        /// </summary>
-        DrawItem = 0x002B,
-
-        /// <summary>
-        /// Sent to the owner window of a combo box, list box, list view control, or menu item when
-        /// the control or menu is created.
-        /// </summary>
-        MeasureItem = 0x002C,
-
-        /// <summary>
-        /// Sent to the owner of a list box or combo box when the list box or combo box is destroyed or when items
-        /// are removed by the LB_DELETESTRING, LB_RESETCONTENT, CB_DELETESTRING, or CB_RESETCONTENT message.
-        /// The system sends a <see cref="DeleteItem"/> message for each deleted item. The system sends the
-        /// <see cref="DeleteItem"/> message for any deleted list box or combo box item with nonzero item data.
-        /// </summary>
-        DeleteItem = 0x002D,
-
-        /// <summary>
-        /// Sent by a list box with the LBS_WANTKEYBOARDINPUT style to its
-        /// owner in response to a <see cref="KeyDown"/> message.
-        /// </summary>
-        VKeyToItem = 0x002E,
-
-        /// <summary>
-        /// Sent by a list box with the LBS_WANTKEYBOARDINPUT style to its
-        /// owner in response to a <see cref="Char"/> message.
-        /// </summary>
-        CharToItem = 0x002F,
-
-        /// <summary>
-        /// Sent to specify the font that a control is to use when drawing text.
-        /// </summary>
-        SetFont = 0x0030,
-
-        /// <summary>
-        /// Sent to a control to retrieve the font with which the control is currently drawing its text.
-        /// </summary>
-        GetFont = 0x0031,
-
-        /// <summary>
-        /// Sent to a window to associate a hot key with the window.
-        /// When the user presses the hot key, the system activates the window.
-        /// </summary>
-        SetHotkey = 0x0032,
-
-        /// <summary>
-        /// Sent to determine the hot key associated with a window.
-        /// </summary>
-        GetHotkey = 0x0033,
-
-        /// <summary>
-        /// Sent to a minimized (iconic) window. The window is about to be dragged by the user but does not have an
-        /// icon defined for its class. An application can return a handle to an icon or cursor.
-        /// The system displays this cursor or icon while the user drags the icon.
-        /// </summary>
-        QueryDragIcon = 0x0037,
-
-        /// <summary>
-        /// Sent to determine the relative position of a new item in the sorted list of an owner-drawn combo box or
-        /// list box. Whenever the application adds a new item, the system sends this message to the owner of a
-        /// combo box or list box created with the CBS_SORT or LBS_SORT style.
-        /// </summary>
-        CompareItem = 0x0039,
-
-        /// <summary>
-        /// Sent by Active Accessibility to obtain information about an accessible object contained in a server
-        /// application. Applications never send this message directly. It is sent only by Active Accessibility
-        /// in response to calls to AccessibleObjectFromPoint, AccessibleObjectFromEvent, or
-        /// AccessibleObjectFromWindow. However, server applications handle this message.
-        /// </summary>
-        GetObject = 0x003D,
-
-        /// <summary>
-        /// Sent to all top-level windows when the system detects more than 12.5 percent of system time over a
-        /// 30- to 60-second interval is being spent compacting memory. This indicates that system memory is low.
-        /// </summary>
-        Compacting = 0x0041,
-
-        /// <summary>
-        /// Marked as "no longer supported" and not officially documented. Use with care.
-        /// </summary>
-        CommNotify = 0x0044,
-
-        /// <summary>
-        /// Sent to a window whose size, position, or place in the Z order is about to change as a result of a
-        /// call to the <see cref="User32.Window.SetWindowPos(IntPtr, SetWindowPosHwndEnum, int, int, int, int,
-        /// SetWindowPosFlags)"/> function or another window-management function.
-        /// </summary>
-        WindowPosChanging = 0x0046,
-
-        /// <summary>
-        /// Sent to a window whose size, position, or place in the Z order has changed as a result of a call to the
-        /// <see cref="User32.Window.SetWindowPos(IntPtr, SetWindowPosHwndEnum, int, int, int, int,
-        /// SetWindowPosFlags)"/> function or another window-management function.
-        /// </summary>
-        WindowPosChanged = 0x0047,
-
-        /// <summary>
-        /// Notifies applications that the system, typically a battery-powered personal computer,
-        /// is about to enter a suspended mode.<para/>
-        /// Obsolete : use <see cref="PowerBroadcast"/> instead.
-        /// </summary>
-        Power = 0x0048,
-
-        /// <summary>
-        /// Sent to pass data to another application.
-        /// </summary>
-        CopyData = 0x004A,
-
-        /// <summary>
-        /// Posted to an application when a user cancels the application's journaling activities.
-        /// The message is posted with a null/zero window handle.
-        /// </summary>
-        CancelJournal = 0x004B,
-
-        /// <summary>
-        /// Sent by a common control to its parent window when an event has occurred
-        /// or the control requires some information.
-        /// </summary>
-        Notify = 0x004E,
-
-        /// <summary>
-        /// Posted to the window with the focus when the user chooses a new input language, either with the hotkey
-        /// (specified in the Keyboard control panel application) or from the indicator on the system taskbar.
-        /// An application can accept the change by passing the message to the
-        /// <see cref="User32.Window.DefWindowProc(IntPtr, WindowMessage, IntPtr, IntPtr)"/>
-        /// function or reject the change (and prevent it from taking place) by returning immediately.
-        /// </summary>
-        InputLanguageChangeRequest = 0x0050,
-
-        /// <summary>
-        /// Sent to the topmost affected window after an application's input language has been changed. You should
-        /// make any application-specific settings and pass the message to the
-        /// <see cref="User32.Window.DefWindowProc(IntPtr, WindowMessage, IntPtr, IntPtr)"/>
-        /// function, which passes the message to all first-level child windows. These child windows can pass the
-        /// message to
-        /// <see cref="User32.Window.DefWindowProc(IntPtr, WindowMessage, IntPtr, IntPtr)"/>
-        /// to have it pass the message to their child windows, and so on.
-        /// </summary>
-        InputLanguageChange = 0x0051,
-
-        /// <summary>
-        /// Sent to an application that has initiated a training card with Microsoft Windows Help. The message informs
-        /// the application when the user clicks an authorable button. An application initiates a training card by
-        /// specifying the HELP_TCARD command in a call to the WinHelp function.
-        /// </summary>
-        TCard = 0x0052,
-
-        /// <summary>
-        /// Indicates that the user pressed the F1 key. If a menu is active when F1 is pressed, <see cref="Help"/> is
-        /// sent to the window associated with the menu; otherwise, <see cref="Help"/> is sent to the window that has
-        /// the keyboard focus. If no window has the keyboard focus, <see cref="Help"/> is sent to the currently
-        /// active window.
-        /// </summary>
-        Help = 0x0053,
-
-        /// <summary>
-        /// Sent to all windows after the user has logged on or off. When the user logs on or off, the system updates
-        /// the user-specific settings. The system sends this message immediately after updating the settings.
-        /// </summary>
-        UserChanged = 0x0054,
-
-        /// <summary>
-        /// Determines if a window accepts ANSI or Unicode structures in the <see cref="Notify"/> notification message.
-        /// <see cref="NotifyFormat"/> messages are sent from a common control to its parent window
-        /// and from the parent window to the common control.
-        /// </summary>
-        NotifyFormat = 0x0055,
-
-        /// <summary>
-        /// Notifies a window that the user clicked the right mouse button (right-clicked) in the window.
-        /// </summary>
-        ContextMenu = 0x007B,
-
-        /// <summary>
-        /// Sent to a window when the <see cref="User32.Window.SetWindowLong(IntPtr, int, int)"/>
-        /// function is about to change one or more of the window's styles.
-        /// </summary>
-        StyleChanging = 0x007C,
-
-        /// <summary>
-        /// Sent to a window after the <see cref="User32.Window.SetWindowLong(IntPtr, int, int)"/>
-        /// function has changed one or more of the window's styles.
-        /// </summary>
-        StyleChanged = 0x007D,
-
-        /// <summary>
-        /// Sent to all windows when the display resolution has changed.
-        /// </summary>
-        DisplayChange = 0x007E,
-
-        /// <summary>
-        /// Sent to a window to retrieve a handle to the large or small icon associated with a window.
-        /// The system displays the large icon in the ALT+TAB dialog, and the small icon in the window caption.
-        /// </summary>
-        GetIcon = 0x007F,
-
-        /// <summary>
-        /// Sent by an application to associate a new large or small icon with a window. The system displays the
-        /// large icon in the ALT+TAB dialog box, and the small icon in the window caption.
-        /// </summary>
-        SetIcon = 0x0080,
-
-        /// <summary>
-        /// Sent prior to the <see cref="Create"/> message when a window is first created.
-        /// </summary>
-        NCCreate = 0x0081,
-
-        /// <summary>
-        /// Informs a window that its nonclient area is being destroyed. The
-        /// <see cref="User32.Window.DestroyWindow(IntPtr)"/> function sends the <see cref="NCDestroy"/> message
-        /// to the window following the <see cref="Destroy"/> message.
-        /// <see cref="Destroy"/> is used to free the allocated memory object associated with the window.
-        /// </summary>
-        NCDestroy = 0x0082,
-
-        /// <summary>
-        /// Sent when the size and position of a window's client area must be calculated. By processing this message,
-        /// an application can control the content of the window's client area when
-        /// the size or position of the window changes.
-        /// </summary>
-        NCCalcSize = 0x0083,
-
-        /// <summary>
-        /// Sent to a window when the cursor moves, or when a mouse button is pressed or released. If the mouse is
-        /// not captured, the message is sent to the window beneath the cursor.
-        /// Otherwise, the message is sent to the window that has captured the mouse.
-        /// </summary>
-        NCHitTest = 0x0084,
-
-        /// <summary>
-        /// Sent to a window when its frame must be painted.
-        /// </summary>
-        NCPaint = 0x0085,
-
-        /// <summary>
-        /// Non Client Area Activated Caption (Title) of the Form.
-        /// </summary>
-        NCActivate = 0x0086,
-
-        /// <summary>
-        /// Sent to the window procedure associated with a control. By default, the system handles all keyboard input
-        /// to the control; the system interprets certain types of keyboard input as dialog box navigation keys.
-        /// To override this default behavior, the control can respond to the <see cref="GetDialogCode"/> message to
-        /// indicate the types of input it wants to process itself.
-        /// </summary>
-        GetDialogCode = 0x0087,
-
-        /// <summary>
-        /// Used to synchronize painting while avoiding linking independent GUI threads.
-        /// </summary>
-        SyncPaint = 0x0088,
-
-        /// <summary>
-        /// Posted to a window when the cursor is moved within the nonclient area of the window. This message is posted
-        /// to the window that contains the cursor.<para/>
-        /// If a window has captured the mouse, this message is not posted.
-        /// </summary>
-        NCMouseMove = 0x00A0,
-
-        /// <summary>
-        /// Posted when the user presses the left mouse button while the cursor is within the nonclient area of a
-        /// window. This message is posted to the window that contains the cursor.<para/>
-        /// If a window has captured the mouse, this message is not posted.
-        /// </summary>
-        NCLButtonDown = 0x00A1,
-
-        /// <summary>
-        /// Posted when the user releases the left mouse button while the cursor is within the nonclient area of a
-        /// window. This message is posted to the window that contains the cursor.<para/>
-        /// If a window has captured the mouse, this message is not posted.
-        /// </summary>
-        NCLButtonUp = 0x00A2,
-
-        /// <summary>
-        /// Posted when the user double-clicks the middle mouse button while the cursor is within the nonclient area
-        /// of a window. This message is posted to the window that contains the cursor.<para/>
-        /// If a window has captured the mouse, this message is not posted.
-        /// </summary>
-        NCLButtonDoubleClick = 0x00A3,
-
-        /// <summary>
-        /// Posted when the user presses the right mouse button while the cursor is within the nonclient area of a
-        /// window. This message is posted to the window that contains the cursor.<para/>
-        /// If a window has captured the mouse, this message is not posted.
-        /// </summary>
-        NCRButtonDown = 0x00A4,
-
-        /// <summary>
-        /// Posted when the user releases the right mouse button while the cursor is within the nonclient area of a
-        /// window. This message is posted to the window that contains the cursor.<para/>
-        /// If a window has captured the mouse, this message is not posted.
-        /// </summary>
-        NCRButtonUp = 0x00A5,
-
-        /// <summary>
-        /// Posted when the user double-clicks the right mouse button while the cursor is within the nonclient area
-        /// of a window. This message is posted to the window that contains the cursor.<para/>
-        /// If a window has captured the mouse, this message is not posted.
-        /// </summary>
-        NCRButtonDoubleClick = 0x00A6,
-
-        /// <summary>
-        /// Posted when the user presses the middle mouse button while the cursor is within the nonclient area of a
-        /// window. This message is posted to the window that contains the cursor.<para/>
-        /// If a window has captured the mouse, this message is not posted.
-        /// </summary>
-        NCMButtonDown = 0x00A7,
-
-        /// <summary>
-        /// Posted when the user releases the middle mouse button while the cursor is within the nonclient area of a
-        /// window. This message is posted to the window that contains the cursor.<para/>
-        /// If a window has captured the mouse, this message is not posted.
-        /// </summary>
-        NCMButtonUp = 0x00A8,
-
-        /// <summary>
-        /// Posted when the user double-clicks the middle mouse button while the cursor is within the nonclient area
-        /// of a window. This message is posted to the window that contains the cursor.<para/>
-        /// If a window has captured the mouse, this message is not posted.
-        /// </summary>
-        NCMButtonDoubleClick = 0x00A9,
-
-        /// <summary>
-        /// Posted when the user presses the first or second X button while the cursor is within the nonclient area
-        /// of a window. This message is posted to the window that contains the cursor.<para/>
-        /// If a window has captured the mouse, this message is not posted.
-        /// </summary>
-        NCXButtonDown = 0x00AB,
-
-        /// <summary>
-        /// Posted when the user releases the first or second X button while the cursor is within the nonclient area
-        /// of a window. This message is posted to the window that contains the cursor.<para/>
-        /// If a window has captured the mouse, this message is not posted.
-        /// </summary>
-        NCXButtonUp = 0x00AC,
-
-        /// <summary>
-        /// Posted when the user double-clicks the first or second X button while the cursor is within the nonclient
-        /// area of a window. This message is posted to the window that contains the cursor.<para/>
-        /// If a window has captured the mouse, this message is not posted.
-        /// </summary>
-        NCXButtonDoubleClick = 0x00AD,
-
-        /// <summary>
-        /// Sent to the window that registered to receive raw input.
-        /// </summary>
-        InputDeviceChange = 0x00FE,
-
-        /// <summary>
-        /// Sent to the window that is getting raw input.
-        /// </summary>
-        Input = 0x00FF,
-
-        /// <summary>
-        /// Posted to the window with the keyboard focus when a nonsystem key is pressed.
-        /// A nonsystem key is a key that is pressed when the ALT key is not pressed.
-        /// </summary>
-        KeyDown = 0x0100,
-
-        /// <summary>
-        /// This message filters for keyboard messages.
-        /// </summary>
-        KeyFirst = 0x0100,
-
-        /// <summary>
-        /// Posted to the window with the keyboard focus when a nonsystem key is released. A nonsystem key is a key
-        /// that is pressed when the ALT key is not pressed,
-        /// or a keyboard key that is pressed when a window has the keyboard focus.
-        /// </summary>
-        KeyUp = 0x0101,
-
-        /// <summary>
-        /// Posted to the window with the keyboard focus when a <see cref="KeyDown"/> message is translated by the
-        /// TranslateMessage function. The <see cref="Char"/> message contains
-        /// the character code of the key that was pressed.
-        /// </summary>
-        Char = 0x0102,
-
-        /// <summary>
-        /// Posted to the window with the keyboard focus when a <see cref="KeyUp"/> message is translated by the
-        /// TranslateMessage function. <see cref="DeadChar"/> specifies a character code generated by a dead key.
-        /// A dead key is a key that generates a character, such as the umlaut (double-dot), that is combined with
-        /// another character to form a composite character. For example, the umlaut-O character (Ö) is generated
-        /// by typing the dead key for the umlaut character, and then typing the O key.
-        /// </summary>
-        DeadChar = 0x0103,
-
-        /// <summary>
-        /// Posted to the window with the keyboard focus when the user presses the F10 key (which activates the menu
-        /// bar) or holds down the ALT key and then presses another key. It also occurs when no window currently
-        /// has the keyboard focus; in this case, the <see cref="SystemKeyDown"/> message is sent to the active window.
-        /// The window that receives the message can distinguish between these two contexts by
-        /// checking the context code in the lParam parameter.
-        /// </summary>
-        SystemKeyDown = 0x0104,
-
-        /// <summary>
-        /// Posted to the window with the keyboard focus when the user releases a key that was pressed while the ALT
-        /// key was held down. It also occurs when no window currently has the keyboard focus; in this case, the
-        /// <see cref="SystemKeyUp"/> message is sent to the active window. The window that receives the message can
-        /// distinguish between these two contexts by checking the context code in the lParam parameter.
-        /// </summary>
-        SystemKeyUp = 0x0105,
-
-        /// <summary>
-        /// Posted to the window with the keyboard focus when a <see cref="SystemKeyDown"/> message is translated by
-        /// the TranslateMessage function. It specifies the character code of a system character key — that is, a
-        /// character key that is pressed while the ALT key is down.
-        /// </summary>
-        SystemChar = 0x0106,
-
-        /// <summary>
-        /// Sent to the window with the keyboard focus when a <see cref="SystemKeyDown"/> message is translated by the
-        /// TranslateMessage function. <see cref="SystemDeadChar"/> specifies the character code of a system dead key
-        /// — that is, a dead key that is pressed while holding down the ALT key.
-        /// </summary>
-        SystemDeadChar = 0x0107,
-
-        /// <summary>
-        /// Can be used by an application to post input to other windows. This message contains the character code
-        /// of the key that was pressed. (Test whether a target app can process <see cref="UnicodeCharacter"/> messages
-        /// by sending the message with wParam set to UNICODE_NOCHAR.)
-        /// </summary>
-        UnicodeCharacter = 0x0109,
-
-        /// <summary>
-        /// This message filters for keyboard messages.
-        /// </summary>
-        KeyLast = 0x0109,
-
-        /// <summary>
-        /// Sent immediately before the IME generates the composition string as a result of a keystroke.
-        /// </summary>
-        ImeStartComposition = 0x010D,
-
-        /// <summary>
-        /// Sent to an application when the IME ends composition.
-        /// </summary>
-        ImeEndComposition = 0x010E,
-
-        /// <summary>
-        /// Sent to an application when the IME changes composition status as a result of a keystroke.
-        /// </summary>
-        ImeComposition = 0x010F,
-
-        /// <summary>
-        /// Same as <see cref="ImeComposition"/>. Documentation incomplete.
-        /// </summary>
-        ImeKeylast = 0x010F,
-
-        /// <summary>
-        /// Sent to the dialog box procedure immediately before a dialog box is displayed. Dialog box procedures
-        /// typically use this message to initialize controls and carry out any other
-        /// initialization tasks that affect the appearance of the dialog box.
-        /// </summary>
-        InitDialog = 0x0110,
-
-        /// <summary>
-        /// Sent when the user selects a command item from a menu, when a control sends a notification message
-        /// to its parent window, or when an accelerator keystroke is translated.
-        /// </summary>
-        Command = 0x0111,
-
-        /// <summary>
-        /// A window receives this message when the user chooses a command from the Window menu (formerly known
-        /// as the system or control menu) or when the user chooses the maximize button, minimize button,
-        /// restore button, or close button.
-        /// </summary>
-        SystemCommand = 0x0112,
-
-        /// <summary>
-        /// Posted to the installing thread's message queue when a timer expires.
-        /// The message is posted by the <see cref="User32.Message.GetMessage(out Msg, IntPtr, uint, uint)"/> or
-        /// <see cref="User32.Message.PeekMessage(out Msg, IntPtr, uint, uint, PeekMessageActions)"/> function.
-        /// </summary>
-        Timer = 0x0113,
-
-        /// <summary>
-        /// Sent to a window when a scroll event occurs in the window's standard horizontal scroll bar.
-        /// This message is also sent to the owner of a horizontal scroll bar control
-        /// when a scroll event occurs in the control.
-        /// </summary>
-        HScroll = 0x0114,
-
-        /// <summary>
-        /// Sent to a window when a scroll event occurs in the window's standard vertical scroll bar. This message
-        /// is also sent to the owner of a vertical scroll bar control when a scroll event occurs in the control.
-        /// </summary>
-        VScroll = 0x0115,
-
-        /// <summary>
-        /// Sent when a menu is about to become active. It occurs when the user clicks an item on the menu bar or
-        /// presses a menu key. This allows the application to modify the menu before it is displayed.
-        /// </summary>
-        InitMenu = 0x0116,
-
-        /// <summary>
-        /// Sent when a drop-down menu or submenu is about to become active. This allows an application to modify
-        /// the menu before it is displayed, without changing the entire menu.
-        /// </summary>
-        InitMenuPopup = 0x0117,
-
-        /// <summary>
-        /// Passes information about a gesture.<para/>
-        /// Only supported on Windows 7 and higher.
-        /// </summary>
-        Gesture = 0x0119,
-
-        /// <summary>
-        /// Gives you a chance to set the gesture configuration.<para/>
-        /// Only supported on Windows 7 and higher.
-        /// </summary>
-        GestureNotify = 0x011A,
-
-        /// <summary>
-        /// Sent to a menu's owner window when the user selects a menu item.
-        /// </summary>
-        MenuSelect = 0x011F,
-
-        /// <summary>
-        /// Sent when a menu is active and the user presses a key that does not correspond to any mnemonic
-        /// or accelerator key. This message is sent to the window that owns the menu.
-        /// </summary>
-        MenuChar = 0x0120,
-
-        /// <summary>
-        /// Sent to the owner window of a modal dialog box or menu that is entering an idle state.
-        /// A modal dialog box or menu enters an idle state when no messages are waiting in its queue
-        /// after it has processed one or more previous messages.
-        /// </summary>
-        EnterIdle = 0x0121,
-
-        /// <summary>
-        /// Sent when the user releases the right mouse button while the cursor is on a menu item.
-        /// </summary>
-        MenuRButtonUp = 0x0122,
-
-        /// <summary>
-        /// Sent to the owner of a drag-and-drop menu when the user drags a menu item.
-        /// </summary>
-        MenuDrag = 0x0123,
-
-        /// <summary>
-        /// Sent to the owner of a drag-and-drop menu when the mouse cursor enters a menu item or moves
-        /// from the center of the item to the top or bottom of the item.
-        /// </summary>
-        MenuGetObject = 0x0124,
-
-        /// <summary>
-        /// Sent when a drop-down menu or submenu has been destroyed.
-        /// </summary>
-        UninitMenuPopup = 0x0125,
-
-        /// <summary>
-        /// Sent when the user makes a selection from a menu.
-        /// </summary>
-        MenuCommand = 0x0126,
-
-        /// <summary>
-        /// Sent by an application to indicate that the UI state should be changed.
-        /// </summary>
-        ChangeUIState = 0x0127,
-
-        /// <summary>
-        /// Sent by an application to change the UI state for the specified window and all its child windows.
-        /// </summary>
-        UpdateUIState = 0x0128,
-
-        /// <summary>
-        /// Sent by an application to retrieve the UI state for a window.
-        /// </summary>
-        QueryUIState = 0x0129,
-
-        /// <summary>
-        /// Sent to the owner window of a message box before Windows draws the message box. By responding to this
-        /// message, the owner window can set the text and background colors of the message box
-        /// by using the given display device context handle.
-        /// </summary>
-        CtlColorMsgBox = 0x0132,
-
-        /// <summary>
-        /// An edit control that is not read-only or disabled sends the <see cref="CtlColorEdit"/> message to its
-        /// parent window when the control is about to be drawn. By responding to this message, the parent window
-        /// can use the specified device context handle to set the text and background colors of the edit control.
-        /// </summary>
-        CtlColorEdit = 0x0133,
-
-        /// <summary>
-        /// Sent to the parent window of a list box before the system draws the list box. By responding to this
-        /// message, the parent window can set the text and background colors of the list box
-        /// by using the specified display device context handle.
-        /// </summary>
-        CtlColorListBox = 0x0134,
-
-        /// <summary>
-        /// Sent to the parent window of a button before drawing the button. The parent window can change
-        /// the button's text and background colors. However, only owner-drawn buttons
-        /// respond to the parent window processing this message.
-        /// </summary>
-        CtlColorButton = 0x0135,
-
-        /// <summary>
-        /// Sent to a dialog box before the system draws the dialog box. By responding to this message,
-        /// the dialog box can set its text and background colors using the specified display device context handle.
-        /// </summary>
-        CtlColorDialog = 0x0136,
-
-        /// <summary>
-        /// Sent to the parent window of a scroll bar control when the control is about to be drawn.
-        /// By responding to this message, the parent window can use the display context handle
-        /// to set the background color of the scroll bar control.
-        /// </summary>
-        CtlColorScrollbar = 0x0137,
-
-        /// <summary>
-        /// A static control, or an edit control that is read-only or disabled, sends the <see cref="CtlColorStatic"/>
-        /// message to its parent window when the control is about to be drawn.
-        /// By responding to this message, the parent window can use the specified device context handle
-        /// to set the text and background colors of the static control.
-        /// </summary>
-        CtlColorStatic = 0x0138,
-
-        /// <summary>
-        /// Retrieves the menu handle for the current window.
-        /// </summary>
-        GetHMenu = 0x01E1,
-
-        /// <summary>
-        /// Posted to a window when the cursor moves. If the mouse is not captured, the message is posted to the window
-        /// that contains the cursor. Otherwise, the message is posted to the window that has captured the mouse.
-        /// </summary>
-        MouseMove = 0x0200,
-
-        /// <summary>
-        /// Use to specify the first mouse message. Use the
-        /// <see cref="User32.Message.PeekMessage(out Msg, IntPtr, uint, uint, PeekMessageActions)"/> function.
-        /// </summary>
-        MouseFirst = 0x0200,
-
-        /// <summary>
-        /// Posted when the user presses the left mouse button while the cursor is in the client area of a window.
-        /// If the mouse is not captured, the message is posted to the window beneath the cursor.
-        /// Otherwise, the message is posted to the window that has captured the mouse.
-        /// </summary>
-        LButtonDown = 0x0201,
-
-        /// <summary>
-        /// Posted when the user releases the left mouse button while the cursor is in the client area of a window.
-        /// If the mouse is not captured, the message is posted to the window beneath the cursor.
-        /// Otherwise, the message is posted to the window that has captured the mouse.
-        /// </summary>
-        LButtonUp = 0x0202,
-
-        /// <summary>
-        /// Posted when the user double-clicks the left mouse button while the cursor is in the client area of a
-        /// window. If the mouse is not captured, the message is posted to the window beneath the cursor.
-        /// Otherwise, the message is posted to the window that has captured the mouse.
-        /// </summary>
-        LButtonDoubleClick = 0x0203,
-
-        /// <summary>
-        /// Posted when the user presses the right mouse button while the cursor is in the client area of a window.
-        /// If the mouse is not captured, the message is posted to the window beneath the cursor.
-        /// Otherwise, the message is posted to the window that has captured the mouse.
-        /// </summary>
-        RButtonDown = 0x0204,
-
-        /// <summary>
-        /// Posted when the user releases the right mouse button while the cursor is in the client area of a window.
-        /// If the mouse is not captured, the message is posted to the window beneath the cursor.
-        /// Otherwise, the message is posted to the window that has captured the mouse.
-        /// </summary>
-        RButtonUp = 0x0205,
-
-        /// <summary>
-        /// Posted when the user double-clicks the right mouse button while the cursor is in the client area of a
-        /// window. If the mouse is not captured, the message is posted to the window beneath the cursor.
-        /// Otherwise, the message is posted to the window that has captured the mouse.
-        /// </summary>
-        RButtonDoubleClick = 0x0206,
-
-        /// <summary>
-        /// Posted when the user presses the middle mouse button while the cursor is in the client area of a window.
-        /// If the mouse is not captured, the message is posted to the window beneath the cursor.
-        /// Otherwise, the message is posted to the window that has captured the mouse.
-        /// </summary>
-        MButtonDown = 0x0207,
-
-        /// <summary>
-        /// Posted when the user releases the middle mouse button while the cursor is in the client area of a window.
-        /// If the mouse is not captured, the message is posted to the window beneath the cursor.
-        /// Otherwise, the message is posted to the window that has captured the mouse.
-        /// </summary>
-        MButtonUp = 0x0208,
-
-        /// <summary>
-        /// Posted when the user double-clicks the middle mouse button while the cursor is in the client area of a
-        /// window. If the mouse is not captured, the message is posted to the window beneath the cursor.
-        /// Otherwise, the message is posted to the window that has captured the mouse.
-        /// </summary>
-        MButtonDoubleClick = 0x0209,
-
-        /// <summary>
-        /// Sent to the focus window when the mouse wheel is rotated. The
-        /// <see cref="User32.Window.DefWindowProc(IntPtr, WindowMessage, IntPtr, IntPtr)"/>
-        /// function propagates the message to the window's parent. There should be no internal forwarding of the
-        /// message, since
-        /// <see cref="User32.Window.DefWindowProc(IntPtr, WindowMessage, IntPtr, IntPtr)"/>
-        /// propagates it up the parent chain until it finds a window that processes it.
-        /// </summary>
-        MouseWheel = 0x020A,
-
-        /// <summary>
-        /// Posted when the user presses the first or second X button while the cursor is in the client area of a
-        /// window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise,
-        /// the message is posted to the window that has captured the mouse.
-        /// </summary>
-        XButtonDown = 0x020B,
-
-        /// <summary>
-        /// Posted when the user releases the first or second X button while the cursor is in the client area of a
-        /// window. If the mouse is not captured, the message is posted to the window beneath the cursor.
-        /// Otherwise, the message is posted to the window that has captured the mouse.
-        /// </summary>
-        XButtonUp = 0x020C,
-
-        /// <summary>
-        /// Posted when the user double-clicks the first or second X button while the cursor is in the client area of
-        /// a window. If the mouse is not captured, the message is posted to the window beneath the cursor.
-        /// Otherwise, the message is posted to the window that has captured the mouse.
-        /// </summary>
-        XButtonDoubleClick = 0x020D,
-
-        /// <summary>
-        /// Sent to the focus window when the mouse's horizontal scroll wheel is tilted or rotated. The
-        /// <see cref="User32.Window.DefWindowProc(IntPtr, WindowMessage, IntPtr, IntPtr)"/>
-        /// function propagates the message to the window's parent. There should be no internal forwarding of the
-        /// message, since
-        /// <see cref="User32.Window.DefWindowProc(IntPtr, WindowMessage, IntPtr, IntPtr)"/>
-        /// propagates it up the parent chain until it finds a window that processes it.
-        /// </summary>
-        MouseHWheel = 0x020E,
-
-        /// <summary>
-        /// Same as <see cref="MouseHWheel"/>. Documentation incomplete.
-        /// </summary>
-        MouseLast = 0x020E,
-
-        /// <summary>
-        /// Sent to the parent of a child window when the child window is created or destroyed, or when the user
-        /// clicks a mouse button while the cursor is over the child window. When the child window is being created,
-        /// the system sends <see cref="ParentNotify"/> just before the CreateWindow or
-        /// <see cref="User32.Window.CreateWindowEx(ExtendedWindowStyles, string, string,
-        /// WindowStyles, int, int, int, int, IntPtr, IntPtr, IntPtr, IntPtr)"/>
-        /// function that creates the window returns. When the child window is being destroyed, the system sends the
-        /// message before any processing to destroy the window takes place.
-        /// </summary>
-        ParentNotify = 0x0210,
-
-        /// <summary>
-        /// Informs an application's main window procedure that a menu modal loop has been entered.
-        /// </summary>
-        EnterMenuLoop = 0x0211,
-
-        /// <summary>
-        /// Informs an application's main window procedure that a menu modal loop has been exited.
-        /// </summary>
-        ExitMenuLoop = 0x0212,
-
-        /// <summary>
-        /// Sent to an application when the right or left arrow key is used
-        /// to switch between the menu bar and the system menu.
-        /// </summary>
-        NextMenu = 0x0213,
-
-        /// <summary>
-        /// Sent to a window that the user is resizing. By processing this message, an application can monitor
-        /// the size and position of the drag rectangle and, if needed, change its size or position.
-        /// </summary>
-        Sizing = 0x0214,
-
-        /// <summary>
-        /// Sent to the window that is losing the mouse capture.
-        /// </summary>
-        CaptureChanged = 0x0215,
-
-        /// <summary>
-        /// Sent to a window that the user is moving. By processing this message, an application can monitor
-        /// the position of the drag rectangle and, if needed, change its position.
-        /// </summary>
-        Moving = 0x0216,
-
-        /// <summary>
-        /// Notifies applications that a power-management event has occurred.
-        /// </summary>
-        PowerBroadcast = 0x0218,
-
-        /// <summary>
-        /// Notifies an application of a change to the hardware configuration of a device or the computer.
-        /// </summary>
-        DeviceChange = 0x0219,
-
-        /// <summary>
-        /// Sent to a multiple-document interface (MDI) client window by an application to create an MDI child window.
-        /// </summary>
-        MdiCreate = 0x0220,
-
-        /// <summary>
-        /// Sent to a multiple-document interface (MDI) client window by an application to close an MDI child window.
-        /// </summary>
-        MdiDestroy = 0x0221,
-
-        /// <summary>
-        /// Sent to a multiple-document interface (MDI) client window by an application to instruct the client window
-        /// to activate a different MDI child window.
-        /// </summary>
-        MdiActivate = 0x0222,
-
-        /// <summary>
-        /// Sent to a multiple-document interface (MDI) client window by an application to restore an MDI child
-        /// window from maximized or minimized size.
-        /// </summary>
-        MdiRestore = 0x0223,
-
-        /// <summary>
-        /// Sent to a multiple-document interface (MDI) client window by an application to activate the
-        /// next or previous child window.
-        /// </summary>
-        MdiNext = 0x0224,
-
-        /// <summary>
-        /// Sent to a multiple-document interface (MDI) client window by an application to maximize an MDI
-        /// child window. The system resizes the child window to make its client area fill the client window. The
-        /// system places the child window's window menu icon in the rightmost position of the frame window's menu bar,
-        /// and places the child window's restore icon in the leftmost position. The system also appends the title bar
-        /// text of the child window to that of the frame window.
-        /// </summary>
-        MdiMaximize = 0x0225,
-
-        /// <summary>
-        /// Sent to a multiple-document interface (MDI) client window by an application to arrange all of its MDI
-        /// child windows in a tile format.
-        /// </summary>
-        MdiTile = 0x0226,
-
-        /// <summary>
-        /// Sent to a multiple-document interface (MDI) client window by an application to arrange all its MDI
-        /// child windows in a cascade format.
-        /// </summary>
-        MdiCascade = 0x0227,
-
-        /// <summary>
-        /// Sent to a multiple-document interface (MDI) client window by an application to arrange all minimized MDI
-        /// child windows. It does not affect child windows that are not minimized.
-        /// </summary>
-        MdiIconArrange = 0x0228,
-
-        /// <summary>
-        /// Sent to a multiple-document interface (MDI) client window by an application to retrieve the handle
-        /// to the active MDI child window.
-        /// </summary>
-        MdiGetActive = 0x0229,
-
-        /// <summary>
-        /// Sent to a multiple-document interface (MDI) client window by an application to replace the entire menu
-        /// of an MDI frame window, to replace the window menu of the frame window, or both.
-        /// </summary>
-        MdiSetMenu = 0x0230,
-
-        /// <summary>
-        /// Sent one time to a window after it enters the moving or sizing modal loop. The window enters the moving or
-        /// sizing modal loop when the user clicks the window's title bar or sizing border, or when the window passes
-        /// the <see cref="SystemCommand"/> message to the
-        /// <see cref="User32.Window.DefWindowProc(IntPtr, WindowMessage, IntPtr, IntPtr)"/>
-        /// function and the wParam parameter of the message specifies the SC_MOVE or SC_SIZE value.
-        /// The operation is complete when
-        /// <see cref="User32.Window.DefWindowProc(IntPtr, WindowMessage, IntPtr, IntPtr)"/>
-        /// returns.
-        /// </summary>
-        EnterSizeMove = 0x0231,
-
-        /// <summary>
-        /// Sent one time to a window, after it has exited the moving or sizing modal loop. The window enters the
-        /// moving or sizing modal loop when the user clicks the window's title bar or sizing border, or when the
-        /// window passes the <see cref="SystemCommand"/> message to the
-        /// <see cref="User32.Window.DefWindowProc(IntPtr, WindowMessage, IntPtr, IntPtr)"/>
-        /// function and the wParam parameter of the message specifies the SC_MOVE or SC_SIZE value.
-        /// The operation is complete when
-        /// <see cref="User32.Window.DefWindowProc(IntPtr, WindowMessage, IntPtr, IntPtr)"/>
-        /// returns.
-        /// </summary>
-        ExitSizeMove = 0x0232,
-
-        /// <summary>
-        /// Sent when the user drops a file on the window of an application that
-        /// has registered itself as a recipient of dropped files.
-        /// </summary>
-        DropFiles = 0x0233,
-
-        /// <summary>
-        /// Sent to a multiple-document interface (MDI) client window by an application to refresh
-        /// the window menu of the MDI frame window.
-        /// </summary>
-        MdiRefreshMenu = 0x0234,
-
-        /// <summary>
-        /// Sent to a window when there is a change in the settings of a monitor that has a digitizer attached to it.
-        /// This message contains information regarding the scaling of the display mode.<para/>
-        /// Only supported on Windows 7 and higher.
-        /// </summary>
-        PointerDeviceChange = 0x0238,
-
-        /// <summary>
-        /// Sent to a window when a pointer device is detected within range of an input digitizer.
-        /// This message contains information regarding the device and its proximity.<para/>
-        /// Only supported on Windows 7 and higher.
-        /// </summary>
-        PointerDeviceInRange = 0x0239,
-
-        /// <summary>
-        /// Sent to a window when a pointer device has departed the range of an input digitizer.
-        /// This message contains information regarding the device and its proximity.<para/>
-        /// Only supported on Windows 7 and higher.
-        /// </summary>
-        PointerDeviceOutOfRange = 0x023A,
-
-        /// <summary>
-        /// Notifies the window when one or more touch points, such as a finger or pen,
-        /// touches a touch-sensitive digitizer surface.<para/>
-        /// Only supported on Windows 7 and higher.
-        /// </summary>
-        Touch = 0x0240,
-
-        /// <summary>
-        /// Posted to provide an update on a pointer that made contact over the non-client area of a window or when a
-        /// hovering uncaptured contact moves over the non-client area of a window. While the pointer is hovering,
-        /// the message targets whichever window the pointer happens to be over. While the pointer is in contact with
-        /// the surface, the pointer is implicitly captured to the window over which the pointer made contact and that
-        /// window continues to receive input for the pointer until it breaks contact.<para/>
-        /// Only supported on Windows 8 and higher.
-        /// </summary>
-        NCPointerUpdate = 0x0241,
-
-        /// <summary>
-        /// Posted when a pointer makes contact over the non-client area of a window. The message targets the window
-        /// over which the pointer makes contact. The pointer is implicitly captured to the window so that the window
-        /// continues to receive input for the pointer until it breaks contact.<para/>
-        /// Only supported on Windows 8 and higher.
-        /// </summary>
-        NCPointerDown = 0x0242,
-
-        /// <summary>
-        /// Posted when a pointer that made contact over the non-client area of a window breaks contact. The message
-        /// targets the window over which the pointer makes contact and the pointer is, at that point, implicitly
-        /// captured to the window so that the window continues to receive input for the pointer until it breaks
-        /// contact, including the <see cref="NCPointerUp"/> notification.<para/>
-        /// If a window has captured this pointer, this message is not posted. Instead, a <see cref="PointerUp"/>
-        /// is posted to the window that has captured this pointer.<para/>
-        /// Only supported on Windows 8 and higher.
-        /// </summary>
-        NCPointerUp = 0x0243,
-
-        /// <summary>
-        /// Posted to provide an update on a pointer that made contact over the client area of a window or on a
-        /// hovering uncaptured pointer over the client area of a window. While the pointer is hovering, the message
-        /// targets whichever window the pointer happens to be over. While the pointer is in contact with the surface,
-        /// the pointer is implicitly captured to the window over which the pointer made contact and that window
-        /// continues to receive input for the pointer until it breaks contact.<para/>
-        /// Only supported on Windows 8 and higher.
-        /// </summary>
-        PointerUpdate = 0x0245,
-
-        /// <summary>
-        /// Posted when a pointer makes contact over the client area of a window. This input message targets the
-        /// window over which the pointer makes contact, and the pointer is implicitly captured to the window so
-        /// that the window continues to receive input for the pointer until it breaks contact.<para/>
-        /// Only supported on Windows 8 and higher.
-        /// </summary>
-        PointerDown = 0x0246,
-
-        /// <summary>
-        /// Posted when a pointer that made contact over the client area of a window breaks contact. This input
-        /// message targets the window over which the pointer makes contact and the pointer is, at that point,
-        /// implicitly captured to the window so that the window continues to receive input messages including
-        /// the <see cref="PointerUp"/> notification for the pointer until it breaks contact.<para/>
-        /// Only supported on Windows 8 and higher.
-        /// </summary>
-        PointerUp = 0x0247,
-
-        /// <summary>
-        /// Sent to a window when a new pointer enters detection range over the window (hover) or when an
-        /// existing pointer moves within the boundaries of the window.<para/>
-        /// Only supported on Windows 8 and higher.
-        /// </summary>
-        PointerEnter = 0x0249,
-
-        /// <summary>
-        /// Sent to a window when a pointer leaves detection range over the window (hover) or when a
-        /// pointer moves outside the boundaries of the window.<para/>
-        /// Only supported on Windows 8 and higher.
-        /// </summary>
-        PointerLeave = 0x024A,
-
-        /// <summary>
-        /// Sent to an inactive window when a primary pointer generates a <see cref="PointerDown"/> over the window.
-        /// As long as the message remains unhandled, it travels up the parent window chain until it is reaches the
-        /// top-level window. Applications can respond to this message to specify whether they wish to be activated.
-        /// <para/>
-        /// Only supported on Windows 8 and higher.
-        /// </summary>
-        PointerActivate = 0x024B,
-
-        /// <summary>
-        /// Sent to a window that is losing capture of an input pointer.<para/>
-        /// Only supported on Windows 8 and higher.
-        /// </summary>
-        PointerCaptureChanged = 0x024C,
-
-        /// <summary>
-        /// Sent to a window on a touch down in order to determine the most probable touch target.<para/>
-        /// Only supported on Windows 8 and higher.
-        /// </summary>
-        TouchHitTesting = 0x024D,
-
-        /// <summary>
-        /// Posted to the window with foreground keyboard focus when a scroll wheel is rotated.<para/>
-        /// Only supported on Windows 8 and higher.
-        /// </summary>
-        PointerWheel = 0x024E,
-
-        /// <summary>
-        /// Posted to the window with foreground keyboard focus when a horizontal scroll wheel is rotated.<para/>
-        /// Only supported on Windows 8 and higher.
-        /// </summary>
-        PointerHWheel = 0x024F,
-
-        /// <summary>
-        /// This member is not officially documented. Use with care.<para/>
-        /// Only supported on Windows 8 and higher.
-        /// </summary>
-        PointerHitTest = 0x0250,
-
-        /// <summary>
-        /// Sent when ongoing pointer input, for an existing pointer ID, transitions from one process to another
-        /// across content configured for cross-process chaining (AddContentWithCrossProcessChaining).<para/>
-        /// Only supported on Windows 8 and higher.
-        /// </summary>
-        PointerRoutedTo = 0x0251,
-
-        /// <summary>
-        /// Sent when pointer input transitions from one process to another across content configured for
-        /// cross-process chaining (AddContentWithCrossProcessChaining).<para/>
-        /// Only supported on Windows 8 and higher.
-        /// </summary>
-        PointerRoutedAway = 0x0252,
-
-        /// <summary>
-        /// Sent to all processes (configured for cross-process chaining through AddContentWithCrossProcessChaining
-        /// and not currently handling pointer input) ever associated with a specific pointer ID,
-        /// when a <see cref="PointerUp"/> message is received on the current process.<para/>
-        /// Only supported on Windows 8 and higher.
-        /// </summary>
-        PointerRoutedReleased = 0x0253,
-
-        /// <summary>
-        /// Sent to an application when a window is activated.
-        /// </summary>
-        ImeSetContext = 0x0281,
-
-        /// <summary>
-        /// Sent to an application to notify it of changes to the IME window.
-        /// </summary>
-        ImeNotify = 0x0282,
-
-        /// <summary>
-        /// Sent by an application to direct the IME window to carry out the requested command. The application
-        /// uses this message to control the IME window that it has created.
-        /// </summary>
-        ImeControl = 0x0283,
-
-        /// <summary>
-        /// Sent to an application when the IME window finds no space to extend the area for the composition window.
-        /// </summary>
-        ImeCompositionFull = 0x0284,
-
-        /// <summary>
-        /// Sent to an application when the operating system is about to change the current IME.
-        /// </summary>
-        ImeSelect = 0x0285,
-
-        /// <summary>
-        /// Sent to an application when the IME gets a character of the conversion result.
-        /// </summary>
-        ImeChar = 0x0286,
-
-        /// <summary>
-        /// Sent to an application to provide commands and request information.
-        /// </summary>
-        ImeRequest = 0x0288,
-
-        /// <summary>
-        /// Sent to an application by the IME to notify the application of a key press and to keep message order.
-        /// </summary>
-        ImeKeydown = 0x0290,
-
-        /// <summary>
-        /// Sent to an application by the IME to notify the application of a key release and to keep message order.
-        /// </summary>
-        ImeKeyup = 0x0291,
-
-        /// <summary>
-        /// Posted to a window when the cursor hovers over the nonclient area of the window for the period of time
-        /// specified in a prior call to <see cref="User32.Mouse.TrackMouseEvent(ref TrackMouseEvent)"/>.
-        /// </summary>
-        NCMouseHover = 0x02A0,
-
-        /// <summary>
-        /// Posted to a window when the cursor hovers over the client area of the window for the period of time
-        /// specified in a prior call to <see cref="User32.Mouse.TrackMouseEvent(ref TrackMouseEvent)"/>.
-        /// </summary>
-        MouseHover = 0x02A1,
-
-        /// <summary>
-        /// Posted to a window when the cursor leaves the nonclient area of the window specified
-        /// in a prior call to <see cref="User32.Mouse.TrackMouseEvent(ref TrackMouseEvent)"/>.
-        /// </summary>
-        NCMouseLeave = 0x02A2,
-
-        /// <summary>
-        /// Posted to a window when the cursor leaves the client area of the window specified
-        /// in a prior call to <see cref="User32.Mouse.TrackMouseEvent(ref TrackMouseEvent)"/>.
-        /// </summary>
-        MouseLeave = 0x02A3,
-
-        /// <summary>
-        /// Notifies applications of changes in session state.
-        /// </summary>
-        WtsSessionChange = 0x02B1,
-
-        /// <summary>
-        /// This member is not officially documented. Use with care.
-        /// </summary>
-        TabletFirst = 0x02C0,
-
-        /// <summary>
-        /// This member is not officially documented. Use with care.
-        /// </summary>
-        TabletLast = 0x02DF,
-
-        /// <summary>
-        /// Sent when the effective dots per inch (dpi) for a window has changed. The DPI is the scale factor for a
-        /// window. There are multiple events that can cause the DPI to change.<para/>
-        /// Only supported on Windows 7 and higher.
-        /// </summary>
-        DpiChanged = 0x02E0,
-
-        /// <summary>
-        /// For Per Monitor v2 top-level windows, this message is sent to all HWNDs in the child HWDN tree of the
-        /// window that is undergoing a DPI change. This message occurs before the top-level window receives
-        /// <see cref="DpiChanged"/>, and traverses the child tree from the bottom up.<para/>
-        /// Only supported on Windows 10.
-        /// </summary>
-        DpiChangedBeforeParent = 0x02E2,
-
-        /// <summary>
-        /// For Per Monitor v2 top-level windows, this message is sent to all HWNDs in the child HWDN tree of the
-        /// window that is undergoing a DPI change. This message occurs after the top-level window receives
-        /// <see cref="DpiChanged"/>, and traverses the child tree from the top down.<para/>
-        /// Only supported on Windows 10.
-        /// </summary>
-        DpiChangedAfterParent = 0x02E3,
-
-        /// <summary>
-        /// This message tells the operating system that the window will be sized to dimensions other than the default.
-        /// <para/>
-        /// Only supported on Windows 10.
-        /// </summary>
-        GetDpiScaledSize = 0x02E4,
-
-        /// <summary>
-        /// Sent to an edit control or combo box by an application to delete (cut) the current selection,
-        /// if any, in the edit control and copy the deleted text to the clipboard in CF_TEXT format.
-        /// </summary>
-        Cut = 0x0300,
-
-        /// <summary>
-        /// Sent to an edit control or combo box by an application to copy the current selection
-        /// to the clipboard in CF_TEXT format.
-        /// </summary>
-        Copy = 0x0301,
-
-        /// <summary>
-        /// Sent to an edit control or combo box by an application to copy the current content of the clipboard to the
-        /// edit control at the current caret position.
-        /// Data is inserted only if the clipboard contains data in CF_TEXT format.
-        /// </summary>
-        Paste = 0x0302,
-
-        /// <summary>
-        /// Sent to an edit control or combo box by an application to delete (clear) the current selection,
-        /// if any, from the edit control.
-        /// </summary>
-        Clear = 0x0303,
-
-        /// <summary>
-        /// Sent to an edit control by an application to undo the last operation. When this message is sent to
-        /// an edit control, the previously deleted text is restored or the previously added text is deleted.
-        /// </summary>
-        Undo = 0x0304,
-
-        /// <summary>
-        /// Sent to the clipboard owner if it has delayed rendering a specific clipboard format and if an application
-        /// has requested data in that format. The clipboard owner must render data in the specified format
-        /// and place it on the clipboard by calling the SetClipboardData function.
-        /// </summary>
-        RenderFormat = 0x0305,
-
-        /// <summary>
-        /// Sent to the clipboard owner before it is destroyed, if the clipboard owner has delayed rendering one or
-        /// more clipboard formats. For the content of the clipboard to remain available to other applications,
-        /// the clipboard owner must render data in all the formats it is capable of generating, and place the
-        /// data on the clipboard by calling the SetClipboardData function.
-        /// </summary>
-        RenderAllFormats = 0x0306,
-
-        /// <summary>
-        /// Sent to the clipboard owner when a call to the EmptyClipboard function empties the clipboard.
-        /// </summary>
-        DestroyClipboard = 0x0307,
-
-        /// <summary>
-        /// Sent to the first window in the clipboard viewer chain when the content of the clipboard changes. This
-        /// enables a clipboard viewer window to display the new content of the clipboard.
-        /// </summary>
-        DrawClipboard = 0x0308,
-
-        /// <summary>
-        /// Sent to the clipboard owner by a clipboard viewer window when the clipboard contains data in the
-        /// CF_OWNERDISPLAY format and the clipboard viewer's client area needs repainting.
-        /// </summary>
-        PaintClipboard = 0x0309,
-
-        /// <summary>
-        /// Sent to the clipboard owner by a clipboard viewer window when the clipboard contains data in the
-        /// CF_OWNERDISPLAY format and an event occurs in the clipboard viewer's vertical scroll bar.
-        /// The owner should scroll the clipboard image and update the scroll bar values.
-        /// </summary>
-        VScrollClipboard = 0x030A,
-
-        /// <summary>
-        /// Sent to the clipboard owner by a clipboard viewer window when the clipboard contains data in the
-        /// CF_OWNERDISPLAY format and the clipboard viewer's client area has changed size.
-        /// </summary>
-        SizeClipboard = 0x030B,
-
-        /// <summary>
-        /// Sent to the clipboard owner by a clipboard viewer window to request the name of a
-        /// CF_OWNERDISPLAY clipboard format.
-        /// </summary>
-        AskClipboardFormatName = 0x030C,
-
-        /// <summary>
-        /// Sent to the first window in the clipboard viewer chain when a window is being removed from the chain.
-        /// </summary>
-        ChangeClipboardChain = 0x030D,
-
-        /// <summary>
-        /// Sent to the clipboard owner by a clipboard viewer window. This occurs when the clipboard contains data in
-        /// the CF_OWNERDISPLAY format and an event occurs in the clipboard viewer's horizontal scroll bar. The owner
-        /// should scroll the clipboard image and update the scroll bar values.
-        /// </summary>
-        HScrollClipboard = 0x030E,
-
-        /// <summary>
-        /// Informs a window that it is about to receive the keyboard focus, giving the window the opportunity
-        /// to realize its logical palette when it receives the focus.
-        /// </summary>
-        QueryNewPalette = 0x030F,
-
-        /// <summary>
-        /// Informs applications that an application is going to realize its logical palette.
-        /// </summary>
-        PaletteIsChanging = 0x0310,
-
-        /// <summary>
-        /// Sent by the OS to all top-level and overlapped windows after the window with the keyboard focus realizes
-        /// its logical palette. This message enables windows that do not have the keyboard focus to realize
-        /// their logical palettes and update their client areas.
-        /// </summary>
-        PaletteChanged = 0x0311,
-
-        /// <summary>
-        /// Posted when the user presses a hot key registered by the RegisterHotKey function. The message is placed
-        /// at the top of the message queue associated with the thread that registered the hot key.
-        /// </summary>
-        Hotkey = 0x0312,
-
-        /// <summary>
-        /// Sent to a window to request that it draw itself in the specified device context,
-        /// most commonly in a printer device context.
-        /// </summary>
-        Print = 0x0317,
-
-        /// <summary>
-        /// Sent to a window to request that it draw its client area in the specified device context,
-        /// most commonly in a printer device context.
-        /// </summary>
-        PrintClient = 0x0318,
-
-        /// <summary>
-        /// Notifies a window that the user generated an application command event, for example, by clicking an
-        /// application command button using the mouse or typing an application command key on the keyboard.<para/>
-        /// </summary>
-        AppCommand = 0x0319,
-
-        /// <summary>
-        /// Broadcast to every window following a theme change event. Examples of theme change events are the
-        /// activation of a theme, the deactivation of a theme, or a transition from one theme to another.
-        /// </summary>
-        ThemeChanged = 0x031A,
-
-        /// <summary>
-        /// Sent when the contents of the clipboard have changed.
-        /// </summary>
-        ClipboardUpdate = 0x031D,
-
-        /// <summary>
-        /// Informs all top-level windows that Desktop Window Manager (DWM) composition has been enabled or disabled.
-        /// <para/>
-        /// Only supported on Windows Vista or higher.
-        /// </summary>
-        DwmCompositionChanged = 0x031E,
-
-        /// <summary>
-        /// Sent when the non-client area rendering policy has changed.<para/>
-        /// Only supported on Windows Vista or higher.
-        /// </summary>
-        DwmNCRenderingChanged = 0x031F,
-
-        /// <summary>
-        /// Informs all top-level windows that the colorization color has changed.<para/>
-        /// Only supported on Windows Vista or higher.
-        /// </summary>
-        DwmColorizationColorChanged = 0x0320,
-
-        /// <summary>
-        /// Sent when a Desktop Window Manager (DWM) composed window is maximized.<para/>
-        /// Only supported on Windows Vista or higher.
-        /// </summary>
-        DwmWindowMaximizedChange = 0x0321,
-
-        /// <summary>
-        /// Instructs a window to provide a static bitmap to use as a thumbnail representation of that window.<para/>
-        /// Only supported on Windows 7 or higher.
-        /// </summary>
-        DwmSendIconicThumbnail = 0x0323,
-
-        /// <summary>
-        /// Instructs a window to provide a static bitmap to use as a
-        /// live preview (also known as a Peek preview) of that window.<para/>
-        /// Only supported on Windows 7 or higher.
-        /// </summary>
-        DwmSendIconicLivePreviewBitmap = 0x0326,
-
-        /// <summary>
-        /// Sent to request extended title bar information.<para/>
-        /// Only supported on Windows Vista or higher.
-        /// </summary>
-        GetTitleBarInfoEx = 0x033F,
-
-        /// <summary>
-        /// This member is not officially documented. Use with care.
-        /// </summary>
-        HandheldFirst = 0x0358,
-
-        /// <summary>
-        /// This member is not officially documented. Use with care.
-        /// </summary>
-        HandheldLast = 0x035F,
-
-        /// <summary>
-        /// Specifies the first afx message.
-        /// </summary>
-        AfxFirst = 0x0360,
-
-        /// <summary>
-        /// Specifies the last afx message.
-        /// </summary>
-        AfxLast = 0x037F,
-
-        /// <summary>
-        /// This member is not officially documented. Use with care.
-        /// </summary>
-        PenWinFirst = 0x0380,
-
-        /// <summary>
-        /// This member is not officially documented. Use with care.
-        /// </summary>
-        PenWinLast = 0x038F,
-
-        /// <summary>
-        /// Used by applications to help define private messages,
-        /// usually of the form <see cref="App"/> + X, where X is an integer value.
-        /// </summary>
-        App = 0x8000,
-
-        /// <summary>
-        /// Used by applications to help define private messages for use by private window classes,
-        /// usually of the form <see cref="User"/> + X, where X is an integer value.
-        /// </summary>
-        User = 0x0400,
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/WindowMessageSizeType.cs b/Crow/src/backends/win32/User32/Enums/WindowMessageSizeType.cs
deleted file mode 100644 (file)
index 5085e50..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// The type of resizing requested by a <see cref="WindowMessage.Size"/>.
-    /// </summary>
-    public enum WindowMessageSizeType
-    {
-        /// <summary>
-        /// The window has been resized, but neither the <see cref="Minimized"/>
-        /// nor <see cref="Maximized"/> value applies.
-        /// </summary>
-        Restored = 0,
-
-        /// <summary>
-        /// The window has been minimized.
-        /// </summary>
-        Minimized = 1,
-
-        /// <summary>
-        /// The window has been maximized.
-        /// </summary>
-        Maximized = 2,
-
-        /// <summary>
-        /// Message is sent to all pop-up windows when some other window has been restored to its former size.
-        /// </summary>
-        MaxShow = 3,
-
-        /// <summary>
-        /// Message is sent to all pop-up windows when some other window is maximized.
-        /// </summary>
-        MaxHide = 4,
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Enums/WindowStyles.cs b/Crow/src/backends/win32/User32/Enums/WindowStyles.cs
deleted file mode 100644 (file)
index 501e9de..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-using System;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Every window has one or more window styles. A window style is a named constant that defines an aspect of the
-    /// window's appearance and behavior that is not specified by the window's class. An application usually sets
-    /// window styles when creating windows. It can also set the styles after creating a window by using the
-    /// <see cref="User32.Window.SetWindowLong(IntPtr, int, int)"/> function.
-    /// </summary>
-    [Flags]
-    public enum WindowStyles : uint
-    {
-        /// <summary>
-        /// The window is an overlapped window. An overlapped window has a title bar and a border.
-        /// Same as the <see cref="Tiled"/> style.
-        /// </summary>
-        Overlapped = 0x00000000,
-
-        /// <summary>
-        /// The window is an overlapped window. An overlapped window has a title bar and a border.
-        /// Same as the <see cref="Overlapped"/> style.
-        /// </summary>
-        Tiled = Overlapped,
-
-        /// <summary>
-        /// The window is a control that can receive the keyboard focus when the user presses the TAB key. Pressing
-        /// the TAB key changes the keyboard focus to the next control with the <see cref="TabStop"/> style.<para/>
-        /// You can turn this style on and off to change dialog box navigation. To change this style after a window
-        /// has been created, use the <see cref="User32.Window.SetWindowLong(IntPtr, GetWindowLongIndex, IntPtr)"/>
-        /// function. For user-created windows and modeless dialogs to work with tab stops,
-        /// alter the message loop to call the IsDialogMessage function.
-        /// </summary>
-        TabStop = 0x00010000,
-
-        /// <summary>
-        /// The window has a maximize button. Cannot be combined with the
-        /// <see cref="ExtendedWindowStyles.ContextHelp"/> style. The <see cref="SystemMenu"/>
-        /// style must also be specified.
-        /// </summary>
-        MaximizeBox = 0x00010000,
-
-        /// <summary>
-        /// The window is the first control of a group of controls. The group consists of this first control and all
-        /// controls defined after it, up to the next control with the <see cref="Group"/> style. The first control
-        /// in each group usually has the <see cref="TabStop"/> style so that the user can move from group to group.
-        /// The user can subsequently change the keyboard focus from one control in the group to
-        /// the next control in the group by using the direction keys.<para/>
-        /// You can turn this style on and off to change dialog box navigation. To change this style after a window
-        /// has been created, use the <see cref="User32.Window.SetWindowLong(IntPtr, GetWindowLongIndex, IntPtr)"/>
-        /// function.
-        /// </summary>
-        Group = 0x00020000,
-
-        /// <summary>
-        /// The window has a minimize button. Cannot be combined with the
-        /// <see cref="ExtendedWindowStyles.ContextHelp"/> style.
-        /// The <see cref="SystemMenu"/> style must also be specified.
-        /// </summary>
-        MinimizeBox = 0x00020000,
-
-        /// <summary>
-        /// The window has a sizing border. Same as the <see cref="SizeBox"/> style.
-        /// </summary>
-        ThickFrame = 0x00040000,
-
-        /// <summary>
-        /// The window has a sizing border. Same as the <see cref="ThickFrame"/> style.
-        /// </summary>
-        SizeBox = ThickFrame,
-
-        /// <summary>
-        /// The window has a window menu on its title bar. The <see cref="Caption"/> style must also be specified.
-        /// </summary>
-        SystemMenu = 0x00080000,
-
-        /// <summary>
-        /// The window has a horizontal scroll bar.
-        /// </summary>
-        HScroll = 0x00100000,
-
-        /// <summary>
-        /// The window has a vertical scroll bar.
-        /// </summary>
-        VScroll = 0x00200000,
-
-        /// <summary>
-        /// The window has a border of a style typically used with dialog boxes.
-        /// A window with this style cannot have a title bar.
-        /// </summary>
-        DialogFrame = 0x00400000,
-
-        /// <summary>
-        /// The window has a thin-line border.
-        /// </summary>
-        Border = 0x00800000,
-
-        /// <summary>
-        /// The window has a title bar (includes the <see cref="Border"/> style).
-        /// </summary>
-        Caption = Border | DialogFrame,
-
-        /// <summary>
-        /// The window is initially maximized.
-        /// </summary>
-        Maximize = 0x01000000,
-
-        /// <summary>
-        /// Excludes the area occupied by child windows when drawing occurs within the parent window.
-        /// This style is used when creating the parent window.
-        /// </summary>
-        ClipChildren = 0x02000000,
-
-        /// <summary>
-        /// Clips child windows relative to each other; that is, when a particular child window receives a
-        /// <see cref="WindowMessage.Paint"/> message, the <see cref="ClipSiblings"/> style clips all other overlapping
-        /// child windows out of the region of the child window to be updated. If <see cref="ClipSiblings"/> is not
-        /// specified and child windows overlap, it is possible, when drawing within the client area of a child window,
-        /// to draw within the client area of a neighboring child window.
-        /// </summary>
-        ClipSiblings = 0x04000000,
-
-        /// <summary>
-        /// The window is initially disabled. A disabled window cannot receive input from the user. To change this
-        /// after a window has been created, use the EnableWindow function.
-        /// </summary>
-        Disabled = 0x08000000,
-
-        /// <summary>
-        /// The window is initially visible.<para/>
-        /// This style can be turned on and off by using the
-        /// <see cref="User32.Window.ShowWindow(IntPtr, ShowWindowCommand)"/> or <see cref="User32.Window.SetWindowPos(
-        /// IntPtr, SetWindowPosHwndEnum, int, int, int, int, SetWindowPosFlags)"/> function.
-        /// </summary>
-        Visible = 0x10000000,
-
-        /// <summary>
-        /// The window is initially minimized. Same as the <see cref="Iconic"/> style.
-        /// </summary>
-        Minimize = 0x20000000,
-
-        /// <summary>
-        /// The window is initially minimized. Same as the <see cref="Minimize"/> style.
-        /// </summary>
-        Iconic = Minimize,
-
-        /// <summary>
-        /// The window is a child window. A window with this style cannot have a menu bar.
-        /// This style cannot be used with the <see cref="Popup"/> style.
-        /// </summary>
-        Child = 0x40000000,
-
-        /// <summary>
-        /// Same as the <see cref="Child"/> style.
-        /// </summary>
-        ChildWindow = Child,
-
-        /// <summary>
-        /// The windows is a pop-up window. This style cannot be used with the <see cref="Child"/> style.
-        /// </summary>
-        Popup = 0x80000000,
-
-        /// <summary>
-        /// The window is an overlapped window. Same as the <see cref="TiledWindow"/> style.
-        /// </summary>
-        OverlappedWindow = Overlapped | Caption | SystemMenu | ThickFrame | MinimizeBox | MaximizeBox,
-
-        /// <summary>
-        /// The window is an overlapped window. Same as the <see cref="OverlappedWindow"/> style.
-        /// </summary>
-        TiledWindow = OverlappedWindow,
-
-        /// <summary>
-        /// The window is a pop-up window. The <see cref="Caption"/> and
-        /// <see cref="PopupWindow"/> styles must be combined to make the window menu visible.
-        /// </summary>
-        PopupWindow = Popup | Border | SystemMenu,
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Icon.cs b/Crow/src/backends/win32/User32/Icon.cs
deleted file mode 100644 (file)
index 468aabe..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-
-namespace OpenToolkit.NT.Native
-{
-    public static partial class User32
-    {
-        /// <summary>
-        /// Provides a subset of functions from the Windows API,
-        /// specifically those imported from user32.dll that deal with icons.
-        /// </summary>
-        public static class Icon
-        {
-            /// <summary>
-            /// Creates an icon or cursor from an <see cref="IconInfo"/> structure.
-            /// </summary>
-            /// <param name="iconInfo">
-            /// An <see cref="IconInfo"/> structure the function uses to create the icon or cursor.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds, the return value is a handle to the icon or cursor that is created.<para/>
-            /// If the function fails, the return value is <see cref="IntPtr.Zero"/>.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport(Library, SetLastError = true)]
-            public static extern IntPtr CreateIconIndirect([In] ref IconInfo iconInfo);
-
-            /// <summary>
-            /// Destroys an icon and frees any memory the icon occupied.
-            /// </summary>
-            /// <param name="icon">A handle to the icon to be destroyed. The icon must not be in use.</param>
-            /// <returns>
-            /// If the function succeeds, the return value is true.<para/>
-            /// If the function fails, the return value is false.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport(Library, SetLastError = true)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool DestroyIcon([In] IntPtr icon);
-
-            /// <summary>
-            /// Retrieves information about the specified icon or cursor.
-            /// </summary>
-            /// <param name="icon">A handle to the icon or cursor.</param>
-            /// <param name="iconInfo">
-            /// A pointer to an <see cref="IconInfo"/> structure. The function fills in the structure's members.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds, the return value is true and the function
-            /// fills in the members of the specified <see cref="IconInfo"/> structure.<para/>
-            /// If the function fails, the return value is false.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport(Library, SetLastError = true)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool GetIconInfo([In] IntPtr icon, [Out] out IconInfo iconInfo);
-
-            /// <summary>
-            /// Retrieves information about the specified pre-defined cursor.
-            /// </summary>
-            /// <param name="cursorName">One of the pre-defined cursors.</param>
-            /// <param name="iconInfo">
-            /// A pointer to an <see cref="IconInfo"/> structure. The function fills in the structure's members.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds, the return value is true and the function
-            /// fills in the members of the specified <see cref="IconInfo"/> structure.<para/>
-            /// If the function fails, the return value is false.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            public static bool GetIconInfo(CursorName cursorName, out IconInfo iconInfo)
-            {
-                return GetIconInfo(new IntPtr((int)cursorName), out iconInfo);
-            }
-
-            /// <summary>
-            /// Retrieves information about the specified pre-defined icon.
-            /// </summary>
-            /// <param name="iconName">One of the pre-defined cursors.</param>
-            /// <param name="iconInfo">
-            /// A pointer to an <see cref="IconInfo"/> structure. The function fills in the structure's members.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds, the return value is true and the function
-            /// fills in the members of the specified <see cref="IconInfo"/> structure.<para/>
-            /// If the function fails, the return value is false.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            public static bool GetIconInfo(IconName iconName, out IconInfo iconInfo)
-            {
-                return GetIconInfo(new IntPtr((int)iconName), out iconInfo);
-            }
-
-            /// <summary>
-            /// Loads the specified icon resource from the executable (.exe)
-            /// file associated with an application instance.
-            /// </summary>
-            /// <param name="moduleInstance">
-            /// A handle to an instance of the module whose executable file contains the icon to be loaded.
-            /// This parameter must be <see cref="IntPtr.Zero"/> when a standard icon is being loaded.
-            /// </param>
-            /// <param name="iconName">The name of the icon resource to be loaded.</param>
-            /// <returns>
-            /// If the function succeeds, the return value is a handle to the newly loaded icon.<para/>
-            /// If the function fails, the return value is <see cref="IntPtr.Zero"/>.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport(Library, SetLastError = true, CharSet = CharSet.Unicode)]
-            public static extern IntPtr LoadIcon([In] [Optional] IntPtr moduleInstance, [In] string iconName);
-
-            /// <summary>
-            /// Loads the specified icon resource from the executable (.exe)
-            /// file associated with an application instance.
-            /// </summary>
-            /// <param name="moduleInstance">
-            /// A handle to an instance of the module whose executable file contains the icon to be loaded.
-            /// This parameter must be <see cref="IntPtr.Zero"/> when a standard icon is being loaded.
-            /// </param>
-            /// <param name="iconName">A pointer to a string with the name of the icon resource to be loaded.</param>
-            /// <returns>
-            /// If the function succeeds, the return value is a handle to the newly loaded icon.<para/>
-            /// If the function fails, the return value is <see cref="IntPtr.Zero"/>.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport(Library, SetLastError = true, CharSet = CharSet.Unicode)]
-            public static extern IntPtr LoadIcon([In] [Optional] IntPtr moduleInstance, [In] IntPtr iconName);
-
-            /// <summary>
-            /// Loads the specified icon resource from the executable (.exe)
-            /// file associated with an application instance.
-            /// </summary>
-            /// <param name="cursorName">One of the pre-defined cursors to be loaded.</param>
-            /// <returns>
-            /// If the function succeeds, the return value is a handle to the newly loaded icon.<para/>
-            /// If the function fails, the return value is <see cref="IntPtr.Zero"/>.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            public static IntPtr LoadIcon(CursorName cursorName)
-            {
-                return LoadIcon(IntPtr.Zero, new IntPtr((int)cursorName));
-            }
-
-            /// <summary>
-            /// Loads the specified icon resource from the executable (.exe)
-            /// file associated with an application instance.
-            /// </summary>
-            /// <param name="iconName">One of the pre-defined icons to be loaded.</param>
-            /// <returns>
-            /// If the function succeeds, the return value is a handle to the newly loaded icon.<para/>
-            /// If the function fails, the return value is <see cref="IntPtr.Zero"/>.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            public static IntPtr LoadIcon(IconName iconName)
-            {
-                return LoadIcon(IntPtr.Zero, new IntPtr((int)iconName));
-            }
-        }
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Keyboard.cs b/Crow/src/backends/win32/User32/Keyboard.cs
deleted file mode 100644 (file)
index 5c86e43..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-using System.Security;
-
-namespace OpenToolkit.NT.Native
-{
-    public static partial class User32
-    {
-        /// <summary>
-        /// Provides a subset of functions from the Windows API,
-        /// specifically those imported from user32.dll that deal with the keyboard.
-        /// </summary>
-        public static class Keyboard
-        {
-            /// <summary>
-            /// Retrieves the status of the specified virtual key. The status specifies whether the key is up, down,
-            /// or toggled (on, off—alternating each time the key is pressed).
-            /// </summary>
-            /// <param name="key">The desired virtual key.</param>
-            /// <returns>
-            /// The return value specifies the status of the specified virtual key, as follows:<para/>
-            /// If the high-order bit is 1, the key is down; otherwise, it is up.<para/>
-            /// If the low-order bit is 1, the key is toggled. A key, such as the CAPS LOCK key, is toggled if it is
-            /// turned on. The key is off and untoggled if the low-order bit is 0. A toggle key's indicator light
-            /// (if any) on the keyboard will be on when the key is toggled, and off when the key is untoggled.
-            /// </returns>
-            [SuppressUnmanagedCodeSecurity]
-            [DllImport(Library, SetLastError = true)]
-            public static extern short GetKeyState([In] VirtualKey key);
-
-            /// <summary>
-            /// Determines whether a key is up or down at the time the function is called,
-            /// and whether the key was pressed after a previous call to GetAsyncKeyState.
-            /// </summary>
-            /// <param name="key">The desired virtual key.</param>
-            /// <returns>
-            /// If the function succeeds, the return value specifies whether the key was pressed since the last call
-            /// to <see cref="GetAsyncKeyState(VirtualKey)"/>, and whether the key is currently up or down. If the
-            /// most significant bit is set, the key is down, and if the least significant bit is set, the key was
-            /// pressed after the previous call to GetAsyncKeyState. However, you should not rely on this last
-            /// behavior; for more information, see the Remarks section in the official documentation.
-            /// </returns>
-            [SuppressUnmanagedCodeSecurity]
-            [DllImport(Library, SetLastError = true)]
-            public static extern short GetAsyncKeyState([In] VirtualKey key);
-
-            /// <summary>
-            /// Retrieves the handle to the window that has the keyboard focus,
-            /// if the window is attached to the calling thread's message queue.
-            /// </summary>
-            /// <returns>
-            /// The return value is the handle to the window with the keyboard focus. If the calling thread's message
-            /// queue does not have an associated window with the keyboard focus,
-            /// the return value is <see cref="IntPtr.Zero"/>.
-            /// </returns>
-            [DllImport(Library)]
-            public static extern IntPtr GetFocus();
-
-            /// <summary>
-            /// Sets the keyboard focus to the specified window.
-            /// The window must be attached to the calling thread's message queue.
-            /// </summary>
-            /// <param name="window">A handle to the window that will receive the keyboard input.
-            /// If this parameter is <see cref="IntPtr.Zero"/>, keystrokes are ignored.</param>
-            /// <returns>
-            /// If the function succeeds, the return value is the handle to the window that previously had the
-            /// keyboard focus. If the <paramref name="window"/> parameter is invalid or the window is not attached
-            /// to the calling thread's message queue, the return value is <see cref="IntPtr.Zero"/>.<para/>
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport(Library, SetLastError = true)]
-            public static extern IntPtr SetFocus([In] [Optional] IntPtr window);
-
-            /// <summary>
-            /// Translates (maps) a virtual-key code into a scan code or character value,
-            /// or translates a scan code into a virtual-key code.
-            /// </summary>
-            /// <param name="vkey">
-            /// The virtual key code or scan code for a key.
-            /// How this value is interpreted depends on the value of the <paramref name="mapType"/> parameter.
-            /// </param>
-            /// <param name="mapType">The translation to be performed.</param>
-            /// <returns>
-            /// The return value is either a scan code, a virtual-key code, or a character value, depending on
-            /// the value of <paramref name="vkey"/> and <paramref name="mapType"/>.<para/>
-            /// If there is no translation, the return value is zero.
-            /// </returns>
-            [SuppressUnmanagedCodeSecurity]
-            [DllImport(Library, SetLastError = true)]
-            public static extern uint MapVirtualKey([In] VirtualKey vkey, [In] MapVirtualKeyType mapType);
-        }
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Message.cs b/Crow/src/backends/win32/User32/Message.cs
deleted file mode 100644 (file)
index eac8d7b..0000000
+++ /dev/null
@@ -1,307 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-using System.Security;
-
-namespace OpenToolkit.NT.Native
-{
-    public static partial class User32
-    {
-        /// <summary>
-        /// Provides a subset of functions from the Windows API,
-        /// specifically those imported from user32.dll that deal with messages.
-        /// </summary>
-        public static class Message
-        {
-            /// <summary>
-            /// A special constant value that can be used to send a message to all top-level windows, including
-            /// disabled or invisible unowned windows, overlapped windows, and pop-up windows;
-            /// but not to child windows.
-            /// </summary>
-            public static readonly IntPtr BroadcastHandle = new IntPtr(0xFFFF);
-
-            /// <summary>
-            /// Dispatches incoming sent messages, checks the thread message queue for a posted message,
-            /// and retrieves the message (if any exist).
-            /// </summary>
-            /// <param name="msg">A <see cref="Msg"/> structure that receives message information.</param>
-            /// <param name="window">
-            /// A handle to the window whose messages are to be retrieved.
-            /// The window must belong to the current thread.<para/>
-            /// If <paramref name="window"/> is <see cref="IntPtr.Zero"/>,
-            /// <see cref="PeekMessage(out Msg, IntPtr, uint, uint, PeekMessageActions)"/> retrieves messages for any
-            /// window that belongs to the current thread, and any messages on the current thread's message queue whose
-            /// <paramref name="window"/> value is <see cref="IntPtr.Zero"/> (see the <see cref="Msg"/> structure).
-            /// Therefore if <paramref name="window"/> is <see cref="IntPtr.Zero"/>, both window messages
-            /// and thread messages are processed.<para/>
-            /// If <paramref name="window"/> is -1,
-            /// <see cref="PeekMessage(out Msg, IntPtr, uint, uint, PeekMessageActions)"/> retrieves only messages on the
-            /// current thread's message queue whose <paramref name="window"/> value is <see cref="IntPtr.Zero"/>,
-            /// that is, thread messages as posted by <see cref="PostMessage(IntPtr, WindowMessage, IntPtr, IntPtr)"/>
-            /// (when the window parameter is <see cref="IntPtr.Zero"/>) or PostThreadMessage.
-            /// </param>
-            /// <param name="messageFilterMin">
-            /// The value of the first message in the range of messages to be examined.
-            /// Use <see cref="WindowMessage.KeyFirst"/> to specify the first keyboard message or
-            /// <see cref="WindowMessage.MouseFirst"/> to specify the first mouse message.<para/>
-            /// If <paramref name="messageFilterMin"/> and <paramref name="messageFilterMax"/> are both zero,
-            /// <see cref="PeekMessage(out Msg, IntPtr, uint, uint, PeekMessageActions)"/> returns all available messages
-            /// (that is, no range filtering is performed).
-            /// </param>
-            /// <param name="messageFilterMax">
-            /// The value of the last message in the range of messages to be examined. Use
-            /// <see cref="WindowMessage.KeyLast"/> to specify the last keyboard message or
-            /// <see cref="WindowMessage.MouseLast"/> to specify the last mouse message.<para/>
-            /// If <paramref name="messageFilterMin"/> and <paramref name="messageFilterMax"/> are both zero,
-            /// <see cref="PeekMessage(out Msg, IntPtr, uint, uint, PeekMessageActions)"/> returns all available messages
-            /// (that is, no range filtering is performed).
-            /// </param>
-            /// <param name="messageActions">Specifies how messages are to be handled.</param>
-            /// <returns>
-            /// If a message is available, the return value is true.<para/>
-            /// If no messages are available, the return value is false.
-            /// </returns>
-            [SuppressUnmanagedCodeSecurity]
-            [DllImport(Library)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool PeekMessage
-            (
-                [Out] out Msg msg,
-                [In] [Optional] IntPtr window,
-                [In] uint messageFilterMin,
-                [In] uint messageFilterMax,
-                [In] PeekMessageActions messageActions
-            );
-
-            /// <summary>
-            /// Retrieves a message from the calling thread's message queue. The function dispatches
-            /// incoming sent messages until a posted message is available for retrieval.<para/>
-            /// Unlike <see cref="GetMessage(out Msg, IntPtr, uint, uint)"/>, the
-            /// <see cref="PeekMessage(out Msg, IntPtr, uint, uint, PeekMessageActions)"/> function does not wait
-            /// for a message to be posted before returning.
-            /// </summary>
-            /// <param name="msg">
-            /// An <see cref="Msg"/> structure that receives message information from the thread's message queue.
-            /// </param>
-            /// <param name="window">
-            /// A handle to the window whose messages are to be retrieved.
-            /// The window must belong to the current thread.<para/>
-            /// If <paramref name="window"/> is <see cref="IntPtr.Zero"/>,
-            /// <see cref="PeekMessage(out Msg, IntPtr, uint, uint, PeekMessageActions)"/> retrieves messages for any
-            /// window that belongs to the current thread, and any messages on the current thread's message queue whose
-            /// <paramref name="window"/> value is <see cref="IntPtr.Zero"/> (see the <see cref="Msg"/> structure).
-            /// Therefore if <paramref name="window"/> is <see cref="IntPtr.Zero"/>, both window messages
-            /// and thread messages are processed.<para/>
-            /// If <paramref name="window"/> is -1,
-            /// <see cref="PeekMessage(out Msg, IntPtr, uint, uint, PeekMessageActions)"/> retrieves only messages on the
-            /// current thread's message queue whose <paramref name="window"/> value is <see cref="IntPtr.Zero"/>,
-            /// that is, thread messages as posted by <see cref="PostMessage(IntPtr, WindowMessage, IntPtr, IntPtr)"/>
-            /// (when the window parameter is <see cref="IntPtr.Zero"/>) or PostThreadMessage.
-            /// </param>
-            /// <param name="messageFilterMin">
-            /// The value of the first message in the range of messages to be examined.
-            /// Use <see cref="WindowMessage.KeyFirst"/> to specify the first keyboard message or
-            /// <see cref="WindowMessage.MouseFirst"/> to specify the first mouse message.<para/>
-            /// Use <see cref="WindowMessage.Input"/> here and in <paramref name="messageFilterMax"/> to specify only
-            /// the <see cref="WindowMessage.Input"/> messages.<para/>
-            /// If <paramref name="messageFilterMin"/> and <paramref name="messageFilterMax"/> are both zero,
-            /// <see cref="PeekMessage(out Msg, IntPtr, uint, uint, PeekMessageActions)"/> returns all available messages
-            /// (that is, no range filtering is performed).
-            /// </param>
-            /// <param name="messageFilterMax">
-            /// The value of the last message in the range of messages to be examined. Use
-            /// <see cref="WindowMessage.KeyLast"/> to specify the last keyboard message or
-            /// <see cref="WindowMessage.MouseLast"/> to specify the last mouse message.<para/>
-            /// Use <see cref="WindowMessage.Input"/> here and in <paramref name="messageFilterMin"/> to specify only
-            /// the <see cref="WindowMessage.Input"/> messages.<para/>
-            /// If <paramref name="messageFilterMin"/> and <paramref name="messageFilterMax"/> are both zero,
-            /// <see cref="PeekMessage(out Msg, IntPtr, uint, uint, PeekMessageActions)"/> returns all available messages
-            /// (that is, no range filtering is performed).
-            /// </param>
-            /// <returns>
-            /// If the function retrieves a message other than <see cref="WindowMessage.Quit"/>,
-            /// the return value is true.<para/>
-            /// If the function retrieves the <see cref="WindowMessage.Quit"/> message, the return value is false.
-            /// <para/>
-            /// If there is an error, the return value is -1. For example, the function fails if
-            /// <paramref name="window"/> is an invalid window handle or <paramref name="msg"/> is an invalid pointer.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [SuppressUnmanagedCodeSecurity]
-            [DllImport(Library, SetLastError = true)]
-            public static extern int GetMessage
-            (
-                [Out] out Msg msg,
-                [In] [Optional] IntPtr window,
-                [In] uint messageFilterMin,
-                [In] uint messageFilterMax
-            );
-
-            /// <summary>
-            /// Retrieves the message time for the last message retrieved by the
-            /// <see cref="GetMessage(out Msg, IntPtr, uint, uint)"/> function. The time is a long integer that
-            /// specifies the elapsed time, in milliseconds, from the time the system was started to the time the
-            /// message was created (that is, placed in the thread's message queue).
-            /// </summary>
-            /// <returns>The return value specifies the message time.</returns>
-            [DllImport(Library)]
-            public static extern int GetMessageTime();
-
-            /// <summary>
-            /// Sends the specified message to a window or windows. The
-            /// <see cref="SendMessage(IntPtr, WindowMessage, IntPtr, IntPtr)"/> function calls the window procedure for the
-            /// specified window and does not return until the window procedure has processed the message.
-            /// </summary>
-            /// <param name="window">
-            /// A handle to the window whose window procedure will receive the message.<para/>
-            /// Message sending is subject to UIPI. The thread of a process can send messages only to message queues
-            /// of threads in processes of lesser or equal integrity level.
-            /// </param>
-            /// <param name="msg">The message to be sent.</param>
-            /// <param name="wparam">Additional message-specific information.</param>
-            /// <param name="lparam">Additional message-specific information.</param>
-            /// <returns>
-            /// The return value specifies the result of the message processing; it depends on the message sent.
-            /// </returns>
-            [DllImport(Library, SetLastError = true)]
-            public static extern IntPtr SendMessage
-            (
-                [In] IntPtr window,
-                [In] WindowMessage msg,
-                [In] IntPtr wparam,
-                [In] IntPtr lparam
-            );
-
-            /// <summary>
-            /// Sends a message to all top-level windows in the system, including disabled or invisible unowned
-            /// windows, overlapped windows, and pop-up windows; but not to child windows.
-            /// </summary>
-            /// <param name="msg">The message to be sent.</param>
-            /// <param name="wparam">Additional message-specific information.</param>
-            /// <param name="lparam">Additional message-specific information.</param>
-            /// <returns>
-            /// The return value specifies the result of the message processing; it depends on the message sent.
-            /// </returns>
-            /// <remarks>
-            /// This method uses the constant <see cref="BroadcastHandle"/> for this special behavior.
-            /// </remarks>
-            public static IntPtr SendMessageAsBroadcast(WindowMessage msg, IntPtr wparam, IntPtr lparam)
-            {
-                return SendMessage(BroadcastHandle, msg, wparam, lparam);
-            }
-
-            /// <summary>
-            /// Places (posts) a message in the message queue associated with the thread that created the specified
-            /// window and returns without waiting for the thread to process the message.
-            /// </summary>
-            /// <param name="window">
-            /// A handle to the window whose window procedure is to receive the message.<para/>
-            /// Starting with Windows Vista, message posting is subject to UIPI. The thread of a process can post
-            /// messages only to message queues of threads in processes of lesser or equal integrity level.<para/>
-            /// If <paramref name="window"/> is <see cref="IntPtr.Zero"/>, this function will behave like a call to
-            /// PostThreadMessage with the dwThreadId parameter set to the identifier of the current thread.
-            /// </param>
-            /// <param name="msg">The message to be posted.</param>
-            /// <param name="wparam">Additional message-specific information.</param>
-            /// <param name="lparam">Additional message-specific information.</param>
-            /// <returns>
-            /// If the function succeeds, the return value is true.<para/>
-            /// If the function fails, the return value is false.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [SuppressUnmanagedCodeSecurity]
-            [DllImport(Library, SetLastError = true)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool PostMessage
-            (
-                [In] [Optional] IntPtr window,
-                [In] WindowMessage msg,
-                [In] IntPtr wparam,
-                [In] IntPtr lparam
-            );
-
-            /// <summary>
-            /// Places (posts) a message to all top-level windows in the system, including disabled or invisible
-            /// unowned windows, overlapped windows, and pop-up windows. The message is not posted to child windows.
-            /// </summary>
-            /// <param name="msg">The message to be posted.</param>
-            /// <param name="wparam">Additional message-specific information.</param>
-            /// <param name="lparam">Additional message-specific information.</param>
-            /// <returns>
-            /// If the function succeeds, the return value is true.<para/>
-            /// If the function fails, the return value is false.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            /// <remarks>
-            /// This method uses the constant <see cref="BroadcastHandle"/> for this special behavior.
-            /// </remarks>
-            public static bool PostMessageAsBroadcast(WindowMessage msg, IntPtr wparam, IntPtr lparam)
-            {
-                return PostMessage(BroadcastHandle, msg, wparam, lparam);
-            }
-
-            /// <summary>
-            /// Indicates to the system that a thread has made a request to terminate (quit).
-            /// It is typically used in response to a <see cref="WindowMessage.Destroy"/> message.
-            /// </summary>
-            /// <param name="exitCode">
-            /// The application exit code. This value is used as the
-            /// wParam parameter of the <see cref="WindowMessage.Quit"/> message.
-            /// </param>
-            [DllImport(Library)]
-            public static extern void PostQuitMessage([In] int exitCode);
-
-            /// <summary>
-            /// Dispatches a message to a window procedure. It is typically used to
-            /// dispatch a message retrieved by the <see cref="GetMessage(out Msg, IntPtr, uint, uint)"/> function.
-            /// </summary>
-            /// <param name="msg">A structure that contains the message.</param>
-            /// <returns>
-            /// The return value specifies the value returned by the window procedure.
-            /// Although its meaning depends on the message being dispatched, the return value generally is ignored.
-            /// </returns>
-            [SuppressUnmanagedCodeSecurity]
-            [DllImport(Library)]
-            public static extern IntPtr DispatchMessage([In] ref Msg msg);
-
-            /// <summary>
-            /// Translates virtual-key messages into character messages. The character messages are posted to the
-            /// calling thread's message queue, to be read the next time the thread calls the
-            /// <see cref="GetMessage(out Msg, IntPtr, uint, uint)"/> or
-            /// <see cref="PeekMessage(out Msg, IntPtr, uint, uint, PeekMessageActions)"/> function.
-            /// </summary>
-            /// <param name="msg">
-            /// An <see cref="Msg"/> structure that contains message information retrieved from the
-            /// calling thread's message queue by using the <see cref="GetMessage(out Msg, IntPtr, uint, uint)"/> or
-            /// <see cref="PeekMessage(out Msg, IntPtr, uint, uint, PeekMessageActions)"/> function.
-            /// </param>
-            /// <returns>
-            /// If the message is translated (that is, a character message is posted to the thread's message queue),
-            /// the return value is true.<para/>
-            /// If the message is <see cref="WindowMessage.KeyDown"/>, <see cref="WindowMessage.KeyUp"/>,
-            /// <see cref="WindowMessage.SystemKeyDown"/>, or <see cref="WindowMessage.SystemKeyUp"/>,
-            /// the return value is true, regardless of the translation.<para/>
-            /// If the message is not translated (that is, a character message is not posted to the
-            /// thread's message queue), the return value is false.
-            /// </returns>
-            [SuppressUnmanagedCodeSecurity]
-            [DllImport(Library)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool TranslateMessage([In] ref Msg msg);
-
-            /// <summary>
-            /// Retrieves the type of messages found in the calling thread's message queue.
-            /// </summary>
-            /// <param name="flags">The types of messages for which to check.</param>
-            /// <returns>
-            /// The high-order word of the return value indicates the types of messages currently in the queue.
-            /// The low-order word indicates the types of messages that have been added to the queue and that are
-            /// still in the queue since the last call to the <see cref="GetQueueStatus(QueueMessageTypes)"/>,
-            /// <see cref="GetMessage(out Msg, IntPtr, uint, uint)"/>, or
-            /// <see cref="PeekMessage(out Msg, IntPtr, uint, uint, PeekMessageActions)"/> function.
-            /// </returns>
-            [SuppressUnmanagedCodeSecurity]
-            [DllImport(Library)]
-            public static extern uint GetQueueStatus([In] QueueMessageTypes flags);
-        }
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Monitor.cs b/Crow/src/backends/win32/User32/Monitor.cs
deleted file mode 100644 (file)
index d7cc6cc..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-
-namespace OpenToolkit.NT.Native
-{
-    public static partial class User32
-    {
-        /// <summary>
-        /// Provides a subset of functions from the Windows API,
-        /// specifically those imported from user32.dll that deal with monitors.
-        /// </summary>
-        public static class Monitor
-        {
-            /// <summary>
-            /// Retrieves information about a display monitor.
-            /// </summary>
-            /// <param name="monitor">A handle to the display monitor of interest.</param>
-            /// <param name="monitorInfo">
-            /// A pointer to a <see cref="MonitorInfo"/> or MONITORINFOEX structure
-            /// that receives information about the specified display monitor.<para/>
-            /// You must set the Size member of the structure to the respective structure's size in bytes
-            /// before calling the <see cref="GetMonitorInfo(IntPtr, out MonitorInfo)"/> function. Doing so
-            /// lets the function determine the type of structure you are passing to it.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds, the return value is nonzero.<para/>
-            /// If the function fails, the return value is zero.
-            /// </returns>
-            [DllImport(Library)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool GetMonitorInfo([In] IntPtr monitor, [Out] out MonitorInfo monitorInfo);
-
-            /// <summary>
-            /// Retrieves a handle to the display monitor that contains a specified point.
-            /// </summary>
-            /// <param name="pt">
-            /// A <see cref="Point"/> structure that specifies the point of interest in virtual-screen coordinates.
-            /// </param>
-            /// <param name="defaultTo">
-            /// Determines the function's return value if the point is not contained within any display monitor.
-            /// </param>
-            /// <returns>
-            /// If the point is contained by a display monitor,
-            /// the return value is an <see cref="IntPtr"/> handle to that display monitor.<para/>
-            /// If the point is not contained by a display monitor,
-            /// the return value depends on the value of <paramref name="defaultTo"/>.
-            /// </returns>
-            [DllImport(Library)]
-            public static extern IntPtr MonitorFromPoint([In] Point pt, [In] MonitorFromDefaultValue defaultTo);
-
-            /// <summary>
-            /// Retrieves a handle to the display monitor that has the largest area of intersection
-            /// with the bounding rectangle of a specified window.
-            /// </summary>
-            /// <param name="window">A handle to the window of interest.</param>
-            /// <param name="defaultTo">
-            /// Determines the function's return value if the window does not intersect any display monitor.
-            /// </param>
-            /// <returns>
-            /// If the window intersects one or more display monitor rectangles, the return value is an
-            /// <see cref="IntPtr"/> handle to the display monitor that
-            /// has the largest area of intersection with the window.<para/>
-            /// If the window does not intersect a display monitor,
-            /// the return value depends on the value of <paramref name="defaultTo"/>.
-            /// </returns>
-            [DllImport(Library)]
-            public static extern IntPtr MonitorFromWindow([In] IntPtr window, [In] MonitorFromDefaultValue defaultTo);
-        }
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Mouse.cs b/Crow/src/backends/win32/User32/Mouse.cs
deleted file mode 100644 (file)
index b61eaa2..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-
-namespace OpenToolkit.NT.Native
-{
-    public static partial class User32
-    {
-        /// <summary>
-        /// Provides a subset of functions from the Windows API,
-        /// specifically those imported from user32.dll that deal with the mouse.
-        /// </summary>
-        public static class Mouse
-        {
-            /// <summary>
-            /// Retrieves a handle to the window (if any) that has captured the mouse. Only one window at a time can
-            /// capture the mouse; this window receives mouse input whether or not the cursor is within its borders.
-            /// </summary>
-            /// <returns>
-            /// The return value is a handle to the capture window associated with the current thread.<para/>
-            /// If no window in the thread has captured the mouse, the return value is <see cref="IntPtr.Zero"/>.
-            /// </returns>
-            [DllImport(Library)]
-            public static extern IntPtr GetCapture();
-
-            /// <summary>
-            /// Sets the mouse capture to the specified window belonging to the current thread.
-            /// <see cref="SetCapture(IntPtr)"/> captures mouse input either when the mouse is over the capturing window,
-            /// or when the mouse button was pressed while the mouse was over the capturing window and the button is
-            /// still down. Only one window at a time can capture the mouse.<para/>
-            /// If the mouse cursor is over a window created by another thread,
-            /// the system will direct mouse input to the specified window only if a mouse button is down.
-            /// </summary>
-            /// <param name="window">
-            /// A handle to the window in the current thread that is to capture the mouse.
-            /// </param>
-            /// <returns>
-            /// The return value is a handle to the window that had previously captured the mouse.
-            /// If there is no such window, the return value is <see cref="IntPtr.Zero"/>.
-            /// </returns>
-            [DllImport(Library)]
-            public static extern IntPtr SetCapture(IntPtr window);
-
-            /// <summary>
-            /// Releases the mouse capture from a window in the current thread and restores normal mouse input
-            /// processing. A window that has captured the mouse receives all mouse input, regardless of the position
-            /// of the cursor, except when a mouse button is clicked while the cursor
-            /// hot spot is in the window of another thread.
-            /// </summary>
-            /// <returns>
-            /// If the function succeeds, the return value is true.<para/>
-            /// If the function fails, the return value is false.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport(Library, SetLastError = true)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool ReleaseCapture();
-
-            /// <summary>
-            /// Posts messages when the mouse pointer leaves a window or hovers
-            /// over a window for a specified amount of time.
-            /// </summary>
-            /// <param name="trackMouseEvent">
-            /// A pointer to a <see cref="Native.TrackMouseEvent"/> structure that contains tracking information.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds, the return value is true.<para/>
-            /// If the function fails, return value is false.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport(Library, SetLastError = true)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool TrackMouseEvent([In] [Out] ref TrackMouseEvent trackMouseEvent);
-
-            /// <summary>
-            /// Retrieves a history of up to 64 previous coordinates of the mouse or pen.
-            /// </summary>
-            /// <param name="size">The size, in bytes, of the <see cref="MouseMovePoint"/> structure.</param>
-            /// <param name="movePointIn">
-            /// A pointer to a <see cref="MouseMovePoint"/> structure containing valid mouse coordinates
-            /// (in screen coordinates). It may also contain a time stamp.
-            /// </param>
-            /// <param name="movePointOutBuffer">
-            /// A pointer to a buffer that will receive the points.
-            /// It should be at least <paramref name="size"/> * <paramref name="pointAmount"/> in size.
-            /// </param>
-            /// <param name="pointAmount">The number of points to be retrieved.</param>
-            /// <param name="resolution">The resolution desired.</param>
-            /// <returns>
-            /// If the function succeeds, the return value is the number of points in the buffer.<para/>
-            /// Otherwise, the function returns –1.
-            /// For extended error information, your application can call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport("user32", SetLastError = true)]
-            public static extern int GetMouseMovePointsEx
-            (
-                [In] uint size,
-                [In] ref MouseMovePoint movePointIn,
-                [Out] out MouseMovePoint[] movePointOutBuffer,
-                [In] int pointAmount,
-                [In] GetMouseMovePointsResolution resolution
-            );
-
-            /// <summary>
-            /// Retrieves a history of up to 64 previous coordinates of the mouse or pen.
-            /// </summary>
-            /// <param name="size">The size, in bytes, of the <see cref="MouseMovePoint"/> structure.</param>
-            /// <param name="movePointIn">
-            /// A pointer to a <see cref="MouseMovePoint"/> structure containing valid mouse coordinates
-            /// (in screen coordinates). It may also contain a time stamp.
-            /// </param>
-            /// <param name="movePointOutBuffer">
-            /// A pointer to a buffer that will receive the points.
-            /// It should be at least <paramref name="size"/> * <paramref name="pointAmount"/> in size.
-            /// </param>
-            /// <param name="pointAmount">The number of points to be retrieved.</param>
-            /// <param name="resolution">The resolution desired.</param>
-            /// <returns>
-            /// If the function succeeds, the return value is the number of points in the buffer.<para/>
-            /// Otherwise, the function returns –1.
-            /// For extended error information, your application can call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport("user32", SetLastError = true)]
-            public static unsafe extern int GetMouseMovePointsEx
-            (
-                [In] uint size,
-                [In] ref MouseMovePoint movePointIn,
-                [Out] MouseMovePoint* movePointOutBuffer,
-                [In] int pointAmount,
-                [In] GetMouseMovePointsResolution resolution
-            );
-        }
-    }
-}
diff --git a/Crow/src/backends/win32/User32/RawInput.cs b/Crow/src/backends/win32/User32/RawInput.cs
deleted file mode 100644 (file)
index 4864961..0000000
+++ /dev/null
@@ -1,423 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-using System.Security;
-
-namespace OpenToolkit.NT.Native
-{
-    public static partial class User32
-    {
-        /// <summary>
-        /// Provides a subset of functions from the Windows API,
-        /// specifically those imported from user32.dll that deal with raw input.
-        /// </summary>
-        public static class RawInput
-        {
-            /// <summary>
-            /// Calls the default raw input procedure to provide default processing for any raw input messages that
-            /// an application does not process. This function ensures that every message is processed.
-            /// <see cref="DefRawInputProc(Native.RawInput[], int, uint)"/> is called with the same parameters
-            /// received by the window procedure.
-            /// </summary>
-            /// <param name="rawInputArrayOut">An array of <see cref="Native.RawInput"/> structures.</param>
-            /// <param name="rawInputAmount">
-            /// The number of <see cref="Native.RawInput"/>
-            /// structures pointed to by <paramref name="rawInputArrayOut"/>.
-            /// </param>
-            /// <param name="headerSize">The size, in bytes, of the <see cref="RawInputHeader"/> structure.</param>
-            /// <returns>
-            /// If successful, the function returns <see cref="IntPtr.Zero"/>. Otherwise it returns an error value.
-            /// </returns>
-            [SuppressUnmanagedCodeSecurity]
-            [DllImport(Library)]
-            public static extern IntPtr DefRawInputProc
-            (
-                [In] Native.RawInput[] rawInputArrayOut,
-                [In] int rawInputAmount,
-                [In] uint headerSize
-            );
-
-            /// <summary>
-            /// Calls the default raw input procedure to provide default processing for any raw input messages that
-            /// an application does not process. This function ensures that every message is processed.
-            /// <see cref="DefRawInputProc(Native.RawInput[], int, uint)"/> is called with the same parameters
-            /// received by the window procedure.
-            /// </summary>
-            /// <param name="rawInputArrayOut">
-            /// A pointer to an array of <see cref="Native.RawInput"/> structures.
-            /// </param>
-            /// <param name="rawInputAmount">
-            /// The number of <see cref="Native.RawInput"/>
-            /// structures pointed to by <paramref name="rawInputArrayOut"/>.
-            /// </param>
-            /// <param name="headerSize">The size, in bytes, of the <see cref="RawInputHeader"/> structure.</param>
-            /// <returns>
-            /// If successful, the function returns <see cref="IntPtr.Zero"/>. Otherwise it returns an error value.
-            /// </returns>
-            [SuppressUnmanagedCodeSecurity]
-            [DllImport(Library)]
-            public static unsafe extern IntPtr DefRawInputProc
-            (
-                [In] Native.RawInput* rawInputArrayOut,
-                [In] int rawInputAmount,
-                [In] uint headerSize
-            );
-
-            /// <summary>
-            /// Registers the devices that supplies the raw input data.
-            /// </summary>
-            /// <param name="rawInputDevices">
-            /// An array of <see cref="RawInputDevice"/> structures that
-            /// represent the devices that supply the raw input.
-            /// </param>
-            /// <param name="deviceAmount">
-            /// The number of <see cref="RawInputDevice"/> structures pointed to by <paramref name="rawInputDevices"/>.
-            /// </param>
-            /// <param name="size">The size, in bytes, of a <see cref="RawInputDevice"/> structure.</param>
-            /// <returns>
-            /// True if the function succeeds; otherwise, false.<para/>
-            /// If the function fails, call <see cref="Marshal.GetLastWin32Error"/> for more information.
-            /// </returns>
-            //[DllImport(Library, SetLastError = true)]
-            //[return: MarshalAs(UnmanagedType.Bool)]
-            //public static extern bool RegisterRawInputDevices
-            //(
-            //    [In] RawInputDevice[] rawInputDevices,
-            //    [In] uint deviceAmount,
-            //    [In] uint size
-            //);
-
-            /// <summary>
-            /// Retrieves the information about the raw input devices for the current application.
-            /// </summary>
-            /// <param name="rawInputDevicesOut">
-            /// An array of <see cref="RawInputDevice"/> structures for the application.
-            /// </param>
-            /// <param name="deviceAmount">
-            /// The number of <see cref="RawInputDevice"/> structures in <paramref name="rawInputDevicesOut"/>.
-            /// </param>
-            /// <param name="size">The size, in bytes, of a <see cref="RawInputDevice"/> structure.</param>
-            /// <returns>
-            /// If successful, the function returns a non-negative number that is
-            /// the number of <see cref="RawInputDevice"/> structures written to the buffer.<para/>
-            /// If the <paramref name="rawInputDevicesOut"/> buffer is too small or null, the function sets the last
-            /// error as ERROR_INSUFFICIENT_BUFFER, returns -1, and sets <paramref name="deviceAmount"/> to the
-            /// required number of devices. If the function fails for any other reason, it returns -1.<para/>
-            /// For more details, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            //[DllImport(Library, SetLastError = true)]
-            //public static extern uint GetRegisteredRawInputDevices
-            //(
-            //    [Out] [Optional] RawInputDevice[] rawInputDevicesOut,
-            //    [In] [Out] ref uint deviceAmount,
-            //    [In] uint size
-            //);
-
-            /// <summary>
-            /// Performs a buffered read of the raw input data.
-            /// </summary>
-            /// <param name="data">
-            /// A buffer of <see cref="RawInput"/> structures that contain the raw input data.
-            /// If null, the minimum required buffer, in bytes, is returned in <paramref name="rawInputSize"/>.
-            /// </param>
-            /// <param name="rawInputSize">The size, in bytes, of a <see cref="RawInput"/> structure.</param>
-            /// <param name="headerSize">The size, in bytes, of the <see cref="RawInputHeader"/> structure.</param>
-            /// <returns>
-            /// If <paramref name="data"/> is null and the function is successful, the return value is zero.
-            /// If <paramref name="data"/> is not null and the function is successful, the return value is the
-            /// number of <see cref="RawInput"/> structures written to <paramref name="data"/>.<para/>
-            /// If an error occurs, the return value is -1.
-            /// Call <see cref="Marshal.GetLastWin32Error"/> for the error code.
-            /// </returns>
-            [SuppressUnmanagedCodeSecurity]
-            [DllImport(Library, SetLastError = true)]
-            public static extern uint GetRawInputBuffer
-            (
-                [Out] [Optional] Native.RawInput[] data,
-                [In] [Out] ref uint rawInputSize,
-                [In] uint headerSize
-            );
-
-            /// <summary>
-            /// Performs a buffered read of the raw input data.
-            /// </summary>
-            /// <param name="data">
-            /// A pointer to a buffer of <see cref="RawInput"/> structures that contain the raw input data.
-            /// If null, the minimum required buffer, in bytes, is returned in <paramref name="rawInputSize"/>.
-            /// </param>
-            /// <param name="rawInputSize">The size, in bytes, of a <see cref="RawInput"/> structure.</param>
-            /// <param name="headerSize">The size, in bytes, of the <see cref="RawInputHeader"/> structure.</param>
-            /// <returns>
-            /// If <paramref name="data"/> is null and the function is successful, the return value is zero.
-            /// If <paramref name="data"/> is not null and the function is successful, the return value is the
-            /// number of <see cref="RawInput"/> structures written to <paramref name="data"/>.<para/>
-            /// If an error occurs, the return value is (uint)-1.
-            /// Call <see cref="Marshal.GetLastWin32Error"/> for the error code.
-            /// </returns>
-            [SuppressUnmanagedCodeSecurity]
-            [DllImport(Library, SetLastError = true)]
-            public static unsafe extern uint GetRawInputBuffer
-            (
-                [Out] [Optional] Native.RawInput* data,
-                [In] [Out] ref uint rawInputSize,
-                [In] uint headerSize
-            );
-
-            /// <summary>
-            /// Enumerates the raw input devices attached to the system.
-            /// </summary>
-            /// <param name="deviceListArrayOut">
-            /// An array of <see cref="RawInputDeviceList"/> structures for the devices attached to the system.
-            /// If null, the number of devices are returned in <paramref name="deviceListAmount"/>.
-            /// </param>
-            /// <param name="deviceListAmount">
-            /// If <paramref name="deviceListArrayOut"/> is null, the function populates this variable with
-            /// the number of devices attached to the system; otherwise, this variable specifies the number of
-            /// <see cref="RawInputDeviceList"/> structures that can be contained in the buffer to which
-            /// <paramref name="deviceListArrayOut"/> points. If this value is less than the number of devices
-            /// attached to the system, the function returns the actual number of devices in this variable
-            /// and fails with ERROR_INSUFFICIENT_BUFFER.
-            /// </param>
-            /// <param name="deviceListSize">
-            /// The size of a <see cref="RawInputDeviceList"/> structure, in bytes.
-            /// </param>
-            /// <returns>
-            /// If the function is successful, the return value is the number of devices stored in the buffer
-            /// pointed to by <paramref name="deviceListArrayOut"/>.<para/>
-            /// On any other error, the function returns (uint)-1 and
-            /// <see cref="Marshal.GetLastWin32Error"/> returns the error indication.
-            /// </returns>
-            [DllImport(Library, SetLastError = true)]
-            public static extern uint GetRawInputDeviceList
-            (
-                [Out] [Optional] RawInputDeviceList[] deviceListArrayOut,
-                [In] [Out] ref uint deviceListAmount,
-                [In] uint deviceListSize
-            );
-
-            /// <summary>
-            /// Enumerates the raw input devices attached to the system.
-            /// </summary>
-            /// <param name="deviceListArrayOut">
-            /// A pointer to an array of <see cref="RawInputDeviceList"/> structures for the devices attached to the
-            /// system. If null, the number of devices are returned in <paramref name="deviceListAmount"/>.
-            /// </param>
-            /// <param name="deviceListAmount">
-            /// If <paramref name="deviceListArrayOut"/> is null, the function populates this variable with
-            /// the number of devices attached to the system; otherwise, this variable specifies the number of
-            /// <see cref="RawInputDeviceList"/> structures that can be contained in the buffer to which
-            /// <paramref name="deviceListArrayOut"/> points. If this value is less than the number of devices
-            /// attached to the system, the function returns the actual number of devices in this variable
-            /// and fails with ERROR_INSUFFICIENT_BUFFER.
-            /// </param>
-            /// <param name="deviceListSize">
-            /// The size of a <see cref="RawInputDeviceList"/> structure, in bytes.
-            /// </param>
-            /// <returns>
-            /// If the function is successful, the return value is the number of devices stored in the buffer
-            /// pointed to by <paramref name="deviceListArrayOut"/>.<para/>
-            /// On any other error, the function returns (uint)-1 and
-            /// <see cref="Marshal.GetLastWin32Error"/> returns the error indication.
-            /// </returns>
-            [DllImport(Library, SetLastError = true)]
-            public static unsafe extern uint GetRawInputDeviceList
-            (
-                [Out] [Optional] RawInputDeviceList* deviceListArrayOut,
-                [In] [Out] ref uint deviceListAmount,
-                [In] uint deviceListSize
-            );
-
-            /// <summary>
-            /// Retrieves information about the raw input device.
-            /// </summary>
-            /// <param name="device">
-            /// A handle to the raw input device. This comes from the <see cref="RawInputHeader.Device"/> or
-            /// from <see cref="GetRawInputDeviceList(RawInputDeviceList[], ref uint, uint)"/>.
-            /// </param>
-            /// <param name="command">Specifies what data will be returned in <paramref name="data"/>.</param>
-            /// <param name="data">
-            /// A buffer that contains the information specified by <paramref name="command"/>.
-            /// If <paramref name="command"/> is <see cref="GetRawInputDeviceInfoEnum.DeviceInfo"/>, set the
-            /// <see cref="RawInputDeviceInfo.Size"/> to <see cref="RawInputDeviceInfo.SizeInBytes"/> before calling
-            /// <see cref="GetRawInputDeviceInfo(IntPtr, GetRawInputDeviceInfoEnum, IntPtr, ref uint)"/>.
-            /// </param>
-            /// <param name="dataSize">The size, in bytes, of the data in <paramref name="data"/>.</param>
-            /// <returns>
-            /// If successful, this function returns a non-negative number indicating the number
-            /// of bytes copied to <paramref name="data"/>.<para/>
-            /// If pData is not large enough for the data, the function returns -1. If <paramref name="data"/> is
-            /// <see cref="IntPtr.Zero"/>, the function returns a value of zero. In both of these cases,
-            /// <paramref name="dataSize"/> is set to the minimum size required for the <paramref name="data"/> buffer.
-            /// <para/>
-            /// Call <see cref="Marshal.GetLastWin32Error"/> to identify any other errors.
-            /// </returns>
-            [SuppressUnmanagedCodeSecurity]
-            [DllImport(Library, SetLastError = true)]
-            public static extern uint GetRawInputDeviceInfo
-            (
-                [In] [Optional] IntPtr device,
-                [In] GetRawInputDeviceInfoEnum command,
-                [In] [Out] [Optional] byte[] data,
-                [In] [Out] ref uint dataSize
-            );
-
-            /// <summary>
-            /// Retrieves information about the raw input device.
-            /// </summary>
-            /// <param name="device">
-            /// A handle to the raw input device. This comes from the <see cref="RawInputHeader.Device"/> or
-            /// from <see cref="GetRawInputDeviceList(RawInputDeviceList[], ref uint, uint)"/>.
-            /// </param>
-            /// <param name="command">Specifies what data will be returned in <paramref name="data"/>.</param>
-            /// <param name="data">
-            /// A pointer to a buffer that contains the information specified by <paramref name="command"/>.
-            /// If <paramref name="command"/> is <see cref="GetRawInputDeviceInfoEnum.DeviceInfo"/>, set the
-            /// <see cref="RawInputDeviceInfo.Size"/> to <see cref="RawInputDeviceInfo.SizeInBytes"/> before calling
-            /// <see cref="GetRawInputDeviceInfo(IntPtr, GetRawInputDeviceInfoEnum, IntPtr, ref uint)"/>.
-            /// </param>
-            /// <param name="dataSize">The size, in bytes, of the data in <paramref name="data"/>.</param>
-            /// <returns>
-            /// If successful, this function returns a non-negative number indicating the number
-            /// of bytes copied to <paramref name="data"/>.<para/>
-            /// If pData is not large enough for the data, the function returns -1. If <paramref name="data"/> is
-            /// <see cref="IntPtr.Zero"/>, the function returns a value of zero. In both of these cases,
-            /// <paramref name="dataSize"/> is set to the minimum size required for the <paramref name="data"/> buffer.
-            /// <para/>
-            /// Call <see cref="Marshal.GetLastWin32Error"/> to identify any other errors.
-            /// </returns>
-            [SuppressUnmanagedCodeSecurity]
-            [DllImport(Library, SetLastError = true)]
-            public static unsafe extern uint GetRawInputDeviceInfo
-            (
-                [In] [Optional] IntPtr device,
-                [In] GetRawInputDeviceInfoEnum command,
-                [In] [Out] [Optional] IntPtr data,
-                [In] [Out] ref uint dataSize
-            );
-
-            /// <summary>
-            /// Retrieves information about the raw input device.
-            /// </summary>
-            /// <param name="device">
-            /// A handle to the raw input device. This comes from <see cref="RawInputHeader.Device"/> or from
-            /// <see cref="GetRawInputDeviceList(RawInputDeviceList[], ref uint, uint)"/>.
-            /// </param>
-            /// <param name="command">Specifies what data will be returned in <paramref name="data"/>.</param>
-            /// <param name="data">
-            /// A pointer to a buffer that contains the information specified by <paramref name="command"/>. If
-            /// <paramref name="command"/> is <see cref="GetRawInputDeviceInfoEnum.DeviceInfo"/>, set the
-            /// <see cref="RawInputDeviceInfo.Size"/> to <see cref="RawInputDeviceInfo.SizeInBytes"/>
-            /// before calling this.
-            /// </param>
-            /// <param name="size">The size, in bytes, of the data in <paramref name="data"/>.</param>
-            /// <returns>
-            /// If successful, this function returns a non-negative number
-            /// indicating the number of bytes copied to <paramref name="data"/>.<para/>
-            /// If <paramref name="data"/> is not large enough for the data, the function returns -1. If
-            /// <paramref name="data"/> is null, the function returns a value of zero. In both of these cases,
-            /// <paramref name="size"/> is set to the minimum size required for the <paramref name="data"/> buffer.
-            /// <para/>
-            /// Call <see cref="Marshal.GetLastWin32Error"/> to identify any other errors.
-            /// </returns>
-            [SuppressUnmanagedCodeSecurity]
-            [DllImport(Library, SetLastError = true)]
-            public static extern uint GetRawInputDeviceInfo
-            (
-                [In] [Optional] IntPtr device,
-                [In] GetRawInputDeviceInfoEnum command,
-                [In] [Out] [Optional] ref RawInputDeviceInfo data,
-                [In] [Out] ref uint size
-            );
-
-            /// <summary>
-            /// Retrieves the raw input header from the specified device.
-            /// </summary>
-            /// <param name="rawInput">
-            /// A handle to the <see cref="Native.RawInput"/> structure. This comes from the lParam in
-            /// <see cref="WindowMessage.Input"/>.
-            /// </param>
-            /// <param name="header">The <see cref="RawInputHeader"/> structure to receive the raw data.</param>
-            /// <returns>
-            /// If the function is successful, the return value is the number of bytes copied into
-            /// <paramref name="header"/>.<para/>
-            /// If there is an error, the return value is (uint)-1 [== <see cref="uint.MaxValue"/>].
-            /// </returns>
-            public static unsafe uint GetRawInputData(IntPtr rawInput, out RawInputHeader header)
-            {
-                uint size = RawInputHeader.SizeInBytes;
-                fixed (RawInputHeader* headerPtr = &header)
-                {
-                    return GetRawInputData
-                    (
-                        rawInput,
-                        GetRawInputDataCommand.Header,
-                        (IntPtr)headerPtr,
-                        ref size,
-                        RawInputHeader.SizeInBytes
-                    );
-                }
-            }
-
-            /// <summary>
-            /// Retrieves raw input data from the specified device.
-            /// </summary>
-            /// <param name="rawInput">
-            /// A handle to the <see cref="Native.RawInput"/> structure. This comes from the lParam in
-            /// <see cref="WindowMessage.Input"/>.
-            /// </param>
-            /// <param name="data">The <see cref="Native.RawInput"/> structure to receive the raw data.</param>
-            /// <returns>
-            /// If the function is successful, the return value is the number of bytes copied into
-            /// <paramref name="data"/>.<para/>
-            /// If there is an error, the return value is (uint)-1 [== <see cref="uint.MaxValue"/>].
-            /// </returns>
-            public static unsafe uint GetRawInputData(IntPtr rawInput, out Native.RawInput data)
-            {
-                uint size = Native.RawInput.SizeInBytes;
-                fixed (Native.RawInput* dataPtr = &data)
-                {
-                    return GetRawInputData
-                    (
-                        rawInput,
-                        GetRawInputDataCommand.Input,
-                        (IntPtr)dataPtr,
-                        ref size,
-                        RawInputHeader.SizeInBytes
-                    );
-                }
-            }
-
-            /// <summary>
-            /// Retrieves the raw input from the specified device.<para/>
-            /// Consider using one of the other overloads for a better experience.
-            /// </summary>
-            /// <param name="rawInput">
-            /// A handle to the <see cref="Native.RawInput"/> structure. This comes from the lParam in
-            /// <see cref="WindowMessage.Input"/>.
-            /// </param>
-            /// <param name="command">The command flag.</param>
-            /// <param name="data">
-            /// A pointer to the data that comes from the <see cref="Native.RawInput"/> structure. This depends on the
-            /// value of <paramref name="command"/>. If <paramref name="data"/> is <see cref="IntPtr.Zero"/>,
-            /// the required size of the buffer is returned in <paramref name="size"/>.
-            /// </param>
-            /// <param name="size">The size, in bytes, of the data in <paramref name="data"/>.</param>
-            /// <param name="headerSize">The size, in bytes, of the <see cref="RawInputHeader"/> structure.</param>
-            /// <returns>
-            /// If <paramref name="data"/> is <see cref="IntPtr.Zero"/> and the function is successful, the return
-            /// value is 0. If <paramref name="data"/> is not <see cref="IntPtr.Zero"/> and the function is successful,
-            /// the return value is the number of bytes copied into <paramref name="data"/>.<para/>
-            /// If there is an error, the return value is (uint)-1 [== <see cref="uint.MaxValue"/>].
-            /// </returns>
-            [SuppressUnmanagedCodeSecurity]
-            [DllImport(Library, SetLastError = true)]
-            public static extern uint GetRawInputData
-            (
-                [In] IntPtr rawInput,
-                [In] GetRawInputDataCommand command,
-                [Out] [Optional] IntPtr data,
-                [In] [Out] ref uint size,
-                [In] uint headerSize
-            );
-        }
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Structs/BroadcastDeviceInterface.cs b/Crow/src/backends/win32/User32/Structs/BroadcastDeviceInterface.cs
deleted file mode 100644 (file)
index 874402b..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Contains information about a class of devices.
-    /// </summary>
-    public struct BroadcastDeviceInterface
-    {
-        /// <summary>
-        /// The size of this structure, in bytes. This is the size of the members plus the actual length of the
-        /// <see cref="Name"/> string (the null character is accounted for by the declaration of <see cref="Name"/>
-        /// as a one-character array).
-        /// </summary>
-        public uint Size;
-
-        /// <summary>
-        /// Official documentation states "Set to <see cref="DeviceBroadcastType.DeviceInterface"/>".<para/>
-        /// Only set to something else if you know what you're doing.
-        /// </summary>
-        public DeviceBroadcastType DeviceType;
-
-        /// <summary>
-        /// Reserved; do not use.
-        /// </summary>
-        public uint Reserved;
-
-        /// <summary>
-        /// The GUID for the interface device class.
-        /// </summary>
-        public Guid ClassGuid;
-
-        /// <summary>
-        /// Gets a string that specifies the name of the device.
-        /// </summary>
-        public unsafe string Name
-        {
-            get
-            {
-                fixed (char* namePtr = &_name)
-                {
-                    return Marshal.PtrToStringUni((IntPtr)namePtr);
-                }
-            }
-        }
-
-        /// <summary>
-        /// The first character of the <see cref="Name"/>.
-        /// </summary>
-        private char _name;
-
-        /// <summary>
-        /// The size of this structure in bytes.
-        /// </summary>
-        public static readonly uint SizeInBytes = (uint)Marshal.SizeOf<BroadcastDeviceInterface>();
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Structs/CreateStruct.cs b/Crow/src/backends/win32/User32/Structs/CreateStruct.cs
deleted file mode 100644 (file)
index d8cb565..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Defines the initialization parameters passed to the window procedure of an application. These members are
-    /// identical to the parameters of the
-    /// <see cref="User32.Window.CreateWindowEx(ExtendedWindowStyles, IntPtr, string,
-    /// WindowStyles, int, int, int, int, IntPtr, IntPtr, IntPtr, IntPtr)"/> function.
-    /// </summary>
-    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
-    public struct CreateStruct
-    {
-        /// <summary>
-        /// Contains additional data which may be used to create the window. If the window is being created as a
-        /// result of a call to the CreateWindow or
-        /// <see cref="User32.Window.CreateWindowEx(ExtendedWindowStyles, IntPtr, string,
-        /// WindowStyles, int, int, int, int, IntPtr, IntPtr, IntPtr, IntPtr)"/>
-        /// function, this member contains the value of the lpParam parameter specified in the function call.<para/>
-        /// If the window being created is a MDI client window, this member contains a pointer to a CLIENTCREATESTRUCT
-        /// structure. If the window being created is a MDI child window, this member contains a pointer to an
-        /// MDICREATESTRUCT structure.<para/>
-        /// If the window is being created from a dialog template, this member is the address of a <see cref="short"/>
-        /// value that specifies the size, in bytes, of the window creation data. The value is immediately followed
-        /// by the creation data.
-        /// </summary>
-        public IntPtr CreateParams;
-
-        /// <summary>
-        /// Handle to the module that owns the new window.
-        /// </summary>
-        public IntPtr Instance;
-
-        /// <summary>
-        /// Handle to the menu to be used by the new window.
-        /// </summary>
-        public IntPtr Menu;
-
-        /// <summary>
-        /// Handle to the parent window, if the window is a child window.
-        /// If the window is owned, this member identifies the owner window.
-        /// If the window is not a child or owned window, this member is null.
-        /// </summary>
-        public IntPtr Parent;
-
-        /// <summary>
-        /// Specifies the height of the new window, in pixels.
-        /// </summary>
-        public int Height;
-
-        /// <summary>
-        /// Specifies the width of the new window, in pixels.
-        /// </summary>
-        public int Width;
-
-        /// <summary>
-        /// Specifies the y-coordinate of the upper left corner of the new window.
-        /// If the new window is a child window, coordinates are relative to the parent window.
-        /// Otherwise, the coordinates are relative to the screen origin.
-        /// </summary>
-        public int Y;
-
-        /// <summary>
-        /// Specifies the x-coordinate of the upper left corner of the new window.
-        /// If the new window is a child window, coordinates are relative to the parent window.
-        /// Otherwise, the coordinates are relative to the screen origin.
-        /// </summary>
-        public int X;
-
-        /// <summary>
-        /// Specifies the style for the new window.
-        /// </summary>
-        public WindowStyles Style;
-
-        /// <summary>
-        /// Pointer to a null-terminated string that specifies the name of the new window.
-        /// </summary>
-        public string Name;
-
-        /// <summary>
-        /// Either a pointer to a null-terminated string or an atom that specifies the class name
-        /// of the new window.
-        /// </summary>
-        public IntPtr ClassName;
-
-        /// <summary>
-        /// The extended window style for the new window.
-        /// </summary>
-        public ExtendedWindowStyles ExtendedStyle;
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Structs/DeviceMode.cs b/Crow/src/backends/win32/User32/Structs/DeviceMode.cs
deleted file mode 100644 (file)
index 9f3c13d..0000000
+++ /dev/null
@@ -1,334 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Specifies characteristics of display and print devices.<para/>
-    /// Before accessing a field, check the <see cref="Fields"/> field to determine whether any given field is set.
-    /// </summary>
-    [StructLayout(LayoutKind.Explicit, CharSet = CharSet.Unicode)]
-    public struct DeviceMode
-    {
-        /// <summary>
-        /// Length of the <see cref="DeviceName"/> in characters.
-        /// </summary>
-        public const int DeviceNameLength = 32;
-
-        /// <summary>
-        /// Length of the <see cref="FormName"/> in characters.
-        /// </summary>
-        public const int FormNameLength = 32;
-
-        /// <summary>
-        /// Default value for <see cref="SpecVersion"/> and <see cref="DriverVersion"/> (see the documentation of those
-        /// fields for more information).
-        /// </summary>
-        public const ushort DefaultSpecVersion = 800;
-
-        /// <summary>
-        /// A zero-terminated character array that specifies the "friendly" name of the printer or display.
-        /// </summary>
-        [FieldOffset(0)]
-        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
-        public string DeviceName;
-
-        /// <summary>
-        /// The version number of the initialization data specification on which the structure is based.
-        /// The current version number is identified by <see cref="DefaultSpecVersion"/>.
-        /// </summary>
-        [FieldOffset(64)]
-        public ushort SpecVersion;
-
-        /// <summary>
-        /// For a printer, specifies the printer driver version number assigned by the printer driver developer.<para/>
-        /// Display drivers can set this member to <see cref="DefaultSpecVersion"/>.
-        /// </summary>
-        [FieldOffset(66)]
-        public ushort DriverVersion;
-
-        /// <summary>
-        /// Specifies the size in bytes of the public DEVMODEW structure, not including any private,
-        /// driver-specified members identified by the dmDriverExtra member.<para/>
-        /// Set this to <see cref="SizeInBytes"/>.
-        /// </summary>
-        [FieldOffset(68)]
-        public ushort Size;
-
-        /// <summary>
-        /// Specifies the number of bytes of private driver data that follow the public structure members.
-        /// If a device driver does not provide private members, this member should be set to zero.
-        /// </summary>
-        [FieldOffset(70)]
-        public ushort DriverExtra;
-
-        /// <summary>
-        /// Specifies bit flags identifying which of the following members are in use.
-        /// For example, the <see cref="DeviceModeFieldFlags.Orientation"/> flag is set when the
-        /// <see cref="PrinterDeviceOptions.Orientation"/> member contains valid data.
-        /// </summary>
-        [FieldOffset(72)]
-        public DeviceModeFieldFlags Fields;
-
-        /// <summary>
-        /// Provides printer-specific device mode options.
-        /// </summary>
-        [FieldOffset(76)]
-        public PrinterDeviceOptions PrinterOptions;
-
-        /// <summary>
-        /// Provides display-specific device mode options.
-        /// </summary>
-        [FieldOffset(76)]
-        public DisplayDeviceOptions DisplayOptions;
-
-        /// <summary>
-        /// For printers, specifies whether a color printer should print color or monochrome.
-        /// </summary>
-        [FieldOffset(92)]
-        public PrinterColor Color;
-
-        /// <summary>
-        /// For printers, specifies duplex (double-sided) printing for duplex-capable printers.
-        /// </summary>
-        [FieldOffset(94)]
-        public PrinterDuplex Duplex;
-
-        /// <summary>
-        /// For printers, specifies the y resolution of the printer, in DPI. If this member is used,
-        /// the <see cref="PrinterDeviceOptions.PrintQuality"/> member specifies the x resolution.
-        /// </summary>
-        [FieldOffset(96)]
-        public short YResolution;
-
-        /// <summary>
-        /// For printers, specifies how TrueType fonts should be printed.
-        /// </summary>
-        [FieldOffset(98)]
-        public PrinterTrueTypeOption TrueTypeOption;
-
-        /// <summary>
-        /// For printers, specifies whether multiple copies should be collated. 1 == true, 0 == false.
-        /// </summary>
-        [FieldOffset(100)]
-        public short Collate;
-
-        /// <summary>
-        /// Gets the name of the printer form to use; such as "Letter" or "Legal".
-        /// This must be a name that can be obtain by calling the Win32 EnumForms function.
-        /// </summary>
-        public unsafe string FormName
-        {
-            get
-            {
-                fixed (char* formNamePtr = &_formName)
-                {
-                    return Marshal.PtrToStringUni((IntPtr)formNamePtr);
-                }
-            }
-        }
-
-        /// <summary>
-        /// With the current struct layout (which is set in stone because of interoperability with the Windows API),
-        /// there is no way to put a `string` type at this position(string is a reference type -> there is a pointer
-        /// here, which is either 4 or 8 bytes depending on the platform). This means that a string can never be
-        /// properly aligned at position 102 (which, again, can't be changed). This is why the <see cref="FormName"/>
-        /// property exists.
-        /// </summary>
-        [FieldOffset(102)]
-        private char _formName;
-
-        /// <summary>
-        /// For displays, specifies the number of logical pixels per inch of a display device and should be equal
-        /// to the ulLogPixels member of the GDIINFO structure.
-        /// </summary>
-        [FieldOffset(166)]
-        public ushort LogPixels;
-
-        /// <summary>
-        /// For displays, specifies the color resolution, in bits per pixel, of a display device.
-        /// </summary>
-        [FieldOffset(168)]
-        public uint BitsPerPixel;
-
-        /// <summary>
-        /// For displays, specifies the width, in pixels, of the visible device surface.
-        /// </summary>
-        [FieldOffset(172)]
-        public uint WidthInPixels;
-
-        /// <summary>
-        /// For displays, specifies the height, in pixels, of the visible device surface.
-        /// </summary>
-        [FieldOffset(176)]
-        public uint HeightInPixels;
-
-        /// <summary>
-        /// For displays, specifies a display device's display mode.
-        /// </summary>
-        [FieldOffset(180)]
-        public DisplayFlags DisplayFlags;
-
-        /// <summary>
-        /// For printers, specifies whether the print system handles "N-up" printing
-        /// (playing multiple EMF logical pages onto a single physical page).
-        /// </summary>
-        [FieldOffset(180)]
-        public uint Nup;
-
-        /// <summary>
-        /// For displays, specifies the frequency, in hertz, of a display device in its current mode.
-        /// </summary>
-        [FieldOffset(184)]
-        public uint DisplayFrequency;
-
-        /// <summary>
-        /// For printers, specifies how Image Color Management (ICM) is handled. For a non-ICM application, this field
-        /// determines if ICM is enabled or disabled. For ICM applications, the system examines this field to determine
-        /// how to handle ICM support.<para/>
-        /// The value of this field can be one of the pre-defined <see cref="PrinterIcmMethod"/> values or a printer
-        /// driver-defined value greater than or equal to <see cref="PrinterIcmMethod.User"/>.
-        /// </summary>
-        [FieldOffset(188)]
-        public PrinterIcmMethod IcmMethod;
-
-        /// <summary>
-        /// For printers, specifies which color matching method, or intent, is used by default. This field is primarily
-        /// for non-ICM applications. ICM applications can establish intents by using the ICM functions.<para/>
-        /// The value of this field can be one of the pre-defined <see cref="PrinterIcmIntent"/> values or a printer
-        /// driver-defined value greater than or equal to <see cref="PrinterIcmIntent.User"/>.
-        /// </summary>
-        [FieldOffset(192)]
-        public PrinterIcmIntent IcmIntent;
-
-        /// <summary>
-        /// For printers, specifies the type of media being printed on.<para/>
-        /// The value of this field can be one of the pre-defined <see cref="PrinterMediaType"/> values or a printer
-        /// driver-defined value greater than or equal to <see cref="PrinterMediaType.User"/>.
-        /// </summary>
-        [FieldOffset(196)]
-        public PrinterMediaType MediaType;
-
-        /// <summary>
-        /// Specifies how dithering is to be done.<para/>
-        /// The value of this field can be one of the pre-defined <see cref="PrinterDitherType"/> values or a printer
-        /// driver-defined value greater than or equal to <see cref="PrinterDitherType.User"/>.
-        /// </summary>
-        [FieldOffset(200)]
-        public PrinterDitherType DitherType;
-
-        /// <summary>
-        /// Is reserved for system use and must be zero.
-        /// </summary>
-        [FieldOffset(204)]
-        public uint Reserved1;
-
-        /// <summary>
-        /// Is reserved for system use and must be zero.
-        /// </summary>
-        [FieldOffset(208)]
-        public uint Reserved2;
-
-        /// <summary>
-        /// Must be zero.
-        /// </summary>
-        [FieldOffset(212)]
-        public uint PanningWidth;
-
-        /// <summary>
-        /// Must be zero.
-        /// </summary>
-        [FieldOffset(216)]
-        public uint PanningHeight;
-
-        /// <summary>
-        /// The size of the structure in bytes.
-        /// </summary>
-        public static readonly ushort SizeInBytes = (ushort)Marshal.SizeOf<DeviceMode>();
-
-        /// <summary>
-        /// Contains printer-specific device options.
-        /// </summary>
-        public struct PrinterDeviceOptions
-        {
-            /// <summary>
-            /// For printers, specifies the paper orientation.
-            /// </summary>
-            public PrinterPaperOrientation Orientation;
-
-            /// <summary>
-            /// For printers, specifies the size of the paper to be printed on. This member must be zero if the length
-            /// and width of the paper are specified by the <see cref="PaperLength"/> and <see cref="PaperWidth"/>
-            /// members.
-            /// </summary>
-            public PrinterPaperSize PaperSize;
-
-            /// <summary>
-            /// For printers, specifies the length of the paper, in units of 1/10 of a millimeter.
-            /// This value overrides the length of the paper specified by the <see cref="PaperSize"/> member,
-            /// and is used if the paper is of a custom size, or if the device is a dot matrix printer,
-            /// which can print a page of arbitrary length.
-            /// </summary>
-            public short PaperLength;
-
-            /// <summary>
-            /// For printers, specifies the width of the paper, in units of 1/10 of a millimeter.
-            /// This value overrides the width of the paper specified by the <see cref="PaperSize"/> member.
-            /// This member must be used if <see cref="PaperLength"/> is used.
-            /// </summary>
-            public short PaperWidth;
-
-            /// <summary>
-            /// For printers, specifies the percentage by which the image is to be scaled for printing. The image's
-            /// page size is scaled to the physical page by a factor of <see cref="Scale"/>/100. For example,
-            /// a 17-inch by 22-inch image with a scale value of 100 requires 17x22-inch paper, while the same image
-            /// with a scale value of 50 should print as half-sized and fit on letter-sized paper.
-            /// </summary>
-            public short Scale;
-
-            /// <summary>
-            /// For printers, specifies the number of copies to be printed, if the device supports multiple copies.
-            /// </summary>
-            public short Copies;
-
-            /// <summary>
-            /// For printers, specifies the printer's default input bin. If the specified constant is
-            /// <see cref="PrinterDefaultSource.FormSource"/>, the input bin should be selected automatically.
-            /// </summary>
-            public PrinterDefaultSource DefaultSource;
-
-            /// <summary>
-            /// For printers, specifies the printer resolution. Either set this to one of the
-            /// <see cref="PrinterPrintQuality"/> values, or use a positive value specifying the number of DPI for the
-            /// x resolution, with the y resolution being specified by <see cref="YResolution"/>.
-            /// </summary>
-            public PrinterPrintQuality PrintQuality;
-        }
-
-        /// <summary>
-        /// Contains display-specific device options.
-        /// </summary>
-        public struct DisplayDeviceOptions
-        {
-            /// <summary>
-            /// For displays, specifies a <see cref="Point"/> structure containing the x- and y-coordinates of the
-            /// upper-left corner of the display, in desktop coordinates. This member is used to determine the
-            /// relative position of monitors in a multiple monitor environment.
-            /// </summary>
-            public Point Position;
-
-            /// <summary>
-            /// For displays, specifies the orientation at which images should be presented.
-            /// </summary>
-            public DisplayOrientation DisplayOrientation;
-
-            /// <summary>
-            /// For fixed-resolution displays, specifies how the device can present a lower-resolution mode on a
-            /// higher-resolution display. For example, if a display device's resolution is fixed at 1024 X 768,
-            /// and its mode is set to 640 x 480, the device can either display a 640 X 480 image within the 1024 X 768
-            /// screen space, or stretch the 640 X 480 image to fill the larger screen space.
-            /// </summary>
-            public DisplayFixedOutputType DisplayFixedOutput;
-        }
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Structs/DisplayDevice.cs b/Crow/src/backends/win32/User32/Structs/DisplayDevice.cs
deleted file mode 100644 (file)
index db46d3d..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-using System.Runtime.InteropServices;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Receives information about the display device specified by the iDevNum parameter of the
-    /// <see cref="User32.DeviceContext.EnumDisplayDevices(string, uint, out DisplayDevice, uint)"/> function.
-    /// </summary>
-    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
-    public struct DisplayDevice
-    {
-        /// <summary>
-        /// Size, in bytes, of the structure. This must be initialized prior to calling
-        /// <see cref="User32.DeviceContext.EnumDisplayDevices(string, uint, out DisplayDevice, uint)"/>.
-        /// </summary>
-        /// <seealso cref="SizeInBytes"/>
-        public uint Size;
-
-        /// <summary>
-        /// An array of characters identifying the device name.
-        /// This is either the adapter device or the monitor device.
-        /// </summary>
-        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
-        public string DeviceName;
-
-        /// <summary>
-        /// An array of characters containing the device context string.
-        /// This is either a description of the display adapter or of the display monitor.
-        /// </summary>
-        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
-        public string DeviceString;
-
-        /// <summary>
-        /// Device state flags. It can be any reasonable combination of <see cref="DisplayDeviceStateFlags"/>.
-        /// </summary>
-        public DisplayDeviceStateFlags StateFlags;
-
-        /// <summary>
-        /// Not used.
-        /// </summary>
-        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
-        public string DeviceID;
-
-        /// <summary>
-        /// Reserved.
-        /// </summary>
-        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
-        public string DeviceKey;
-
-        /// <summary>
-        /// The size of this structure in bytes.
-        /// </summary>
-        public static readonly uint SizeInBytes = (uint)Marshal.SizeOf<DisplayDevice>();
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Structs/ExtendedWindowClass.cs b/Crow/src/backends/win32/User32/Structs/ExtendedWindowClass.cs
deleted file mode 100644 (file)
index 3bf68a3..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Contains window class information. It is used with the
-    /// <see cref="User32.WindowClass.RegisterClassEx(ref ExtendedWindowClass)"/> and
-    /// <see cref="User32.WindowClass.GetClassInfoEx(IntPtr, string, out ExtendedWindowClass)"/> functions.<para/>
-    /// The <see cref="ExtendedWindowClass"/> structure is similar to the <see cref="WindowClass"/> structure.
-    /// There are two differences. <see cref="ExtendedWindowClass"/> includes the <see cref="Size"/> member, which
-    /// specifies the size of the structure, and the <see cref="IconSmall"/> member, which contains a handle
-    /// to a small icon associated with the window class.
-    /// </summary>
-    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
-    public struct ExtendedWindowClass
-    {
-        /// <summary>
-        /// The size, in bytes, of this structure. Set this member to <see cref="SizeInBytes"/>.<para/>
-        /// Be sure to set this member before calling the
-        /// <see cref="User32.WindowClass.GetClassInfoEx(IntPtr, IntPtr, out ExtendedWindowClass)"/> function.
-        /// </summary>
-        public uint Size;
-
-        /// <summary>
-        /// The class style(s). This member can be any combination of <see cref="WindowClassStyles"/>.
-        /// </summary>
-        public WindowClassStyles Style;
-
-        /// <summary>
-        /// A pointer to the window procedure. You must use the CallWindowProc function to call the window procedure.
-        /// </summary>
-        public WindowProc WindowProc;
-
-        /// <summary>
-        /// The number of extra bytes to allocate following the window-class structure.
-        /// The system initializes the bytes to zero.
-        /// </summary>
-        public int ClassExtra;
-
-        /// <summary>
-        /// The number of extra bytes to allocate following the window instance. The system initializes the bytes
-        /// to zero. If an application uses <see cref="ExtendedWindowClass"/> to register a dialog box created by
-        /// using the CLASS directive in the resource file, it must set this member to DLGWINDOWEXTRA.
-        /// </summary>
-        public int WindowExtra;
-
-        /// <summary>
-        /// A handle to the instance that contains the window procedure for the class.
-        /// </summary>
-        public IntPtr Instance;
-
-        /// <summary>
-        /// A handle to the class icon. This member must be a handle to an icon resource.
-        /// If this member is <see cref="IntPtr.Zero"/>, the system provides a default icon.
-        /// </summary>
-        public IntPtr Icon;
-
-        /// <summary>
-        /// A handle to the class cursor. This member must be a handle to a cursor resource.
-        /// If this member is <see cref="IntPtr.Zero"/>, an application must explicitly set the cursor shape
-        /// whenever the mouse moves into the application's window.
-        /// </summary>
-        public IntPtr Cursor;
-
-        /// <summary>
-        /// A handle to the class background brush. This member can be a handle to the brush to be used for
-        /// painting the background, or it can be a color value.<para/>
-        /// For more information on setting this to a color value, check the official documentation.
-        /// </summary>
-        public IntPtr Background;
-
-        /// <summary>
-        /// Pointer to a string that specifies the resource name of the class menu, as the name appears in the
-        /// resource file. If this member is null, windows belonging to this class have no default menu.
-        /// </summary>
-        public string MenuName;
-
-        /// <summary>
-        /// A string specifying the window class name. The class name can be any name registered with
-        /// RegisterClass or <see cref="User32.WindowClass.RegisterClassEx(ref ExtendedWindowClass)"/>,
-        /// or any of the predefined control-class names.
-        /// </summary>
-        public string ClassName;
-
-        /// <summary>
-        /// A handle to a small icon that is associated with the window class. If this member is
-        /// <see cref="IntPtr.Zero"/>, the system searches the icon resource specified by the hIcon member for an icon
-        /// of the appropriate size to use as the small icon.
-        /// </summary>
-        public IntPtr IconSmall;
-
-        /// <summary>
-        /// The size of this structure in bytes.
-        /// </summary>
-        public static readonly uint SizeInBytes = (uint)Marshal.SizeOf<ExtendedWindowClass>();
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Structs/IconInfo.cs b/Crow/src/backends/win32/User32/Structs/IconInfo.cs
deleted file mode 100644 (file)
index ff0f45c..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-using System;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Contains information about an icon or a cursor.
-    /// </summary>
-    public struct IconInfo
-    {
-        /// <summary>
-        /// Specifies whether this structure defines an icon or a cursor. A
-        /// value of true specifies an icon; false specifies a cursor.
-        /// </summary>
-        public bool Icon;
-
-        /// <summary>
-        /// The x-coordinate of a cursor's hot spot. If this structure defines
-        /// an icon, the hot spot is always in the center of the icon, and
-        /// this member is ignored.
-        /// </summary>
-        public uint XHotspot;
-
-        /// <summary>
-        /// The y-coordinate of a cursor's hot spot. If this structure defines
-        /// an icon, the hot spot is always in the center of the icon, and
-        /// this member is ignored.
-        /// </summary>
-        public uint YHotspot;
-
-        /// <summary>
-        /// The icon bitmask bitmap. If this structure defines a black and
-        /// white icon, this bitmask is formatted so that the upper half is
-        /// the icon AND bitmask and the lower half is the icon XOR bitmask.
-        /// Under this condition, the height should be an even multiple of
-        /// two. If this structure defines a color icon, this mask only
-        /// defines the AND bitmask of the icon.
-        /// </summary>
-        public IntPtr BitmapMask;
-
-        /// <summary>
-        /// A handle to the icon color bitmap. This member can be optional if
-        /// this structure defines a black and white icon. The AND bitmask of
-        /// <see cref="BitmapMask"/> is applied with the SRCAND flag to the destination;
-        /// subsequently, the color bitmap is applied (using XOR) to the
-        /// destination by using the SRCINVERT flag.
-        /// </summary>
-        public IntPtr BitmapColor;
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Structs/MonitorInfo.cs b/Crow/src/backends/win32/User32/Structs/MonitorInfo.cs
deleted file mode 100644 (file)
index 908777c..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-using System.Runtime.InteropServices;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Contains information about a display monitor.
-    /// </summary>
-    public struct MonitorInfo
-    {
-        /// <summary>
-        /// The size of the structure, in bytes. Set this member to <see cref="SizeInBytes"/> before calling the
-        /// <see cref="User32.Monitor.GetMonitorInfo(System.IntPtr, out MonitorInfo)"/> function.
-        /// </summary>
-        public uint Size;
-
-        /// <summary>
-        /// A <see cref="Rect"/> structure that specifies the display monitor rectangle, expressed in virtual-screen
-        /// coordinates. Note that if the monitor is not the primary display monitor, some of the rectangle's
-        /// coordinates may be negative values.
-        /// </summary>
-        public Rect Monitor;
-
-        /// <summary>
-        /// A <see cref="Rect"/> structure that specifies the work area rectangle of the display monitor,
-        /// expressed in virtual-screen coordinates. Note that if the monitor is not the primary display monitor,
-        /// some of the rectangle's coordinates may be negative values.
-        /// </summary>
-        public Rect Work;
-
-        /// <summary>
-        /// A set of flags that represent attributes of the display monitor.<para/>
-        /// The (currently only) defined flag is "Primary" with a value of 1, so a value of 1 means the display is
-        /// primary while a value of 0 means that it is not.
-        /// </summary>
-        public uint Flags;
-
-        /// <summary>
-        /// The size of this structure in bytes.
-        /// </summary>
-        public static readonly uint SizeInBytes = (uint)Marshal.SizeOf<MonitorInfo>();
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Structs/MouseMovePoint.cs b/Crow/src/backends/win32/User32/Structs/MouseMovePoint.cs
deleted file mode 100644 (file)
index 8be2fa2..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Contains information about the mouse's location in screen coordinates.
-    /// </summary>
-    public struct MouseMovePoint
-    {
-        /// <summary>
-        /// The x-coordinate of the mouse.
-        /// </summary>
-        public int X;
-
-        /// <summary>
-        /// The y-coordinate of the mouse.
-        /// </summary>
-        public int Y;
-
-        /// <summary>
-        /// The time stamp of the mouse coordinate.
-        /// </summary>
-        public uint Time;
-
-        /// <summary>
-        /// Additional information associated with this coordinate.
-        /// </summary>
-        public IntPtr ExtraInfo;
-
-        /// <summary>
-        /// The size of this structure in bytes.
-        /// </summary>
-        public static readonly uint SizeInBytes = (uint)Marshal.SizeOf<MouseMovePoint>();
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Structs/Msg.cs b/Crow/src/backends/win32/User32/Structs/Msg.cs
deleted file mode 100644 (file)
index f31c4db..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-using System;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Contains message information from a thread's message queue.
-    /// </summary>
-    public struct Msg
-    {
-        /// <summary>
-        /// A handle to the window whose window procedure receives the message. This member is
-        /// <see cref="System.IntPtr.Zero"/> when the message is a thread message.
-        /// </summary>
-        public IntPtr HWnd;
-
-        /// <summary>
-        /// The message identifier. Applications can only use the low word; the high word is reserved by the system.
-        /// </summary>
-        public WindowMessage Message;
-
-        /// <summary>
-        /// Additional information about the message.The exact meaning depends on the value of the
-        /// <see cref="Message"/> member.
-        /// </summary>
-        public IntPtr WParam;
-
-        /// <summary>
-        /// Additional information about the message.The exact meaning depends on the value of the
-        /// <see cref="Message"/> member.
-        /// </summary>
-        public IntPtr LParam;
-
-        /// <summary>
-        /// The time at which the message was posted.
-        /// </summary>
-        public uint Time;
-
-        /// <summary>
-        /// The cursor position, in screen coordinates, when the message was posted.
-        /// </summary>
-        public Point Point;
-
-        /// <inheritdoc/>
-        public override string ToString()
-        {
-            return $"msg=0x{(int)Message:x} ({Message.ToString()}) hwnd=0x{HWnd.ToInt32():x}"
-                + $"wparam=0x{WParam.ToInt32():x} lparam=0x{LParam.ToInt32():x} pt={Point}";
-        }
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Structs/Point.cs b/Crow/src/backends/win32/User32/Structs/Point.cs
deleted file mode 100644 (file)
index bd3fe05..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Defines the X and Y coordinates of a point.
-    /// </summary>
-    public struct Point
-    {
-        /// <summary>
-        /// The X coordinate of this point.
-        /// </summary>
-        public int X;
-
-        /// <summary>
-        /// The Y coordinate of this point.
-        /// </summary>
-        public int Y;
-
-        /// <summary>
-        /// Initializes a new instance of the <see cref="Point"/> struct with the given X and Y coordinates.
-        /// </summary>
-        /// <param name="x">The X coordinate.</param>
-        /// <param name="y">The Y coordinate.</param>
-        public Point(int x, int y)
-        {
-            X = x;
-            Y = y;
-        }
-
-        /// <summary>
-        /// Converts a <see cref="Point"/> structure used for interoperability with the Windows API to a
-        /// <see cref="System.Drawing.Point"/>.
-        /// </summary>
-        /// <param name="point">The OpenTK.NT.Native.Point structure to convert.</param>
-        public static implicit operator System.Drawing.Point(Point point)
-        {
-            return new System.Drawing.Point(point.X, point.Y);
-        }
-
-        /// <summary>
-        /// Converts a <see cref="System.Drawing.Point"/> to a <see cref="Point"/>
-        /// structure meant for interoperability with the Windows API.
-        /// </summary>
-        /// <param name="point">The System.Drawing.Point structure to convert.</param>
-        public static implicit operator Point(System.Drawing.Point point) => new Point(point.X, point.Y);
-
-        /// <inheritdoc/>
-        public override string ToString() => $"{{X={X},Y={Y}}}";
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Structs/RawHid.cs b/Crow/src/backends/win32/User32/Structs/RawHid.cs
deleted file mode 100644 (file)
index f415e71..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-using System;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// The RawHID structure describes the format of the raw input from a Human Interface Device (HID).
-    /// </summary>
-    /// <remarks>
-    /// Each <see cref="WindowMessage.Input"/> can indicate several inputs, but all of the inputs come from the same
-    /// HID. The size of the <see cref="RawData"/> array is <see cref="SizeHid"/> * <see cref="Count"/>.
-    /// </remarks>
-    public struct RawHid
-    {
-        /// <summary>
-        /// Size, in bytes, of each HID input in bRawData.
-        /// </summary>
-        public uint SizeHid;
-
-        /// <summary>
-        /// Number of HID inputs in bRawData.
-        /// </summary>
-        public uint Count;
-
-        /// <summary>
-        /// The first byte of the raw input data.
-        /// </summary>
-        public byte RawData;
-
-        /// <summary>
-        /// Gets the raw input data as an array of bytes.
-        /// </summary>
-        /// <returns>An array of raw input data.</returns>
-        public unsafe byte[] GetRawData()
-        {
-            byte[] result = new byte[SizeHid * Count];
-
-            fixed (byte* dataPtr = &RawData)
-            {
-                for (int i = 0; i < result.Length; i++)
-                {
-                    result[i] = *(dataPtr + i);
-                }
-            }
-
-            return result;
-        }
-
-        /// <summary>
-        /// Access the raw input data at a given index.
-        /// </summary>
-        /// <param name="index">The index at which to access the raw input data.</param>
-        /// <returns>A byte of raw input data at the given index.</returns>
-        public unsafe byte GetRawDataAt(int index)
-        {
-            if (index < 0 || index > SizeHid * Count)
-            {
-                throw new ArgumentOutOfRangeException(nameof(index));
-            }
-
-            fixed (byte* dataPtr = &RawData)
-            {
-                return *(dataPtr + index);
-            }
-        }
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Structs/RawInput.cs b/Crow/src/backends/win32/User32/Structs/RawInput.cs
deleted file mode 100644 (file)
index 7d8f0bf..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-using System.Runtime.InteropServices;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Contains the raw input from a device.
-    /// </summary>
-    [StructLayout(LayoutKind.Sequential)]
-    public struct RawInput
-    {
-        /// <summary>
-        /// The raw input data.
-        /// </summary>
-        public RawInputHeader Header;
-
-        /// <summary>
-        /// Contains device-specific raw input data.
-        /// </summary>
-        public RawInputData Data;
-
-        /// <summary>
-        /// The size of this structure in bytes.
-        /// </summary>
-        public static readonly uint SizeInBytes = (uint)Marshal.SizeOf<RawInput>();
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Structs/RawInputData.cs b/Crow/src/backends/win32/User32/Structs/RawInputData.cs
deleted file mode 100644 (file)
index 3c4c73e..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-using System.Runtime.InteropServices;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// A union containing raw input data from a device.
-    /// </summary>
-    [StructLayout(LayoutKind.Explicit)]
-    public struct RawInputData
-    {
-        /// <summary>
-        /// If the data comes from a mouse, this is the raw input data.
-        /// </summary>
-        [FieldOffset(0)]
-        public RawMouse Mouse;
-
-        /// <summary>
-        /// If the data comes from a keyboard, this is the raw input data.
-        /// </summary>
-        [FieldOffset(0)]
-        public RawKeyboard Keyboard;
-
-        /// <summary>
-        /// If the data comes from a HID, this is the raw input data.
-        /// </summary>
-        [FieldOffset(0)]
-        public RawHid Hid;
-
-        /// <summary>
-        /// The size of this structure in bytes.
-        /// </summary>
-        public static readonly uint SizeInBytes = (uint)Marshal.SizeOf<RawInputData>();
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Structs/RawInputDevice.cs b/Crow/src/backends/win32/User32/Structs/RawInputDevice.cs
deleted file mode 100644 (file)
index 04242df..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-using OpenToolkit.Input.Hid;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Defines information for the raw input devices.
-    /// </summary>
-    public struct RawInputDevice
-    {
-        /// <summary>
-        /// Top level collection Usage page for the raw input device.
-        /// </summary>
-        public HidPage UsagePage;
-
-        /// <summary>
-        /// Top level collection Usage for the raw input device.
-        /// </summary>
-        public ushort Usage;
-
-        /// <summary>
-        /// Mode flag that specifies how to interpret the information provided by UsagePage and Usage.
-        /// By default, the operating system sends raw input from devices with the specified top level collection (TLC)
-        /// to the registered application as long as it has the window focus.
-        /// </summary>
-        public RawInputDeviceFlags Flags;
-
-        /// <summary>
-        /// Handle to the target window. If NULL it follows the keyboard focus.
-        /// </summary>
-        public IntPtr Target;
-
-        /// <summary>
-        /// Initializes a new instance of the <see cref="RawInputDevice"/> struct for generic desktop usage.
-        /// </summary>
-        /// <param name="usage">HID usage for the Generic Desktop page.</param>
-        /// <param name="flags">Specifies how to interpret the raw input data.</param>
-        /// <param name="target">Handle to the target window.</param>
-        public RawInputDevice(HidGenericDesktopUsage usage, RawInputDeviceFlags flags, IntPtr target)
-            : this((ushort)usage, flags, target, HidPage.GenericDesktop)
-        {
-        }
-
-        /// <summary>
-        /// Initializes a new instance of the <see cref="RawInputDevice"/> struct for consumer usage.
-        /// </summary>
-        /// <param name="usage">HID usage for the Consumer page.</param>
-        /// <param name="flags">Specifies how to interpret the raw input data.</param>
-        /// <param name="target">Handle to the target window.</param>
-        public RawInputDevice(HidConsumerUsage usage, RawInputDeviceFlags flags, IntPtr target)
-            : this((ushort)usage, flags, target, HidPage.Consumer)
-        {
-        }
-
-        /// <summary>
-        /// Initializes a new instance of the <see cref="RawInputDevice"/> struct for simulation usage.
-        /// </summary>
-        /// <param name="usage">HID usage for the Simulation page.</param>
-        /// <param name="flags">Specifies how to interpret the raw input data.</param>
-        /// <param name="target">Handle to the target window.</param>
-        public RawInputDevice(HidSimulationUsage usage, RawInputDeviceFlags flags, IntPtr target)
-            : this((ushort)usage, flags, target, HidPage.Simulation)
-        {
-        }
-
-        private RawInputDevice(ushort usage, RawInputDeviceFlags flags, IntPtr target, HidPage usagePage)
-        {
-            Usage = usage;
-            Flags = flags;
-            Target = target;
-            UsagePage = usagePage;
-        }
-
-        /// <summary>
-        /// The size of this structure in bytes.
-        /// </summary>
-        public static readonly uint SizeInBytes = (uint)Marshal.SizeOf<RawInputDevice>();
-
-        /// <inheritdoc/>
-        public override string ToString() => $"{UsagePage}/{Usage}, flags: {Flags}, window: {Target}";
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Structs/RawInputDeviceInfo.cs b/Crow/src/backends/win32/User32/Structs/RawInputDeviceInfo.cs
deleted file mode 100644 (file)
index 07cca2b..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-using System.Runtime.InteropServices;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Defines the raw input data coming from any device.
-    /// </summary>
-    [StructLayout(LayoutKind.Explicit)]
-    public struct RawInputDeviceInfo
-    {
-        /// <summary>
-        /// Size, in bytes, of the <see cref="RawInputDeviceInfo"/> structure.
-        /// </summary>
-        [FieldOffset(0)]
-        public uint Size;
-
-        /// <summary>
-        /// Type of raw input data.
-        /// </summary>
-        [FieldOffset(4)]
-        public RawInputDeviceType Type;
-
-        /// <summary>
-        /// If <see cref="Type"/> is <see cref="RawInputDeviceType.Mouse"/>, this is the
-        /// <see cref="RawInputDeviceInfoMouse"/> structure that defines the mouse.
-        /// </summary>
-        [FieldOffset(8)]
-        public RawInputDeviceInfoMouse Mouse;
-
-        /// <summary>
-        /// If <see cref="Type"/> is <see cref="RawInputDeviceType.Keyboard"/>, this is the
-        /// <see cref="RawInputDeviceInfoKeyboard"/> structure that defines the keyboard.
-        /// </summary>
-        [FieldOffset(8)]
-        public RawInputDeviceInfoKeyboard Keyboard;
-
-        /// <summary>
-        /// If <see cref="Type"/> is <see cref="RawInputDeviceType.Hid"/>, this is the
-        /// <see cref="RawInputDeviceInfoHid"/> structure that defines the HID.
-        /// </summary>
-        [FieldOffset(8)]
-        public RawInputDeviceInfoHid Hid;
-
-        /// <summary>
-        /// The size of this structure in bytes.
-        /// </summary>
-        public static readonly uint SizeInBytes = (uint)Marshal.SizeOf<RawInputDeviceInfo>();
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Structs/RawInputDeviceInfoHid.cs b/Crow/src/backends/win32/User32/Structs/RawInputDeviceInfoHid.cs
deleted file mode 100644 (file)
index 403e221..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Defines the raw input data coming from the specified Human Interface Device (HID).
-    /// </summary>
-    public struct RawInputDeviceInfoHid
-    {
-        /// <summary>
-        /// Vendor ID for the HID.
-        /// </summary>
-        public uint VendorId;
-
-        /// <summary>
-        /// Product ID for the HID.
-        /// </summary>
-        public uint ProductId;
-
-        /// <summary>
-        /// Version number for the HID.
-        /// </summary>
-        public uint VersionNumber;
-
-        /// <summary>
-        /// Top-level collection Usage Page for the device.
-        /// </summary>
-        public ushort UsagePage;
-
-        /// <summary>
-        /// Top-level collection Usage for the device.
-        /// </summary>
-        public ushort Usage;
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Structs/RawInputDeviceInfoKeyboard.cs b/Crow/src/backends/win32/User32/Structs/RawInputDeviceInfoKeyboard.cs
deleted file mode 100644 (file)
index 62cd837..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Defines the raw input data coming from the specified keyboard.
-    /// </summary>
-    /// <remarks>
-    /// For the keyboard, the Usage Page is 1 and the Usage is 6.
-    /// </remarks>
-    public struct RawInputDeviceInfoKeyboard
-    {
-        /// <summary>
-        /// Type of the keyboard.
-        /// </summary>
-        public uint Type;
-
-        /// <summary>
-        /// Subtype of the keyboard.
-        /// </summary>
-        public uint SubType;
-
-        /// <summary>
-        /// Scan code mode.
-        /// </summary>
-        public uint KeyboardMode;
-
-        /// <summary>
-        /// Number of function keys on the keyboard.
-        /// </summary>
-        public uint NumberOfFunctionKeys;
-
-        /// <summary>
-        /// Number of LED indicators on the keyboard.
-        /// </summary>
-        public uint NumberOfIndicators;
-
-        /// <summary>
-        /// Total number of keys on the keyboard.
-        /// </summary>
-        public uint NumberOfKeysTotal;
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Structs/RawInputDeviceInfoMouse.cs b/Crow/src/backends/win32/User32/Structs/RawInputDeviceInfoMouse.cs
deleted file mode 100644 (file)
index fa20c44..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Defines the raw input data coming from the specified mouse.
-    /// </summary>
-    /// <remarks>
-    /// For the keyboard, the Usage Page is 1 and the Usage is 2.
-    /// </remarks>
-    public struct RawInputDeviceInfoMouse
-    {
-        /// <summary>
-        /// ID for the mouse device.
-        /// </summary>
-        public uint Id;
-
-        /// <summary>
-        /// Number of buttons for the mouse.
-        /// </summary>
-        public uint NumberOfButtons;
-
-        /// <summary>
-        /// Number of data points per second. This information may not be applicable for every mouse device.
-        /// </summary>
-        public uint SampleRate;
-
-        /// <summary>
-        /// TRUE if the mouse has a wheel for horizontal scrolling; otherwise, FALSE.
-        /// </summary>
-        /// <remarks>
-        /// This member is only supported under Microsoft Windows Vista and later versions.
-        /// </remarks>
-        public bool HasHorizontalWheel;
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Structs/RawInputDeviceList.cs b/Crow/src/backends/win32/User32/Structs/RawInputDeviceList.cs
deleted file mode 100644 (file)
index 8e87acc..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Contains information about a raw input device.
-    /// </summary>
-    public struct RawInputDeviceList
-    {
-        /// <summary>
-        /// Handle to the raw input device.
-        /// </summary>
-        public IntPtr Device;
-
-        /// <summary>
-        /// Type of device.
-        /// </summary>
-        public RawInputDeviceType Type;
-
-        /// <summary>
-        /// The size of this structure in bytes.
-        /// </summary>
-        public static readonly uint SizeInBytes = (uint)Marshal.SizeOf<RawInputDeviceList>();
-
-        /// <inheritdoc/>
-        public override string ToString() => $"{Type}, Handle: {Device}";
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Structs/RawInputHeader.cs b/Crow/src/backends/win32/User32/Structs/RawInputHeader.cs
deleted file mode 100644 (file)
index 724fae5..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Contains the header information that is part of the raw input data.
-    /// </summary>
-    public struct RawInputHeader
-    {
-        /// <summary>
-        /// Type of raw input.
-        /// </summary>
-        public RawInputDeviceType Type;
-
-        /// <summary>
-        /// The size, in bytes, of the entire input packet of data. This includes <see cref="RawInput"/> plus
-        /// possible extra input reports in the <see cref="RawHid"/> variable length array.
-        /// </summary>
-        public uint Size;
-
-        /// <summary>
-        /// Handle to the device generating the raw input data.
-        /// </summary>
-        public IntPtr Device;
-
-        /// <summary>
-        /// Value passed in the wParam parameter of the <see cref="WindowMessage.Input"/> message.
-        /// </summary>
-        public IntPtr Param;
-
-        /// <summary>
-        /// The size of this structure in bytes.
-        /// </summary>
-        public static readonly uint SizeInBytes = (uint)Marshal.SizeOf<RawInputHeader>();
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Structs/RawKeyboard.cs b/Crow/src/backends/win32/User32/Structs/RawKeyboard.cs
deleted file mode 100644 (file)
index bc3c746..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Contains information about the state of the keyboard.
-    /// </summary>
-    public struct RawKeyboard
-    {
-        /// <summary>
-        /// Scan code from the key depression. The scan code for keyboard overrun is KEYBOARD_OVERRUN_MAKE_CODE.
-        /// </summary>
-        public ushort MakeCode;
-
-        /// <summary>
-        /// Flags for scan code information.
-        /// </summary>
-        public RawKeyboardScanCodeFlags Flags;
-
-        /// <summary>
-        /// Reserved; must be zero.
-        /// </summary>
-        public ushort Reserved;
-
-        /// <summary>
-        /// Microsoft Windows message compatible virtual-key code. For more information, see Virtual-Key Codes.
-        /// </summary>
-        public VirtualKey VKey;
-
-        /// <summary>
-        /// Corresponding window message, for example <see cref="WindowMessage.KeyDown"/>,
-        /// <see cref="WindowMessage.SystemKeyDown"/>, and so forth.
-        /// </summary>
-        public uint Message;
-
-        /// <summary>
-        /// Device-specific additional information for the event.
-        /// </summary>
-        public uint ExtraInformation;
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Structs/RawMouse.cs b/Crow/src/backends/win32/User32/Structs/RawMouse.cs
deleted file mode 100644 (file)
index 945be9f..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-using System.Runtime.InteropServices;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Contains information about the state of the mouse.
-    /// </summary>
-    [StructLayout(LayoutKind.Explicit)]
-    public struct RawMouse
-    {
-        /// <summary>
-        /// Mouse state.
-        /// </summary>
-        [FieldOffset(0)]
-        public RawMouseFlags Flags;
-
-        /// <summary>
-        /// Reserved. Use <see cref="ButtonFlags"/> instead.
-        /// </summary>
-        [FieldOffset(4)]
-        public uint Buttons;
-
-        /// <summary>
-        /// The transition state of the mouse buttons.
-        /// </summary>
-        [FieldOffset(4)]
-        public RawMouseButtonFlags ButtonFlags;
-
-        /// <summary>
-        /// If <see cref="ButtonFlags"/> is <see cref="RawMouseButtonFlags.Wheel"/>,
-        /// this member is a signed value that specifies the wheel delta.
-        /// </summary>
-        [FieldOffset(6)]
-        public ushort ButtonData;
-
-        /// <summary>
-        /// Raw state of the mouse buttons.
-        /// </summary>
-        [FieldOffset(8)]
-        public uint RawButtons;
-
-        /// <summary>
-        /// Motion in the X direction. This is signed relative motion or absolute motion,
-        /// depending on the value of <see cref="Flags"/>.
-        /// </summary>
-        [FieldOffset(12)]
-        public int LastX;
-
-        /// <summary>
-        /// Motion in the Y direction. This is signed relative motion or absolute motion,
-        /// depending on the value of <see cref="Flags"/>.
-        /// </summary>
-        [FieldOffset(16)]
-        public int LastY;
-
-        /// <summary>
-        /// Device-specific additional information for the event.
-        /// </summary>
-        [FieldOffset(20)]
-        public uint ExtraInformation;
-
-        /// <summary>
-        /// The size of this structure in bytes.
-        /// </summary>
-        public static readonly uint SizeInBytes = (uint)Marshal.SizeOf<RawMouse>();
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Structs/Rect.cs b/Crow/src/backends/win32/User32/Structs/Rect.cs
deleted file mode 100644 (file)
index 832420c..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-using System;
-using System.Drawing;
-using System.Runtime.InteropServices;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Defines the coordinates of the upper-left and lower-right corners of a rectangle.
-    /// </summary>
-    /// <remarks>
-    /// By convention, the right and bottom edges of the rectangle are normally considered exclusive. In other words,
-    /// the pixel whose coordinates are (right, bottom) lies immediately outside of the the rectangle. For example,
-    /// when <see cref="Rect"/> is passed to the FillRect function, the rectangle is filled up to, but not including,
-    /// the right column and bottom row of pixels.
-    /// </remarks>
-    public struct Rect
-    {
-        /// <summary>
-        /// Specifies the x-coordinate of the upper-left corner of the rectangle.
-        /// </summary>
-        public int Left;
-
-        /// <summary>
-        /// Specifies the y-coordinate of the upper-left corner of the rectangle.
-        /// </summary>
-        public int Top;
-
-        /// <summary>
-        /// Specifies the x-coordinate of the lower-right corner of the rectangle.
-        /// </summary>
-        public int Right;
-
-        /// <summary>
-        /// Specifies the y-coordinate of the lower-right corner of the rectangle.
-        /// </summary>
-        public int Bottom;
-
-        /// <summary>
-        /// Gets the width of the rectangle.
-        /// </summary>
-        public int Width => Right - Left;
-
-        /// <summary>
-        /// Gets the height of the rectangle.
-        /// </summary>
-        public int Height => Bottom - Top;
-
-        /// <inheritdoc/>
-        public override string ToString() => $"{{X={Left},Y={Top},Width={Width},Height={Height}}}";
-
-        /// <summary>
-        /// Implicitly converts a <see cref="Rect"/> structure into a <see cref="Rectangle"/> structure.
-        /// </summary>
-        /// <param name="value">A <see cref="Rectangle"/> with the same values as the given <see cref="Rect"/>.</param>
-        public static implicit operator Rectangle(Rect value)
-        {
-            return Rectangle.FromLTRB(value.Left, value.Top, value.Right, value.Bottom);
-        }
-
-        /// <summary>
-        /// Implicitly converts a <see cref="Rectangle"/> structure into a <see cref="Rect"/> structure.
-        /// </summary>
-        /// <param name="value">A <see cref="Rect"/> with the same values as the given <see cref="Rectangle"/>.</param>
-        public static implicit operator Rect(Rectangle value)
-        {
-            return new Rect
-            {
-                Left = value.Left,
-                Right = value.Right,
-                Top = value.Top,
-                Bottom = value.Bottom
-            };
-        }
-
-        /// <summary>
-        /// Creates a <see cref="Rect"/> structure with the specified Size at location (0,0).
-        /// </summary>
-        /// <param name="value">The size from which to construct the new <see cref="Rect"/> structure.</param>
-        /// <returns>A <see cref="Rect"/> structure with the given size.</returns>
-        public static Rect FromSize(Size value)
-        {
-            return new Rect
-            {
-                Left = 0,
-                Right = value.Width,
-                Top = 0,
-                Bottom = value.Height
-            };
-        }
-    }
-
-    [StructLayout(LayoutKind.Sequential)]
-    public struct PAINTSTRUCT
-    {
-        public IntPtr hdc;
-        public bool fErase;
-        public Rect rcPaint;
-        public bool fRestore;
-        public bool fIncUpdate;
-        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] public byte[] rgbReserved;
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Structs/StyleStruct.cs b/Crow/src/backends/win32/User32/Structs/StyleStruct.cs
deleted file mode 100644 (file)
index 93cdd2c..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Contains the styles for a window.<para/>
-    /// Both members can be <see cref="WindowStyles"/> or <see cref="ExtendedWindowStyles"/>.
-    /// </summary>
-    public struct StyleStruct
-    {
-        /// <summary>
-        /// The previous styles for a window.
-        /// </summary>
-        public uint StyleOld;
-
-        /// <summary>
-        /// The new styles for a window.
-        /// </summary>
-        public uint StyleNew;
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Structs/TrackMouseEvent.cs b/Crow/src/backends/win32/User32/Structs/TrackMouseEvent.cs
deleted file mode 100644 (file)
index e1b5cce..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Used by the <see cref="User32.Mouse.TrackMouseEvent(ref TrackMouseEvent)"/> function to track
-    /// when the mouse pointer leaves a window or hovers over a window for a specified amount of time.
-    /// </summary>
-    public struct TrackMouseEvent
-    {
-        /// <summary>
-        /// Set <see cref="HoverTime"/> to this value to use the system default hover time-out.
-        /// </summary>
-        public const uint DefaultHoverTime = 0xFFFFFFFF;
-
-        /// <summary>
-        /// The size of the <see cref="TrackMouseEvent"/> structure, in bytes.<para/>
-        /// Set this to <see cref="SizeInBytes"/>.
-        /// </summary>
-        public uint Size;
-
-        /// <summary>
-        /// The services requested.
-        /// </summary>
-        public TrackMouseEvents Flags;
-
-        /// <summary>
-        /// A handle to the window to track.
-        /// </summary>
-        public IntPtr TrackWindowHandle;
-
-        /// <summary>
-        /// The hover time-out (if <see cref="TrackMouseEvents.Hover"/> was specified in <see cref="Flags"/>), in
-        /// milliseconds. Can be <see cref="DefaultHoverTime"/>, which means to use the system default hover time-out.
-        /// </summary>
-        public uint HoverTime;
-
-        /// <summary>
-        /// The size of this structure in bytes.
-        /// </summary>
-        public static readonly uint SizeInBytes = (uint)Marshal.SizeOf<TrackMouseEvent>();
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Structs/WindowClass.cs b/Crow/src/backends/win32/User32/Structs/WindowClass.cs
deleted file mode 100644 (file)
index 57f1a6f..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Contains the window class attributes that are registered by the RegisterClass function.
-    /// </summary>
-    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
-    public struct WindowClass
-    {
-        /// <summary>
-        /// The class style(s). This member can be any combination of <see cref="WindowClassStyles"/>.
-        /// </summary>
-        public WindowClassStyles Style;
-
-        /// <summary>
-        /// A pointer to the window procedure. You must use the CallWindowProc function to call the window procedure.
-        /// </summary>
-        public WindowProc WindowProc;
-
-        /// <summary>
-        /// The number of extra bytes to allocate following the window-class structure.
-        /// The system initializes the bytes to zero.
-        /// </summary>
-        public int ClassExtra;
-
-        /// <summary>
-        /// The number of extra bytes to allocate following the window instance. The system initializes the bytes
-        /// to zero. If an application uses <see cref="WindowClass"/> to register a dialog box created by
-        /// using the CLASS directive in the resource file, it must set this member to DLGWINDOWEXTRA.
-        /// </summary>
-        public int WindowExtra;
-
-        /// <summary>
-        /// A handle to the instance that contains the window procedure for the class.
-        /// </summary>
-        public IntPtr Instance;
-
-        /// <summary>
-        /// A handle to the class icon. This member must be a handle to an icon resource.
-        /// If this member is <see cref="IntPtr.Zero"/>, the system provides a default icon.
-        /// </summary>
-        public IntPtr Icon;
-
-        /// <summary>
-        /// A handle to the class cursor. This member must be a handle to a cursor resource.
-        /// If this member is <see cref="IntPtr.Zero"/>, an application must explicitly set the cursor shape
-        /// whenever the mouse moves into the application's window.
-        /// </summary>
-        public IntPtr Cursor;
-
-        /// <summary>
-        /// A handle to the class background brush. This member can be a handle to the brush to be used for
-        /// painting the background, or it can be a color value.<para/>
-        /// For more information on setting this to a color value, check the official documentation.
-        /// </summary>
-        public IntPtr Background;
-
-        /// <summary>
-        /// Pointer to a string that specifies the resource name of the class menu, as the name appears in the
-        /// resource file. If this member is null, windows belonging to this class have no default menu.
-        /// </summary>
-        public string MenuName;
-
-        /// <summary>
-        /// A string specifying the window class name. The class name can be any name registered with
-        /// RegisterClass or <see cref="User32.WindowClass.RegisterClassEx(ref ExtendedWindowClass)"/>,
-        /// or any of the predefined control-class names.
-        /// </summary>
-        public string ClassName;
-
-        /// <summary>
-        /// The size of this structure in bytes.
-        /// </summary>
-        public static readonly uint SizeInBytes = (uint)Marshal.SizeOf<WindowClass>();
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Structs/WindowInfo.cs b/Crow/src/backends/win32/User32/Structs/WindowInfo.cs
deleted file mode 100644 (file)
index e5df1d3..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-using System.Runtime.InteropServices;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Contains window information.
-    /// </summary>
-    public struct WindowInfo
-    {
-        /// <summary>
-        /// The size of the structure, in bytes.
-        /// </summary>
-        public uint Size;
-
-        /// <summary>
-        /// Pointer to a RECT structure that specifies the coordinates of the window.
-        /// </summary>
-        public Rect Window;
-
-        /// <summary>
-        /// Pointer to a RECT structure that specifies the coordinates of the client area.
-        /// </summary>
-        public Rect Client;
-
-        /// <summary>
-        /// The window styles. For a table of window styles, see CreateWindowEx.
-        /// </summary>
-        public WindowStyles Style;
-
-        /// <summary>
-        /// The extended window styles. For a table of extended window styles, see CreateWindowEx.
-        /// </summary>
-        public ExtendedWindowStyles ExtendedStyle;
-
-        /// <summary>
-        /// The window status. If this member is WS_ACTIVECAPTION, the window is active.
-        /// Otherwise, this member is zero.
-        /// </summary>
-        public uint WindowStatus;
-
-        /// <summary>
-        /// The width of the window border, in pixels.
-        /// </summary>
-        public uint WindowBordersX;
-
-        /// <summary>
-        /// The height of the window border, in pixels.
-        /// </summary>
-        public uint WindowBordersY;
-
-        /// <summary>
-        /// The window class atom (see RegisterClass).
-        /// </summary>
-        public ushort WindowType;
-
-        /// <summary>
-        /// The Microsoft Windows version of the application that created the window.
-        /// </summary>
-        public ushort CreatorVersion;
-
-        /// <summary>
-        /// The size of this structure in bytes.
-        /// </summary>
-        public static readonly uint SizeInBytes = (uint)Marshal.SizeOf<WindowInfo>();
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Structs/WindowPosition.cs b/Crow/src/backends/win32/User32/Structs/WindowPosition.cs
deleted file mode 100644 (file)
index 1e3d89e..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Contains information about the size and position of a window.
-    /// </summary>
-    [StructLayout(LayoutKind.Sequential)]
-    public struct WindowPosition
-    {
-        /// <summary>
-        /// Handle to the window.
-        /// </summary>
-        public IntPtr HWnd;
-
-        /// <summary>
-        /// Specifies the position of the window in Z order (front-to-back position).
-        /// This member can be a handle to the window behind which this window is placed,
-        /// or can be one of the special values listed with the SetWindowPos function.
-        /// </summary>
-        public IntPtr HWndInsertAfter;
-
-        /// <summary>
-        /// Specifies the position of the left edge of the window.
-        /// </summary>
-        public int X;
-
-        /// <summary>
-        /// Specifies the position of the top edge of the window.
-        /// </summary>
-        public int Y;
-
-        /// <summary>
-        /// Specifies the window width, in pixels.
-        /// </summary>
-        public int Width;
-
-        /// <summary>
-        /// Specifies the window height, in pixels.
-        /// </summary>
-        public int Height;
-
-        /// <summary>
-        /// Specifies the window position.
-        /// </summary>
-        public SetWindowPosFlags Flags;
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Timer.cs b/Crow/src/backends/win32/User32/Timer.cs
deleted file mode 100644 (file)
index 9266e81..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-
-namespace OpenToolkit.NT.Native
-{
-    public static partial class User32
-    {
-        /// <summary>
-        /// Provides a subset of functions from the Windows API,
-        /// specifically those imported from user32.dll that deal with timers.
-        /// </summary>
-        public static class Timer
-        {
-            /// <summary>
-            /// Creates a timer with the specified time-out value.
-            /// </summary>
-            /// <param name="window">
-            /// A handle to the window to be associated with the timer. This window must be owned
-            /// by the calling thread. If a <see cref="IntPtr.Zero"/> value for <paramref name="window"/> is passed
-            /// in along with an <paramref name="timerID"/> of an existing timer, that timer will be replaced in the
-            /// same way that an existing non-zero <paramref name="window"/> timer will be.
-            /// </param>
-            /// <param name="timerID">
-            /// A nonzero timer identifier. If the <paramref name="window"/> parameter is <see cref="IntPtr.Zero"/>,
-            /// and the <paramref name="timerID"/> does not match an existing timer then it is ignored and a new
-            /// timer ID is generated.<para/>
-            /// If the <paramref name="window"/> parameter is not <see cref="IntPtr.Zero"/>
-            /// and the window specified by <paramref name="window"/> already has a timer with the value
-            /// <paramref name="timerID"/>, then the existing timer is replaced by the new timer. When
-            /// <see cref="SetTimer(IntPtr, UIntPtr, uint, TimerProc)"/> replaces a timer, the timer is reset.
-            /// Therefore, a message will be sent after the current time-out value elapses, but the previously set
-            /// time-out value is ignored.<para/>
-            /// If the call is not intended to replace an existing timer,
-            /// <paramref name="timerID"/> should be 0 if the <paramref name="window"/> is <see cref="IntPtr.Zero"/>.
-            /// </param>
-            /// <param name="elapse">The time-out value, in milliseconds.</param>
-            /// <param name="timerFunc">
-            /// A pointer to the function to be notified when the time-out value elapses. For more information about
-            /// the function, see <see cref="TimerProc"/>. If <paramref name="timerFunc"/> is null, the system posts
-            /// a <see cref="WindowMessage.Timer"/> message to the application queue. The <see cref="Msg.HWnd"/>
-            /// member of the message's <see cref="Msg"/> structure contains
-            /// the value of the <paramref name="window"/> parameter.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds and the <paramref name="window"/> parameter is <see cref="IntPtr.Zero"/>,
-            /// the return value is an integer identifying the new timer. An application can pass this value to the
-            /// <see cref="KillTimer(IntPtr, UIntPtr)"/> function to destroy the timer.
-            /// </returns>
-            [DllImport(Library, SetLastError = true)]
-            public static extern UIntPtr SetTimer
-            (
-                [In] [Optional] IntPtr window,
-                [In] UIntPtr timerID,
-                [In] uint elapse,
-                [In] [Optional] TimerProc timerFunc
-            );
-
-            /// <summary>
-            /// Destroys the specified timer.
-            /// </summary>
-            /// <param name="window">
-            /// A handle to the window associated with the specified timer. This value must be the same as the window
-            /// value passed to the <see cref="SetTimer(IntPtr, UIntPtr, uint, TimerProc)"/>
-            /// function that created the timer.
-            /// </param>
-            /// <param name="timerID">
-            /// The timer to be destroyed. If the window handle passed to
-            /// <see cref="SetTimer(IntPtr, UIntPtr, uint, TimerProc)"/> is valid, this parameter must be the same as
-            /// the timerID value passed to <see cref="SetTimer(IntPtr, UIntPtr, uint, TimerProc)"/>. If the application
-            /// calls <see cref="SetTimer(IntPtr, UIntPtr, uint, TimerProc)"/> with window set to
-            /// <see cref="IntPtr.Zero"/>, this parameter must be the timer identifier returned by
-            /// <see cref="SetTimer(IntPtr, UIntPtr, uint, TimerProc)"/>.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds, the return value is true.<para/>
-            /// If the function fails, the return value is false.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport(Library, SetLastError = true)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool KillTimer
-            (
-                [In] [Optional] IntPtr window,
-                [In] UIntPtr timerID
-            );
-        }
-    }
-}
diff --git a/Crow/src/backends/win32/User32/User32.cs b/Crow/src/backends/win32/User32/User32.cs
deleted file mode 100644 (file)
index a4883d0..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-namespace OpenToolkit.NT.Native
-{
-    /// <summary>
-    /// Provides a subset of functions from the Windows API, specifically those that are imported from user32.dll.
-    /// </summary>
-    public static partial class User32
-    {
-        /// <summary>
-        /// The filename of the dynamic link library (DLL) that contains these functions.
-        /// </summary>
-        public const string Library = "user32.dll";
-    }
-}
diff --git a/Crow/src/backends/win32/User32/Window.cs b/Crow/src/backends/win32/User32/Window.cs
deleted file mode 100644 (file)
index 4aa9b21..0000000
+++ /dev/null
@@ -1,969 +0,0 @@
-using System;
-using System.ComponentModel;
-using System.Runtime.InteropServices;
-using System.Security;
-using System.Text;
-
-namespace OpenToolkit.NT.Native
-{
-    public static partial class User32
-    {
-        /// <summary>
-        /// Provides a subset of functions from the Windows API,
-        /// specifically those imported from user32.dll that deal with windows.
-        /// </summary>
-        public static class Window
-        {
-            /// <summary>
-            /// Calculates the required size of the window rectangle, based on the desired client-rectangle size.
-            /// The window rectangle can then be passed to the CreateWindow function to create a window whose
-            /// client area is the desired size.
-            /// </summary>
-            /// <param name="rect">
-            /// A pointer to a <see cref="Rect"/> structure that contains the coordinates of the top-left and
-            /// bottom-right corners of the desired client area. When the function returns, the structure contains
-            /// the coordinates of the top-left and bottom-right corners of the window to accommodate the desired
-            /// client area.
-            /// </param>
-            /// <param name="style">
-            /// The window style of the window whose required size is to be calculated.
-            /// Note that you cannot specify the <see cref="WindowStyles.Overlapped"/> style.
-            /// </param>
-            /// <param name="hasMenu">Indicates whether the window has a menu.</param>
-            /// <returns>
-            /// If the function succeeds, the return value is nonzero.
-            /// If the function fails, the return value is zero.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [SuppressUnmanagedCodeSecurity]
-            [DllImport(Library, SetLastError = true)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool AdjustWindowRect
-            (
-                [In] [Out] ref Rect rect,
-                [In] WindowStyles style,
-                [In] bool hasMenu
-            );
-
-            /// <summary>
-            /// Calculates the required size of the window rectangle, based on the desired client-rectangle size.
-            /// The window rectangle can then be passed to the
-            /// <see cref="CreateWindowEx(ExtendedWindowStyles, string, string, WindowStyles, int, int, int, int, IntPtr, IntPtr, IntPtr, IntPtr)"/>
-            /// function to create a window whose client area is the desired size.
-            /// </summary>
-            /// <param name="rect">
-            /// A pointer to a <see cref="Rect"/> structure that contains the coordinates of the top-left and
-            /// bottom-right corners of the desired client area. When the function returns, the structure contains
-            /// the coordinates of the top-left and bottom-right corners of the window to accommodate the
-            /// desired client area.
-            /// </param>
-            /// <param name="style">
-            /// The window style of the window whose required size is to be calculated.
-            /// Note that you cannot specify the <see cref="WindowStyles.Overlapped"/> style.
-            /// </param>
-            /// <param name="hasMenu">Indicates whether the window has a menu.</param>
-            /// <param name="extendedStyle">
-            /// The extended window style of the window whose required size is to be calculated.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds, the return value is nonzero.
-            /// If the function fails, the return value is zero.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [SuppressUnmanagedCodeSecurity]
-            [DllImport(Library, SetLastError = true)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool AdjustWindowRectEx
-            (
-                [In] [Out] ref Rect rect,
-                [In] WindowStyles style,
-                [In] bool hasMenu,
-                [In] ExtendedWindowStyles extendedStyle
-            );
-
-            /// <summary>
-            /// A constant that can be used in all CreateWindowEx overloads to specify special behavior.<para/>
-            /// For more information, see any CreateWindowEx overload.
-            /// </summary>
-            public const int UseDefault = unchecked((int)0x80000000);
-
-            /// <summary>
-            /// Creates an overlapped, pop-up, or child window with an extended window style; otherwise,
-            /// this function is identical to the CreateWindow function.
-            /// </summary>
-            /// <param name="extendedStyle">The extended window style of the window being created.</param>
-            /// <param name="className">A string specifying the window class name.</param>
-            /// <param name="windowName">
-            /// The window name. If the window style specifies a title bar,
-            /// the window title pointed to by <paramref name="windowName"/> is displayed in the title bar.
-            /// </param>
-            /// <param name="style">The style of the window being created.</param>
-            /// <param name="x">
-            /// The initial horizontal position of the window. For an overlapped or pop-up window, the x parameter is
-            /// the initial x-coordinate of the window's upper-left corner, in screen coordinates. For a child window,
-            /// x is the x-coordinate of the upper-left corner of the window relative to the upper-left corner
-            /// of the parent window's client area.<para/>
-            /// If x is set to <see cref="int.MinValue"/>, the system selects the default position for the window's
-            /// upper-left corner and ignores the y parameter. <see cref="int.MinValue"/> is valid only for overlapped
-            /// windows; if it is specified for a pop-up or child window, the x and y parameters are set to zero.
-            /// </param>
-            /// <param name="y">
-            /// The initial vertical position of the window. For an overlapped or pop-up window, the y parameter is
-            /// the initial y-coordinate of the window's upper-left corner, in screen coordinates. For a child window,
-            /// y is the initial y-coordinate of the upper-left corner of the child window relative to the upper-left
-            /// corner of the parent window's client area. For a list box y is the initial y-coordinate of the
-            /// upper-left corner of the list box's client area relative to the upper-left corner of the parent
-            /// window's client area.<para/>
-            /// If an overlapped window is created with the <see cref="WindowStyles.Visible"/> style bit set and
-            /// the x parameter is set to <see cref="int.MinValue"/>, then the y parameter determines how the window
-            /// is shown. If the y parameter is <see cref="int.MinValue"/>, then the window manager calls
-            /// <see cref="ShowWindow(IntPtr, ShowWindowCommand)"/> with the <see cref="ShowWindowCommand.Show"/>
-            /// flag after the window has been created. If the y parameter is some other value, then the window manager
-            /// calls <see cref="ShowWindow(IntPtr, ShowWindowCommand)"/> with that value as the nCmdShow parameter.
-            /// </param>
-            /// <param name="width">
-            /// The width, in device units, of the window. For overlapped windows, nWidth is the window's width, in
-            /// screen coordinates, or <see cref="UseDefault"/>.<para/>
-            /// If nWidth is <see cref="UseDefault"/>, the system selects a default width and height for the window;
-            /// the default width extends from the initial x-coordinates to the right edge of the screen; the default
-            /// height extends from the initial y-coordinate to the top of the icon area.<para/>
-            /// <see cref="UseDefault"/> is valid only for overlapped windows; if <see cref="UseDefault"/> is
-            /// specified for a pop-up or child window, the <paramref name="width"/> and <paramref name="height"/>
-            /// parameter are set to zero.
-            /// </param>
-            /// <param name="height">
-            /// The height, in device units, of the window. For overlapped windows, <paramref name="height"/> is the
-            /// window's height, in screen coordinates.<para/>
-            /// If the <paramref name="width"/> parameter is set to <see cref="UseDefault"/>,
-            /// the system ignores <paramref name="height"/>.
-            /// </param>
-            /// <param name="parentWindow">
-            /// A handle to the parent or owner window of the window being created. To create a child window or an
-            /// owned window, supply a valid window handle. This parameter is optional for pop-up windows.<para/>
-            /// </param>
-            /// <param name="menu">
-            /// A handle to a menu, or specifies a child-window identifier, depending on the window style.<para/>
-            /// For an overlapped or pop-up window, <paramref name="menu"/> identifies the menu to be used with the
-            /// window; it can be <see cref="IntPtr.Zero"/> if the class menu is to be used.<para/>
-            /// For a child window, <paramref name="menu"/> specifies the child-window identifier, an integer value
-            /// used by a dialog box control to notify its parent about events. The application determines the
-            /// child-window identifier; it must be unique for all child windows with the same parent window.
-            /// </param>
-            /// <param name="moduleInstance">
-            /// A handle to the instance of the module to be associated with the window.
-            /// </param>
-            /// <param name="createParam">
-            /// Pointer to a value to be passed to the window through the <see cref="CreateStruct"/> structure
-            /// (<see cref="CreateStruct.CreateParams"/> member) pointed to by the lParam param of the
-            /// <see cref="WindowMessage.Create"/> message.<para/>
-            /// This message is sent to the created window by this function before it returns.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds, the return value is a handle to the new window.
-            /// If the function fails, the return value is <see cref="IntPtr.Zero"/>.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport(Library, SetLastError = true, CharSet = CharSet.Unicode)]
-            public static extern IntPtr CreateWindowEx
-            (
-                [In] ExtendedWindowStyles extendedStyle,
-                [In] [Optional] string className,
-                [In] [Optional] string windowName,
-                [In] WindowStyles style,
-                [In] int x,
-                [In] int y,
-                [In] int width,
-                [In] int height,
-                [In] [Optional] IntPtr parentWindow,
-                [In] [Optional] IntPtr menu,
-                [In] [Optional] IntPtr moduleInstance,
-                [In] [Optional] IntPtr createParam
-            );
-
-            /// <summary>
-            /// Creates an overlapped, pop-up, or child window with an extended window style; otherwise,
-            /// this function is identical to the CreateWindow function.
-            /// </summary>
-            /// <param name="extendedStyle">The extended window style of the window being created.</param>
-            /// <param name="className">A pointer to a string specifying the window class name.</param>
-            /// <param name="windowName">
-            /// The window name. If the window style specifies a title bar,
-            /// the window title pointed to by <paramref name="windowName"/> is displayed in the title bar.
-            /// </param>
-            /// <param name="style">The style of the window being created.</param>
-            /// <param name="x">
-            /// The initial horizontal position of the window. For an overlapped or pop-up window, the x parameter is
-            /// the initial x-coordinate of the window's upper-left corner, in screen coordinates. For a child window,
-            /// x is the x-coordinate of the upper-left corner of the window relative to the upper-left corner
-            /// of the parent window's client area.<para/>
-            /// If x is set to <see cref="int.MinValue"/>, the system selects the default position for the window's
-            /// upper-left corner and ignores the y parameter. <see cref="int.MinValue"/> is valid only for overlapped
-            /// windows; if it is specified for a pop-up or child window, the x and y parameters are set to zero.
-            /// </param>
-            /// <param name="y">
-            /// The initial vertical position of the window. For an overlapped or pop-up window, the y parameter is
-            /// the initial y-coordinate of the window's upper-left corner, in screen coordinates. For a child window,
-            /// y is the initial y-coordinate of the upper-left corner of the child window relative to the upper-left
-            /// corner of the parent window's client area. For a list box y is the initial y-coordinate of the
-            /// upper-left corner of the list box's client area relative to the upper-left corner of the parent
-            /// window's client area.<para/>
-            /// If an overlapped window is created with the <see cref="WindowStyles.Visible"/> style bit set and
-            /// the x parameter is set to <see cref="int.MinValue"/>, then the y parameter determines how the window
-            /// is shown. If the y parameter is <see cref="int.MinValue"/>, then the window manager calls
-            /// <see cref="ShowWindow(IntPtr, ShowWindowCommand)"/> with the <see cref="ShowWindowCommand.Show"/>
-            /// flag after the window has been created. If the y parameter is some other value, then the window manager
-            /// calls <see cref="ShowWindow(IntPtr, ShowWindowCommand)"/> with that value as the nCmdShow parameter.
-            /// </param>
-            /// <param name="width">
-            /// The width, in device units, of the window. For overlapped windows, nWidth is the window's width, in
-            /// screen coordinates, or <see cref="UseDefault"/>.<para/>
-            /// If nWidth is <see cref="UseDefault"/>, the system selects a default width and height for the window;
-            /// the default width extends from the initial x-coordinates to the right edge of the screen; the default
-            /// height extends from the initial y-coordinate to the top of the icon area.<para/>
-            /// <see cref="UseDefault"/> is valid only for overlapped windows; if <see cref="UseDefault"/> is
-            /// specified for a pop-up or child window, the <paramref name="width"/> and <paramref name="height"/>
-            /// parameter are set to zero.
-            /// </param>
-            /// <param name="height">
-            /// The height, in device units, of the window. For overlapped windows, <paramref name="height"/> is the
-            /// window's height, in screen coordinates.<para/>
-            /// If the <paramref name="width"/> parameter is set to <see cref="UseDefault"/>,
-            /// the system ignores <paramref name="height"/>.
-            /// </param>
-            /// <param name="parentWindow">
-            /// A handle to the parent or owner window of the window being created. To create a child window or an
-            /// owned window, supply a valid window handle. This parameter is optional for pop-up windows.<para/>
-            /// </param>
-            /// <param name="menu">
-            /// A handle to a menu, or specifies a child-window identifier, depending on the window style.<para/>
-            /// For an overlapped or pop-up window, <paramref name="menu"/> identifies the menu to be used with the
-            /// window; it can be <see cref="IntPtr.Zero"/> if the class menu is to be used.<para/>
-            /// For a child window, <paramref name="menu"/> specifies the child-window identifier, an integer value
-            /// used by a dialog box control to notify its parent about events. The application determines the
-            /// child-window identifier; it must be unique for all child windows with the same parent window.
-            /// </param>
-            /// <param name="moduleInstance">
-            /// A handle to the instance of the module to be associated with the window.
-            /// </param>
-            /// <param name="createParam">
-            /// Pointer to a value to be passed to the window through the <see cref="CreateStruct"/> structure
-            /// (<see cref="CreateStruct.CreateParams"/> member) pointed to by the lParam param of the
-            /// <see cref="WindowMessage.Create"/> message.<para/>
-            /// This message is sent to the created window by this function before it returns.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds, the return value is a handle to the new window.
-            /// If the function fails, the return value is <see cref="IntPtr.Zero"/>.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport(Library, SetLastError = true, CharSet = CharSet.Unicode)]
-            public static extern IntPtr CreateWindowEx
-            (
-                [In] ExtendedWindowStyles extendedStyle,
-                [In] [Optional] IntPtr className,
-                [In] [Optional] string windowName,
-                [In] WindowStyles style,
-                [In] int x,
-                [In] int y,
-                [In] int width,
-                [In] int height,
-                [In] [Optional] IntPtr parentWindow,
-                [In] [Optional] IntPtr menu,
-                [In] [Optional] IntPtr moduleInstance,
-                [In] [Optional] IntPtr createParam
-            );
-
-            /// <summary>
-            /// Creates an overlapped, pop-up, or child window with an extended window style; otherwise,
-            /// this function is identical to the CreateWindow function.
-            /// </summary>
-            /// <param name="extendedStyle">The extended window style of the window being created.</param>
-            /// <param name="classAtom">
-            /// A class atom created by a previous call to RegisterClass or
-            /// <see cref="WindowClass.RegisterClassEx(ref ExtendedWindowClass)"/>.
-            /// </param>
-            /// <param name="windowName">
-            /// The window name. If the window style specifies a title bar,
-            /// the window title pointed to by <paramref name="windowName"/> is displayed in the title bar.
-            /// </param>
-            /// <param name="style">The style of the window being created.</param>
-            /// <param name="x">
-            /// The initial horizontal position of the window. For an overlapped or pop-up window, the x parameter is
-            /// the initial x-coordinate of the window's upper-left corner, in screen coordinates. For a child window,
-            /// x is the x-coordinate of the upper-left corner of the window relative to the upper-left corner
-            /// of the parent window's client area.<para/>
-            /// If x is set to <see cref="int.MinValue"/>, the system selects the default position for the window's
-            /// upper-left corner and ignores the y parameter. <see cref="int.MinValue"/> is valid only for overlapped
-            /// windows; if it is specified for a pop-up or child window, the x and y parameters are set to zero.
-            /// </param>
-            /// <param name="y">
-            /// The initial vertical position of the window. For an overlapped or pop-up window, the y parameter is
-            /// the initial y-coordinate of the window's upper-left corner, in screen coordinates. For a child window,
-            /// y is the initial y-coordinate of the upper-left corner of the child window relative to the upper-left
-            /// corner of the parent window's client area. For a list box y is the initial y-coordinate of the
-            /// upper-left corner of the list box's client area relative to the upper-left corner of the parent
-            /// window's client area.<para/>
-            /// If an overlapped window is created with the <see cref="WindowStyles.Visible"/> style bit set and
-            /// the x parameter is set to <see cref="int.MinValue"/>, then the y parameter determines how the window
-            /// is shown. If the y parameter is <see cref="int.MinValue"/>, then the window manager calls
-            /// <see cref="ShowWindow(IntPtr, ShowWindowCommand)"/> with the <see cref="ShowWindowCommand.Show"/>
-            /// flag after the window has been created. If the y parameter is some other value, then the window manager
-            /// calls <see cref="ShowWindow(IntPtr, ShowWindowCommand)"/> with that value as the nCmdShow parameter.
-            /// </param>
-            /// <param name="width">
-            /// The width, in device units, of the window. For overlapped windows, nWidth is the window's width, in
-            /// screen coordinates, or <see cref="UseDefault"/>.<para/>
-            /// If nWidth is <see cref="UseDefault"/>, the system selects a default width and height for the window;
-            /// the default width extends from the initial x-coordinates to the right edge of the screen; the default
-            /// height extends from the initial y-coordinate to the top of the icon area.<para/>
-            /// <see cref="UseDefault"/> is valid only for overlapped windows; if <see cref="UseDefault"/> is
-            /// specified for a pop-up or child window, the <paramref name="width"/> and <paramref name="height"/>
-            /// parameter are set to zero.
-            /// </param>
-            /// <param name="height">
-            /// The height, in device units, of the window. For overlapped windows, <paramref name="height"/> is the
-            /// window's height, in screen coordinates.<para/>
-            /// If the <paramref name="width"/> parameter is set to <see cref="UseDefault"/>,
-            /// the system ignores <paramref name="height"/>.
-            /// </param>
-            /// <param name="parentWindow">
-            /// A handle to the parent or owner window of the window being created. To create a child window or an
-            /// owned window, supply a valid window handle. This parameter is optional for pop-up windows.<para/>
-            /// </param>
-            /// <param name="menu">
-            /// A handle to a menu, or specifies a child-window identifier, depending on the window style.<para/>
-            /// For an overlapped or pop-up window, <paramref name="menu"/> identifies the menu to be used with the
-            /// window; it can be <see cref="IntPtr.Zero"/> if the class menu is to be used.<para/>
-            /// For a child window, <paramref name="menu"/> specifies the child-window identifier, an integer value
-            /// used by a dialog box control to notify its parent about events. The application determines the
-            /// child-window identifier; it must be unique for all child windows with the same parent window.
-            /// </param>
-            /// <param name="moduleInstance">
-            /// A handle to the instance of the module to be associated with the window.
-            /// </param>
-            /// <param name="createParam">
-            /// Pointer to a value to be passed to the window through the <see cref="CreateStruct"/> structure
-            /// (<see cref="CreateStruct.CreateParams"/> member) pointed to by the lParam param of the
-            /// <see cref="WindowMessage.Create"/> message.<para/>
-            /// This message is sent to the created window by this function before it returns.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds, the return value is a handle to the new window.
-            /// If the function fails, the return value is <see cref="IntPtr.Zero"/>.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            public static IntPtr CreateWindowEx
-            (
-                [In] ExtendedWindowStyles extendedStyle,
-                [In] [Optional] ushort classAtom,
-                [In] [Optional] string windowName,
-                [In] WindowStyles style,
-                [In] int x,
-                [In] int y,
-                [In] int width,
-                [In] int height,
-                [In] [Optional] IntPtr parentWindow,
-                [In] [Optional] IntPtr menu,
-                [In] [Optional] IntPtr moduleInstance,
-                [In] [Optional] IntPtr createParam
-            )
-            {
-                return CreateWindowEx
-                (
-                    extendedStyle,
-                    new IntPtr(classAtom),
-                    windowName,
-                    style,
-                    x,
-                    y,
-                    width,
-                    height,
-                    parentWindow,
-                    menu,
-                    moduleInstance,
-                    createParam
-                );
-            }
-
-            /// <summary>
-            /// Destroys the specified window. The function sends <see cref="WindowMessage.Destroy"/>
-            /// and <see cref="WindowMessage.NCDestroy"/> messages to the window to deactivate it and remove the
-            /// keyboard focus from it. The function also destroys the window's menu, flushes the thread message queue,
-            /// destroys timers, removes clipboard ownership, and breaks the clipboard viewer chain
-            /// (if the window is at the top of the viewer chain).<para/>
-            /// If the specified window is a parent or owner window, <see cref="DestroyWindow(IntPtr)"/> automatically
-            /// destroys the associated child or owned windows when it destroys the parent or owner window. The
-            /// function first destroys child or owned windows, and then it destroys the parent or owner window.
-            /// </summary>
-            /// <param name="window">A handle to the window to be destroyed.</param>
-            /// <returns>
-            /// If the function succeeds, the return value is true.<para/>
-            /// If the function fails, the return value is false.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport(Library, SetLastError = true)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool DestroyWindow([In] IntPtr window);
-
-            /// <summary>
-            /// Passes message information to the specified window procedure.
-            /// </summary>
-            /// <param name="previousWindowFunc">
-            /// The previous window procedure. If this value is obtained by calling the
-            /// <see cref="GetWindowLong(IntPtr, GetWindowLongIndex)"/> function with the index parameter set to
-            /// <see cref="GetWindowLongIndex.WindowProcedure"/> or DWL_DLGPROC, it is actually either the address of
-            /// a window or dialog box procedure, or a special internal value meaningful only to
-            /// <see cref="CallWindowProc(IntPtr, IntPtr, WindowMessage, IntPtr, IntPtr)"/>.
-            /// </param>
-            /// <param name="window">A handle to the window procedure to receive the message.</param>
-            /// <param name="msg">The message.</param>
-            /// <param name="wparam">
-            /// Additional message-specific information.
-            /// The contents of this parameter depend on the value of the <paramref name="msg"/> parameter.
-            /// </param>
-            /// <param name="lparam">
-            /// Additional message-specific information.
-            /// The contents of this parameter depend on the value of the <paramref name="msg"/> parameter.
-            /// </param>
-            /// <returns>
-            /// The return value specifies the result of the message processing and depends on the message sent.
-            /// </returns>
-            [SuppressUnmanagedCodeSecurity]
-            [DllImport(Library, SetLastError = true)]
-            public static extern IntPtr CallWindowProc
-            (
-                [In] IntPtr previousWindowFunc,
-                [In] IntPtr window,
-                [In] WindowMessage msg,
-                [In] IntPtr wparam,
-                [In] IntPtr lparam
-            );
-
-            /// <summary>
-            /// Sets the current process as dots per inch (dpi) aware. Note: <see cref="SetProcessDPIAware"/> is
-            /// subject to a possible race condition if a DLL caches dpi settings during initialization.
-            /// For this reason, it is recommended that dpi-aware be set through the application (.exe) manifest
-            /// rather than by calling <see cref="SetProcessDPIAware"/>.
-            /// </summary>
-            /// <returns>
-            /// If the function succeeds, the return value is true.<para/>
-            /// Otherwise, the return value is false.
-            /// </returns>
-            [DllImport(Library)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool SetProcessDPIAware();
-
-            /// <summary>
-            /// Changes the window procedure of the specified window.
-            /// </summary>
-            /// <param name="window">
-            /// A handle to the window and, indirectly, the class to which the window belongs.
-            /// </param>
-            /// <param name="newProc">The replacement window procedure.</param>
-            /// <returns>
-            /// If the function succeeds, the return value is the previous value
-            /// of the specified 32-bit integer.<para/>
-            /// If the function fails, the return value is zero.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            public static IntPtr SetWindowLong(IntPtr window, WindowProc newProc)
-            {
-                return SetWindowLong
-                (
-                    window,
-                    GetWindowLongIndex.WindowProcedure,
-                    Marshal.GetFunctionPointerForDelegate(newProc)
-                );
-            }
-
-            /// <summary>
-            /// Changes an attribute of the specified window.
-            /// The function also sets a value at the specified offset in the extra window memory.
-            /// </summary>
-            /// <param name="window">
-            /// A handle to the window and, indirectly, the class to which the window belongs.
-            /// </param>
-            /// <param name="index">
-            /// One of the pre-defined values specifying the offset to the value to be set.
-            /// </param>
-            /// <param name="newLong">The replacement value.</param>
-            /// <returns>
-            /// If the function succeeds, the return value is the previous value of the
-            /// specified 32-bit integer.<para/>
-            /// If the function fails, the return value is zero.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            public static IntPtr SetWindowLong(IntPtr window, GetWindowLongIndex index, IntPtr newLong)
-            {
-                return SetWindowLong(window, (int)index, newLong);
-            }
-
-            /// <summary>
-            /// Changes an attribute of the specified window. The function also sets a value at the specified offset
-            /// in the extra window memory.
-            /// </summary>
-            /// <param name="window">
-            /// A handle to the window and, indirectly, the class to which the window belongs.
-            /// </param>
-            /// <param name="index">
-            /// The zero-based offset to the value to be set. Valid values are in the range zero through the number
-            /// of bytes of extra window memory, minus the size of an <see cref="IntPtr"/>.
-            /// </param>
-            /// <param name="newLong">The replacement value.</param>
-            /// <returns>
-            /// If the function succeeds, the return value is the previous value of the
-            /// specified 32-bit integer.<para/>
-            /// If the function fails, the return value is zero.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            /// <remarks>
-            /// This method is a wrapper around both the SetWindowLong (32-bit) and the SetWindowLongPtr (64-bit)
-            /// version of these functions.<para/>
-            /// This method will always call the "correct" function for this machine,
-            /// and return the value wrapped in an <see cref="IntPtr"/>.
-            /// This method will throw a <see cref="Win32Exception"/> if the Windows API function returns a value
-            /// that indicates failure.
-            /// </remarks>
-            /// <exception cref="Win32Exception">An error occurs in the native function call.</exception>
-            public static IntPtr SetWindowLong(IntPtr window, int index, IntPtr newLong)
-            {
-                //Kernel32.SetLastError(0);
-
-                IntPtr result;
-                if (IntPtr.Size == 8)
-                {
-                    result = SetWindowLongPtr(window, index, newLong);
-                }
-                else
-                {
-                    result = new IntPtr(SetWindowLong(window, index, newLong.ToInt32()));
-                }
-
-                int error;
-                if (result == IntPtr.Zero && (error = Marshal.GetLastWin32Error()) != 0)
-                {
-                    throw new Win32Exception(error, "Failed to modify window border.");
-                }
-
-                return result;
-            }
-
-            [SuppressUnmanagedCodeSecurity]
-            [DllImport(Library, SetLastError = true)]
-            private static extern int SetWindowLong
-            (
-                [In] IntPtr window,
-                [In] int index,
-                [In] int newLong
-            );
-
-            [SuppressUnmanagedCodeSecurity]
-            [DllImport(Library, SetLastError = true)]
-            private static extern IntPtr SetWindowLongPtr
-            (
-                [In] IntPtr window,
-                [In] int index,
-                [In] IntPtr newLong
-            );
-
-            /// <summary>
-            /// Retrieves information about the specified window. The function also retrieves the value at a
-            /// specified offset into the extra window memory.
-            /// </summary>
-            /// <param name="window">
-            /// A handle to the window and, indirectly, the class to which the window belongs.
-            /// </param>
-            /// <param name="index">
-            /// One of the pre-defined values specifying the offset to the value to be retrieved.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds, the return value is the requested value.<para/>
-            /// If the function fails, the return value is zero. To get extended error information, call
-            /// <see cref="Marshal.GetLastWin32Error"/>.<para/>
-            /// If SetWindowLong or SetWindowLongPtr has not been called previously,
-            /// GetWindowLongPtr returns zero for values in the extra window or class memory.
-            /// </returns>
-            /// <remarks>
-            /// This method is a wrapper around both the GetWindowLong (32-bit) and the GetWindowLongPtr
-            /// (64-bit) version of these functions.<para/>
-            /// This method will always call the "correct" function for this machine,
-            /// and return the value wrapped in an <see cref="IntPtr"/>.
-            /// </remarks>
-            public static IntPtr GetWindowLong(IntPtr window, GetWindowLongIndex index)
-            {
-                return GetWindowLong(window, (int)index);
-            }
-
-            /// <summary>
-            /// Retrieves information about the specified window. The function also retrieves the value at a specified
-            /// offset into the extra window memory.
-            /// </summary>
-            /// <param name="window">
-            /// A handle to the window and, indirectly, the class to which the window belongs.
-            /// </param>
-            /// <param name="index">
-            /// The zero-based offset to the value to be retrieved. Valid values are in the range zero through the
-            /// number of bytes of extra window memory, minus the size of a <see cref="IntPtr"/>.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds, the return value is the requested value.<para/>
-            /// If the function fails, the return value is zero. To get extended error information,
-            /// call <see cref="Marshal.GetLastWin32Error"/>.<para/>
-            /// If SetWindowLong or SetWindowLongPtr has not been called previously, GetWindowLongPtr returns zero for
-            /// values in the extra window or class memory.
-            /// </returns>
-            /// <remarks>
-            /// This method is a wrapper around both the GetWindowLong (32-bit) and the GetWindowLongPtr (64-bit)
-            /// version of these functions.<para/>
-            /// This method will always call the "correct" function for this machine,
-            /// and return the value wrapped in an <see cref="IntPtr"/>.
-            /// </remarks>
-            public static IntPtr GetWindowLong(IntPtr window, int index)
-            {
-                if (IntPtr.Size == 8)
-                {
-                    return GetWindowLongPtr(window, index);
-                }
-                else
-                {
-                    return new IntPtr(GetWindowLongPrivate(window, index));
-                }
-            }
-
-            [SuppressUnmanagedCodeSecurity]
-            [DllImport(Library, SetLastError = true)]
-            private static extern int GetWindowLongPrivate([In] IntPtr window, [In] int index);
-
-            [SuppressUnmanagedCodeSecurity]
-            [DllImport(Library, SetLastError = true)]
-            private static extern IntPtr GetWindowLongPtr([In] IntPtr window, [In] int index);
-
-            /// <summary>
-            /// Calls the default window procedure to provide default processing for any window messages that an
-            /// application does not process. This function ensures that every message is processed.
-            /// </summary>
-            /// <param name="window">A handle to the window procedure that received the message.</param>
-            /// <param name="msg">The message.</param>
-            /// <param name="wparam">
-            /// Additional message information. The content of this parameter depends on the value of the
-            /// <paramref name="msg"/> parameter.
-            /// </param>
-            /// <param name="lparam">
-            /// Additional message information. The content of this parameter depends on the value of the
-            /// <paramref name="msg"/> parameter.
-            /// </param>
-            /// <returns>The return value is the result of the message processing and depends on the message.</returns>
-            [DllImport(Library, CharSet = CharSet.Unicode)]
-            public static extern IntPtr DefWindowProc
-            (
-                [In] IntPtr window,
-                [In] WindowMessage msg,
-                [In] IntPtr wparam,
-                [In] IntPtr lparam
-            );
-
-            /// <summary>
-            /// Sets the specified window's show state.
-            /// </summary>
-            /// <param name="window">A handle to the window.</param>
-            /// <param name="showCommand">Controls how the window is to be shown.</param>
-            /// <returns>If the window was previously visible, the return value is true. Otherwise false.</returns>
-            [DllImport(Library, SetLastError = true)]
-            [SuppressUnmanagedCodeSecurity]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool ShowWindow([In] IntPtr window, [In] ShowWindowCommand showCommand);
-
-            [DllImport(Library, SetLastError = true)]
-            [SuppressUnmanagedCodeSecurity]
-            public static extern IntPtr BeginPaint(IntPtr hwnd, out PAINTSTRUCT lpPaint);
-
-            [DllImport(Library, SetLastError = true)]
-            [SuppressUnmanagedCodeSecurity]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool EndPaint(IntPtr hWnd, [In] ref PAINTSTRUCT lpPaint);
-
-            [DllImport(Library, SetLastError = true)]
-            [SuppressUnmanagedCodeSecurity]
-            public static extern IntPtr GetDC(IntPtr hWnd);
-
-            [DllImport(Library, SetLastError = true)]
-            [SuppressUnmanagedCodeSecurity]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool ReleaseDC(IntPtr hWnd, IntPtr hDC);
-
-            /// <summary>
-            /// Copies the text of the specified window's title bar (if it has one) into a buffer. If the specified
-            /// window is a control, the text of the control is copied. However,
-            /// <see cref="GetWindowText(IntPtr, StringBuilder, int)"/> cannot retrieve the text of a control in another
-            /// application.
-            /// </summary>
-            /// <param name="window">A handle to the window or control containing the text.</param>
-            /// <param name="windowText">
-            /// The buffer that will receive the text. If the string is as long or longer than the buffer,
-            /// the string is truncated and terminated with a null character.
-            /// </param>
-            /// <param name="maxCharCount">
-            /// The maximum number of characters to copy to the buffer, including the null character.
-            /// If the text exceeds this limit, it is truncated.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds, the return value is the length, in characters, of the copied string, not
-            /// including the terminating null character. If the window has no title bar or text, if the title bar
-            /// is empty, or if the window or control handle is invalid, the return value is zero. To get extended
-            /// error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport(Library, SetLastError = true, CharSet = CharSet.Unicode)]
-            public static extern int GetWindowText
-            (
-                [In] IntPtr window,
-                [In] [Out] StringBuilder windowText,
-                [In] int maxCharCount
-            );
-
-            /// <summary>
-            /// Changes the text of the specified window's title bar (if it has one). If the specified window is a
-            /// control, the text of the control is changed. However, <see cref="SetWindowText(IntPtr, string)"/>
-            /// cannot change the text of a control in another application.
-            /// </summary>
-            /// <param name="window">A handle to the window or control whose text is to be changed.</param>
-            /// <param name="newText">The new title or control text.</param>
-            /// <returns>
-            /// If the function succeeds, the return value is nonzero.<para/>
-            /// If the function fails, the return value is zero.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport(Library, SetLastError = true, CharSet = CharSet.Unicode)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool SetWindowText
-            (
-                [In] IntPtr window,
-                [In] [Optional] string newText
-            );
-
-            /// <summary>
-            /// Changes the size, position, and Z order of a child, pop-up, or top-level window. These windows are
-            /// ordered according to their appearance on the screen. The topmost window receives the highest rank
-            /// and is the first window in the Z order.
-            /// </summary>
-            /// <param name="window">A handle to the window.</param>
-            /// <param name="windowInsertAfter">
-            /// A handle to the window to precede the positioned window in the Z order.
-            /// This parameter must be a window handle.
-            /// </param>
-            /// <param name="x">The new position of the left side of the window, in client coordinates.</param>
-            /// <param name="y">The new position of the top of the window, in client coordinates.</param>
-            /// <param name="cx">The new width of the window, in pixels.</param>
-            /// <param name="cy">The new height of the window, in pixels.</param>
-            /// <param name="flags">The window sizing and positioning flags.</param>
-            /// <returns>
-            /// If the function succeeds, the return value is true.<para/>
-            /// If the function fails, the return value is false.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport(Library)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool SetWindowPos
-            (
-                [In] IntPtr window,
-                [In] [Optional] IntPtr windowInsertAfter,
-                [In] int x,
-                [In] int y,
-                [In] int cx,
-                [In] int cy,
-                [In] SetWindowPosFlags flags
-            );
-
-            /// <summary>
-            /// Changes the size, position, and Z order of a child, pop-up, or top-level window.
-            /// These windows are ordered according to their appearance on the screen. The topmost window receives
-            /// the highest rank and is the first window in the Z order.
-            /// </summary>
-            /// <param name="window">One of the pre-defined values for window Z order positioning.</param>
-            /// <param name="windowInsertAfter">
-            /// A handle to the window to precede the positioned window in the Z order.
-            /// This parameter must be a window handle.
-            /// </param>
-            /// <param name="x">The new position of the left side of the window, in client coordinates.</param>
-            /// <param name="y">The new position of the top of the window, in client coordinates.</param>
-            /// <param name="cx">The new width of the window, in pixels.</param>
-            /// <param name="cy">The new height of the window, in pixels.</param>
-            /// <param name="flags">The window sizing and positioning flags.</param>
-            /// <returns>
-            /// If the function succeeds, the return value is true.<para/>
-            /// If the function fails, the return value is false.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport(Library)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool SetWindowPos
-            (
-                [In] IntPtr window,
-                [In] [Optional] SetWindowPosHwndEnum windowInsertAfter,
-                [In] int x,
-                [In] int y,
-                [In] int cx,
-                [In] int cy,
-                [In] SetWindowPosFlags flags
-            );
-
-            /// <summary>
-            /// Brings the thread that created the specified window into the foreground and activates the window.
-            /// Keyboard input is directed to the window, and various visual cues are changed for the user.
-            /// The system assigns a slightly higher priority to the thread that created the foreground window
-            /// than it does to other threads.
-            /// </summary>
-            /// <param name="window">
-            /// A handle to the window that should be activated and brought to the foreground.
-            /// </param>
-            /// <returns>
-            /// If the window was brought to the foreground, the return value is true.<para/>
-            /// If the window was not brought to the foreground, the return value is false.
-            /// </returns>
-            [DllImport(Library)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool SetForegroundWindow([In] IntPtr window);
-
-            /// <summary>
-            /// Brings the specified window to the top of the Z order. If the window is a top-level window, it is
-            /// activated. If the window is a child window, the top-level parent window associated with the child
-            /// window is activated.
-            /// </summary>
-            /// <param name="window">A handle to the window to bring to the top of the Z order.</param>
-            /// <returns>
-            /// If the function succeeds, the return value is true.<para/>
-            /// If the function fails, the return value is false.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport(Library, SetLastError = true)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool BringWindowToTop([In] IntPtr window);
-
-            /// <summary>
-            /// Changes the parent window of the specified child window.
-            /// </summary>
-            /// <param name="childWindow">A handle to the child window.</param>
-            /// <param name="newParent">
-            /// A handle to the new parent window. If this parameter is
-            /// <see cref="IntPtr.Zero"/>, the desktop window becomes the new parent window.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds, the return value is a handle to the previous parent window.<para/>
-            /// If the function fails, the return value is null.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport(Library, SetLastError = true)]
-            public static extern IntPtr SetParent
-            (
-                [In] IntPtr childWindow,
-                [In] [Optional] IntPtr newParent
-            );
-
-            /// <summary>
-            /// Retrieves information about the specified window.
-            /// </summary>
-            /// <param name="hwnd">A handle to the window whose information is to be retrieved.</param>
-            /// <param name="wi">
-            /// A pointer to a <see cref="WindowInfo"/> structure to receive the information.
-            /// Note that you must set the <see cref="WindowInfo.Size"/> member to
-            /// <see cref="WindowInfo.SizeInBytes"/> before calling this function.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds, the return value is true.<para/>
-            /// If the function fails, the return value is false.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [SuppressUnmanagedCodeSecurity]
-            [DllImport(Library, SetLastError = true)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool GetWindowInfo([In] IntPtr hwnd, [In] [Out] ref WindowInfo wi);
-
-            /// <summary>
-            /// Determines the visibility state of the specified window.
-            /// </summary>
-            /// <param name="window">A handle to the window to be tested.</param>
-            /// <returns>
-            /// If the specified window, its parent window, its parent's parent window, and so forth, have the
-            /// <see cref="WindowStyles.Visible"/> style, the return value is true. Otherwise,
-            /// the return value is false.<para/>
-            /// Because the return value specifies whether the window has the <see cref="WindowStyles.Visible"/>
-            /// style, it may be true even if the window is totally obscured by other windows.
-            /// </returns>
-            [DllImport(Library)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool IsWindowVisible([In] IntPtr window);
-
-            /// <summary>
-            /// Retrieves the dimensions of the bounding rectangle of the specified window. The dimensions are given
-            /// in screen coordinates that are relative to the upper-left corner of the screen.
-            /// </summary>
-            /// <param name="windowHandle">Handle to the window whose client coordinates are to be retrieved.</param>
-            /// <param name="windowRectangle">
-            /// Pointer to a structure that receives the screen coordinates of the upper-left and
-            /// lower-right corners of the window.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds, the return value is true.<para/>
-            /// If the function fails, the return value is false.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [SuppressUnmanagedCodeSecurity]
-            [DllImport(Library, SetLastError = true)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool GetWindowRect([In] IntPtr windowHandle, [Out] out Rect windowRectangle);
-
-            /// <summary>
-            /// Retrieves the coordinates of a window's client area. The client coordinates specify the upper-left
-            /// and lower-right corners of the client area. Because client coordinates are relative to the upper-left
-            /// corner of a window's client area, the coordinates of the upper-left corner are (0,0).
-            /// </summary>
-            /// <param name="windowHandle">Handle to the window whose client coordinates are to be retrieved.</param>
-            /// <param name="clientRectangle">
-            /// Pointer to a <see cref="Rect"/> structure that receives the client coordinates.
-            /// The <see cref="Rect.Left"/> and <see cref="Rect.Top"/> members are zero. The <see cref="Rect.Right"/>
-            /// and <see cref="Rect.Bottom"/> members contain the width and height of the window.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds, the return value is true.<para/>
-            /// If the function fails, the return value is false.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [SuppressUnmanagedCodeSecurity]
-            [DllImport(Library, SetLastError = true)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool GetClientRect([In] IntPtr windowHandle, [Out] out Rect clientRectangle);
-
-            /// <summary>
-            /// Converts the screen coordinates of a specified point on the screen to client-area coordinates.
-            /// </summary>
-            /// <param name="window">Handle to the window whose client area will be used for the conversion.</param>
-            /// <param name="point">
-            /// Pointer to a <see cref="Point"/> structure that specifies the screen coordinates to be converted.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds, the return value is true.<para/>
-            /// If the function fails, the return value is false.
-            /// </returns>
-            [SuppressUnmanagedCodeSecurity]
-            [DllImport(Library, SetLastError = true)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool ScreenToClient([In] IntPtr window, ref Point point);
-
-            /// <summary>
-            /// Converts the client-area coordinates of a specified point to screen coordinates.
-            /// </summary>
-            /// <param name="window">Handle to the window whose client area will be used for the conversion.</param>
-            /// <param name="point">
-            /// Pointer to a <see cref="Point"/> structure that contains the client coordinates to be converted.
-            /// The new screen coordinates are copied into this structure if the function succeeds.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds, the return value is true.<para/>
-            /// If the function fails, the return value is false.
-            /// </returns>
-            [SuppressUnmanagedCodeSecurity]
-            [DllImport(Library, SetLastError = true)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool ClientToScreen([In] IntPtr window, [In] [Out] ref Point point);
-        }
-    }
-}
diff --git a/Crow/src/backends/win32/User32/WindowClass.cs b/Crow/src/backends/win32/User32/WindowClass.cs
deleted file mode 100644 (file)
index b046207..0000000
+++ /dev/null
@@ -1,210 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-
-namespace OpenToolkit.NT.Native
-{
-    public static partial class User32
-    {
-        /// <summary>
-        /// Provides a subset of functions from the Windows API,
-        /// specifically those imported from user32.dll that deal with window classes.
-        /// </summary>
-        public static class WindowClass
-        {
-            /// <summary>
-            /// Retrieves information about a window class,
-            /// including a handle to the small icon associated with the window class.
-            /// </summary>
-            /// <param name="instance">
-            /// A handle to the instance of the application that created the class.
-            /// To retrieve information about classes defined by the system (such as buttons or list boxes),
-            /// set this parameter to <see cref="IntPtr.Zero"/>.
-            /// </param>
-            /// <param name="className">
-            /// A string containing the class name. The name must be that of a preregistered class or a class
-            /// registered by a previous call to the RegisterClass or
-            /// <see cref="RegisterClassEx(ref ExtendedWindowClass)"/> function.
-            /// </param>
-            /// <param name="extendedWindowClass">
-            /// A pointer to a <see cref="ExtendedWindowClass"/> structure
-            /// that receives the information about the class.
-            /// </param>
-            /// <returns>
-            /// If the function finds a matching class and successfully copies the data, the return value is
-            /// true.<para/>
-            /// If the function does not find a matching class and successfully copy the data, the return value is
-            /// false. To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport(Library, SetLastError = true, CharSet = CharSet.Unicode)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool GetClassInfoEx
-            (
-                [In] [Optional] IntPtr instance,
-                [In] string className,
-                [Out] out ExtendedWindowClass extendedWindowClass
-            );
-
-            /// <summary>
-            /// Retrieves information about a window class,
-            /// including a handle to the small icon associated with the window class.
-            /// </summary>
-            /// <param name="instance">
-            /// A handle to the instance of the application that created the class.
-            /// To retrieve information about classes defined by the system (such as buttons or list boxes),
-            /// set this parameter to <see cref="IntPtr.Zero"/>.
-            /// </param>
-            /// <param name="className">
-            /// A pointer to a string containing the class name.
-            /// The name must be that of a preregistered class or a class registered by a previous call to the
-            /// RegisterClass or <see cref="RegisterClassEx(ref ExtendedWindowClass)"/> function.
-            /// </param>
-            /// <param name="extendedWindowClass">
-            /// A pointer to a <see cref="ExtendedWindowClass"/> structure
-            /// that receives the information about the class.
-            /// </param>
-            /// <returns>
-            /// If the function finds a matching class and successfully copies the data, the return value is
-            /// true.<para/>
-            /// If the function does not find a matching class and successfully copy the data, the return value
-            /// is false. To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport(Library, SetLastError = true)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool GetClassInfoEx
-            (
-                [In] IntPtr instance,
-                [In] IntPtr className,
-                [Out] out ExtendedWindowClass extendedWindowClass
-            );
-
-            /// <summary>
-            /// Retrieves information about a window class,
-            /// including a handle to the small icon associated with the window class.
-            /// </summary>
-            /// <param name="instance">
-            /// A handle to the instance of the application that created the class.
-            /// To retrieve information about classes defined by the system (such as buttons or list boxes),
-            /// set this parameter to <see cref="IntPtr.Zero"/>.
-            /// </param>
-            /// <param name="classAtom">
-            /// A class atom created by a previous call to RegisterClass
-            /// or <see cref="RegisterClassEx(ref ExtendedWindowClass)"/>.
-            /// </param>
-            /// <param name="extendedWindowStyle">
-            /// A pointer to a <see cref="ExtendedWindowClass"/> structure
-            /// that receives the information about the class.
-            /// </param>
-            /// <returns>
-            /// If the function finds a matching class and successfully copies the data, the return value is
-            /// true.<para/>
-            /// If the function does not find a matching class and successfully copy the data, the return value is
-            /// false. To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            public static bool GetClassInfoEx
-            (
-                [In] IntPtr instance,
-                [In] ushort classAtom,
-                [Out] out ExtendedWindowClass extendedWindowStyle
-            )
-            {
-                return GetClassInfoEx(instance, new IntPtr(classAtom), out extendedWindowStyle);
-            }
-
-            /// <summary>
-            /// Registers a window class for subsequent use in calls to the CreateWindow or
-            /// <see cref="Window.CreateWindowEx(ExtendedWindowStyles, IntPtr, string,
-            /// WindowStyles, int, int, int, int, IntPtr, IntPtr, IntPtr, IntPtr)"/> function.
-            /// </summary>
-            /// <param name="extendedWindowClass">
-            /// A pointer to a <see cref="ExtendedWindowClass"/> structure. You must fill the structure with the
-            /// appropriate class attributes before passing it to the function.
-            /// </param>
-            /// <returns>
-            /// If the function succeeds, the return value is a class atom that uniquely identifies the class being
-            /// registered. This atom can only be used by the CreateWindow,
-            /// <see cref="Window.CreateWindowEx(ExtendedWindowStyles, IntPtr, string,
-            /// WindowStyles, int, int, int, int, IntPtr, IntPtr, IntPtr, IntPtr)"/>,
-            /// GetClassInfo, <see cref="GetClassInfoEx(IntPtr, IntPtr, out ExtendedWindowClass)"/>, FindWindow,
-            /// FindWindowEx, and <see cref="UnregisterClass(string, IntPtr)"/> functions
-            /// and the IActiveIMMap::FilterClientWindows method.<para/>
-            /// If the function fails, the return value is zero.
-            /// To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            [DllImport(Library, SetLastError = true, CharSet = CharSet.Unicode)]
-            public static extern ushort RegisterClassEx([In] ref ExtendedWindowClass extendedWindowClass);
-
-            /// <summary>
-            /// Unregisters a window class, freeing the memory required for the class.
-            /// </summary>
-            /// <param name="className">
-            /// A string specifying the window class name. This class name must have been
-            /// registered by a previous call to the RegisterClass or
-            /// <see cref="RegisterClassEx(ref ExtendedWindowClass)"/> function.
-            /// </param>
-            /// <param name="moduleInstance">A handle to the instance of the module that created the class.</param>
-            /// <returns>
-            /// If the function succeeds, the return value is true.<para/>
-            /// If the class could not be found or if a window still exists that was created with the class, the return
-            /// value is false. To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            /// <remarks>
-            /// Before calling this function, an application must destroy all windows created with the
-            /// specified class.<para/>
-            /// All window classes that an application registers are unregistered when it terminates.
-            /// </remarks>
-            [DllImport(Library, SetLastError = true, CharSet = CharSet.Unicode)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool UnregisterClass([In] string className, [In] [Optional] IntPtr moduleInstance);
-
-            /// <summary>
-            /// Unregisters a window class, freeing the memory required for the class.
-            /// </summary>
-            /// <param name="className">
-            /// A pointer to a string specifying the window class name. This class name must
-            /// have been registered by a previous call to the RegisterClass or
-            /// <see cref="RegisterClassEx(ref ExtendedWindowClass)"/> function.
-            /// </param>
-            /// <param name="moduleInstance">A handle to the instance of the module that created the class.</param>
-            /// <returns>
-            /// If the function succeeds, the return value is true.<para/>
-            /// If the class could not be found or if a window still exists that was created with the class, the return
-            /// value is false. To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            /// <remarks>
-            /// Before calling this function, an application must destroy all windows created with the
-            /// specified class.<para/>
-            /// All window classes that an application registers are unregistered when it terminates.
-            /// </remarks>
-            [DllImport(Library, SetLastError = true)]
-            [return: MarshalAs(UnmanagedType.Bool)]
-            public static extern bool UnregisterClass
-            (
-                [In] IntPtr className,
-                [In] [Optional] IntPtr moduleInstance
-            );
-
-            /// <summary>
-            /// Unregisters a window class, freeing the memory required for the class.
-            /// </summary>
-            /// <param name="classAtom">
-            /// A class atom created by a previous call to the RegisterClass or
-            /// <see cref="RegisterClassEx(ref ExtendedWindowClass)"/> function.
-            /// </param>
-            /// <param name="moduleInstance">A handle to the instance of the module that created the class.</param>
-            /// <returns>
-            /// If the function succeeds, the return value is true.<para/>
-            /// If the class could not be found or if a window still exists that was created with the class, the return
-            /// value is false. To get extended error information, call <see cref="Marshal.GetLastWin32Error"/>.
-            /// </returns>
-            /// <remarks>
-            /// Before calling this function, an application must destroy all windows created with the
-            /// specified class.<para/>
-            /// All window classes that an application registers are unregistered when it terminates.
-            /// </remarks>
-            public static bool UnregisterClass([In] ushort classAtom, [In] [Optional] IntPtr moduleInstance)
-            {
-                return UnregisterClass(new IntPtr(classAtom), moduleInstance);
-            }
-        }
-    }
-}
diff --git a/Crow/src/backends/win32/WinBackend.cs b/Crow/src/backends/win32/WinBackend.cs
deleted file mode 100644 (file)
index f05814b..0000000
+++ /dev/null
@@ -1,478 +0,0 @@
-//
-// XLibBackend.cs
-//
-// Author:
-//       Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
-//
-// Copyright (c) 2013-2017 Jean-Philippe Bruyère
-//
-// 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.
-using System;
-using System.Diagnostics;
-using System.Runtime.InteropServices;
-using System.Text;
-using OpenToolkit.NT.Native;
-
-namespace Crow.Win32
-{
-
-    public class Win32Backend : IBackend
-    {
-        public void CleanUp()
-        {
-            User32.Window.ReleaseDC(handle, hdc);
-            User32.Window.DestroyWindow(handle);
-        }
-
-        public void Flush()
-        {
-                       iFace.surf.Flush ();
-            //throw new NotImplementedException();
-        }
-
-        WindowProc WindowProcedureDelegate;
-        string className = "myWindowClass";
-        IntPtr instance = Marshal.GetHINSTANCE(typeof(Win32Backend).Module);
-        IntPtr handle = IntPtr.Zero;
-        IntPtr hdc = IntPtr.Zero;
-               Interface iFace;
-
-        public void Init(Interface _iFace)
-        {
-                       iFace = _iFace;
-
-            WindowProcedureDelegate = WindowProcedure;
-
-            Rect rect = new Rect
-            {
-                Left = iFace.ClientRectangle.Left,
-                Top = iFace.ClientRectangle.Top,
-                Right = iFace.ClientRectangle.Right,
-                Bottom = iFace.ClientRectangle.Bottom
-            };
-
-            User32.Window.AdjustWindowRectEx(ref rect, 0, false, 0);
-
-            ExtendedWindowClass wc = new ExtendedWindowClass
-            {
-                Size = ExtendedWindowClass.SizeInBytes,
-                Style = 0,
-                WindowProc = WindowProcedureDelegate,
-                ClassExtra = 0,
-                WindowExtra = 0,
-                Instance = instance,
-                Icon = IntPtr.Zero,
-                Cursor = User32.Cursor.LoadCursor(CursorName.Arrow),
-                //Background = Gdi32.GetStockObject(GetStockObjectType.BlackBrush),
-                MenuName = null,
-                ClassName = className,
-            };
-
-            ushort atom = User32.WindowClass.RegisterClassEx(ref wc);
-
-            handle = User32.Window.CreateWindowEx(
-                ExtendedWindowStyles.ClientEdge,
-                className,
-                "The title of my window",
-                WindowStyles.OverlappedWindow,
-
-                rect.Left,
-                rect.Top,
-                rect.Width,
-                rect.Height,
-                IntPtr.Zero,
-                IntPtr.Zero,
-                instance,
-                IntPtr.Zero
-            );
-
-            User32.Window.ShowWindow(handle, ShowWindowCommand.Show);
-
-            hdc = User32.Window.GetDC(handle);
-            iFace.surf = new Crow.Cairo.Win32Surface(hdc);
-
-        }
-
-        public void ProcessEvents()
-        {
-                       Msg msg;
-            while (User32.Message.PeekMessage(out msg, IntPtr.Zero, 0, 0, PeekMessageActions.Remove))
-            {
-                User32.Message.TranslateMessage(ref msg);
-                User32.Message.DispatchMessage(ref msg);
-            }
-        }
-
-               public bool IsDown (Key key) {
-                       return false;
-               }
-               public bool Shift {
-                       get {
-                               throw new NotImplementedException ();
-                       }
-               }
-
-               public bool Ctrl {
-                       get {
-                               throw new NotImplementedException ();
-                       }
-               }
-
-               public bool Alt {
-                       get {
-                               throw new NotImplementedException ();
-                       }
-               }
-
-               void HandleWindowPositionChanged(IntPtr handle, WindowMessage message, IntPtr wParam, IntPtr lParam)
-               {
-                       var pos = Marshal.PtrToStructure<WindowPosition>(lParam);
-                       if (pos.HWnd == handle)
-                       {
-                               Rectangle bounds = new Rectangle(pos.X, pos.Y, pos.Width, pos.Height);
-
-                               User32.Window.SetWindowPos
-                               (
-                                       handle, 
-                                       IntPtr.Zero, 
-                                       bounds.X, 
-                                       bounds.Y, 
-                                       bounds.Width,
-                                       bounds.Height,
-                                       SetWindowPosFlags.NoZOrder | SetWindowPosFlags.NoOwnerZOrder |
-                                       SetWindowPosFlags.NoActivate | SetWindowPosFlags.NoSendChanging
-                               );
-                               bounds.Left = bounds.Top = 0;
-                               iFace.ProcessResize (bounds);
-                       }
-               }
-
-               static Key GetKey(int code)
-               {
-                       switch (code)
-                       {
-                       // 0 - 15
-                       case 0: return Key.NoSymbol;
-                       case 1: return Key.Escape;
-                       case 2: return Key.key_1;
-                       case 3: return Key.key_2;
-                       case 4: return Key.key_3;
-                       case 5: return Key.key_4;
-                       case 6: return Key.key_5;
-                       case 7: return Key.key_6;
-                       case 8: return Key.key_7;
-                       case 9: return Key.key_8;
-                       case 10: return Key.key_9;
-                       case 11: return Key.key_0;
-                       case 12: return Key.minus;
-                       case 13: return Key.plus;
-                       case 14: return Key.BackSpace;
-                       case 15: return Key.Tab;
-
-                               // 16-31
-                       case 16: return Key.Q;
-                       case 17: return Key.W;
-                       case 18: return Key.E;
-                       case 19: return Key.R;
-                       case 20: return Key.T;
-                       case 21: return Key.Y;
-                       case 22: return Key.U;
-                       case 23: return Key.I;
-                       case 24: return Key.O;
-                       case 25: return Key.P;
-                       case 26: return Key.bracketleft;
-                       case 27: return Key.bracketright;
-                       case 28: return Key.Return;
-                       case 29: return Key.Control_L;
-                       case 30: return Key.A;
-                       case 31: return Key.S;
-
-                               // 32 - 47
-                       case 32: return Key.D;
-                       case 33: return Key.F;
-                       case 34: return Key.G;
-                       case 35: return Key.H;
-                       case 36: return Key.J;
-                       case 37: return Key.K;
-                       case 38: return Key.L;
-                       case 39: return Key.semicolon;
-                       case 40: return Key.quotedbl;
-                       case 41: return Key.grave;
-                       case 42: return Key.Shift_L;
-                       case 43: return Key.backslash;
-                       case 44: return Key.Z;
-                       case 45: return Key.X;
-                       case 46: return Key.C;
-                       case 47: return Key.V;
-
-                               // 48 - 63
-                       case 48: return Key.B;
-                       case 49: return Key.N;
-                       case 50: return Key.M;
-                       case 51: return Key.comma;
-                       case 52: return Key.period;
-                       case 53: return Key.slash;
-                       case 54: return Key.Shift_R;
-                       case 55: return Key.Print;
-                       case 56: return Key.Alt_L;
-                       case 57: return Key.space;
-                       case 58: return Key.Caps_Lock;
-                       case 59: return Key.F1;
-                       case 60: return Key.F2;
-                       case 61: return Key.F3;
-                       case 62: return Key.F4;
-                       case 63: return Key.F5;
-
-                               // 64 - 79
-                       case 64: return Key.F6;
-                       case 65: return Key.F7;
-                       case 66: return Key.F8;
-                       case 67: return Key.F9;
-                       case 68: return Key.F10;
-                       case 69: return Key.Num_Lock;
-                       case 70: return Key.Scroll_Lock;
-                       case 71: return Key.Home;
-                       case 72: return Key.Up;
-                       case 73: return Key.Page_Up;
-                       case 74: return Key.KP_Subtract;
-                       case 75: return Key.Left;
-                       case 76: return Key.KP_5;
-                       case 77: return Key.Right;
-                       case 78: return Key.KP_Add;
-                       case 79: return Key.End;
-
-                               // 80 - 95
-                       case 80: return Key.Down;
-                       case 81: return Key.Page_Down;
-                       case 82: return Key.Insert;
-                       case 83: return Key.Delete;
-                       case 84: return Key.NoSymbol;
-                       case 85: return Key.NoSymbol;
-                       case 86: return Key.NoSymbol;
-                       case 87: return Key.F11;
-                       case 88: return Key.F12;
-                       case 89: return Key.Pause;
-                       case 90: return Key.NoSymbol;
-                       case 91: return Key.Meta_L;
-                       case 92: return Key.Meta_R;
-                       case 93: return Key.Menu;
-                       case 94: return Key.NoSymbol;
-                       case 95: return Key.NoSymbol;
-
-                               // 96 - 106
-                       case 96: return Key.NoSymbol;
-                       case 97: return Key.NoSymbol;
-                       case 98: return Key.NoSymbol;
-                       case 99: return Key.NoSymbol;
-                       case 100: return Key.F13;
-                       case 101: return Key.F14;
-                       case 102: return Key.F15;
-                       case 103: return Key.F16;
-                       case 104: return Key.F17;
-                       case 105: return Key.F18;
-                       case 106: return Key.F19;
-
-                       default: return Key.NoSymbol;
-                       }
-               }
-               const long ExtendedBit = 1 << 24; // Used to distinguish left and right control, alt and enter keys.
-
-               void handleKeyboard (IntPtr lParam, IntPtr wParam, bool pressed) {
-                       bool extended = (lParam.ToInt64() & ExtendedBit) != 0;
-                       uint scancode = (uint)((lParam.ToInt64() >> 16) & 0xFF);
-                       //ushort repeat_count = unchecked((ushort)((ulong)lParam.ToInt64() & 0xffffu));
-//                     VirtualKey vkey = (VirtualKey)wParam;
-//                     var key = WinKeyMap.TranslateKey(scancode, vkey, extended, false, out bool is_valid);
-                       Key k = GetKey ((int)scancode);
-
-                       if (pressed) 
-                               iFace.ProcessKeyDown (k);
-                       else
-                               iFace.ProcessKeyUp (k);                 
-               }
-               void handleChar (IntPtr lParam, IntPtr wParam) {
-                       char c = IntPtr.Size == 4 ?
-                               (char)wParam.ToInt32() :
-                               (char)wParam.ToInt64();
-
-                       if (!char.IsControl (c))
-                               iFace.ProcessKeyPress (c);
-               }
-
-
-
-        IntPtr WindowProcedure(IntPtr handle, WindowMessage message, IntPtr wParam, IntPtr lParam)
-        {
-            var result = IntPtr.Zero;
-
-
-            switch (message)
-            {
-            case WindowMessage.MouseMove:
-                iFace.ProcessMouseMove
-                ((int)((uint)lParam.ToInt32() & 0x0000FFFF), (int)(((uint)lParam.ToInt32() & 0xFFFF0000) >> 16));
-                break;
-            case WindowMessage.LButtonDown:
-                iFace.ProcessMouseButtonDown(Crow.MouseButton.Left);
-                return IntPtr.Zero;
-            case WindowMessage.RButtonDown:
-                iFace.ProcessMouseButtonDown(Crow.MouseButton.Right);
-                return IntPtr.Zero;
-            case WindowMessage.MButtonDown:
-                iFace.ProcessMouseButtonDown(Crow.MouseButton.Middle);
-                return IntPtr.Zero;
-            case WindowMessage.LButtonUp:
-                iFace.ProcessMouseButtonUp(Crow.MouseButton.Left);
-                return IntPtr.Zero;
-            case WindowMessage.RButtonUp:
-                iFace.ProcessMouseButtonUp(Crow.MouseButton.Right);
-                return IntPtr.Zero;
-            case WindowMessage.MButtonUp:
-                iFace.ProcessMouseButtonUp(Crow.MouseButton.Middle);
-                return IntPtr.Zero;
-                       case WindowMessage.MouseWheel:
-                               iFace.ProcessMouseWheelChanged ((((long)wParam << 32) >> 48) / 120.0f);                                 
-                               return IntPtr.Zero;                                     
-                       case WindowMessage.MouseHWheel:
-                               iFace.ProcessMouseWheelChanged ((((long)wParam << 32) >> 48) / 120.0f);
-                               return IntPtr.Zero;                                     
-                       case WindowMessage.KeyDown:
-                       case WindowMessage.SystemKeyDown:
-                               handleKeyboard (lParam, wParam, true);
-                               return IntPtr.Zero;
-                       case WindowMessage.KeyUp:
-                       case WindowMessage.SystemKeyUp:                                 
-                               handleKeyboard (lParam, wParam, false);
-                               return IntPtr.Zero;
-                       case WindowMessage.Char:
-                               handleChar (lParam, wParam);
-                               break;
-                       case WindowMessage.WindowPosChanged:
-                               HandleWindowPositionChanged(handle, message, wParam, lParam);
-                               break;
-
-
-            /*case WindowMessage.Activate:
-                HandleActivate(handle, message, wParam, lParam);
-                break;
-
-            case WindowMessage.EnterMenuLoop:
-            case WindowMessage.EnterSizeMove:
-                HandleEnterModalLoop(handle, message, wParam, lParam);
-                break;
-
-            case WindowMessage.ExitMenuLoop:
-            case WindowMessage.ExitSizeMove:
-                HandleExitModalLoop(handle, message, wParam, lParam);
-                break;
-
-            case WindowMessage.EraseBackground:
-                // This is triggered only when the client area changes.
-                // As such it does not affect steady-state performance.
-                break;
-
-
-            case WindowMessage.StyleChanged:
-                HandleStyleChanged(handle, message, wParam, lParam);
-                break;
-
-            case WindowMessage.Size:
-                HandleSize(handle, message, wParam, lParam);
-                break;
-
-            case WindowMessage.SetCursor:
-                result = HandleSetCursor(handle, message, wParam, lParam);
-                break;
-
-            case WindowMessage.CaptureChanged:
-                HandleCaptureChanged(handle, message, wParam, lParam);
-                break;
-
-            case WindowMessage.Char:
-                HandleChar(handle, message, wParam, lParam);
-                break;
-
-
-
-            case WindowMessage.MouseLeave:
-                HandleMouseLeave(handle, message, wParam, lParam);
-                break;
-
-            case WindowMessage.MouseWheel:
-                HandleMouseWheel(handle, message, wParam, lParam);
-                return IntPtr.Zero;
-
-            case WindowMessage.MouseHWheel:
-                HandleMouseHWheel(handle, message, wParam, lParam);
-                return IntPtr.Zero;
-
-
-            // Keyboard events:
-            case WindowMessage.KeyDown:
-            case WindowMessage.KeyUp:
-            case WindowMessage.SystemKeyDown:
-            case WindowMessage.SystemKeyUp:
-                HandleKeyboard(handle, message, wParam, lParam);
-                return IntPtr.Zero;
-
-            case WindowMessage.SystemChar:
-                return IntPtr.Zero;
-
-            case WindowMessage.KillFocus:
-                HandleKillFocus(handle, message, wParam, lParam);
-                break;
-
-            case WindowMessage.DropFiles:
-                HandleDropFiles(handle, message, wParam, lParam);
-                break;
-
-            case WindowMessage.Create:
-                HandleCreate(handle, message, wParam, lParam);
-                break;
-            case WindowMessage.Paint:
-                dc = User32.Window.BeginPaint(handle, out paintStruct);
-
-                return IntPtr.Zero;*/
-            case WindowMessage.Close:
-                User32.Window.DestroyWindow(handle);                   
-                return IntPtr.Zero;
-            case WindowMessage.Destroy:
-                User32.Message.PostQuitMessage(0);
-                //User32.WindowClass.UnregisterClass(className, instance);
-                break;
-            }
-
-            if (result != IntPtr.Zero)
-                return result;
-
-            return User32.Window.DefWindowProc(handle, message, wParam, lParam);
-        }
-
-               public void SetCursor (MouseCursors newCur)
-               {
-                       //throw new NotImplementedException ();
-               }
-
-               public void SetCursorPosition (int x, int y)
-               {
-                       throw new NotImplementedException ();
-               }
-       }
-}
-
diff --git a/Crow/src/backends/xcb/XCBBackend.cs b/Crow/src/backends/xcb/XCBBackend.cs
deleted file mode 100644 (file)
index 46d7267..0000000
+++ /dev/null
@@ -1,528 +0,0 @@
-//
-// XLibBackend.cs
-//
-// Author:
-//       Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
-//
-// Copyright (c) 2013-2017 Jean-Philippe Bruyère
-//
-// 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.
-using System;
-using System.Diagnostics;
-using System.Runtime.InteropServices;
-using System.Text;
-
-
-
-namespace Crow.XCB
-{      
-       using xcb_window_t = System.UInt32;
-       using xcb_pixmap_t = System.UInt32;
-       using xcb_cursor_t = System.UInt32;
-       using xcb_font_t = System.UInt32;
-       using xcb_colormap_t = System.UInt32;
-       using xcb_atom_t = System.UInt32;
-       using xcb_drawable_t = System.UInt32;
-       using xcb_visualid_t = System.UInt32;
-       using xcb_keysym_t = System.UInt32;
-       using xcb_keycode_t = System.Byte;
-       using xcb_timestamp_t = System.UInt32;
-
-       using xcb_void_cookie_t = System.UInt32;
-
-       public class XCBBackend : IBackend
-       {
-               const byte XCB_COPY_FROM_PARENT = 0;
-
-               #region struct an enums
-
-               enum xcb_window_class_t : ushort {
-                       COPY_FROM_PARENT = 0,
-                       INPUT_OUTPUT = 1,
-                       INPUT_ONLY = 2
-               }
-
-               enum xcb_button_t : byte {
-                       Left = 1,
-                       Middle,
-                       Right,
-                       WheelUp,
-                       WheelDown,
-                       But6,
-                       But7,
-                       But8,
-                       But9,
-                       But10,
-               }
-
-               [Flags]
-               enum xcb_event_mask_t : uint {
-                       NO_EVENT = 0,
-                       KEY_PRESS = 1,
-                       KEY_RELEASE = 2,
-                       BUTTON_PRESS = 4,
-                       BUTTON_RELEASE = 8,
-                       ENTER_WINDOW = 16,
-                       LEAVE_WINDOW = 32,
-                       POINTER_MOTION = 64,
-                       POINTER_MOTION_HINT = 128,
-                       BUTTON_1_MOTION = 256,
-                       BUTTON_2_MOTION = 512,
-                       BUTTON_3_MOTION = 1024,
-                       BUTTON_4_MOTION = 2048,
-                       BUTTON_5_MOTION = 4096,
-                       BUTTON_MOTION = 8192,
-                       KEYMAP_STATE = 16384,
-                       EXPOSURE = 32768,
-                       VISIBILITY_CHANGE = 65536,
-                       STRUCTURE_NOTIFY = 131072,
-                       RESIZE_REDIRECT = 262144,
-                       SUBSTRUCTURE_NOTIFY = 524288,
-                       SUBSTRUCTURE_REDIRECT = 1048576,
-                       FOCUS_CHANGE = 2097152,
-                       PROPERTY_CHANGE = 4194304,
-                       COLOR_MAP_CHANGE = 8388608,
-                       OWNER_GRAB_BUTTON = 16777216
-               }
-
-               enum xcb_event_type : byte {
-                       KEY_PRESS = 2,
-                       KEY_RELEASE,
-                       BUTTON_PRESS,
-                       BUTTON_RELEASE,
-                       MOTION_NOTIFY,
-                       ENTER_NOTIFY,
-                       LEAVE_NOTIFY,
-                       FOCUS_IN,
-                       FOCUS_OUT,
-                       KEYMAP_NOTIFY,
-                       EXPOSE,
-                       GRAPHICS_EXPOSURE,
-                       NO_EXPOSURE,
-                       VISIBILITY_NOTIFY,
-                       CREATE_NOTIFY,
-                       DESTROY_NOTIFY,
-                       UNMAP_NOTIFY,
-                       MAP_NOTIFY,
-                       MAP_REQUEST,
-                       REPARENT_NOTIFY,
-                       CONFIGURE_NOTIFY,
-                       CONFIGURE_REQUEST,
-                       GRAVITY_NOTIFY,
-                       RESIZE_REQUEST,
-                       CIRCULATE_NOTIFY,
-                       CIRCULATE_REQUEST,
-                       PROPERTY_NOTIFY,
-                       SELECTION_CLEAR,
-                       SELECTION_REQUEST,
-                       SELECTION_NOTIFY,
-                       COLORMAP_NOTIFY,
-                       CLIENT_MESSAGE,
-                       MAPPING_NOTIFY,
-                       GE_GENERIC,
-               }
-               [Flags]
-               enum xcb_cw_t : uint {
-                       BACK_PIXMAP = 1,
-                       BACK_PIXEL = 2,
-                       BORDER_PIXMAP = 4,
-                       BORDER_PIXEL = 8,
-                       BIT_GRAVITY = 16,
-                       WIN_GRAVITY = 32,
-                       BACKING_STORE = 64,
-                       BACKING_PLANES = 128,
-                       BACKING_PIXEL = 256,
-                       OVERRIDE_REDIRECT = 512,
-                       SAVE_UNDER = 1024,
-                       EVENT_MASK = 2048,
-                       DONT_PROPAGATE = 4096,
-                       COLORMAP = 8192,
-                       CURSOR = 16384
-               }
-
-               [StructLayout(LayoutKind.Sequential)]
-               struct xcb_generic_event_t{
-                       public xcb_event_type response_type;  /**< Type of the response */
-                       public byte pad0;           /**< Padding */
-                       public UInt16 sequence;       /**< Sequence number */
-                       [MarshalAs(UnmanagedType.ByValArray, SizeConst = 7)]
-                       UInt32[] pad;
-                       public UInt32 full_sequence;  /**< full sequence */
-               }
-
-               [StructLayout(LayoutKind.Explicit, Size = 32)]
-               struct xcb_event_t{
-                       [FieldOffsetAttribute(0)]
-                       public xcb_event_type response_type;
-
-                       [FieldOffsetAttribute(1)]
-                       public byte detail;
-                       [FieldOffsetAttribute(1)]
-                       public xcb_keycode_t keycode;
-                       [FieldOffsetAttribute(1)]
-                       public xcb_button_t button;
-
-                       [FieldOffsetAttribute(2)]
-                       public UInt16 sequence;
-                       [FieldOffsetAttribute(4)]
-                       public xcb_timestamp_t time;
-                       [FieldOffsetAttribute(8)]
-                       public xcb_window_t root;
-
-                       //expose event fields
-                       [FieldOffsetAttribute(4)]
-                       public xcb_window_t window;
-                       [FieldOffsetAttribute(8)]
-                       public UInt16 x;
-                       [FieldOffsetAttribute(10)]
-                       public UInt16 y;
-                       [FieldOffsetAttribute(12)]
-                       public UInt16 width;
-                       [FieldOffsetAttribute(14)]
-                       public UInt16 height;
-                       [FieldOffsetAttribute(14)]
-                       public UInt16 count;
-                       /// 
-
-                       [FieldOffsetAttribute(12)]
-                       public xcb_window_t evt;
-                       [FieldOffsetAttribute(16)]
-                       public xcb_window_t child;
-                       [FieldOffsetAttribute(20)]
-                       public UInt16 root_x;
-                       [FieldOffsetAttribute(22)]
-                       public UInt16 root_y;
-                       [FieldOffsetAttribute(24)]
-                       public UInt16 event_x;
-                       [FieldOffsetAttribute(26)]
-                       public UInt16 event_y;
-                       [FieldOffsetAttribute(28)]
-                       public UInt16 state;
-                       [FieldOffsetAttribute(30)]
-                       public byte same_screen;
-
-                       [FieldOffsetAttribute(31)]
-                       public byte same_screen_focus;
-               }
-
-               [StructLayout(LayoutKind.Sequential)]
-               struct xcb_key_press_event_t {
-                       public xcb_event_type response_type;
-                       public xcb_keycode_t detail;
-                       public UInt16 sequence;
-                       public xcb_timestamp_t time;
-                       public xcb_window_t root;
-                       public xcb_window_t evt;
-                       public xcb_window_t child;
-                       public UInt16 root_x;
-                       public UInt16 root_y;
-                       public UInt16 event_x;
-                       public UInt16 event_y;
-                       public UInt16 state;
-                       public byte same_screen;
-                       byte pad0;
-               }
-               [StructLayout(LayoutKind.Sequential)]
-               struct xcb_button_press_event_t {
-                       public xcb_event_type response_type;
-                       public xcb_button_t detail;
-                       public UInt16 sequence;
-                       public xcb_timestamp_t time;
-                       public xcb_window_t root;
-                       public xcb_window_t evt;
-                       public xcb_window_t child;
-                       public UInt16 root_x;
-                       public UInt16 root_y;
-                       public UInt16 event_x;
-                       public UInt16 event_y;
-                       public UInt16 state;
-                       public byte same_screen;
-                       byte pad0;
-               }
-
-               [StructLayout(LayoutKind.Sequential)]
-               struct xcb_motion_notify_event_t {
-                       public xcb_event_type response_type;
-                       public byte detail;
-                       public UInt16 sequence;
-                       public xcb_timestamp_t time;
-                       public xcb_window_t root;
-                       public xcb_window_t evt;
-                       public xcb_window_t child;
-                       public UInt16 root_x;
-                       public UInt16 root_y;
-                       public UInt16 event_x;
-                       public UInt16 event_y;
-                       public UInt16 state;
-                       public byte same_screen;
-                       byte pad0;
-               }
-               [StructLayout(LayoutKind.Sequential)]
-               struct xcb_iterator_t {
-                       public IntPtr data;
-                       public int rem;
-                       public int index;
-               }
-
-               [StructLayout(LayoutKind.Sequential)]
-               struct xcb_screen_t {
-                       public xcb_window_t root;
-                       public xcb_colormap_t default_colormap;
-                       public UInt32 white_pixel;
-                       public UInt32 black_pixel;
-                       public UInt32 current_input_masks;
-                       public UInt16 width_in_pixels;
-                       public UInt16 height_in_pixels;
-                       public UInt16 width_in_millimeters;
-                       public UInt16 height_in_millimeters;
-                       public UInt16 min_installed_maps;
-                       public UInt16 max_installed_maps;
-                       public xcb_visualid_t root_visual;
-                       public byte backing_stores;
-                       public byte save_unders;
-                       public byte root_depth;
-                       public byte allowed_depths_len;
-               }
-
-               [StructLayout(LayoutKind.Sequential)]
-               struct xcb_visualtype_t {
-                       public xcb_visualid_t visual_id;
-                       public byte _class;
-                       public byte  bits_per_rgb_value;
-                       public UInt16 colormap_entries;
-                       public UInt32 red_mask;
-                       public UInt32 green_mask;
-                       public UInt32 blue_mask;
-                       [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
-                       byte[] pad;
-               }
-
-               [StructLayout(LayoutKind.Sequential)]
-               struct xcb_generic_reply_t{
-                       public byte response_type;  /**< Type of the response */
-                       byte pad0;           /**< Padding */
-                       public UInt16 sequence;       /**< Sequence number */
-                       public UInt32 length;         /**< Length of the response */
-               }
-               #endregion
-
-
-               #region pinvoke XCB
-               [DllImportAttribute ("xcb")]
-               static extern IntPtr xcb_connect(string displayName, IntPtr screenNum);
-               [DllImportAttribute("xcb")]
-               static extern IntPtr xcb_get_setup(IntPtr connection);           
-               [DllImportAttribute("xcb")]
-               static extern IntPtr xcb_flush(IntPtr connection);
-               [DllImportAttribute("xcb")]
-               static extern UInt32 xcb_generate_id(IntPtr connection);
-
-               [DllImportAttribute("xcb")]
-               static extern xcb_iterator_t xcb_setup_roots_iterator(IntPtr setup);
-               [DllImportAttribute("xcb")]
-               static extern xcb_iterator_t xcb_screen_allowed_depths_iterator(IntPtr scr);
-               [DllImportAttribute("xcb")]
-               static extern xcb_iterator_t xcb_depth_visuals_iterator(IntPtr depth);
-
-               [DllImportAttribute("xcb")]
-               static extern void xcb_screen_next(ref xcb_iterator_t scr_iterator);
-               [DllImportAttribute("xcb")]
-               static extern void xcb_depth_next(ref xcb_iterator_t depth_iterator);
-               [DllImportAttribute("xcb")]
-               static extern void xcb_visualtype_next(ref xcb_iterator_t depth_visual_iterator);
-
-               [DllImportAttribute("xcb")]
-               static extern xcb_void_cookie_t xcb_create_window(IntPtr connection, byte depth, xcb_window_t win, UInt32 parent,
-                       Int16 x, Int16 y, UInt16 width, UInt16 height, UInt16 border,
-                       xcb_window_class_t _class, xcb_visualid_t visual, xcb_cw_t mask, IntPtr valueList);
-               [DllImportAttribute("xcb")]
-               static extern xcb_void_cookie_t xcb_map_window(IntPtr conn, xcb_window_t window);
-               [DllImportAttribute("xcb")]
-               static extern void xcb_disconnect(IntPtr connection);
-
-               [DllImportAttribute("xcb")]
-               static extern IntPtr xcb_poll_for_event(IntPtr connection);
-
-
-               #endregion
-
-               Interface iFace;
-
-               IntPtr conn;
-
-               XKB.XCBKeyboard Keyboard;
-
-
-               #region IBackend implementation
-               public void Init (Interface _iFace)
-               {
-                       iFace = _iFace;
-
-                       conn = xcb_connect (null, IntPtr.Zero);
-
-
-                       Keyboard = new  XKB.XCBKeyboard (conn, iFace);
-
-                       xcb_iterator_t scr_it = xcb_setup_roots_iterator (xcb_get_setup (conn));
-                       IntPtr screen = scr_it.data;
-
-                       xcb_screen_t scr = (xcb_screen_t)Marshal.PtrToStructure (screen, typeof(xcb_screen_t));
-
-                       xcb_window_t win = xcb_generate_id (conn);
-
-                       xcb_cw_t mask = xcb_cw_t.BACK_PIXEL | xcb_cw_t.EVENT_MASK;
-                       uint[] values = {
-                               scr.black_pixel,
-                               (uint)(
-                                       xcb_event_mask_t.EXPOSURE |
-                                       xcb_event_mask_t.POINTER_MOTION |
-                                       xcb_event_mask_t.BUTTON_PRESS |
-                                       xcb_event_mask_t.BUTTON_RELEASE |
-                                       xcb_event_mask_t.KEY_PRESS |
-                                       xcb_event_mask_t.KEY_RELEASE
-                               )
-                       };
-
-                       IntPtr intPtr = IntPtr.Zero;
-
-                       unsafe 
-                       {
-                               fixed(uint* pValues = values)
-                               intPtr = new IntPtr((void *) pValues);
-                               xcb_create_window (conn, XCB_COPY_FROM_PARENT, win, scr.root, 0,0,(ushort)iFace.ClientRectangle.Width, (ushort)iFace.ClientRectangle.Height,0,
-                                       xcb_window_class_t.INPUT_OUTPUT, scr.root_visual, mask, intPtr);
-                       }
-
-
-                       xcb_map_window (conn, win);
-
-                       xcb_flush (conn);
-
-
-                       IntPtr visual = findVisual (scr_it, scr.root_visual);
-
-                       loadCursors (); 
-
-                       iFace.surf = new Crow.Cairo.XcbSurface (conn, win, visual, iFace.ClientRectangle.Width, iFace.ClientRectangle.Height);
-               }
-
-               public void CleanUp ()
-               {
-                       Keyboard.Destroy ();
-
-                       xcb_disconnect (conn);  
-               }
-               public void Flush () {
-                       xcb_flush (conn);
-               }
-
-               public void ProcessEvents ()
-               {
-                       IntPtr evtPtr = xcb_poll_for_event (conn);
-                       if (evtPtr == IntPtr.Zero)
-                               return;
-                       xcb_event_t evt = (xcb_event_t)Marshal.PtrToStructure (evtPtr, typeof(xcb_event_t));
-
-                       switch (evt.response_type) {
-                       case xcb_event_type.EXPOSE:
-                               if (evt.width > 0)
-                                       iFace.ProcessResize (new Rectangle (0, 0, evt.width, evt.height));
-                               break;
-                       case xcb_event_type.MOTION_NOTIFY:
-                               iFace.ProcessMouseMove (evt.event_x, evt.event_y);
-                               break;
-                       case xcb_event_type.BUTTON_PRESS:
-                               if (evt.button == xcb_button_t.WheelUp)
-                                       iFace.ProcessMouseWheelChanged (Interface.WheelIncrement);
-                               else if(evt.button == xcb_button_t.WheelDown)
-                                       iFace.ProcessMouseWheelChanged (-Interface.WheelIncrement);
-                               else
-                                       iFace.ProcessMouseButtonDown ((MouseButton)(evt.detail - 1));                           
-                               break;
-                       case xcb_event_type.BUTTON_RELEASE:
-                               if (evt.button == xcb_button_t.WheelUp || evt.button == xcb_button_t.WheelDown)
-                                       break;
-                               iFace.ProcessMouseButtonUp ((MouseButton)(evt.detail - 1));
-                               break;
-                       case xcb_event_type.KEY_PRESS:
-                               Keyboard.HandleEvent (evt.keycode, true);
-                               break;
-                       case xcb_event_type.KEY_RELEASE:
-                               Keyboard.HandleEvent (evt.keycode, false);
-                               break;
-                       default:
-                               Console.WriteLine ("unknown event");
-                               break;
-                       }
-               }
-               public bool IsDown (Key key) {
-                       return false;
-               }
-               public bool Shift {
-                       get { return Keyboard.Shift; }
-               }
-               public bool Ctrl {
-                       get { return Keyboard.Ctrl; }
-               }
-               public bool Alt {
-                       get { return Keyboard.Alt;}
-               }
-               #endregion
-
-               void loadCursors ()
-               {
-                       //Load cursors
-                       XCursor.Cross = XCursorFile.Load (iFace, "#Crow.Images.Icons.Cursors.cross").Cursors [0];
-                       XCursor.Default = XCursorFile.Load (iFace, "#Crow.Images.Icons.Cursors.arrow").Cursors [0];
-                       XCursor.NW = XCursorFile.Load (iFace, "#Crow.Images.Icons.Cursors.top_left_corner").Cursors [0];
-                       XCursor.NE = XCursorFile.Load (iFace, "#Crow.Images.Icons.Cursors.top_right_corner").Cursors [0];
-                       XCursor.SW = XCursorFile.Load (iFace, "#Crow.Images.Icons.Cursors.bottom_left_corner").Cursors [0];
-                       XCursor.SE = XCursorFile.Load (iFace, "#Crow.Images.Icons.Cursors.bottom_right_corner").Cursors [0];
-                       XCursor.H = XCursorFile.Load (iFace, "#Crow.Images.Icons.Cursors.sb_h_double_arrow").Cursors [0];
-                       XCursor.V = XCursorFile.Load (iFace, "#Crow.Images.Icons.Cursors.sb_v_double_arrow").Cursors [0];
-                       XCursor.Text = XCursorFile.Load (iFace, "#Crow.Images.Icons.Cursors.ibeam").Cursors [0];
-               }
-
-               static IntPtr findVisual (xcb_iterator_t scr_it, xcb_visualid_t visualId){
-                       for (; scr_it.rem > 0; xcb_screen_next (ref scr_it)) {
-                               xcb_iterator_t depth_it = xcb_screen_allowed_depths_iterator (scr_it.data);
-                               for (; depth_it.rem > 0; xcb_depth_next (ref depth_it)) {
-                                       xcb_iterator_t visual_it = xcb_depth_visuals_iterator (depth_it.data);
-                                       for (; visual_it.rem > 0; xcb_visualtype_next (ref visual_it)) {
-                                               xcb_visualtype_t visual = (xcb_visualtype_t)Marshal.PtrToStructure (visual_it.data, typeof(xcb_visualtype_t));
-                                               if (visualId == visual.visual_id)
-                                                       return visual_it.data;
-                                       }
-                               }
-                       }
-                       return IntPtr.Zero;
-               }
-
-               public void SetCursor (MouseCursors newCur)
-               {
-                       //throw new NotImplementedException ();
-               }
-
-               public void SetCursorPosition (int x, int y)
-               {
-                       throw new NotImplementedException ();
-               }
-       }
-}
-
diff --git a/Crow/src/backends/xcb/XCBKeyboard.cs b/Crow/src/backends/xcb/XCBKeyboard.cs
deleted file mode 100644 (file)
index 5043ec3..0000000
+++ /dev/null
@@ -1,2605 +0,0 @@
-//
-// XCBKeyboard.cs
-//
-// Author:
-//       Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
-//
-// Copyright (c) 2013-2017 Jean-Philippe Bruyère
-//
-// 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.
-using System;
-using System.Runtime.InteropServices;
-
-namespace Crow.XKB
-{
-       using xkb_keycode_t = System.UInt32;
-       using xkb_mod_index_t = System.UInt32;
-
-       public class XCBKeyboard 
-       {
-               enum xkb_keysym : uint {
-                       NoSymbol                                                = 0x000000,
-                       VoidSymbol                                              = 0xffffff,
-                       BackSpace                                               = 0xff08,
-                       Tab                                                             = 0xff09,
-                       Linefeed                                                = 0xff0a,
-                       Clear                                                   = 0xff0b,
-                       Return                                                  = 0xff0d,
-                       Pause                                                   = 0xff13,
-                       Scroll_Lock                                             = 0xff14,
-                       Sys_Req                                                 = 0xff15,
-                       Escape                                                  = 0xff1b,
-                       Delete                                                  = 0xffff,
-                       Multi_key                                               = 0xff20,
-                       Codeinput                                               = 0xff37,
-                       SingleCandidate                                 = 0xff3c,
-                       MultipleCandidate                               = 0xff3d,
-                       PreviousCandidate                               = 0xff3e,
-                       Kanji                                                   = 0xff21,
-                       Muhenkan                                                = 0xff22,
-                       Henkan_Mode                                             = 0xff23,
-                       Henkan                                                  = 0xff23,
-                       Romaji                                                  = 0xff24,
-                       Hiragana                                                = 0xff25,
-                       Katakana                                                = 0xff26,
-                       Hiragana_Katakana                               = 0xff27,
-                       Zenkaku                                                 = 0xff28,
-                       Hankaku                                                 = 0xff29,
-                       Zenkaku_Hankaku                                 = 0xff2a,
-                       Touroku                                                 = 0xff2b,
-                       Massyo                                                  = 0xff2c,
-                       Kana_Lock                                               = 0xff2d,
-                       Kana_Shift                                              = 0xff2e,
-                       Eisu_Shift                                              = 0xff2f,
-                       Eisu_toggle                                             = 0xff30,
-                       Kanji_Bangou                                    = 0xff37,
-                       Zen_Koho                                                = 0xff3d,
-                       Mae_Koho                                                = 0xff3e,
-                       Home                                                    = 0xff50,
-                       Left                                                    = 0xff51,
-                       Up                                                              = 0xff52,
-                       Right                                                   = 0xff53,
-                       Down                                                    = 0xff54,
-                       Prior                                                   = 0xff55,
-                       Page_Up                                                 = 0xff55,
-                       Next                                                    = 0xff56,
-                       Page_Down                                               = 0xff56,
-                       End                                                             = 0xff57,
-                       Begin                                                   = 0xff58,
-                       Select                                                  = 0xff60,
-                       Print                                                   = 0xff61,
-                       Execute                                                 = 0xff62,
-                       Insert                                                  = 0xff63,
-                       Undo                                                    = 0xff65,
-                       Redo                                                    = 0xff66,
-                       Menu                                                    = 0xff67,
-                       Find                                                    = 0xff68,
-                       Cancel                                                  = 0xff69,
-                       Help                                                    = 0xff6a,
-                       Break                                                   = 0xff6b,
-                       Mode_switch                                             = 0xff7e,
-                       script_switch                                   = 0xff7e,
-                       Num_Lock                                                = 0xff7f,
-                       KP_Space                                                = 0xff80,
-                       KP_Tab                                                  = 0xff89,
-                       KP_Enter                                                = 0xff8d,
-                       KP_F1                                                   = 0xff91,
-                       KP_F2                                                   = 0xff92,
-                       KP_F3                                                   = 0xff93,
-                       KP_F4                                                   = 0xff94,
-                       KP_Home                                                 = 0xff95,
-                       KP_Left                                                 = 0xff96,
-                       KP_Up                                                   = 0xff97,
-                       KP_Right                                                = 0xff98,
-                       KP_Down                                                 = 0xff99,
-                       KP_Prior                                                = 0xff9a,
-                       KP_Page_Up                                              = 0xff9a,
-                       KP_Next                                                 = 0xff9b,
-                       KP_Page_Down                                    = 0xff9b,
-                       KP_End                                                  = 0xff9c,
-                       KP_Begin                                                = 0xff9d,
-                       KP_Insert                                               = 0xff9e,
-                       KP_Delete                                               = 0xff9f,
-                       KP_Equal                                                = 0xffbd,
-                       KP_Multiply                                             = 0xffaa,
-                       KP_Add                                                  = 0xffab,
-                       KP_Separator                                    = 0xffac,
-                       KP_Subtract                                             = 0xffad,
-                       KP_Decimal                                              = 0xffae,
-                       KP_Divide                                               = 0xffaf,
-                       KP_0                                                    = 0xffb0,
-                       KP_1                                                    = 0xffb1,
-                       KP_2                                                    = 0xffb2,
-                       KP_3                                                    = 0xffb3,
-                       KP_4                                                    = 0xffb4,
-                       KP_5                                                    = 0xffb5,
-                       KP_6                                                    = 0xffb6,
-                       KP_7                                                    = 0xffb7,
-                       KP_8                                                    = 0xffb8,
-                       KP_9                                                    = 0xffb9,
-                       F1                                                              = 0xffbe,
-                       F2                                                              = 0xffbf,
-                       F3                                                              = 0xffc0,
-                       F4                                                              = 0xffc1,
-                       F5                                                              = 0xffc2,
-                       F6                                                              = 0xffc3,
-                       F7                                                              = 0xffc4,
-                       F8                                                              = 0xffc5,
-                       F9                                                              = 0xffc6,
-                       F10                                                             = 0xffc7,
-                       F11                                                             = 0xffc8,
-                       L1                                                              = 0xffc8,
-                       F12                                                             = 0xffc9,
-                       L2                                                              = 0xffc9,
-                       F13                                                             = 0xffca,
-                       L3                                                              = 0xffca,
-                       F14                                                             = 0xffcb,
-                       L4                                                              = 0xffcb,
-                       F15                                                             = 0xffcc,
-                       L5                                                              = 0xffcc,
-                       F16                                                             = 0xffcd,
-                       L6                                                              = 0xffcd,
-                       F17                                                             = 0xffce,
-                       L7                                                              = 0xffce,
-                       F18                                                             = 0xffcf,
-                       L8                                                              = 0xffcf,
-                       F19                                                             = 0xffd0,
-                       L9                                                              = 0xffd0,
-                       F20                                                             = 0xffd1,
-                       L10                                                             = 0xffd1,
-                       F21                                                             = 0xffd2,
-                       R1                                                              = 0xffd2,
-                       F22                                                             = 0xffd3,
-                       R2                                                              = 0xffd3,
-                       F23                                                             = 0xffd4,
-                       R3                                                              = 0xffd4,
-                       F24                                                             = 0xffd5,
-                       R4                                                              = 0xffd5,
-                       F25                                                             = 0xffd6,
-                       R5                                                              = 0xffd6,
-                       F26                                                             = 0xffd7,
-                       R6                                                              = 0xffd7,
-                       F27                                                             = 0xffd8,
-                       R7                                                              = 0xffd8,
-                       F28                                                             = 0xffd9,
-                       R8                                                              = 0xffd9,
-                       F29                                                             = 0xffda,
-                       R9                                                              = 0xffda,
-                       F30                                                             = 0xffdb,
-                       R10                                                             = 0xffdb,
-                       F31                                                             = 0xffdc,
-                       R11                                                             = 0xffdc,
-                       F32                                                             = 0xffdd,
-                       R12                                                             = 0xffdd,
-                       F33                                                             = 0xffde,
-                       R13                                                             = 0xffde,
-                       F34                                                             = 0xffdf,
-                       R14                                                             = 0xffdf,
-                       F35                                                             = 0xffe0,
-                       R15                                                             = 0xffe0,
-                       Shift_L                                                 = 0xffe1,
-                       Shift_R                                                 = 0xffe2,
-                       Control_L                                               = 0xffe3,
-                       Control_R                                               = 0xffe4,
-                       Caps_Lock                                               = 0xffe5,
-                       Shift_Lock                                              = 0xffe6,
-                       Meta_L                                                  = 0xffe7,
-                       Meta_R                                                  = 0xffe8,
-                       Alt_L                                                   = 0xffe9,
-                       Alt_R                                                   = 0xffea,
-                       Super_L                                                 = 0xffeb,
-                       Super_R                                                 = 0xffec,
-                       Hyper_L                                                 = 0xffed,
-                       Hyper_R                                                 = 0xffee,
-                       ISO_Lock                                                = 0xfe01,
-                       ISO_Level2_Latch                                = 0xfe02,
-                       ISO_Level3_Shift                                = 0xfe03,
-                       ISO_Level3_Latch                                = 0xfe04,
-                       ISO_Level3_Lock                                 = 0xfe05,
-                       ISO_Level5_Shift                                = 0xfe11,
-                       ISO_Level5_Latch                                = 0xfe12,
-                       ISO_Level5_Lock                                 = 0xfe13,
-                       ISO_Group_Shift                                 = 0xff7e,
-                       ISO_Group_Latch                                 = 0xfe06,
-                       ISO_Group_Lock                                  = 0xfe07,
-                       ISO_Next_Group                                  = 0xfe08,
-                       ISO_Next_Group_Lock                             = 0xfe09,
-                       ISO_Prev_Group                                  = 0xfe0a,
-                       ISO_Prev_Group_Lock                             = 0xfe0b,
-                       ISO_First_Group                                 = 0xfe0c,
-                       ISO_First_Group_Lock                    = 0xfe0d,
-                       ISO_Last_Group                                  = 0xfe0e,
-                       ISO_Last_Group_Lock                             = 0xfe0f,
-                       ISO_Left_Tab                                    = 0xfe20,
-                       ISO_Move_Line_Up                                = 0xfe21,
-                       ISO_Move_Line_Down                              = 0xfe22,
-                       ISO_Partial_Line_Up                             = 0xfe23,
-                       ISO_Partial_Line_Down                   = 0xfe24,
-                       ISO_Partial_Space_Left                  = 0xfe25,
-                       ISO_Partial_Space_Right                 = 0xfe26,
-                       ISO_Set_Margin_Left                             = 0xfe27,
-                       ISO_Set_Margin_Right                    = 0xfe28,
-                       ISO_Release_Margin_Left                 = 0xfe29,
-                       ISO_Release_Margin_Right                = 0xfe2a,
-                       ISO_Release_Both_Margins                = 0xfe2b,
-                       ISO_Fast_Cursor_Left                    = 0xfe2c,
-                       ISO_Fast_Cursor_Right                   = 0xfe2d,
-                       ISO_Fast_Cursor_Up                              = 0xfe2e,
-                       ISO_Fast_Cursor_Down                    = 0xfe2f,
-                       ISO_Continuous_Underline                = 0xfe30,
-                       ISO_Discontinuous_Underline             = 0xfe31,
-                       ISO_Emphasize                                   = 0xfe32,
-                       ISO_Center_Object                               = 0xfe33,
-                       ISO_Enter                                               = 0xfe34,
-                       dead_grave                                              = 0xfe50,
-                       dead_acute                                              = 0xfe51,
-                       dead_circumflex                                 = 0xfe52,
-                       dead_tilde                                              = 0xfe53,
-                       dead_perispomeni                                = 0xfe53,
-                       dead_macron                                             = 0xfe54,
-                       dead_breve                                              = 0xfe55,
-                       dead_abovedot                                   = 0xfe56,
-                       dead_diaeresis                                  = 0xfe57,
-                       dead_abovering                                  = 0xfe58,
-                       dead_doubleacute                                = 0xfe59,
-                       dead_caron                                              = 0xfe5a,
-                       dead_cedilla                                    = 0xfe5b,
-                       dead_ogonek                                             = 0xfe5c,
-                       dead_iota                                               = 0xfe5d,
-                       dead_voiced_sound                               = 0xfe5e,
-                       dead_semivoiced_sound                   = 0xfe5f,
-                       dead_belowdot                                   = 0xfe60,
-                       dead_hook                                               = 0xfe61,
-                       dead_horn                                               = 0xfe62,
-                       dead_stroke                                             = 0xfe63,
-                       dead_abovecomma                                 = 0xfe64,
-                       dead_psili                                              = 0xfe64,
-                       dead_abovereversedcomma                 = 0xfe65,
-                       dead_dasia                                              = 0xfe65,
-                       dead_doublegrave                                = 0xfe66,
-                       dead_belowring                                  = 0xfe67,
-                       dead_belowmacron                                = 0xfe68,
-                       dead_belowcircumflex                    = 0xfe69,
-                       dead_belowtilde                                 = 0xfe6a,
-                       dead_belowbreve                                 = 0xfe6b,
-                       dead_belowdiaeresis                             = 0xfe6c,
-                       dead_invertedbreve                              = 0xfe6d,
-                       dead_belowcomma                                 = 0xfe6e,
-                       dead_currency                                   = 0xfe6f,
-                       dead_lowline                                    = 0xfe90,
-                       dead_aboveverticalline                  = 0xfe91,
-                       dead_belowverticalline                  = 0xfe92,
-                       dead_longsolidusoverlay                 = 0xfe93,
-                       dead_a                                                  = 0xfe80,
-                       dead_A                                                  = 0xfe81,
-                       dead_e                                                  = 0xfe82,
-                       dead_E                                                  = 0xfe83,
-                       dead_i                                                  = 0xfe84,
-                       dead_I                                                  = 0xfe85,
-                       dead_o                                                  = 0xfe86,
-                       dead_O                                                  = 0xfe87,
-                       dead_u                                                  = 0xfe88,
-                       dead_U                                                  = 0xfe89,
-                       dead_small_schwa                                = 0xfe8a,
-                       dead_capital_schwa                              = 0xfe8b,
-                       dead_greek                                              = 0xfe8c,
-                       First_Virtual_Screen                    = 0xfed0,
-                       Prev_Virtual_Screen                             = 0xfed1,
-                       Next_Virtual_Screen                             = 0xfed2,
-                       Last_Virtual_Screen                             = 0xfed4,
-                       Terminate_Server                                = 0xfed5,
-                       AccessX_Enable                                  = 0xfe70,
-                       AccessX_Feedback_Enable                 = 0xfe71,
-                       RepeatKeys_Enable                               = 0xfe72,
-                       SlowKeys_Enable                                 = 0xfe73,
-                       BounceKeys_Enable                               = 0xfe74,
-                       StickyKeys_Enable                               = 0xfe75,
-                       MouseKeys_Enable                                = 0xfe76,
-                       MouseKeys_Accel_Enable                  = 0xfe77,
-                       Overlay1_Enable                                 = 0xfe78,
-                       Overlay2_Enable                                 = 0xfe79,
-                       AudibleBell_Enable                              = 0xfe7a,
-                       Pointer_Left                                    = 0xfee0,
-                       Pointer_Right                                   = 0xfee1,
-                       Pointer_Up                                              = 0xfee2,
-                       Pointer_Down                                    = 0xfee3,
-                       Pointer_UpLeft                                  = 0xfee4,
-                       Pointer_UpRight                                 = 0xfee5,
-                       Pointer_DownLeft                                = 0xfee6,
-                       Pointer_DownRight                               = 0xfee7,
-                       Pointer_Button_Dflt                             = 0xfee8,
-                       Pointer_Button1                                 = 0xfee9,
-                       Pointer_Button2                                 = 0xfeea,
-                       Pointer_Button3                                 = 0xfeeb,
-                       Pointer_Button4                                 = 0xfeec,
-                       Pointer_Button5                                 = 0xfeed,
-                       Pointer_DblClick_Dflt                   = 0xfeee,
-                       Pointer_DblClick1                               = 0xfeef,
-                       Pointer_DblClick2                               = 0xfef0,
-                       Pointer_DblClick3                               = 0xfef1,
-                       Pointer_DblClick4                               = 0xfef2,
-                       Pointer_DblClick5                               = 0xfef3,
-                       Pointer_Drag_Dflt                               = 0xfef4,
-                       Pointer_Drag1                                   = 0xfef5,
-                       Pointer_Drag2                                   = 0xfef6,
-                       Pointer_Drag3                                   = 0xfef7,
-                       Pointer_Drag4                                   = 0xfef8,
-                       Pointer_Drag5                                   = 0xfefd,
-                       Pointer_EnableKeys                              = 0xfef9,
-                       Pointer_Accelerate                              = 0xfefa,
-                       Pointer_DfltBtnNext                             = 0xfefb,
-                       Pointer_DfltBtnPrev                             = 0xfefc,
-                       ch                                                              = 0xfea0,
-                       Ch                                                              = 0xfea1,
-                       CH                                                              = 0xfea2,
-                       c_h                                                             = 0xfea3,
-                       C_h                                                             = 0xfea4,
-                       C_H                                                             = 0xfea5,
-                       key_3270_Duplicate                              = 0xfd01,
-                       key_3270_FieldMark                              = 0xfd02,
-                       key_3270_Right2                                 = 0xfd03,
-                       key_3270_Left2                                  = 0xfd04,
-                       key_3270_BackTab                                = 0xfd05,
-                       key_3270_EraseEOF                               = 0xfd06,
-                       key_3270_EraseInput                             = 0xfd07,
-                       key_3270_Reset                                  = 0xfd08,
-                       key_3270_Quit                                   = 0xfd09,
-                       key_3270_PA1                                    = 0xfd0a,
-                       key_3270_PA2                                    = 0xfd0b,
-                       key_3270_PA3                                    = 0xfd0c,
-                       key_3270_Test                                   = 0xfd0d,
-                       key_3270_Attn                                   = 0xfd0e,
-                       key_3270_CursorBlink                    = 0xfd0f,
-                       key_3270_AltCursor                              = 0xfd10,
-                       key_3270_KeyClick                               = 0xfd11,
-                       key_3270_Jump                                   = 0xfd12,
-                       key_3270_Ident                                  = 0xfd13,
-                       key_3270_Rule                                   = 0xfd14,
-                       key_3270_Copy                                   = 0xfd15,
-                       key_3270_Play                                   = 0xfd16,
-                       key_3270_Setup                                  = 0xfd17,
-                       key_3270_Record                                 = 0xfd18,
-                       key_3270_ChangeScreen                   = 0xfd19,
-                       key_3270_DeleteWord                             = 0xfd1a,
-                       key_3270_ExSelect                               = 0xfd1b,
-                       key_3270_CursorSelect                   = 0xfd1c,
-                       key_3270_PrintScreen                    = 0xfd1d,
-                       key_3270_Enter                                  = 0xfd1e,
-                       space                                                   = 0x0020,
-                       exclam                                                  = 0x0021,
-                       quotedbl                                                = 0x0022,
-                       numbersign                                              = 0x0023,
-                       dollar                                                  = 0x0024,
-                       percent                                                 = 0x0025,
-                       ampersand                                               = 0x0026,
-                       apostrophe                                              = 0x0027,
-                       quoteright                                              = 0x0027,
-                       parenleft                                               = 0x0028,
-                       parenright                                              = 0x0029,
-                       asterisk                                                = 0x002a,
-                       plus                                                    = 0x002b,
-                       comma                                                   = 0x002c,
-                       minus                                                   = 0x002d,
-                       period                                                  = 0x002e,
-                       slash                                                   = 0x002f,
-                       key_0                                                   = 0x0030,
-                       key_1                                                   = 0x0031,
-                       key_2                                                   = 0x0032,
-                       key_3                                                   = 0x0033,
-                       key_4                                                   = 0x0034,
-                       key_5                                                   = 0x0035,
-                       key_6                                                   = 0x0036,
-                       key_7                                                   = 0x0037,
-                       key_8                                                   = 0x0038,
-                       key_9                                                   = 0x0039,
-                       colon                                                   = 0x003a,
-                       semicolon                                               = 0x003b,
-                       less                                                    = 0x003c,
-                       equal                                                   = 0x003d,
-                       greater                                                 = 0x003e,
-                       question                                                = 0x003f,
-                       at                                                              = 0x0040,
-                       A                                                               = 0x0041,
-                       B                                                               = 0x0042,
-                       C                                                               = 0x0043,
-                       D                                                               = 0x0044,
-                       E                                                               = 0x0045,
-                       F                                                               = 0x0046,
-                       G                                                               = 0x0047,
-                       H                                                               = 0x0048,
-                       I                                                               = 0x0049,
-                       J                                                               = 0x004a,
-                       K                                                               = 0x004b,
-                       L                                                               = 0x004c,
-                       M                                                               = 0x004d,
-                       N                                                               = 0x004e,
-                       O                                                               = 0x004f,
-                       P                                                               = 0x0050,
-                       Q                                                               = 0x0051,
-                       R                                                               = 0x0052,
-                       S                                                               = 0x0053,
-                       T                                                               = 0x0054,
-                       U                                                               = 0x0055,
-                       V                                                               = 0x0056,
-                       W                                                               = 0x0057,
-                       X                                                               = 0x0058,
-                       Y                                                               = 0x0059,
-                       Z                                                               = 0x005a,
-                       bracketleft                                             = 0x005b,
-                       backslash                                               = 0x005c,
-                       bracketright                                    = 0x005d,
-                       asciicircum                                             = 0x005e,
-                       underscore                                              = 0x005f,
-                       grave                                                   = 0x0060,
-                       quoteleft                                               = 0x0060,
-                       a                                                               = 0x0061,
-                       b                                                               = 0x0062,
-                       c                                                               = 0x0063,
-                       d                                                               = 0x0064,
-                       e                                                               = 0x0065,
-                       f                                                               = 0x0066,
-                       g                                                               = 0x0067,
-                       h                                                               = 0x0068,
-                       i                                                               = 0x0069,
-                       j                                                               = 0x006a,
-                       k                                                               = 0x006b,
-                       l                                                               = 0x006c,
-                       m                                                               = 0x006d,
-                       n                                                               = 0x006e,
-                       o                                                               = 0x006f,
-                       p                                                               = 0x0070,
-                       q                                                               = 0x0071,
-                       r                                                               = 0x0072,
-                       s                                                               = 0x0073,
-                       t                                                               = 0x0074,
-                       u                                                               = 0x0075,
-                       v                                                               = 0x0076,
-                       w                                                               = 0x0077,
-                       x                                                               = 0x0078,
-                       y                                                               = 0x0079,
-                       z                                                               = 0x007a,
-                       braceleft                                               = 0x007b,
-                       bar                                                             = 0x007c,
-                       braceright                                              = 0x007d,
-                       asciitilde                                              = 0x007e,
-                       nobreakspace                                    = 0x00a0,
-                       exclamdown                                              = 0x00a1,
-                       cent                                                    = 0x00a2,
-                       sterling                                                = 0x00a3,
-                       currency                                                = 0x00a4,
-                       yen                                                             = 0x00a5,
-                       brokenbar                                               = 0x00a6,
-                       section                                                 = 0x00a7,
-                       diaeresis                                               = 0x00a8,
-                       copyright                                               = 0x00a9,
-                       ordfeminine                                             = 0x00aa,
-                       guillemotleft                                   = 0x00ab,
-                       notsign                                                 = 0x00ac,
-                       hyphen                                                  = 0x00ad,
-                       registered                                              = 0x00ae,
-                       macron                                                  = 0x00af,
-                       degree                                                  = 0x00b0,
-                       plusminus                                               = 0x00b1,
-                       twosuperior                                             = 0x00b2,
-                       threesuperior                                   = 0x00b3,
-                       acute                                                   = 0x00b4,
-                       mu                                                              = 0x00b5,
-                       paragraph                                               = 0x00b6,
-                       periodcentered                                  = 0x00b7,
-                       cedilla                                                 = 0x00b8,
-                       onesuperior                                             = 0x00b9,
-                       masculine                                               = 0x00ba,
-                       guillemotright                                  = 0x00bb,
-                       onequarter                                              = 0x00bc,
-                       onehalf                                                 = 0x00bd,
-                       threequarters                                   = 0x00be,
-                       questiondown                                    = 0x00bf,
-                       Agrave                                                  = 0x00c0,
-                       Aacute                                                  = 0x00c1,
-                       Acircumflex                                             = 0x00c2,
-                       Atilde                                                  = 0x00c3,
-                       Adiaeresis                                              = 0x00c4,
-                       Aring                                                   = 0x00c5,
-                       AE                                                              = 0x00c6,
-                       Ccedilla                                                = 0x00c7,
-                       Egrave                                                  = 0x00c8,
-                       Eacute                                                  = 0x00c9,
-                       Ecircumflex                                             = 0x00ca,
-                       Ediaeresis                                              = 0x00cb,
-                       Igrave                                                  = 0x00cc,
-                       Iacute                                                  = 0x00cd,
-                       Icircumflex                                             = 0x00ce,
-                       Idiaeresis                                              = 0x00cf,
-                       ETH                                                             = 0x00d0,
-                       Eth                                                             = 0x00d0,
-                       Ntilde                                                  = 0x00d1,
-                       Ograve                                                  = 0x00d2,
-                       Oacute                                                  = 0x00d3,
-                       Ocircumflex                                             = 0x00d4,
-                       Otilde                                                  = 0x00d5,
-                       Odiaeresis                                              = 0x00d6,
-                       multiply                                                = 0x00d7,
-                       Oslash                                                  = 0x00d8,
-                       Ooblique                                                = 0x00d8,
-                       Ugrave                                                  = 0x00d9,
-                       Uacute                                                  = 0x00da,
-                       Ucircumflex                                             = 0x00db,
-                       Udiaeresis                                              = 0x00dc,
-                       Yacute                                                  = 0x00dd,
-                       THORN                                                   = 0x00de,
-                       Thorn                                                   = 0x00de,
-                       ssharp                                                  = 0x00df,
-                       agrave                                                  = 0x00e0,
-                       aacute                                                  = 0x00e1,
-                       acircumflex                                             = 0x00e2,
-                       atilde                                                  = 0x00e3,
-                       adiaeresis                                              = 0x00e4,
-                       aring                                                   = 0x00e5,
-                       ae                                                              = 0x00e6,
-                       ccedilla                                                = 0x00e7,
-                       egrave                                                  = 0x00e8,
-                       eacute                                                  = 0x00e9,
-                       ecircumflex                                             = 0x00ea,
-                       ediaeresis                                              = 0x00eb,
-                       igrave                                                  = 0x00ec,
-                       iacute                                                  = 0x00ed,
-                       icircumflex                                             = 0x00ee,
-                       idiaeresis                                              = 0x00ef,
-                       eth                                                             = 0x00f0,
-                       ntilde                                                  = 0x00f1,
-                       ograve                                                  = 0x00f2,
-                       oacute                                                  = 0x00f3,
-                       ocircumflex                                             = 0x00f4,
-                       otilde                                                  = 0x00f5,
-                       odiaeresis                                              = 0x00f6,
-                       division                                                = 0x00f7,
-                       oslash                                                  = 0x00f8,
-                       ooblique                                                = 0x00f8,
-                       ugrave                                                  = 0x00f9,
-                       uacute                                                  = 0x00fa,
-                       ucircumflex                                             = 0x00fb,
-                       udiaeresis                                              = 0x00fc,
-                       yacute                                                  = 0x00fd,
-                       thorn                                                   = 0x00fe,
-                       ydiaeresis                                              = 0x00ff,
-                       Aogonek                                                 = 0x01a1,
-                       breve                                                   = 0x01a2,
-                       Lstroke                                                 = 0x01a3,
-                       Lcaron                                                  = 0x01a5,
-                       Sacute                                                  = 0x01a6,
-                       Scaron                                                  = 0x01a9,
-                       Scedilla                                                = 0x01aa,
-                       Tcaron                                                  = 0x01ab,
-                       Zacute                                                  = 0x01ac,
-                       Zcaron                                                  = 0x01ae,
-                       Zabovedot                                               = 0x01af,
-                       aogonek                                                 = 0x01b1,
-                       ogonek                                                  = 0x01b2,
-                       lstroke                                                 = 0x01b3,
-                       lcaron                                                  = 0x01b5,
-                       sacute                                                  = 0x01b6,
-                       caron                                                   = 0x01b7,
-                       scaron                                                  = 0x01b9,
-                       scedilla                                                = 0x01ba,
-                       tcaron                                                  = 0x01bb,
-                       zacute                                                  = 0x01bc,
-                       doubleacute                                             = 0x01bd,
-                       zcaron                                                  = 0x01be,
-                       zabovedot                                               = 0x01bf,
-                       Racute                                                  = 0x01c0,
-                       Abreve                                                  = 0x01c3,
-                       Lacute                                                  = 0x01c5,
-                       Cacute                                                  = 0x01c6,
-                       Ccaron                                                  = 0x01c8,
-                       Eogonek                                                 = 0x01ca,
-                       Ecaron                                                  = 0x01cc,
-                       Dcaron                                                  = 0x01cf,
-                       Dstroke                                                 = 0x01d0,
-                       Nacute                                                  = 0x01d1,
-                       Ncaron                                                  = 0x01d2,
-                       Odoubleacute                                    = 0x01d5,
-                       Rcaron                                                  = 0x01d8,
-                       Uring                                                   = 0x01d9,
-                       Udoubleacute                                    = 0x01db,
-                       Tcedilla                                                = 0x01de,
-                       racute                                                  = 0x01e0,
-                       abreve                                                  = 0x01e3,
-                       lacute                                                  = 0x01e5,
-                       cacute                                                  = 0x01e6,
-                       ccaron                                                  = 0x01e8,
-                       eogonek                                                 = 0x01ea,
-                       ecaron                                                  = 0x01ec,
-                       dcaron                                                  = 0x01ef,
-                       dstroke                                                 = 0x01f0,
-                       nacute                                                  = 0x01f1,
-                       ncaron                                                  = 0x01f2,
-                       odoubleacute                                    = 0x01f5,
-                       rcaron                                                  = 0x01f8,
-                       uring                                                   = 0x01f9,
-                       udoubleacute                                    = 0x01fb,
-                       tcedilla                                                = 0x01fe,
-                       abovedot                                                = 0x01ff,
-                       Hstroke                                                 = 0x02a1,
-                       Hcircumflex                                             = 0x02a6,
-                       Iabovedot                                               = 0x02a9,
-                       Gbreve                                                  = 0x02ab,
-                       Jcircumflex                                             = 0x02ac,
-                       hstroke                                                 = 0x02b1,
-                       hcircumflex                                             = 0x02b6,
-                       idotless                                                = 0x02b9,
-                       gbreve                                                  = 0x02bb,
-                       jcircumflex                                             = 0x02bc,
-                       Cabovedot                                               = 0x02c5,
-                       Ccircumflex                                             = 0x02c6,
-                       Gabovedot                                               = 0x02d5,
-                       Gcircumflex                                             = 0x02d8,
-                       Ubreve                                                  = 0x02dd,
-                       Scircumflex                                             = 0x02de,
-                       cabovedot                                               = 0x02e5,
-                       ccircumflex                                             = 0x02e6,
-                       gabovedot                                               = 0x02f5,
-                       gcircumflex                                             = 0x02f8,
-                       ubreve                                                  = 0x02fd,
-                       scircumflex                                             = 0x02fe,
-                       kra                                                             = 0x03a2,
-                       kappa                                                   = 0x03a2,
-                       Rcedilla                                                = 0x03a3,
-                       Itilde                                                  = 0x03a5,
-                       Lcedilla                                                = 0x03a6,
-                       Emacron                                                 = 0x03aa,
-                       Gcedilla                                                = 0x03ab,
-                       Tslash                                                  = 0x03ac,
-                       rcedilla                                                = 0x03b3,
-                       itilde                                                  = 0x03b5,
-                       lcedilla                                                = 0x03b6,
-                       emacron                                                 = 0x03ba,
-                       gcedilla                                                = 0x03bb,
-                       tslash                                                  = 0x03bc,
-                       ENG                                                             = 0x03bd,
-                       eng                                                             = 0x03bf,
-                       Amacron                                                 = 0x03c0,
-                       Iogonek                                                 = 0x03c7,
-                       Eabovedot                                               = 0x03cc,
-                       Imacron                                                 = 0x03cf,
-                       Ncedilla                                                = 0x03d1,
-                       Omacron                                                 = 0x03d2,
-                       Kcedilla                                                = 0x03d3,
-                       Uogonek                                                 = 0x03d9,
-                       Utilde                                                  = 0x03dd,
-                       Umacron                                                 = 0x03de,
-                       amacron                                                 = 0x03e0,
-                       iogonek                                                 = 0x03e7,
-                       eabovedot                                               = 0x03ec,
-                       imacron                                                 = 0x03ef,
-                       ncedilla                                                = 0x03f1,
-                       omacron                                                 = 0x03f2,
-                       kcedilla                                                = 0x03f3,
-                       uogonek                                                 = 0x03f9,
-                       utilde                                                  = 0x03fd,
-                       umacron                                                 = 0x03fe,
-                       Wcircumflex                                             = 0x1000174,
-                       wcircumflex                                             = 0x1000175,
-                       Ycircumflex                                             = 0x1000176,
-                       ycircumflex                                             = 0x1000177,
-                       Babovedot                                               = 0x1001e02,
-                       babovedot                                               = 0x1001e03,
-                       Dabovedot                                               = 0x1001e0a,
-                       dabovedot                                               = 0x1001e0b,
-                       Fabovedot                                               = 0x1001e1e,
-                       fabovedot                                               = 0x1001e1f,
-                       Mabovedot                                               = 0x1001e40,
-                       mabovedot                                               = 0x1001e41,
-                       Pabovedot                                               = 0x1001e56,
-                       pabovedot                                               = 0x1001e57,
-                       Sabovedot                                               = 0x1001e60,
-                       sabovedot                                               = 0x1001e61,
-                       Tabovedot                                               = 0x1001e6a,
-                       tabovedot                                               = 0x1001e6b,
-                       Wgrave                                                  = 0x1001e80,
-                       wgrave                                                  = 0x1001e81,
-                       Wacute                                                  = 0x1001e82,
-                       wacute                                                  = 0x1001e83,
-                       Wdiaeresis                                              = 0x1001e84,
-                       wdiaeresis                                              = 0x1001e85,
-                       Ygrave                                                  = 0x1001ef2,
-                       ygrave                                                  = 0x1001ef3,
-                       OE                                                              = 0x13bc,
-                       oe                                                              = 0x13bd,
-                       Ydiaeresis                                              = 0x13be,
-                       overline                                                = 0x047e,
-                       kana_fullstop                                   = 0x04a1,
-                       kana_openingbracket                             = 0x04a2,
-                       kana_closingbracket                             = 0x04a3,
-                       kana_comma                                              = 0x04a4,
-                       kana_conjunctive                                = 0x04a5,
-                       kana_middledot                                  = 0x04a5,
-                       kana_WO                                                 = 0x04a6,
-                       kana_a                                                  = 0x04a7,
-                       kana_i                                                  = 0x04a8,
-                       kana_u                                                  = 0x04a9,
-                       kana_e                                                  = 0x04aa,
-                       kana_o                                                  = 0x04ab,
-                       kana_ya                                                 = 0x04ac,
-                       kana_yu                                                 = 0x04ad,
-                       kana_yo                                                 = 0x04ae,
-                       kana_tsu                                                = 0x04af,
-                       kana_tu                                                 = 0x04af,
-                       prolongedsound                                  = 0x04b0,
-                       kana_A                                                  = 0x04b1,
-                       kana_I                                                  = 0x04b2,
-                       kana_U                                                  = 0x04b3,
-                       kana_E                                                  = 0x04b4,
-                       kana_O                                                  = 0x04b5,
-                       kana_KA                                                 = 0x04b6,
-                       kana_KI                                                 = 0x04b7,
-                       kana_KU                                                 = 0x04b8,
-                       kana_KE                                                 = 0x04b9,
-                       kana_KO                                                 = 0x04ba,
-                       kana_SA                                                 = 0x04bb,
-                       kana_SHI                                                = 0x04bc,
-                       kana_SU                                                 = 0x04bd,
-                       kana_SE                                                 = 0x04be,
-                       kana_SO                                                 = 0x04bf,
-                       kana_TA                                                 = 0x04c0,
-                       kana_CHI                                                = 0x04c1,
-                       kana_TI                                                 = 0x04c1,
-                       kana_TSU                                                = 0x04c2,
-                       kana_TU                                                 = 0x04c2,
-                       kana_TE                                                 = 0x04c3,
-                       kana_TO                                                 = 0x04c4,
-                       kana_NA                                                 = 0x04c5,
-                       kana_NI                                                 = 0x04c6,
-                       kana_NU                                                 = 0x04c7,
-                       kana_NE                                                 = 0x04c8,
-                       kana_NO                                                 = 0x04c9,
-                       kana_HA                                                 = 0x04ca,
-                       kana_HI                                                 = 0x04cb,
-                       kana_FU                                                 = 0x04cc,
-                       kana_HU                                                 = 0x04cc,
-                       kana_HE                                                 = 0x04cd,
-                       kana_HO                                                 = 0x04ce,
-                       kana_MA                                                 = 0x04cf,
-                       kana_MI                                                 = 0x04d0,
-                       kana_MU                                                 = 0x04d1,
-                       kana_ME                                                 = 0x04d2,
-                       kana_MO                                                 = 0x04d3,
-                       kana_YA                                                 = 0x04d4,
-                       kana_YU                                                 = 0x04d5,
-                       kana_YO                                                 = 0x04d6,
-                       kana_RA                                                 = 0x04d7,
-                       kana_RI                                                 = 0x04d8,
-                       kana_RU                                                 = 0x04d9,
-                       kana_RE                                                 = 0x04da,
-                       kana_RO                                                 = 0x04db,
-                       kana_WA                                                 = 0x04dc,
-                       kana_N                                                  = 0x04dd,
-                       voicedsound                                             = 0x04de,
-                       semivoicedsound                                 = 0x04df,
-                       kana_switch                                             = 0xff7e,
-                       Farsi_0                                                 = 0x10006f0,
-                       Farsi_1                                                 = 0x10006f1,
-                       Farsi_2                                                 = 0x10006f2,
-                       Farsi_3                                                 = 0x10006f3,
-                       Farsi_4                                                 = 0x10006f4,
-                       Farsi_5                                                 = 0x10006f5,
-                       Farsi_6                                                 = 0x10006f6,
-                       Farsi_7                                                 = 0x10006f7,
-                       Farsi_8                                                 = 0x10006f8,
-                       Farsi_9                                                 = 0x10006f9,
-                       Arabic_percent                                  = 0x100066a,
-                       Arabic_superscript_alef                 = 0x1000670,
-                       Arabic_tteh                                             = 0x1000679,
-                       Arabic_peh                                              = 0x100067e,
-                       Arabic_tcheh                                    = 0x1000686,
-                       Arabic_ddal                                             = 0x1000688,
-                       Arabic_rreh                                             = 0x1000691,
-                       Arabic_comma                                    = 0x05ac,
-                       Arabic_fullstop                                 = 0x10006d4,
-                       Arabic_0                                                = 0x1000660,
-                       Arabic_1                                                = 0x1000661,
-                       Arabic_2                                                = 0x1000662,
-                       Arabic_3                                                = 0x1000663,
-                       Arabic_4                                                = 0x1000664,
-                       Arabic_5                                                = 0x1000665,
-                       Arabic_6                                                = 0x1000666,
-                       Arabic_7                                                = 0x1000667,
-                       Arabic_8                                                = 0x1000668,
-                       Arabic_9                                                = 0x1000669,
-                       Arabic_semicolon                                = 0x05bb,
-                       Arabic_question_mark                    = 0x05bf,
-                       Arabic_hamza                                    = 0x05c1,
-                       Arabic_maddaonalef                              = 0x05c2,
-                       Arabic_hamzaonalef                              = 0x05c3,
-                       Arabic_hamzaonwaw                               = 0x05c4,
-                       Arabic_hamzaunderalef                   = 0x05c5,
-                       Arabic_hamzaonyeh                               = 0x05c6,
-                       Arabic_alef                                             = 0x05c7,
-                       Arabic_beh                                              = 0x05c8,
-                       Arabic_tehmarbuta                               = 0x05c9,
-                       Arabic_teh                                              = 0x05ca,
-                       Arabic_theh                                             = 0x05cb,
-                       Arabic_jeem                                             = 0x05cc,
-                       Arabic_hah                                              = 0x05cd,
-                       Arabic_khah                                             = 0x05ce,
-                       Arabic_dal                                              = 0x05cf,
-                       Arabic_thal                                             = 0x05d0,
-                       Arabic_ra                                               = 0x05d1,
-                       Arabic_zain                                             = 0x05d2,
-                       Arabic_seen                                             = 0x05d3,
-                       Arabic_sheen                                    = 0x05d4,
-                       Arabic_sad                                              = 0x05d5,
-                       Arabic_dad                                              = 0x05d6,
-                       Arabic_tah                                              = 0x05d7,
-                       Arabic_zah                                              = 0x05d8,
-                       Arabic_ain                                              = 0x05d9,
-                       Arabic_ghain                                    = 0x05da,
-                       Arabic_tatweel                                  = 0x05e0,
-                       Arabic_feh                                              = 0x05e1,
-                       Arabic_qaf                                              = 0x05e2,
-                       Arabic_kaf                                              = 0x05e3,
-                       Arabic_lam                                              = 0x05e4,
-                       Arabic_meem                                             = 0x05e5,
-                       Arabic_noon                                             = 0x05e6,
-                       Arabic_ha                                               = 0x05e7,
-                       Arabic_heh                                              = 0x05e7,
-                       Arabic_waw                                              = 0x05e8,
-                       Arabic_alefmaksura                              = 0x05e9,
-                       Arabic_yeh                                              = 0x05ea,
-                       Arabic_fathatan                                 = 0x05eb,
-                       Arabic_dammatan                                 = 0x05ec,
-                       Arabic_kasratan                                 = 0x05ed,
-                       Arabic_fatha                                    = 0x05ee,
-                       Arabic_damma                                    = 0x05ef,
-                       Arabic_kasra                                    = 0x05f0,
-                       Arabic_shadda                                   = 0x05f1,
-                       Arabic_sukun                                    = 0x05f2,
-                       Arabic_madda_above                              = 0x1000653,
-                       Arabic_hamza_above                              = 0x1000654,
-                       Arabic_hamza_below                              = 0x1000655,
-                       Arabic_jeh                                              = 0x1000698,
-                       Arabic_veh                                              = 0x10006a4,
-                       Arabic_keheh                                    = 0x10006a9,
-                       Arabic_gaf                                              = 0x10006af,
-                       Arabic_noon_ghunna                              = 0x10006ba,
-                       Arabic_heh_doachashmee                  = 0x10006be,
-                       Farsi_yeh                                               = 0x10006cc,
-                       Arabic_farsi_yeh                                = 0x10006cc,
-                       Arabic_yeh_baree                                = 0x10006d2,
-                       Arabic_heh_goal                                 = 0x10006c1,
-                       Arabic_switch                                   = 0xff7e,
-                       Cyrillic_GHE_bar                                = 0x1000492,
-                       Cyrillic_ghe_bar                                = 0x1000493,
-                       Cyrillic_ZHE_descender                  = 0x1000496,
-                       Cyrillic_zhe_descender                  = 0x1000497,
-                       Cyrillic_KA_descender                   = 0x100049a,
-                       Cyrillic_ka_descender                   = 0x100049b,
-                       Cyrillic_KA_vertstroke                  = 0x100049c,
-                       Cyrillic_ka_vertstroke                  = 0x100049d,
-                       Cyrillic_EN_descender                   = 0x10004a2,
-                       Cyrillic_en_descender                   = 0x10004a3,
-                       Cyrillic_U_straight                             = 0x10004ae,
-                       Cyrillic_u_straight                             = 0x10004af,
-                       Cyrillic_U_straight_bar                 = 0x10004b0,
-                       Cyrillic_u_straight_bar                 = 0x10004b1,
-                       Cyrillic_HA_descender                   = 0x10004b2,
-                       Cyrillic_ha_descender                   = 0x10004b3,
-                       Cyrillic_CHE_descender                  = 0x10004b6,
-                       Cyrillic_che_descender                  = 0x10004b7,
-                       Cyrillic_CHE_vertstroke                 = 0x10004b8,
-                       Cyrillic_che_vertstroke                 = 0x10004b9,
-                       Cyrillic_SHHA                                   = 0x10004ba,
-                       Cyrillic_shha                                   = 0x10004bb,
-                       Cyrillic_SCHWA                                  = 0x10004d8,
-                       Cyrillic_schwa                                  = 0x10004d9,
-                       Cyrillic_I_macron                               = 0x10004e2,
-                       Cyrillic_i_macron                               = 0x10004e3,
-                       Cyrillic_O_bar                                  = 0x10004e8,
-                       Cyrillic_o_bar                                  = 0x10004e9,
-                       Cyrillic_U_macron                               = 0x10004ee,
-                       Cyrillic_u_macron                               = 0x10004ef,
-                       Serbian_dje                                             = 0x06a1,
-                       Macedonia_gje                                   = 0x06a2,
-                       Cyrillic_io                                             = 0x06a3,
-                       Ukrainian_ie                                    = 0x06a4,
-                       Ukranian_je                                             = 0x06a4,
-                       Macedonia_dse                                   = 0x06a5,
-                       Ukrainian_i                                             = 0x06a6,
-                       Ukranian_i                                              = 0x06a6,
-                       Ukrainian_yi                                    = 0x06a7,
-                       Ukranian_yi                                             = 0x06a7,
-                       Cyrillic_je                                             = 0x06a8,
-                       Serbian_je                                              = 0x06a8,
-                       Cyrillic_lje                                    = 0x06a9,
-                       Serbian_lje                                             = 0x06a9,
-                       Cyrillic_nje                                    = 0x06aa,
-                       Serbian_nje                                             = 0x06aa,
-                       Serbian_tshe                                    = 0x06ab,
-                       Macedonia_kje                                   = 0x06ac,
-                       Ukrainian_ghe_with_upturn               = 0x06ad,
-                       Byelorussian_shortu                             = 0x06ae,
-                       Cyrillic_dzhe                                   = 0x06af,
-                       Serbian_dze                                             = 0x06af,
-                       numerosign                                              = 0x06b0,
-                       Serbian_DJE                                             = 0x06b1,
-                       Macedonia_GJE                                   = 0x06b2,
-                       Cyrillic_IO                                             = 0x06b3,
-                       Ukrainian_IE                                    = 0x06b4,
-                       Ukranian_JE                                             = 0x06b4,
-                       Macedonia_DSE                                   = 0x06b5,
-                       Ukrainian_I                                             = 0x06b6,
-                       Ukranian_I                                              = 0x06b6,
-                       Ukrainian_YI                                    = 0x06b7,
-                       Ukranian_YI                                             = 0x06b7,
-                       Cyrillic_JE                                             = 0x06b8,
-                       Serbian_JE                                              = 0x06b8,
-                       Cyrillic_LJE                                    = 0x06b9,
-                       Serbian_LJE                                             = 0x06b9,
-                       Cyrillic_NJE                                    = 0x06ba,
-                       Serbian_NJE                                             = 0x06ba,
-                       Serbian_TSHE                                    = 0x06bb,
-                       Macedonia_KJE                                   = 0x06bc,
-                       Ukrainian_GHE_WITH_UPTURN               = 0x06bd,
-                       Byelorussian_SHORTU                             = 0x06be,
-                       Cyrillic_DZHE                                   = 0x06bf,
-                       Serbian_DZE                                             = 0x06bf,
-                       Cyrillic_yu                                             = 0x06c0,
-                       Cyrillic_a                                              = 0x06c1,
-                       Cyrillic_be                                             = 0x06c2,
-                       Cyrillic_tse                                    = 0x06c3,
-                       Cyrillic_de                                             = 0x06c4,
-                       Cyrillic_ie                                             = 0x06c5,
-                       Cyrillic_ef                                             = 0x06c6,
-                       Cyrillic_ghe                                    = 0x06c7,
-                       Cyrillic_ha                                             = 0x06c8,
-                       Cyrillic_i                                              = 0x06c9,
-                       Cyrillic_shorti                                 = 0x06ca,
-                       Cyrillic_ka                                             = 0x06cb,
-                       Cyrillic_el                                             = 0x06cc,
-                       Cyrillic_em                                             = 0x06cd,
-                       Cyrillic_en                                             = 0x06ce,
-                       Cyrillic_o                                              = 0x06cf,
-                       Cyrillic_pe                                             = 0x06d0,
-                       Cyrillic_ya                                             = 0x06d1,
-                       Cyrillic_er                                             = 0x06d2,
-                       Cyrillic_es                                             = 0x06d3,
-                       Cyrillic_te                                             = 0x06d4,
-                       Cyrillic_u                                              = 0x06d5,
-                       Cyrillic_zhe                                    = 0x06d6,
-                       Cyrillic_ve                                             = 0x06d7,
-                       Cyrillic_softsign                               = 0x06d8,
-                       Cyrillic_yeru                                   = 0x06d9,
-                       Cyrillic_ze                                             = 0x06da,
-                       Cyrillic_sha                                    = 0x06db,
-                       Cyrillic_e                                              = 0x06dc,
-                       Cyrillic_shcha                                  = 0x06dd,
-                       Cyrillic_che                                    = 0x06de,
-                       Cyrillic_hardsign                               = 0x06df,
-                       Cyrillic_YU                                             = 0x06e0,
-                       Cyrillic_A                                              = 0x06e1,
-                       Cyrillic_BE                                             = 0x06e2,
-                       Cyrillic_TSE                                    = 0x06e3,
-                       Cyrillic_DE                                             = 0x06e4,
-                       Cyrillic_IE                                             = 0x06e5,
-                       Cyrillic_EF                                             = 0x06e6,
-                       Cyrillic_GHE                                    = 0x06e7,
-                       Cyrillic_HA                                             = 0x06e8,
-                       Cyrillic_I                                              = 0x06e9,
-                       Cyrillic_SHORTI                                 = 0x06ea,
-                       Cyrillic_KA                                             = 0x06eb,
-                       Cyrillic_EL                                             = 0x06ec,
-                       Cyrillic_EM                                             = 0x06ed,
-                       Cyrillic_EN                                             = 0x06ee,
-                       Cyrillic_O                                              = 0x06ef,
-                       Cyrillic_PE                                             = 0x06f0,
-                       Cyrillic_YA                                             = 0x06f1,
-                       Cyrillic_ER                                             = 0x06f2,
-                       Cyrillic_ES                                             = 0x06f3,
-                       Cyrillic_TE                                             = 0x06f4,
-                       Cyrillic_U                                              = 0x06f5,
-                       Cyrillic_ZHE                                    = 0x06f6,
-                       Cyrillic_VE                                             = 0x06f7,
-                       Cyrillic_SOFTSIGN                               = 0x06f8,
-                       Cyrillic_YERU                                   = 0x06f9,
-                       Cyrillic_ZE                                             = 0x06fa,
-                       Cyrillic_SHA                                    = 0x06fb,
-                       Cyrillic_E                                              = 0x06fc,
-                       Cyrillic_SHCHA                                  = 0x06fd,
-                       Cyrillic_CHE                                    = 0x06fe,
-                       Cyrillic_HARDSIGN                               = 0x06ff,
-                       Greek_ALPHAaccent                               = 0x07a1,
-                       Greek_EPSILONaccent                             = 0x07a2,
-                       Greek_ETAaccent                                 = 0x07a3,
-                       Greek_IOTAaccent                                = 0x07a4,
-                       Greek_IOTAdieresis                              = 0x07a5,
-                       Greek_IOTAdiaeresis                             = 0x07a5,
-                       Greek_OMICRONaccent                             = 0x07a7,
-                       Greek_UPSILONaccent                             = 0x07a8,
-                       Greek_UPSILONdieresis                   = 0x07a9,
-                       Greek_OMEGAaccent                               = 0x07ab,
-                       Greek_accentdieresis                    = 0x07ae,
-                       Greek_horizbar                                  = 0x07af,
-                       Greek_alphaaccent                               = 0x07b1,
-                       Greek_epsilonaccent                             = 0x07b2,
-                       Greek_etaaccent                                 = 0x07b3,
-                       Greek_iotaaccent                                = 0x07b4,
-                       Greek_iotadieresis                              = 0x07b5,
-                       Greek_iotaaccentdieresis                = 0x07b6,
-                       Greek_omicronaccent                             = 0x07b7,
-                       Greek_upsilonaccent                             = 0x07b8,
-                       Greek_upsilondieresis                   = 0x07b9,
-                       Greek_upsilonaccentdieresis             = 0x07ba,
-                       Greek_omegaaccent                               = 0x07bb,
-                       Greek_ALPHA                                             = 0x07c1,
-                       Greek_BETA                                              = 0x07c2,
-                       Greek_GAMMA                                             = 0x07c3,
-                       Greek_DELTA                                             = 0x07c4,
-                       Greek_EPSILON                                   = 0x07c5,
-                       Greek_ZETA                                              = 0x07c6,
-                       Greek_ETA                                               = 0x07c7,
-                       Greek_THETA                                             = 0x07c8,
-                       Greek_IOTA                                              = 0x07c9,
-                       Greek_KAPPA                                             = 0x07ca,
-                       Greek_LAMDA                                             = 0x07cb,
-                       Greek_LAMBDA                                    = 0x07cb,
-                       Greek_MU                                                = 0x07cc,
-                       Greek_NU                                                = 0x07cd,
-                       Greek_XI                                                = 0x07ce,
-                       Greek_OMICRON                                   = 0x07cf,
-                       Greek_PI                                                = 0x07d0,
-                       Greek_RHO                                               = 0x07d1,
-                       Greek_SIGMA                                             = 0x07d2,
-                       Greek_TAU                                               = 0x07d4,
-                       Greek_UPSILON                                   = 0x07d5,
-                       Greek_PHI                                               = 0x07d6,
-                       Greek_CHI                                               = 0x07d7,
-                       Greek_PSI                                               = 0x07d8,
-                       Greek_OMEGA                                             = 0x07d9,
-                       Greek_alpha                                             = 0x07e1,
-                       Greek_beta                                              = 0x07e2,
-                       Greek_gamma                                             = 0x07e3,
-                       Greek_delta                                             = 0x07e4,
-                       Greek_epsilon                                   = 0x07e5,
-                       Greek_zeta                                              = 0x07e6,
-                       Greek_eta                                               = 0x07e7,
-                       Greek_theta                                             = 0x07e8,
-                       Greek_iota                                              = 0x07e9,
-                       Greek_kappa                                             = 0x07ea,
-                       Greek_lamda                                             = 0x07eb,
-                       Greek_lambda                                    = 0x07eb,
-                       Greek_mu                                                = 0x07ec,
-                       Greek_nu                                                = 0x07ed,
-                       Greek_xi                                                = 0x07ee,
-                       Greek_omicron                                   = 0x07ef,
-                       Greek_pi                                                = 0x07f0,
-                       Greek_rho                                               = 0x07f1,
-                       Greek_sigma                                             = 0x07f2,
-                       Greek_finalsmallsigma                   = 0x07f3,
-                       Greek_tau                                               = 0x07f4,
-                       Greek_upsilon                                   = 0x07f5,
-                       Greek_phi                                               = 0x07f6,
-                       Greek_chi                                               = 0x07f7,
-                       Greek_psi                                               = 0x07f8,
-                       Greek_omega                                             = 0x07f9,
-                       Greek_switch                                    = 0xff7e,
-                       leftradical                                             = 0x08a1,
-                       topleftradical                                  = 0x08a2,
-                       horizconnector                                  = 0x08a3,
-                       topintegral                                             = 0x08a4,
-                       botintegral                                             = 0x08a5,
-                       vertconnector                                   = 0x08a6,
-                       topleftsqbracket                                = 0x08a7,
-                       botleftsqbracket                                = 0x08a8,
-                       toprightsqbracket                               = 0x08a9,
-                       botrightsqbracket                               = 0x08aa,
-                       topleftparens                                   = 0x08ab,
-                       botleftparens                                   = 0x08ac,
-                       toprightparens                                  = 0x08ad,
-                       botrightparens                                  = 0x08ae,
-                       leftmiddlecurlybrace                    = 0x08af,
-                       rightmiddlecurlybrace                   = 0x08b0,
-                       topleftsummation                                = 0x08b1,
-                       botleftsummation                                = 0x08b2,
-                       topvertsummationconnector               = 0x08b3,
-                       botvertsummationconnector               = 0x08b4,
-                       toprightsummation                               = 0x08b5,
-                       botrightsummation                               = 0x08b6,
-                       rightmiddlesummation                    = 0x08b7,
-                       lessthanequal                                   = 0x08bc,
-                       notequal                                                = 0x08bd,
-                       greaterthanequal                                = 0x08be,
-                       integral                                                = 0x08bf,
-                       therefore                                               = 0x08c0,
-                       variation                                               = 0x08c1,
-                       infinity                                                = 0x08c2,
-                       nabla                                                   = 0x08c5,
-                       approximate                                             = 0x08c8,
-                       similarequal                                    = 0x08c9,
-                       ifonlyif                                                = 0x08cd,
-                       implies                                                 = 0x08ce,
-                       identical                                               = 0x08cf,
-                       radical                                                 = 0x08d6,
-                       includedin                                              = 0x08da,
-                       includes                                                = 0x08db,
-                       intersection                                    = 0x08dc,
-                       union                                                   = 0x08dd,
-                       logicaland                                              = 0x08de,
-                       logicalor                                               = 0x08df,
-                       partialderivative                               = 0x08ef,
-                       function                                                = 0x08f6,
-                       leftarrow                                               = 0x08fb,
-                       uparrow                                                 = 0x08fc,
-                       rightarrow                                              = 0x08fd,
-                       downarrow                                               = 0x08fe,
-                       blank                                                   = 0x09df,
-                       soliddiamond                                    = 0x09e0,
-                       checkerboard                                    = 0x09e1,
-                       ht                                                              = 0x09e2,
-                       ff                                                              = 0x09e3,
-                       cr                                                              = 0x09e4,
-                       lf                                                              = 0x09e5,
-                       nl                                                              = 0x09e8,
-                       vt                                                              = 0x09e9,
-                       lowrightcorner                                  = 0x09ea,
-                       uprightcorner                                   = 0x09eb,
-                       upleftcorner                                    = 0x09ec,
-                       lowleftcorner                                   = 0x09ed,
-                       crossinglines                                   = 0x09ee,
-                       horizlinescan1                                  = 0x09ef,
-                       horizlinescan3                                  = 0x09f0,
-                       horizlinescan5                                  = 0x09f1,
-                       horizlinescan7                                  = 0x09f2,
-                       horizlinescan9                                  = 0x09f3,
-                       leftt                                                   = 0x09f4,
-                       rightt                                                  = 0x09f5,
-                       bott                                                    = 0x09f6,
-                       topt                                                    = 0x09f7,
-                       vertbar                                                 = 0x09f8,
-                       emspace                                                 = 0x0aa1,
-                       enspace                                                 = 0x0aa2,
-                       em3space                                                = 0x0aa3,
-                       em4space                                                = 0x0aa4,
-                       digitspace                                              = 0x0aa5,
-                       punctspace                                              = 0x0aa6,
-                       thinspace                                               = 0x0aa7,
-                       hairspace                                               = 0x0aa8,
-                       emdash                                                  = 0x0aa9,
-                       endash                                                  = 0x0aaa,
-                       signifblank                                             = 0x0aac,
-                       ellipsis                                                = 0x0aae,
-                       doubbaselinedot                                 = 0x0aaf,
-                       onethird                                                = 0x0ab0,
-                       twothirds                                               = 0x0ab1,
-                       onefifth                                                = 0x0ab2,
-                       twofifths                                               = 0x0ab3,
-                       threefifths                                             = 0x0ab4,
-                       fourfifths                                              = 0x0ab5,
-                       onesixth                                                = 0x0ab6,
-                       fivesixths                                              = 0x0ab7,
-                       careof                                                  = 0x0ab8,
-                       figdash                                                 = 0x0abb,
-                       leftanglebracket                                = 0x0abc,
-                       decimalpoint                                    = 0x0abd,
-                       rightanglebracket                               = 0x0abe,
-                       marker                                                  = 0x0abf,
-                       oneeighth                                               = 0x0ac3,
-                       threeeighths                                    = 0x0ac4,
-                       fiveeighths                                             = 0x0ac5,
-                       seveneighths                                    = 0x0ac6,
-                       trademark                                               = 0x0ac9,
-                       signaturemark                                   = 0x0aca,
-                       trademarkincircle                               = 0x0acb,
-                       leftopentriangle                                = 0x0acc,
-                       rightopentriangle                               = 0x0acd,
-                       emopencircle                                    = 0x0ace,
-                       emopenrectangle                                 = 0x0acf,
-                       leftsinglequotemark                             = 0x0ad0,
-                       rightsinglequotemark                    = 0x0ad1,
-                       leftdoublequotemark                             = 0x0ad2,
-                       rightdoublequotemark                    = 0x0ad3,
-                       prescription                                    = 0x0ad4,
-                       permille                                                = 0x0ad5,
-                       minutes                                                 = 0x0ad6,
-                       seconds                                                 = 0x0ad7,
-                       latincross                                              = 0x0ad9,
-                       hexagram                                                = 0x0ada,
-                       filledrectbullet                                = 0x0adb,
-                       filledlefttribullet                             = 0x0adc,
-                       filledrighttribullet                    = 0x0add,
-                       emfilledcircle                                  = 0x0ade,
-                       emfilledrect                                    = 0x0adf,
-                       enopencircbullet                                = 0x0ae0,
-                       enopensquarebullet                              = 0x0ae1,
-                       openrectbullet                                  = 0x0ae2,
-                       opentribulletup                                 = 0x0ae3,
-                       opentribulletdown                               = 0x0ae4,
-                       openstar                                                = 0x0ae5,
-                       enfilledcircbullet                              = 0x0ae6,
-                       enfilledsqbullet                                = 0x0ae7,
-                       filledtribulletup                               = 0x0ae8,
-                       filledtribulletdown                             = 0x0ae9,
-                       leftpointer                                             = 0x0aea,
-                       rightpointer                                    = 0x0aeb,
-                       club                                                    = 0x0aec,
-                       diamond                                                 = 0x0aed,
-                       heart                                                   = 0x0aee,
-                       maltesecross                                    = 0x0af0,
-                       dagger                                                  = 0x0af1,
-                       doubledagger                                    = 0x0af2,
-                       checkmark                                               = 0x0af3,
-                       ballotcross                                             = 0x0af4,
-                       musicalsharp                                    = 0x0af5,
-                       musicalflat                                             = 0x0af6,
-                       malesymbol                                              = 0x0af7,
-                       femalesymbol                                    = 0x0af8,
-                       telephone                                               = 0x0af9,
-                       telephonerecorder                               = 0x0afa,
-                       phonographcopyright                             = 0x0afb,
-                       caret                                                   = 0x0afc,
-                       singlelowquotemark                              = 0x0afd,
-                       doublelowquotemark                              = 0x0afe,
-                       cursor                                                  = 0x0aff,
-                       leftcaret                                               = 0x0ba3,
-                       rightcaret                                              = 0x0ba6,
-                       downcaret                                               = 0x0ba8,
-                       upcaret                                                 = 0x0ba9,
-                       overbar                                                 = 0x0bc0,
-                       downtack                                                = 0x0bc2,
-                       upshoe                                                  = 0x0bc3,
-                       downstile                                               = 0x0bc4,
-                       underbar                                                = 0x0bc6,
-                       jot                                                             = 0x0bca,
-                       quad                                                    = 0x0bcc,
-                       uptack                                                  = 0x0bce,
-                       circle                                                  = 0x0bcf,
-                       upstile                                                 = 0x0bd3,
-                       downshoe                                                = 0x0bd6,
-                       rightshoe                                               = 0x0bd8,
-                       leftshoe                                                = 0x0bda,
-                       lefttack                                                = 0x0bdc,
-                       righttack                                               = 0x0bfc,
-                       hebrew_doublelowline                    = 0x0cdf,
-                       hebrew_aleph                                    = 0x0ce0,
-                       hebrew_bet                                              = 0x0ce1,
-                       hebrew_beth                                             = 0x0ce1,
-                       hebrew_gimel                                    = 0x0ce2,
-                       hebrew_gimmel                                   = 0x0ce2,
-                       hebrew_dalet                                    = 0x0ce3,
-                       hebrew_daleth                                   = 0x0ce3,
-                       hebrew_he                                               = 0x0ce4,
-                       hebrew_waw                                              = 0x0ce5,
-                       hebrew_zain                                             = 0x0ce6,
-                       hebrew_zayin                                    = 0x0ce6,
-                       hebrew_chet                                             = 0x0ce7,
-                       hebrew_het                                              = 0x0ce7,
-                       hebrew_tet                                              = 0x0ce8,
-                       hebrew_teth                                             = 0x0ce8,
-                       hebrew_yod                                              = 0x0ce9,
-                       hebrew_finalkaph                                = 0x0cea,
-                       hebrew_kaph                                             = 0x0ceb,
-                       hebrew_lamed                                    = 0x0cec,
-                       hebrew_finalmem                                 = 0x0ced,
-                       hebrew_mem                                              = 0x0cee,
-                       hebrew_finalnun                                 = 0x0cef,
-                       hebrew_nun                                              = 0x0cf0,
-                       hebrew_samech                                   = 0x0cf1,
-                       hebrew_samekh                                   = 0x0cf1,
-                       hebrew_ayin                                             = 0x0cf2,
-                       hebrew_finalpe                                  = 0x0cf3,
-                       hebrew_pe                                               = 0x0cf4,
-                       hebrew_finalzade                                = 0x0cf5,
-                       hebrew_finalzadi                                = 0x0cf5,
-                       hebrew_zade                                             = 0x0cf6,
-                       hebrew_zadi                                             = 0x0cf6,
-                       hebrew_qoph                                             = 0x0cf7,
-                       hebrew_kuf                                              = 0x0cf7,
-                       hebrew_resh                                             = 0x0cf8,
-                       hebrew_shin                                             = 0x0cf9,
-                       hebrew_taw                                              = 0x0cfa,
-                       hebrew_taf                                              = 0x0cfa,
-                       Hebrew_switch                                   = 0xff7e,
-                       Thai_kokai                                              = 0x0da1,
-                       Thai_khokhai                                    = 0x0da2,
-                       Thai_khokhuat                                   = 0x0da3,
-                       Thai_khokhwai                                   = 0x0da4,
-                       Thai_khokhon                                    = 0x0da5,
-                       Thai_khorakhang                                 = 0x0da6,
-                       Thai_ngongu                                             = 0x0da7,
-                       Thai_chochan                                    = 0x0da8,
-                       Thai_choching                                   = 0x0da9,
-                       Thai_chochang                                   = 0x0daa,
-                       Thai_soso                                               = 0x0dab,
-                       Thai_chochoe                                    = 0x0dac,
-                       Thai_yoying                                             = 0x0dad,
-                       Thai_dochada                                    = 0x0dae,
-                       Thai_topatak                                    = 0x0daf,
-                       Thai_thothan                                    = 0x0db0,
-                       Thai_thonangmontho                              = 0x0db1,
-                       Thai_thophuthao                                 = 0x0db2,
-                       Thai_nonen                                              = 0x0db3,
-                       Thai_dodek                                              = 0x0db4,
-                       Thai_totao                                              = 0x0db5,
-                       Thai_thothung                                   = 0x0db6,
-                       Thai_thothahan                                  = 0x0db7,
-                       Thai_thothong                                   = 0x0db8,
-                       Thai_nonu                                               = 0x0db9,
-                       Thai_bobaimai                                   = 0x0dba,
-                       Thai_popla                                              = 0x0dbb,
-                       Thai_phophung                                   = 0x0dbc,
-                       Thai_fofa                                               = 0x0dbd,
-                       Thai_phophan                                    = 0x0dbe,
-                       Thai_fofan                                              = 0x0dbf,
-                       Thai_phosamphao                                 = 0x0dc0,
-                       Thai_moma                                               = 0x0dc1,
-                       Thai_yoyak                                              = 0x0dc2,
-                       Thai_rorua                                              = 0x0dc3,
-                       Thai_ru                                                 = 0x0dc4,
-                       Thai_loling                                             = 0x0dc5,
-                       Thai_lu                                                 = 0x0dc6,
-                       Thai_wowaen                                             = 0x0dc7,
-                       Thai_sosala                                             = 0x0dc8,
-                       Thai_sorusi                                             = 0x0dc9,
-                       Thai_sosua                                              = 0x0dca,
-                       Thai_hohip                                              = 0x0dcb,
-                       Thai_lochula                                    = 0x0dcc,
-                       Thai_oang                                               = 0x0dcd,
-                       Thai_honokhuk                                   = 0x0dce,
-                       Thai_paiyannoi                                  = 0x0dcf,
-                       Thai_saraa                                              = 0x0dd0,
-                       Thai_maihanakat                                 = 0x0dd1,
-                       Thai_saraaa                                             = 0x0dd2,
-                       Thai_saraam                                             = 0x0dd3,
-                       Thai_sarai                                              = 0x0dd4,
-                       Thai_saraii                                             = 0x0dd5,
-                       Thai_saraue                                             = 0x0dd6,
-                       Thai_sarauee                                    = 0x0dd7,
-                       Thai_sarau                                              = 0x0dd8,
-                       Thai_sarauu                                             = 0x0dd9,
-                       Thai_phinthu                                    = 0x0dda,
-                       Thai_maihanakat_maitho                  = 0x0dde,
-                       Thai_baht                                               = 0x0ddf,
-                       Thai_sarae                                              = 0x0de0,
-                       Thai_saraae                                             = 0x0de1,
-                       Thai_sarao                                              = 0x0de2,
-                       Thai_saraaimaimuan                              = 0x0de3,
-                       Thai_saraaimaimalai                             = 0x0de4,
-                       Thai_lakkhangyao                                = 0x0de5,
-                       Thai_maiyamok                                   = 0x0de6,
-                       Thai_maitaikhu                                  = 0x0de7,
-                       Thai_maiek                                              = 0x0de8,
-                       Thai_maitho                                             = 0x0de9,
-                       Thai_maitri                                             = 0x0dea,
-                       Thai_maichattawa                                = 0x0deb,
-                       Thai_thanthakhat                                = 0x0dec,
-                       Thai_nikhahit                                   = 0x0ded,
-                       Thai_leksun                                             = 0x0df0,
-                       Thai_leknung                                    = 0x0df1,
-                       Thai_leksong                                    = 0x0df2,
-                       Thai_leksam                                             = 0x0df3,
-                       Thai_leksi                                              = 0x0df4,
-                       Thai_lekha                                              = 0x0df5,
-                       Thai_lekhok                                             = 0x0df6,
-                       Thai_lekchet                                    = 0x0df7,
-                       Thai_lekpaet                                    = 0x0df8,
-                       Thai_lekkao                                             = 0x0df9,
-                       Hangul                                                  = 0xff31,
-                       Hangul_Start                                    = 0xff32,
-                       Hangul_End                                              = 0xff33,
-                       Hangul_Hanja                                    = 0xff34,
-                       Hangul_Jamo                                             = 0xff35,
-                       Hangul_Romaja                                   = 0xff36,
-                       Hangul_Codeinput                                = 0xff37,
-                       Hangul_Jeonja                                   = 0xff38,
-                       Hangul_Banja                                    = 0xff39,
-                       Hangul_PreHanja                                 = 0xff3a,
-                       Hangul_PostHanja                                = 0xff3b,
-                       Hangul_SingleCandidate                  = 0xff3c,
-                       Hangul_MultipleCandidate                = 0xff3d,
-                       Hangul_PreviousCandidate                = 0xff3e,
-                       Hangul_Special                                  = 0xff3f,
-                       Hangul_switch                                   = 0xff7e,
-                       Hangul_Kiyeog                                   = 0x0ea1,
-                       Hangul_SsangKiyeog                              = 0x0ea2,
-                       Hangul_KiyeogSios                               = 0x0ea3,
-                       Hangul_Nieun                                    = 0x0ea4,
-                       Hangul_NieunJieuj                               = 0x0ea5,
-                       Hangul_NieunHieuh                               = 0x0ea6,
-                       Hangul_Dikeud                                   = 0x0ea7,
-                       Hangul_SsangDikeud                              = 0x0ea8,
-                       Hangul_Rieul                                    = 0x0ea9,
-                       Hangul_RieulKiyeog                              = 0x0eaa,
-                       Hangul_RieulMieum                               = 0x0eab,
-                       Hangul_RieulPieub                               = 0x0eac,
-                       Hangul_RieulSios                                = 0x0ead,
-                       Hangul_RieulTieut                               = 0x0eae,
-                       Hangul_RieulPhieuf                              = 0x0eaf,
-                       Hangul_RieulHieuh                               = 0x0eb0,
-                       Hangul_Mieum                                    = 0x0eb1,
-                       Hangul_Pieub                                    = 0x0eb2,
-                       Hangul_SsangPieub                               = 0x0eb3,
-                       Hangul_PieubSios                                = 0x0eb4,
-                       Hangul_Sios                                             = 0x0eb5,
-                       Hangul_SsangSios                                = 0x0eb6,
-                       Hangul_Ieung                                    = 0x0eb7,
-                       Hangul_Jieuj                                    = 0x0eb8,
-                       Hangul_SsangJieuj                               = 0x0eb9,
-                       Hangul_Cieuc                                    = 0x0eba,
-                       Hangul_Khieuq                                   = 0x0ebb,
-                       Hangul_Tieut                                    = 0x0ebc,
-                       Hangul_Phieuf                                   = 0x0ebd,
-                       Hangul_Hieuh                                    = 0x0ebe,
-                       Hangul_A                                                = 0x0ebf,
-                       Hangul_AE                                               = 0x0ec0,
-                       Hangul_YA                                               = 0x0ec1,
-                       Hangul_YAE                                              = 0x0ec2,
-                       Hangul_EO                                               = 0x0ec3,
-                       Hangul_E                                                = 0x0ec4,
-                       Hangul_YEO                                              = 0x0ec5,
-                       Hangul_YE                                               = 0x0ec6,
-                       Hangul_O                                                = 0x0ec7,
-                       Hangul_WA                                               = 0x0ec8,
-                       Hangul_WAE                                              = 0x0ec9,
-                       Hangul_OE                                               = 0x0eca,
-                       Hangul_YO                                               = 0x0ecb,
-                       Hangul_U                                                = 0x0ecc,
-                       Hangul_WEO                                              = 0x0ecd,
-                       Hangul_WE                                               = 0x0ece,
-                       Hangul_WI                                               = 0x0ecf,
-                       Hangul_YU                                               = 0x0ed0,
-                       Hangul_EU                                               = 0x0ed1,
-                       Hangul_YI                                               = 0x0ed2,
-                       Hangul_I                                                = 0x0ed3,
-                       Hangul_J_Kiyeog                                 = 0x0ed4,
-                       Hangul_J_SsangKiyeog                    = 0x0ed5,
-                       Hangul_J_KiyeogSios                             = 0x0ed6,
-                       Hangul_J_Nieun                                  = 0x0ed7,
-                       Hangul_J_NieunJieuj                             = 0x0ed8,
-                       Hangul_J_NieunHieuh                             = 0x0ed9,
-                       Hangul_J_Dikeud                                 = 0x0eda,
-                       Hangul_J_Rieul                                  = 0x0edb,
-                       Hangul_J_RieulKiyeog                    = 0x0edc,
-                       Hangul_J_RieulMieum                             = 0x0edd,
-                       Hangul_J_RieulPieub                             = 0x0ede,
-                       Hangul_J_RieulSios                              = 0x0edf,
-                       Hangul_J_RieulTieut                             = 0x0ee0,
-                       Hangul_J_RieulPhieuf                    = 0x0ee1,
-                       Hangul_J_RieulHieuh                             = 0x0ee2,
-                       Hangul_J_Mieum                                  = 0x0ee3,
-                       Hangul_J_Pieub                                  = 0x0ee4,
-                       Hangul_J_PieubSios                              = 0x0ee5,
-                       Hangul_J_Sios                                   = 0x0ee6,
-                       Hangul_J_SsangSios                              = 0x0ee7,
-                       Hangul_J_Ieung                                  = 0x0ee8,
-                       Hangul_J_Jieuj                                  = 0x0ee9,
-                       Hangul_J_Cieuc                                  = 0x0eea,
-                       Hangul_J_Khieuq                                 = 0x0eeb,
-                       Hangul_J_Tieut                                  = 0x0eec,
-                       Hangul_J_Phieuf                                 = 0x0eed,
-                       Hangul_J_Hieuh                                  = 0x0eee,
-                       Hangul_RieulYeorinHieuh                 = 0x0eef,
-                       Hangul_SunkyeongeumMieum                = 0x0ef0,
-                       Hangul_SunkyeongeumPieub                = 0x0ef1,
-                       Hangul_PanSios                                  = 0x0ef2,
-                       Hangul_KkogjiDalrinIeung                = 0x0ef3,
-                       Hangul_SunkyeongeumPhieuf               = 0x0ef4,
-                       Hangul_YeorinHieuh                              = 0x0ef5,
-                       Hangul_AraeA                                    = 0x0ef6,
-                       Hangul_AraeAE                                   = 0x0ef7,
-                       Hangul_J_PanSios                                = 0x0ef8,
-                       Hangul_J_KkogjiDalrinIeung              = 0x0ef9,
-                       Hangul_J_YeorinHieuh                    = 0x0efa,
-                       Korean_Won                                              = 0x0eff,
-                       Armenian_ligature_ew                    = 0x1000587,
-                       Armenian_full_stop                              = 0x1000589,
-                       Armenian_verjaket                               = 0x1000589,
-                       Armenian_separation_mark                = 0x100055d,
-                       Armenian_but                                    = 0x100055d,
-                       Armenian_hyphen                                 = 0x100058a,
-                       Armenian_yentamna                               = 0x100058a,
-                       Armenian_exclam                                 = 0x100055c,
-                       Armenian_amanak                                 = 0x100055c,
-                       Armenian_accent                                 = 0x100055b,
-                       Armenian_shesht                                 = 0x100055b,
-                       Armenian_question                               = 0x100055e,
-                       Armenian_paruyk                                 = 0x100055e,
-                       Armenian_AYB                                    = 0x1000531,
-                       Armenian_ayb                                    = 0x1000561,
-                       Armenian_BEN                                    = 0x1000532,
-                       Armenian_ben                                    = 0x1000562,
-                       Armenian_GIM                                    = 0x1000533,
-                       Armenian_gim                                    = 0x1000563,
-                       Armenian_DA                                             = 0x1000534,
-                       Armenian_da                                             = 0x1000564,
-                       Armenian_YECH                                   = 0x1000535,
-                       Armenian_yech                                   = 0x1000565,
-                       Armenian_ZA                                             = 0x1000536,
-                       Armenian_za                                             = 0x1000566,
-                       Armenian_E                                              = 0x1000537,
-                       Armenian_e                                              = 0x1000567,
-                       Armenian_AT                                             = 0x1000538,
-                       Armenian_at                                             = 0x1000568,
-                       Armenian_TO                                             = 0x1000539,
-                       Armenian_to                                             = 0x1000569,
-                       Armenian_ZHE                                    = 0x100053a,
-                       Armenian_zhe                                    = 0x100056a,
-                       Armenian_INI                                    = 0x100053b,
-                       Armenian_ini                                    = 0x100056b,
-                       Armenian_LYUN                                   = 0x100053c,
-                       Armenian_lyun                                   = 0x100056c,
-                       Armenian_KHE                                    = 0x100053d,
-                       Armenian_khe                                    = 0x100056d,
-                       Armenian_TSA                                    = 0x100053e,
-                       Armenian_tsa                                    = 0x100056e,
-                       Armenian_KEN                                    = 0x100053f,
-                       Armenian_ken                                    = 0x100056f,
-                       Armenian_HO                                             = 0x1000540,
-                       Armenian_ho                                             = 0x1000570,
-                       Armenian_DZA                                    = 0x1000541,
-                       Armenian_dza                                    = 0x1000571,
-                       Armenian_GHAT                                   = 0x1000542,
-                       Armenian_ghat                                   = 0x1000572,
-                       Armenian_TCHE                                   = 0x1000543,
-                       Armenian_tche                                   = 0x1000573,
-                       Armenian_MEN                                    = 0x1000544,
-                       Armenian_men                                    = 0x1000574,
-                       Armenian_HI                                             = 0x1000545,
-                       Armenian_hi                                             = 0x1000575,
-                       Armenian_NU                                             = 0x1000546,
-                       Armenian_nu                                             = 0x1000576,
-                       Armenian_SHA                                    = 0x1000547,
-                       Armenian_sha                                    = 0x1000577,
-                       Armenian_VO                                             = 0x1000548,
-                       Armenian_vo                                             = 0x1000578,
-                       Armenian_CHA                                    = 0x1000549,
-                       Armenian_cha                                    = 0x1000579,
-                       Armenian_PE                                             = 0x100054a,
-                       Armenian_pe                                             = 0x100057a,
-                       Armenian_JE                                             = 0x100054b,
-                       Armenian_je                                             = 0x100057b,
-                       Armenian_RA                                             = 0x100054c,
-                       Armenian_ra                                             = 0x100057c,
-                       Armenian_SE                                             = 0x100054d,
-                       Armenian_se                                             = 0x100057d,
-                       Armenian_VEV                                    = 0x100054e,
-                       Armenian_vev                                    = 0x100057e,
-                       Armenian_TYUN                                   = 0x100054f,
-                       Armenian_tyun                                   = 0x100057f,
-                       Armenian_RE                                             = 0x1000550,
-                       Armenian_re                                             = 0x1000580,
-                       Armenian_TSO                                    = 0x1000551,
-                       Armenian_tso                                    = 0x1000581,
-                       Armenian_VYUN                                   = 0x1000552,
-                       Armenian_vyun                                   = 0x1000582,
-                       Armenian_PYUR                                   = 0x1000553,
-                       Armenian_pyur                                   = 0x1000583,
-                       Armenian_KE                                             = 0x1000554,
-                       Armenian_ke                                             = 0x1000584,
-                       Armenian_O                                              = 0x1000555,
-                       Armenian_o                                              = 0x1000585,
-                       Armenian_FE                                             = 0x1000556,
-                       Armenian_fe                                             = 0x1000586,
-                       Armenian_apostrophe                             = 0x100055a,
-                       Georgian_an                                             = 0x10010d0,
-                       Georgian_ban                                    = 0x10010d1,
-                       Georgian_gan                                    = 0x10010d2,
-                       Georgian_don                                    = 0x10010d3,
-                       Georgian_en                                             = 0x10010d4,
-                       Georgian_vin                                    = 0x10010d5,
-                       Georgian_zen                                    = 0x10010d6,
-                       Georgian_tan                                    = 0x10010d7,
-                       Georgian_in                                             = 0x10010d8,
-                       Georgian_kan                                    = 0x10010d9,
-                       Georgian_las                                    = 0x10010da,
-                       Georgian_man                                    = 0x10010db,
-                       Georgian_nar                                    = 0x10010dc,
-                       Georgian_on                                             = 0x10010dd,
-                       Georgian_par                                    = 0x10010de,
-                       Georgian_zhar                                   = 0x10010df,
-                       Georgian_rae                                    = 0x10010e0,
-                       Georgian_san                                    = 0x10010e1,
-                       Georgian_tar                                    = 0x10010e2,
-                       Georgian_un                                             = 0x10010e3,
-                       Georgian_phar                                   = 0x10010e4,
-                       Georgian_khar                                   = 0x10010e5,
-                       Georgian_ghan                                   = 0x10010e6,
-                       Georgian_qar                                    = 0x10010e7,
-                       Georgian_shin                                   = 0x10010e8,
-                       Georgian_chin                                   = 0x10010e9,
-                       Georgian_can                                    = 0x10010ea,
-                       Georgian_jil                                    = 0x10010eb,
-                       Georgian_cil                                    = 0x10010ec,
-                       Georgian_char                                   = 0x10010ed,
-                       Georgian_xan                                    = 0x10010ee,
-                       Georgian_jhan                                   = 0x10010ef,
-                       Georgian_hae                                    = 0x10010f0,
-                       Georgian_he                                             = 0x10010f1,
-                       Georgian_hie                                    = 0x10010f2,
-                       Georgian_we                                             = 0x10010f3,
-                       Georgian_har                                    = 0x10010f4,
-                       Georgian_hoe                                    = 0x10010f5,
-                       Georgian_fi                                             = 0x10010f6,
-                       Xabovedot                                               = 0x1001e8a,
-                       Ibreve                                                  = 0x100012c,
-                       Zstroke                                                 = 0x10001b5,
-                       Gcaron                                                  = 0x10001e6,
-                       Ocaron                                                  = 0x10001d1,
-                       Obarred                                                 = 0x100019f,
-                       xabovedot                                               = 0x1001e8b,
-                       ibreve                                                  = 0x100012d,
-                       zstroke                                                 = 0x10001b6,
-                       gcaron                                                  = 0x10001e7,
-                       ocaron                                                  = 0x10001d2,
-                       obarred                                                 = 0x1000275,
-                       SCHWA                                                   = 0x100018f,
-                       schwa                                                   = 0x1000259,
-                       EZH                                                             = 0x10001b7,
-                       ezh                                                             = 0x1000292,
-                       Lbelowdot                                               = 0x1001e36,
-                       lbelowdot                                               = 0x1001e37,
-                       Abelowdot                                               = 0x1001ea0,
-                       abelowdot                                               = 0x1001ea1,
-                       Ahook                                                   = 0x1001ea2,
-                       ahook                                                   = 0x1001ea3,
-                       Acircumflexacute                                = 0x1001ea4,
-                       acircumflexacute                                = 0x1001ea5,
-                       Acircumflexgrave                                = 0x1001ea6,
-                       acircumflexgrave                                = 0x1001ea7,
-                       Acircumflexhook                                 = 0x1001ea8,
-                       acircumflexhook                                 = 0x1001ea9,
-                       Acircumflextilde                                = 0x1001eaa,
-                       acircumflextilde                                = 0x1001eab,
-                       Acircumflexbelowdot                             = 0x1001eac,
-                       acircumflexbelowdot                             = 0x1001ead,
-                       Abreveacute                                             = 0x1001eae,
-                       abreveacute                                             = 0x1001eaf,
-                       Abrevegrave                                             = 0x1001eb0,
-                       abrevegrave                                             = 0x1001eb1,
-                       Abrevehook                                              = 0x1001eb2,
-                       abrevehook                                              = 0x1001eb3,
-                       Abrevetilde                                             = 0x1001eb4,
-                       abrevetilde                                             = 0x1001eb5,
-                       Abrevebelowdot                                  = 0x1001eb6,
-                       abrevebelowdot                                  = 0x1001eb7,
-                       Ebelowdot                                               = 0x1001eb8,
-                       ebelowdot                                               = 0x1001eb9,
-                       Ehook                                                   = 0x1001eba,
-                       ehook                                                   = 0x1001ebb,
-                       Etilde                                                  = 0x1001ebc,
-                       etilde                                                  = 0x1001ebd,
-                       Ecircumflexacute                                = 0x1001ebe,
-                       ecircumflexacute                                = 0x1001ebf,
-                       Ecircumflexgrave                                = 0x1001ec0,
-                       ecircumflexgrave                                = 0x1001ec1,
-                       Ecircumflexhook                                 = 0x1001ec2,
-                       ecircumflexhook                                 = 0x1001ec3,
-                       Ecircumflextilde                                = 0x1001ec4,
-                       ecircumflextilde                                = 0x1001ec5,
-                       Ecircumflexbelowdot                             = 0x1001ec6,
-                       ecircumflexbelowdot                             = 0x1001ec7,
-                       Ihook                                                   = 0x1001ec8,
-                       ihook                                                   = 0x1001ec9,
-                       Ibelowdot                                               = 0x1001eca,
-                       ibelowdot                                               = 0x1001ecb,
-                       Obelowdot                                               = 0x1001ecc,
-                       obelowdot                                               = 0x1001ecd,
-                       Ohook                                                   = 0x1001ece,
-                       ohook                                                   = 0x1001ecf,
-                       Ocircumflexacute                                = 0x1001ed0,
-                       ocircumflexacute                                = 0x1001ed1,
-                       Ocircumflexgrave                                = 0x1001ed2,
-                       ocircumflexgrave                                = 0x1001ed3,
-                       Ocircumflexhook                                 = 0x1001ed4,
-                       ocircumflexhook                                 = 0x1001ed5,
-                       Ocircumflextilde                                = 0x1001ed6,
-                       ocircumflextilde                                = 0x1001ed7,
-                       Ocircumflexbelowdot                             = 0x1001ed8,
-                       ocircumflexbelowdot                             = 0x1001ed9,
-                       Ohornacute                                              = 0x1001eda,
-                       ohornacute                                              = 0x1001edb,
-                       Ohorngrave                                              = 0x1001edc,
-                       ohorngrave                                              = 0x1001edd,
-                       Ohornhook                                               = 0x1001ede,
-                       ohornhook                                               = 0x1001edf,
-                       Ohorntilde                                              = 0x1001ee0,
-                       ohorntilde                                              = 0x1001ee1,
-                       Ohornbelowdot                                   = 0x1001ee2,
-                       ohornbelowdot                                   = 0x1001ee3,
-                       Ubelowdot                                               = 0x1001ee4,
-                       ubelowdot                                               = 0x1001ee5,
-                       Uhook                                                   = 0x1001ee6,
-                       uhook                                                   = 0x1001ee7,
-                       Uhornacute                                              = 0x1001ee8,
-                       uhornacute                                              = 0x1001ee9,
-                       Uhorngrave                                              = 0x1001eea,
-                       uhorngrave                                              = 0x1001eeb,
-                       Uhornhook                                               = 0x1001eec,
-                       uhornhook                                               = 0x1001eed,
-                       Uhorntilde                                              = 0x1001eee,
-                       uhorntilde                                              = 0x1001eef,
-                       Uhornbelowdot                                   = 0x1001ef0,
-                       uhornbelowdot                                   = 0x1001ef1,
-                       Ybelowdot                                               = 0x1001ef4,
-                       ybelowdot                                               = 0x1001ef5,
-                       Yhook                                                   = 0x1001ef6,
-                       yhook                                                   = 0x1001ef7,
-                       Ytilde                                                  = 0x1001ef8,
-                       ytilde                                                  = 0x1001ef9,
-                       Ohorn                                                   = 0x10001a0,
-                       ohorn                                                   = 0x10001a1,
-                       Uhorn                                                   = 0x10001af,
-                       uhorn                                                   = 0x10001b0,
-                       EcuSign                                                 = 0x10020a0,
-                       ColonSign                                               = 0x10020a1,
-                       CruzeiroSign                                    = 0x10020a2,
-                       FFrancSign                                              = 0x10020a3,
-                       LiraSign                                                = 0x10020a4,
-                       MillSign                                                = 0x10020a5,
-                       NairaSign                                               = 0x10020a6,
-                       PesetaSign                                              = 0x10020a7,
-                       RupeeSign                                               = 0x10020a8,
-                       WonSign                                                 = 0x10020a9,
-                       NewSheqelSign                                   = 0x10020aa,
-                       DongSign                                                = 0x10020ab,
-                       EuroSign                                                = 0x20ac,
-                       zerosuperior                                    = 0x1002070,
-                       foursuperior                                    = 0x1002074,
-                       fivesuperior                                    = 0x1002075,
-                       sixsuperior                                             = 0x1002076,
-                       sevensuperior                                   = 0x1002077,
-                       eightsuperior                                   = 0x1002078,
-                       ninesuperior                                    = 0x1002079,
-                       zerosubscript                                   = 0x1002080,
-                       onesubscript                                    = 0x1002081,
-                       twosubscript                                    = 0x1002082,
-                       threesubscript                                  = 0x1002083,
-                       foursubscript                                   = 0x1002084,
-                       fivesubscript                                   = 0x1002085,
-                       sixsubscript                                    = 0x1002086,
-                       sevensubscript                                  = 0x1002087,
-                       eightsubscript                                  = 0x1002088,
-                       ninesubscript                                   = 0x1002089,
-                       partdifferential                                = 0x1002202,
-                       emptyset                                                = 0x1002205,
-                       elementof                                               = 0x1002208,
-                       notelementof                                    = 0x1002209,
-                       containsas                                              = 0x100220B,
-                       squareroot                                              = 0x100221A,
-                       cuberoot                                                = 0x100221B,
-                       fourthroot                                              = 0x100221C,
-                       dintegral                                               = 0x100222C,
-                       tintegral                                               = 0x100222D,
-                       because                                                 = 0x1002235,
-                       approxeq                                                = 0x1002248,
-                       notapproxeq                                             = 0x1002247,
-                       notidentical                                    = 0x1002262,
-                       stricteq                                                = 0x1002263,
-                       braille_dot_1                                   = 0xfff1,
-                       braille_dot_2                                   = 0xfff2,
-                       braille_dot_3                                   = 0xfff3,
-                       braille_dot_4                                   = 0xfff4,
-                       braille_dot_5                                   = 0xfff5,
-                       braille_dot_6                                   = 0xfff6,
-                       braille_dot_7                                   = 0xfff7,
-                       braille_dot_8                                   = 0xfff8,
-                       braille_dot_9                                   = 0xfff9,
-                       braille_dot_10                                  = 0xfffa,
-                       braille_blank                                   = 0x1002800,
-                       braille_dots_1                                  = 0x1002801,
-                       braille_dots_2                                  = 0x1002802,
-                       braille_dots_12                                 = 0x1002803,
-                       braille_dots_3                                  = 0x1002804,
-                       braille_dots_13                                 = 0x1002805,
-                       braille_dots_23                                 = 0x1002806,
-                       braille_dots_123                                = 0x1002807,
-                       braille_dots_4                                  = 0x1002808,
-                       braille_dots_14                                 = 0x1002809,
-                       braille_dots_24                                 = 0x100280a,
-                       braille_dots_124                                = 0x100280b,
-                       braille_dots_34                                 = 0x100280c,
-                       braille_dots_134                                = 0x100280d,
-                       braille_dots_234                                = 0x100280e,
-                       braille_dots_1234                               = 0x100280f,
-                       braille_dots_5                                  = 0x1002810,
-                       braille_dots_15                                 = 0x1002811,
-                       braille_dots_25                                 = 0x1002812,
-                       braille_dots_125                                = 0x1002813,
-                       braille_dots_35                                 = 0x1002814,
-                       braille_dots_135                                = 0x1002815,
-                       braille_dots_235                                = 0x1002816,
-                       braille_dots_1235                               = 0x1002817,
-                       braille_dots_45                                 = 0x1002818,
-                       braille_dots_145                                = 0x1002819,
-                       braille_dots_245                                = 0x100281a,
-                       braille_dots_1245                               = 0x100281b,
-                       braille_dots_345                                = 0x100281c,
-                       braille_dots_1345                               = 0x100281d,
-                       braille_dots_2345                               = 0x100281e,
-                       braille_dots_12345                              = 0x100281f,
-                       braille_dots_6                                  = 0x1002820,
-                       braille_dots_16                                 = 0x1002821,
-                       braille_dots_26                                 = 0x1002822,
-                       braille_dots_126                                = 0x1002823,
-                       braille_dots_36                                 = 0x1002824,
-                       braille_dots_136                                = 0x1002825,
-                       braille_dots_236                                = 0x1002826,
-                       braille_dots_1236                               = 0x1002827,
-                       braille_dots_46                                 = 0x1002828,
-                       braille_dots_146                                = 0x1002829,
-                       braille_dots_246                                = 0x100282a,
-                       braille_dots_1246                               = 0x100282b,
-                       braille_dots_346                                = 0x100282c,
-                       braille_dots_1346                               = 0x100282d,
-                       braille_dots_2346                               = 0x100282e,
-                       braille_dots_12346                              = 0x100282f,
-                       braille_dots_56                                 = 0x1002830,
-                       braille_dots_156                                = 0x1002831,
-                       braille_dots_256                                = 0x1002832,
-                       braille_dots_1256                               = 0x1002833,
-                       braille_dots_356                                = 0x1002834,
-                       braille_dots_1356                               = 0x1002835,
-                       braille_dots_2356                               = 0x1002836,
-                       braille_dots_12356                              = 0x1002837,
-                       braille_dots_456                                = 0x1002838,
-                       braille_dots_1456                               = 0x1002839,
-                       braille_dots_2456                               = 0x100283a,
-                       braille_dots_12456                              = 0x100283b,
-                       braille_dots_3456                               = 0x100283c,
-                       braille_dots_13456                              = 0x100283d,
-                       braille_dots_23456                              = 0x100283e,
-                       braille_dots_123456                             = 0x100283f,
-                       braille_dots_7                                  = 0x1002840,
-                       braille_dots_17                                 = 0x1002841,
-                       braille_dots_27                                 = 0x1002842,
-                       braille_dots_127                                = 0x1002843,
-                       braille_dots_37                                 = 0x1002844,
-                       braille_dots_137                                = 0x1002845,
-                       braille_dots_237                                = 0x1002846,
-                       braille_dots_1237                               = 0x1002847,
-                       braille_dots_47                                 = 0x1002848,
-                       braille_dots_147                                = 0x1002849,
-                       braille_dots_247                                = 0x100284a,
-                       braille_dots_1247                               = 0x100284b,
-                       braille_dots_347                                = 0x100284c,
-                       braille_dots_1347                               = 0x100284d,
-                       braille_dots_2347                               = 0x100284e,
-                       braille_dots_12347                              = 0x100284f,
-                       braille_dots_57                                 = 0x1002850,
-                       braille_dots_157                                = 0x1002851,
-                       braille_dots_257                                = 0x1002852,
-                       braille_dots_1257                               = 0x1002853,
-                       braille_dots_357                                = 0x1002854,
-                       braille_dots_1357                               = 0x1002855,
-                       braille_dots_2357                               = 0x1002856,
-                       braille_dots_12357                              = 0x1002857,
-                       braille_dots_457                                = 0x1002858,
-                       braille_dots_1457                               = 0x1002859,
-                       braille_dots_2457                               = 0x100285a,
-                       braille_dots_12457                              = 0x100285b,
-                       braille_dots_3457                               = 0x100285c,
-                       braille_dots_13457                              = 0x100285d,
-                       braille_dots_23457                              = 0x100285e,
-                       braille_dots_123457                             = 0x100285f,
-                       braille_dots_67                                 = 0x1002860,
-                       braille_dots_167                                = 0x1002861,
-                       braille_dots_267                                = 0x1002862,
-                       braille_dots_1267                               = 0x1002863,
-                       braille_dots_367                                = 0x1002864,
-                       braille_dots_1367                               = 0x1002865,
-                       braille_dots_2367                               = 0x1002866,
-                       braille_dots_12367                              = 0x1002867,
-                       braille_dots_467                                = 0x1002868,
-                       braille_dots_1467                               = 0x1002869,
-                       braille_dots_2467                               = 0x100286a,
-                       braille_dots_12467                              = 0x100286b,
-                       braille_dots_3467                               = 0x100286c,
-                       braille_dots_13467                              = 0x100286d,
-                       braille_dots_23467                              = 0x100286e,
-                       braille_dots_123467                             = 0x100286f,
-                       braille_dots_567                                = 0x1002870,
-                       braille_dots_1567                               = 0x1002871,
-                       braille_dots_2567                               = 0x1002872,
-                       braille_dots_12567                              = 0x1002873,
-                       braille_dots_3567                               = 0x1002874,
-                       braille_dots_13567                              = 0x1002875,
-                       braille_dots_23567                              = 0x1002876,
-                       braille_dots_123567                             = 0x1002877,
-                       braille_dots_4567                               = 0x1002878,
-                       braille_dots_14567                              = 0x1002879,
-                       braille_dots_24567                              = 0x100287a,
-                       braille_dots_124567                             = 0x100287b,
-                       braille_dots_34567                              = 0x100287c,
-                       braille_dots_134567                             = 0x100287d,
-                       braille_dots_234567                             = 0x100287e,
-                       braille_dots_1234567                    = 0x100287f,
-                       braille_dots_8                                  = 0x1002880,
-                       braille_dots_18                                 = 0x1002881,
-                       braille_dots_28                                 = 0x1002882,
-                       braille_dots_128                                = 0x1002883,
-                       braille_dots_38                                 = 0x1002884,
-                       braille_dots_138                                = 0x1002885,
-                       braille_dots_238                                = 0x1002886,
-                       braille_dots_1238                               = 0x1002887,
-                       braille_dots_48                                 = 0x1002888,
-                       braille_dots_148                                = 0x1002889,
-                       braille_dots_248                                = 0x100288a,
-                       braille_dots_1248                               = 0x100288b,
-                       braille_dots_348                                = 0x100288c,
-                       braille_dots_1348                               = 0x100288d,
-                       braille_dots_2348                               = 0x100288e,
-                       braille_dots_12348                              = 0x100288f,
-                       braille_dots_58                                 = 0x1002890,
-                       braille_dots_158                                = 0x1002891,
-                       braille_dots_258                                = 0x1002892,
-                       braille_dots_1258                               = 0x1002893,
-                       braille_dots_358                                = 0x1002894,
-                       braille_dots_1358                               = 0x1002895,
-                       braille_dots_2358                               = 0x1002896,
-                       braille_dots_12358                              = 0x1002897,
-                       braille_dots_458                                = 0x1002898,
-                       braille_dots_1458                               = 0x1002899,
-                       braille_dots_2458                               = 0x100289a,
-                       braille_dots_12458                              = 0x100289b,
-                       braille_dots_3458                               = 0x100289c,
-                       braille_dots_13458                              = 0x100289d,
-                       braille_dots_23458                              = 0x100289e,
-                       braille_dots_123458                             = 0x100289f,
-                       braille_dots_68                                 = 0x10028a0,
-                       braille_dots_168                                = 0x10028a1,
-                       braille_dots_268                                = 0x10028a2,
-                       braille_dots_1268                               = 0x10028a3,
-                       braille_dots_368                                = 0x10028a4,
-                       braille_dots_1368                               = 0x10028a5,
-                       braille_dots_2368                               = 0x10028a6,
-                       braille_dots_12368                              = 0x10028a7,
-                       braille_dots_468                                = 0x10028a8,
-                       braille_dots_1468                               = 0x10028a9,
-                       braille_dots_2468                               = 0x10028aa,
-                       braille_dots_12468                              = 0x10028ab,
-                       braille_dots_3468                               = 0x10028ac,
-                       braille_dots_13468                              = 0x10028ad,
-                       braille_dots_23468                              = 0x10028ae,
-                       braille_dots_123468                             = 0x10028af,
-                       braille_dots_568                                = 0x10028b0,
-                       braille_dots_1568                               = 0x10028b1,
-                       braille_dots_2568                               = 0x10028b2,
-                       braille_dots_12568                              = 0x10028b3,
-                       braille_dots_3568                               = 0x10028b4,
-                       braille_dots_13568                              = 0x10028b5,
-                       braille_dots_23568                              = 0x10028b6,
-                       braille_dots_123568                             = 0x10028b7,
-                       braille_dots_4568                               = 0x10028b8,
-                       braille_dots_14568                              = 0x10028b9,
-                       braille_dots_24568                              = 0x10028ba,
-                       braille_dots_124568                             = 0x10028bb,
-                       braille_dots_34568                              = 0x10028bc,
-                       braille_dots_134568                             = 0x10028bd,
-                       braille_dots_234568                             = 0x10028be,
-                       braille_dots_1234568                    = 0x10028bf,
-                       braille_dots_78                                 = 0x10028c0,
-                       braille_dots_178                                = 0x10028c1,
-                       braille_dots_278                                = 0x10028c2,
-                       braille_dots_1278                               = 0x10028c3,
-                       braille_dots_378                                = 0x10028c4,
-                       braille_dots_1378                               = 0x10028c5,
-                       braille_dots_2378                               = 0x10028c6,
-                       braille_dots_12378                              = 0x10028c7,
-                       braille_dots_478                                = 0x10028c8,
-                       braille_dots_1478                               = 0x10028c9,
-                       braille_dots_2478                               = 0x10028ca,
-                       braille_dots_12478                              = 0x10028cb,
-                       braille_dots_3478                               = 0x10028cc,
-                       braille_dots_13478                              = 0x10028cd,
-                       braille_dots_23478                              = 0x10028ce,
-                       braille_dots_123478                             = 0x10028cf,
-                       braille_dots_578                                = 0x10028d0,
-                       braille_dots_1578                               = 0x10028d1,
-                       braille_dots_2578                               = 0x10028d2,
-                       braille_dots_12578                              = 0x10028d3,
-                       braille_dots_3578                               = 0x10028d4,
-                       braille_dots_13578                              = 0x10028d5,
-                       braille_dots_23578                              = 0x10028d6,
-                       braille_dots_123578                             = 0x10028d7,
-                       braille_dots_4578                               = 0x10028d8,
-                       braille_dots_14578                              = 0x10028d9,
-                       braille_dots_24578                              = 0x10028da,
-                       braille_dots_124578                             = 0x10028db,
-                       braille_dots_34578                              = 0x10028dc,
-                       braille_dots_134578                             = 0x10028dd,
-                       braille_dots_234578                             = 0x10028de,
-                       braille_dots_1234578                    = 0x10028df,
-                       braille_dots_678                                = 0x10028e0,
-                       braille_dots_1678                               = 0x10028e1,
-                       braille_dots_2678                               = 0x10028e2,
-                       braille_dots_12678                              = 0x10028e3,
-                       braille_dots_3678                               = 0x10028e4,
-                       braille_dots_13678                              = 0x10028e5,
-                       braille_dots_23678                              = 0x10028e6,
-                       braille_dots_123678                             = 0x10028e7,
-                       braille_dots_4678                               = 0x10028e8,
-                       braille_dots_14678                              = 0x10028e9,
-                       braille_dots_24678                              = 0x10028ea,
-                       braille_dots_124678                             = 0x10028eb,
-                       braille_dots_34678                              = 0x10028ec,
-                       braille_dots_134678                             = 0x10028ed,
-                       braille_dots_234678                             = 0x10028ee,
-                       braille_dots_1234678                    = 0x10028ef,
-                       braille_dots_5678                               = 0x10028f0,
-                       braille_dots_15678                              = 0x10028f1,
-                       braille_dots_25678                              = 0x10028f2,
-                       braille_dots_125678                             = 0x10028f3,
-                       braille_dots_35678                              = 0x10028f4,
-                       braille_dots_135678                             = 0x10028f5,
-                       braille_dots_235678                             = 0x10028f6,
-                       braille_dots_1235678                    = 0x10028f7,
-                       braille_dots_45678                              = 0x10028f8,
-                       braille_dots_145678                             = 0x10028f9,
-                       braille_dots_245678                             = 0x10028fa,
-                       braille_dots_1245678                    = 0x10028fb,
-                       braille_dots_345678                             = 0x10028fc,
-                       braille_dots_1345678                    = 0x10028fd,
-                       braille_dots_2345678                    = 0x10028fe,
-                       braille_dots_12345678                   = 0x10028ff,
-                       Sinh_ng                                                 = 0x1000d82,
-                       Sinh_h2                                                 = 0x1000d83,
-                       Sinh_a                                                  = 0x1000d85,
-                       Sinh_aa                                                 = 0x1000d86,
-                       Sinh_ae                                                 = 0x1000d87,
-                       Sinh_aee                                                = 0x1000d88,
-                       Sinh_i                                                  = 0x1000d89,
-                       Sinh_ii                                                 = 0x1000d8a,
-                       Sinh_u                                                  = 0x1000d8b,
-                       Sinh_uu                                                 = 0x1000d8c,
-                       Sinh_ri                                                 = 0x1000d8d,
-                       Sinh_rii                                                = 0x1000d8e,
-                       Sinh_lu                                                 = 0x1000d8f,
-                       Sinh_luu                                                = 0x1000d90,
-                       Sinh_e                                                  = 0x1000d91,
-                       Sinh_ee                                                 = 0x1000d92,
-                       Sinh_ai                                                 = 0x1000d93,
-                       Sinh_o                                                  = 0x1000d94,
-                       Sinh_oo                                                 = 0x1000d95,
-                       Sinh_au                                                 = 0x1000d96,
-                       Sinh_ka                                                 = 0x1000d9a,
-                       Sinh_kha                                                = 0x1000d9b,
-                       Sinh_ga                                                 = 0x1000d9c,
-                       Sinh_gha                                                = 0x1000d9d,
-                       Sinh_ng2                                                = 0x1000d9e,
-                       Sinh_nga                                                = 0x1000d9f,
-                       Sinh_ca                                                 = 0x1000da0,
-                       Sinh_cha                                                = 0x1000da1,
-                       Sinh_ja                                                 = 0x1000da2,
-                       Sinh_jha                                                = 0x1000da3,
-                       Sinh_nya                                                = 0x1000da4,
-                       Sinh_jnya                                               = 0x1000da5,
-                       Sinh_nja                                                = 0x1000da6,
-                       Sinh_tta                                                = 0x1000da7,
-                       Sinh_ttha                                               = 0x1000da8,
-                       Sinh_dda                                                = 0x1000da9,
-                       Sinh_ddha                                               = 0x1000daa,
-                       Sinh_nna                                                = 0x1000dab,
-                       Sinh_ndda                                               = 0x1000dac,
-                       Sinh_tha                                                = 0x1000dad,
-                       Sinh_thha                                               = 0x1000dae,
-                       Sinh_dha                                                = 0x1000daf,
-                       Sinh_dhha                                               = 0x1000db0,
-                       Sinh_na                                                 = 0x1000db1,
-                       Sinh_ndha                                               = 0x1000db3,
-                       Sinh_pa                                                 = 0x1000db4,
-                       Sinh_pha                                                = 0x1000db5,
-                       Sinh_ba                                                 = 0x1000db6,
-                       Sinh_bha                                                = 0x1000db7,
-                       Sinh_ma                                                 = 0x1000db8,
-                       Sinh_mba                                                = 0x1000db9,
-                       Sinh_ya                                                 = 0x1000dba,
-                       Sinh_ra                                                 = 0x1000dbb,
-                       Sinh_la                                                 = 0x1000dbd,
-                       Sinh_va                                                 = 0x1000dc0,
-                       Sinh_sha                                                = 0x1000dc1,
-                       Sinh_ssha                                               = 0x1000dc2,
-                       Sinh_sa                                                 = 0x1000dc3,
-                       Sinh_ha                                                 = 0x1000dc4,
-                       Sinh_lla                                                = 0x1000dc5,
-                       Sinh_fa                                                 = 0x1000dc6,
-                       Sinh_al                                                 = 0x1000dca,
-                       Sinh_aa2                                                = 0x1000dcf,
-                       Sinh_ae2                                                = 0x1000dd0,
-                       Sinh_aee2                                               = 0x1000dd1,
-                       Sinh_i2                                                 = 0x1000dd2,
-                       Sinh_ii2                                                = 0x1000dd3,
-                       Sinh_u2                                                 = 0x1000dd4,
-                       Sinh_uu2                                                = 0x1000dd6,
-                       Sinh_ru2                                                = 0x1000dd8,
-                       Sinh_e2                                                 = 0x1000dd9,
-                       Sinh_ee2                                                = 0x1000dda,
-                       Sinh_ai2                                                = 0x1000ddb,
-                       Sinh_o2                                                 = 0x1000ddc,
-                       Sinh_oo2                                                = 0x1000ddd,
-                       Sinh_au2                                                = 0x1000dde,
-                       Sinh_lu2                                                = 0x1000ddf,
-                       Sinh_ruu2                                               = 0x1000df2,
-                       Sinh_luu2                                               = 0x1000df3,
-                       Sinh_kunddaliya                                 = 0x1000df4,
-                       XF86ModeLock                                    = 0x1008FF01,
-                       XF86MonBrightnessUp                             = 0x1008FF02,
-                       XF86MonBrightnessDown                   = 0x1008FF03,
-                       XF86KbdLightOnOff                               = 0x1008FF04,
-                       XF86KbdBrightnessUp                             = 0x1008FF05,
-                       XF86KbdBrightnessDown                   = 0x1008FF06,
-                       XF86Standby                                             = 0x1008FF10,
-                       XF86AudioLowerVolume                    = 0x1008FF11,
-                       XF86AudioMute                                   = 0x1008FF12,
-                       XF86AudioRaiseVolume                    = 0x1008FF13,
-                       XF86AudioPlay                                   = 0x1008FF14,
-                       XF86AudioStop                                   = 0x1008FF15,
-                       XF86AudioPrev                                   = 0x1008FF16,
-                       XF86AudioNext                                   = 0x1008FF17,
-                       XF86HomePage                                    = 0x1008FF18,
-                       XF86Mail                                                = 0x1008FF19,
-                       XF86Start                                               = 0x1008FF1A,
-                       XF86Search                                              = 0x1008FF1B,
-                       XF86AudioRecord                                 = 0x1008FF1C,
-                       XF86Calculator                                  = 0x1008FF1D,
-                       XF86Memo                                                = 0x1008FF1E,
-                       XF86ToDoList                                    = 0x1008FF1F,
-                       XF86Calendar                                    = 0x1008FF20,
-                       XF86PowerDown                                   = 0x1008FF21,
-                       XF86ContrastAdjust                              = 0x1008FF22,
-                       XF86RockerUp                                    = 0x1008FF23,
-                       XF86RockerDown                                  = 0x1008FF24,
-                       XF86RockerEnter                                 = 0x1008FF25,
-                       XF86Back                                                = 0x1008FF26,
-                       XF86Forward                                             = 0x1008FF27,
-                       XF86Stop                                                = 0x1008FF28,
-                       XF86Refresh                                             = 0x1008FF29,
-                       XF86PowerOff                                    = 0x1008FF2A,
-                       XF86WakeUp                                              = 0x1008FF2B,
-                       XF86Eject                                               = 0x1008FF2C,
-                       XF86ScreenSaver                                 = 0x1008FF2D,
-                       XF86WWW                                                 = 0x1008FF2E,
-                       XF86Sleep                                               = 0x1008FF2F,
-                       XF86Favorites                                   = 0x1008FF30,
-                       XF86AudioPause                                  = 0x1008FF31,
-                       XF86AudioMedia                                  = 0x1008FF32,
-                       XF86MyComputer                                  = 0x1008FF33,
-                       XF86VendorHome                                  = 0x1008FF34,
-                       XF86LightBulb                                   = 0x1008FF35,
-                       XF86Shop                                                = 0x1008FF36,
-                       XF86History                                             = 0x1008FF37,
-                       XF86OpenURL                                             = 0x1008FF38,
-                       XF86AddFavorite                                 = 0x1008FF39,
-                       XF86HotLinks                                    = 0x1008FF3A,
-                       XF86BrightnessAdjust                    = 0x1008FF3B,
-                       XF86Finance                                             = 0x1008FF3C,
-                       XF86Community                                   = 0x1008FF3D,
-                       XF86AudioRewind                                 = 0x1008FF3E,
-                       XF86BackForward                                 = 0x1008FF3F,
-                       XF86Launch0                                             = 0x1008FF40,
-                       XF86Launch1                                             = 0x1008FF41,
-                       XF86Launch2                                             = 0x1008FF42,
-                       XF86Launch3                                             = 0x1008FF43,
-                       XF86Launch4                                             = 0x1008FF44,
-                       XF86Launch5                                             = 0x1008FF45,
-                       XF86Launch6                                             = 0x1008FF46,
-                       XF86Launch7                                             = 0x1008FF47,
-                       XF86Launch8                                             = 0x1008FF48,
-                       XF86Launch9                                             = 0x1008FF49,
-                       XF86LaunchA                                             = 0x1008FF4A,
-                       XF86LaunchB                                             = 0x1008FF4B,
-                       XF86LaunchC                                             = 0x1008FF4C,
-                       XF86LaunchD                                             = 0x1008FF4D,
-                       XF86LaunchE                                             = 0x1008FF4E,
-                       XF86LaunchF                                             = 0x1008FF4F,
-                       XF86ApplicationLeft                             = 0x1008FF50,
-                       XF86ApplicationRight                    = 0x1008FF51,
-                       XF86Book                                                = 0x1008FF52,
-                       XF86CD                                                  = 0x1008FF53,
-                       XF86Calculater                                  = 0x1008FF54,
-                       XF86Clear                                               = 0x1008FF55,
-                       XF86Close                                               = 0x1008FF56,
-                       XF86Copy                                                = 0x1008FF57,
-                       XF86Cut                                                 = 0x1008FF58,
-                       XF86Display                                             = 0x1008FF59,
-                       XF86DOS                                                 = 0x1008FF5A,
-                       XF86Documents                                   = 0x1008FF5B,
-                       XF86Excel                                               = 0x1008FF5C,
-                       XF86Explorer                                    = 0x1008FF5D,
-                       XF86Game                                                = 0x1008FF5E,
-                       XF86Go                                                  = 0x1008FF5F,
-                       XF86iTouch                                              = 0x1008FF60,
-                       XF86LogOff                                              = 0x1008FF61,
-                       XF86Market                                              = 0x1008FF62,
-                       XF86Meeting                                             = 0x1008FF63,
-                       XF86MenuKB                                              = 0x1008FF65,
-                       XF86MenuPB                                              = 0x1008FF66,
-                       XF86MySites                                             = 0x1008FF67,
-                       XF86New                                                 = 0x1008FF68,
-                       XF86News                                                = 0x1008FF69,
-                       XF86OfficeHome                                  = 0x1008FF6A,
-                       XF86Open                                                = 0x1008FF6B,
-                       XF86Option                                              = 0x1008FF6C,
-                       XF86Paste                                               = 0x1008FF6D,
-                       XF86Phone                                               = 0x1008FF6E,
-                       XF86Q                                                   = 0x1008FF70,
-                       XF86Reply                                               = 0x1008FF72,
-                       XF86Reload                                              = 0x1008FF73,
-                       XF86RotateWindows                               = 0x1008FF74,
-                       XF86RotationPB                                  = 0x1008FF75,
-                       XF86RotationKB                                  = 0x1008FF76,
-                       XF86Save                                                = 0x1008FF77,
-                       XF86ScrollUp                                    = 0x1008FF78,
-                       XF86ScrollDown                                  = 0x1008FF79,
-                       XF86ScrollClick                                 = 0x1008FF7A,
-                       XF86Send                                                = 0x1008FF7B,
-                       XF86Spell                                               = 0x1008FF7C,
-                       XF86SplitScreen                                 = 0x1008FF7D,
-                       XF86Support                                             = 0x1008FF7E,
-                       XF86TaskPane                                    = 0x1008FF7F,
-                       XF86Terminal                                    = 0x1008FF80,
-                       XF86Tools                                               = 0x1008FF81,
-                       XF86Travel                                              = 0x1008FF82,
-                       XF86UserPB                                              = 0x1008FF84,
-                       XF86User1KB                                             = 0x1008FF85,
-                       XF86User2KB                                             = 0x1008FF86,
-                       XF86Video                                               = 0x1008FF87,
-                       XF86WheelButton                                 = 0x1008FF88,
-                       XF86Word                                                = 0x1008FF89,
-                       XF86Xfer                                                = 0x1008FF8A,
-                       XF86ZoomIn                                              = 0x1008FF8B,
-                       XF86ZoomOut                                             = 0x1008FF8C,
-                       XF86Away                                                = 0x1008FF8D,
-                       XF86Messenger                                   = 0x1008FF8E,
-                       XF86WebCam                                              = 0x1008FF8F,
-                       XF86MailForward                                 = 0x1008FF90,
-                       XF86Pictures                                    = 0x1008FF91,
-                       XF86Music                                               = 0x1008FF92,
-                       XF86Battery                                             = 0x1008FF93,
-                       XF86Bluetooth                                   = 0x1008FF94,
-                       XF86WLAN                                                = 0x1008FF95,
-                       XF86UWB                                                 = 0x1008FF96,
-                       XF86AudioForward                                = 0x1008FF97,
-                       XF86AudioRepeat                                 = 0x1008FF98,
-                       XF86AudioRandomPlay                             = 0x1008FF99,
-                       XF86Subtitle                                    = 0x1008FF9A,
-                       XF86AudioCycleTrack                             = 0x1008FF9B,
-                       XF86CycleAngle                                  = 0x1008FF9C,
-                       XF86FrameBack                                   = 0x1008FF9D,
-                       XF86FrameForward                                = 0x1008FF9E,
-                       XF86Time                                                = 0x1008FF9F,
-                       XF86Select                                              = 0x1008FFA0,
-                       XF86View                                                = 0x1008FFA1,
-                       XF86TopMenu                                             = 0x1008FFA2,
-                       XF86Red                                                 = 0x1008FFA3,
-                       XF86Green                                               = 0x1008FFA4,
-                       XF86Yellow                                              = 0x1008FFA5,
-                       XF86Blue                                                = 0x1008FFA6,
-                       XF86Suspend                                             = 0x1008FFA7,
-                       XF86Hibernate                                   = 0x1008FFA8,
-                       XF86TouchpadToggle                              = 0x1008FFA9,
-                       XF86TouchpadOn                                  = 0x1008FFB0,
-                       XF86TouchpadOff                                 = 0x1008FFB1,
-                       XF86AudioMicMute                                = 0x1008FFB2,
-                       XF86Keyboard                                    = 0x1008FFB3,
-                       XF86WWAN                                                = 0x1008FFB4,
-                       XF86RFKill                                              = 0x1008FFB5,
-                       XF86AudioPreset                                 = 0x1008FFB6,
-                       XF86Switch_VT_1                                 = 0x1008FE01,
-                       XF86Switch_VT_2                                 = 0x1008FE02,
-                       XF86Switch_VT_3                                 = 0x1008FE03,
-                       XF86Switch_VT_4                                 = 0x1008FE04,
-                       XF86Switch_VT_5                                 = 0x1008FE05,
-                       XF86Switch_VT_6                                 = 0x1008FE06,
-                       XF86Switch_VT_7                                 = 0x1008FE07,
-                       XF86Switch_VT_8                                 = 0x1008FE08,
-                       XF86Switch_VT_9                                 = 0x1008FE09,
-                       XF86Switch_VT_10                                = 0x1008FE0A,
-                       XF86Switch_VT_11                                = 0x1008FE0B,
-                       XF86Switch_VT_12                                = 0x1008FE0C,
-                       XF86Ungrab                                              = 0x1008FE20,
-                       XF86ClearGrab                                   = 0x1008FE21,
-                       XF86Next_VMode                                  = 0x1008FE22,
-                       XF86Prev_VMode                                  = 0x1008FE23,
-                       XF86LogWindowTree                               = 0x1008FE24,
-                       XF86LogGrabInfo                                 = 0x1008FE25,
-                       SunFA_Grave                                             = 0x1005FF00,
-                       SunFA_Circum                                    = 0x1005FF01,
-                       SunFA_Tilde                                             = 0x1005FF02,
-                       SunFA_Acute                                             = 0x1005FF03,
-                       SunFA_Diaeresis                                 = 0x1005FF04,
-                       SunFA_Cedilla                                   = 0x1005FF05,
-                       SunF36                                                  = 0x1005FF10,
-                       SunF37                                                  = 0x1005FF11,
-                       SunSys_Req                                              = 0x1005FF60,
-                       SunPrint_Screen                                 = 0x0000FF61,
-                       SunCompose                                              = 0x0000FF20,
-                       SunAltGraph                                             = 0x0000FF7E,
-                       SunPageUp                                               = 0x0000FF55,
-                       SunPageDown                                             = 0x0000FF56,
-                       SunUndo                                                 = 0x0000FF65,
-                       SunAgain                                                = 0x0000FF66,
-                       SunFind                                                 = 0x0000FF68,
-                       SunStop                                                 = 0x0000FF69,
-                       SunProps                                                = 0x1005FF70,
-                       SunFront                                                = 0x1005FF71,
-                       SunCopy                                                 = 0x1005FF72,
-                       SunOpen                                                 = 0x1005FF73,
-                       SunPaste                                                = 0x1005FF74,
-                       SunCut                                                  = 0x1005FF75,
-                       SunPowerSwitch                                  = 0x1005FF76,
-                       SunAudioLowerVolume                             = 0x1005FF77,
-                       SunAudioMute                                    = 0x1005FF78,
-                       SunAudioRaiseVolume                             = 0x1005FF79,
-                       SunVideoDegauss                                 = 0x1005FF7A,
-                       SunVideoLowerBrightness                 = 0x1005FF7B,
-                       SunVideoRaiseBrightness                 = 0x1005FF7C,
-                       SunPowerSwitchShift                             = 0x1005FF7D,
-                       Dring_accent                                    = 0x1000FEB0,
-                       Dcircumflex_accent                              = 0x1000FE5E,
-                       Dcedilla_accent                                 = 0x1000FE2C,
-                       Dacute_accent                                   = 0x1000FE27,
-                       Dgrave_accent                                   = 0x1000FE60,
-                       Dtilde                                                  = 0x1000FE7E,
-                       Ddiaeresis                                              = 0x1000FE22,
-                       DRemove                                                 = 0x1000FF00,
-                       hpClearLine                                             = 0x1000FF6F,
-                       hpInsertLine                                    = 0x1000FF70,
-                       hpDeleteLine                                    = 0x1000FF71,
-                       hpInsertChar                                    = 0x1000FF72,
-                       hpDeleteChar                                    = 0x1000FF73,
-                       hpBackTab                                               = 0x1000FF74,
-                       hpKP_BackTab                                    = 0x1000FF75,
-                       hpModelock1                                             = 0x1000FF48,
-                       hpModelock2                                             = 0x1000FF49,
-                       hpReset                                                 = 0x1000FF6C,
-                       hpSystem                                                = 0x1000FF6D,
-                       hpUser                                                  = 0x1000FF6E,
-                       hpmute_acute                                    = 0x100000A8,
-                       hpmute_grave                                    = 0x100000A9,
-                       hpmute_asciicircum                              = 0x100000AA,
-                       hpmute_diaeresis                                = 0x100000AB,
-                       hpmute_asciitilde                               = 0x100000AC,
-                       hplira                                                  = 0x100000AF,
-                       hpguilder                                               = 0x100000BE,
-                       hpYdiaeresis                                    = 0x100000EE,
-                       hpIO                                                    = 0x100000EE,
-                       hplongminus                                             = 0x100000F6,
-                       hpblock                                                 = 0x100000FC,
-                       osfCopy                                                 = 0x1004FF02,
-                       osfCut                                                  = 0x1004FF03,
-                       osfPaste                                                = 0x1004FF04,
-                       osfBackTab                                              = 0x1004FF07,
-                       osfBackSpace                                    = 0x1004FF08,
-                       osfClear                                                = 0x1004FF0B,
-                       osfEscape                                               = 0x1004FF1B,
-                       osfAddMode                                              = 0x1004FF31,
-                       osfPrimaryPaste                                 = 0x1004FF32,
-                       osfQuickPaste                                   = 0x1004FF33,
-                       osfPageLeft                                             = 0x1004FF40,
-                       osfPageUp                                               = 0x1004FF41,
-                       osfPageDown                                             = 0x1004FF42,
-                       osfPageRight                                    = 0x1004FF43,
-                       osfActivate                                             = 0x1004FF44,
-                       osfMenuBar                                              = 0x1004FF45,
-                       osfLeft                                                 = 0x1004FF51,
-                       osfUp                                                   = 0x1004FF52,
-                       osfRight                                                = 0x1004FF53,
-                       osfDown                                                 = 0x1004FF54,
-                       osfEndLine                                              = 0x1004FF57,
-                       osfBeginLine                                    = 0x1004FF58,
-                       osfEndData                                              = 0x1004FF59,
-                       osfBeginData                                    = 0x1004FF5A,
-                       osfPrevMenu                                             = 0x1004FF5B,
-                       osfNextMenu                                             = 0x1004FF5C,
-                       osfPrevField                                    = 0x1004FF5D,
-                       osfNextField                                    = 0x1004FF5E,
-                       osfSelect                                               = 0x1004FF60,
-                       osfInsert                                               = 0x1004FF63,
-                       osfUndo                                                 = 0x1004FF65,
-                       osfMenu                                                 = 0x1004FF67,
-                       osfCancel                                               = 0x1004FF69,
-                       osfHelp                                                 = 0x1004FF6A,
-                       osfSelectAll                                    = 0x1004FF71,
-                       osfDeselectAll                                  = 0x1004FF72,
-                       osfReselect                                             = 0x1004FF73,
-                       osfExtend                                               = 0x1004FF74,
-                       osfRestore                                              = 0x1004FF78,
-                       osfDelete                                               = 0x1004FFFF,
-                       Reset                                                   = 0x1000FF6C,
-                       System                                                  = 0x1000FF6D,
-                       User                                                    = 0x1000FF6E,
-                       ClearLine                                               = 0x1000FF6F,
-                       InsertLine                                              = 0x1000FF70,
-                       DeleteLine                                              = 0x1000FF71,
-                       InsertChar                                              = 0x1000FF72,
-                       DeleteChar                                              = 0x1000FF73,
-                       BackTab                                                 = 0x1000FF74,
-                       KP_BackTab                                              = 0x1000FF75,
-                       Ext16bit_L                                              = 0x1000FF76,
-                       Ext16bit_R                                              = 0x1000FF77,
-                       mute_acute                                              = 0x100000a8,
-                       mute_grave                                              = 0x100000a9,
-                       mute_asciicircum                                = 0x100000aa,
-                       mute_diaeresis                                  = 0x100000ab,
-                       mute_asciitilde                                 = 0x100000ac,
-                       lira                                                    = 0x100000af,
-                       guilder                                                 = 0x100000be,
-                       IO                                                              = 0x100000ee,
-                       longminus                                               = 0x100000f6,
-                       block                                                   = 0x100000fc,
-
-               }
-
-               enum xkb_key_direction : byte {
-                       KEY_UP,   /**< The key was released. */
-                       KEY_DOWN  /**< The key was pressed. */
-               }
-
-               [Flags]
-               enum xkb_state_component : ushort {                     
-                       XKB_STATE_MODS_DEPRESSED = (1 << 0),
-                       XKB_STATE_MODS_LATCHED = (1 << 1),
-                       XKB_STATE_MODS_LOCKED = (1 << 2),
-                       XKB_STATE_MODS_EFFECTIVE = (1 << 3),
-                       XKB_STATE_LAYOUT_DEPRESSED = (1 << 4),
-                       XKB_STATE_LAYOUT_LATCHED = (1 << 5),
-                       XKB_STATE_LAYOUT_LOCKED = (1 << 6),
-                       XKB_STATE_LAYOUT_EFFECTIVE = (1 << 7),
-                       XKB_STATE_LEDS = (1 << 8)
-               }
-
-               const string XKB_MOD_NAME_SHIFT ="Shift";
-               const string XKB_MOD_NAME_CAPS = "Lock";
-               const string XKB_MOD_NAME_CTRL = "Control";
-               const string XKB_MOD_NAME_ALT = "Mod1";
-               const string XKB_MOD_NAME_NUM = "Mod2";
-               const string XKB_MOD_NAME_LOGO = "Mod4";
-
-               const string XKB_LED_NAME_CAPS = "Caps Lock";
-               const string XKB_LED_NAME_NUM = "Num Lock";
-               const string XKB_LED_NAME_SCROLL = "Scroll Lock";
-
-               #region pinvoke XKB
-
-               [DllImportAttribute("xkbcommon")]
-               static extern IntPtr xkb_context_new (int flags);
-               [DllImportAttribute("xkbcommon")]
-               static extern xkb_keysym xkb_state_key_get_one_sym (IntPtr state, xkb_keycode_t keycode);
-               [DllImportAttribute("xkbcommon")]
-               static extern int xkb_state_key_get_syms (IntPtr state, xkb_keycode_t keycode, ref IntPtr syms_out);
-
-               [DllImportAttribute("xkbcommon")]
-               static extern xkb_mod_index_t xkb_keymap_num_mods (IntPtr keymap);
-               [DllImportAttribute("xkbcommon")]
-               static extern xkb_mod_index_t xkb_keymap_mod_get_index (IntPtr keymap, string name);
-               [DllImportAttribute("xkbcommon")]
-               static extern bool xkb_state_mod_index_is_active (IntPtr state, xkb_mod_index_t idx, xkb_state_component type);         
-               [DllImportAttribute("xkbcommon")]
-               static extern int xkb_state_mod_name_is_active (IntPtr state, string mod_name, xkb_state_component type);
-
-               [DllImportAttribute("xkbcommon")]
-               static extern UInt32 xkb_state_key_get_utf32 (IntPtr state, xkb_keycode_t key);
-               [DllImportAttribute("xkbcommon")]
-               static extern void xkb_state_unref (IntPtr state);      
-               [DllImportAttribute("xkbcommon")]
-               static extern void xkb_keymap_unref (IntPtr keymap);    
-               [DllImportAttribute("xkbcommon")]
-               static extern void xkb_context_unref (IntPtr ctx);      
-
-               [DllImportAttribute("xkbcommon")]
-               static extern xkb_state_component       xkb_state_update_key(IntPtr state, xkb_keycode_t key, xkb_key_direction direction);
-
-               [DllImportAttribute("xkbcommon-x11.so.0")]
-               static extern int xkb_x11_setup_xkb_extension (IntPtr connection,
-                       UInt16 major_xkb_version, UInt16 minor_xkb_version,
-                       byte xkb_x11_setup_xkb_extension_flags,
-                       out UInt16 major_xkb_version_out,
-                       out UInt16 minor_xkb_version_out,
-                       out byte base_event_out,
-                       out byte base_error_out);
-               [DllImportAttribute("xkbcommon-x11.so.0")]
-               static extern int xkb_x11_get_core_keyboard_device_id(IntPtr connection);
-               [DllImportAttribute("xkbcommon-x11.so.0")]
-               static extern IntPtr xkb_x11_keymap_new_from_device (IntPtr context, IntPtr connection,
-                       int device_id, byte flags);
-               [DllImportAttribute("xkbcommon-x11.so.0")]
-               static extern IntPtr xkb_x11_state_new_from_device (IntPtr xkbKeymap, IntPtr connection, int device_id);
-               #endregion
-               xkb_mod_index_t ModIdxShift;
-               xkb_mod_index_t ModIdxCtrl;
-               xkb_mod_index_t ModIdxAlt;
-               xkb_mod_index_t ModIdxLogo;
-               xkb_mod_index_t ModIdxCapsLock;
-               xkb_mod_index_t ModIdxNumLock;
-
-               IntPtr xkbCtx, xkbKeymap, xkbState;
-
-               Interface iFace;
-
-
-               public void HandleEvent (uint keycode, bool pressed) {
-                       xkb_keysym ks = xkb_state_key_get_one_sym (xkbState, keycode);
-                       xkb_key_direction keyDir = xkb_key_direction.KEY_DOWN;
-
-                       if (pressed) {
-                               iFace.ProcessKeyDown ((Key)ks);
-
-                               IntPtr ptrKeySyms = IntPtr.Zero;
-
-                               int nbKeySyms = xkb_state_key_get_syms (xkbState, keycode, ref ptrKeySyms);
-                               int[] keySyms = new int[nbKeySyms];
-                               Marshal.Copy (ptrKeySyms, keySyms, 0, nbKeySyms);
-
-                               uint utf32 = xkb_state_key_get_utf32 (xkbState, keycode);
-                               char c = char.ConvertFromUtf32 ((int)utf32) [0];
-
-                               if (!char.IsControl (c))
-                                       iFace.ProcessKeyPress (c);
-                       } else {
-                               keyDir = xkb_key_direction.KEY_UP;
-                               iFace.ProcessKeyUp ((Key)ks);
-                       }
-
-                       xkb_state_update_key (xkbState, keycode, keyDir);
-               }
-               public bool IsDown (Key key) {
-                       return false;
-               }
-               public bool Shift {
-                       get {
-                               return xkb_state_mod_index_is_active (xkbState, ModIdxShift, xkb_state_component.XKB_STATE_MODS_EFFECTIVE);
-                       }
-               }
-               public bool Ctrl {
-                       get {
-                               return xkb_state_mod_index_is_active (xkbState, ModIdxCtrl, xkb_state_component.XKB_STATE_MODS_EFFECTIVE);
-                       }
-               }
-               public bool Alt {
-                       get {
-                               return xkb_state_mod_index_is_active (xkbState, ModIdxAlt, xkb_state_component.XKB_STATE_MODS_EFFECTIVE);
-                       }
-               }
-               public void Destroy () {
-                       xkb_state_unref (xkbState);
-                       xkb_keymap_unref (xkbKeymap);
-                       xkb_context_unref (xkbCtx);
-               }
-
-
-               public XCBKeyboard (IntPtr xcbConnection, Interface _iface)
-               {
-                       iFace = _iface;
-
-                       ushort xkb_maj, xkb_min;
-                       byte base_evt, base_err;
-
-                       xkbCtx = xkb_context_new (0);
-                       xkb_x11_setup_xkb_extension (xcbConnection, 1, 0, 0, out xkb_maj, out xkb_min, out base_evt, out base_err);
-                       int kb = xkb_x11_get_core_keyboard_device_id (xcbConnection);
-                       xkbKeymap = xkb_x11_keymap_new_from_device (xkbCtx, xcbConnection, kb, 0);
-                       xkbState = xkb_x11_state_new_from_device (xkbKeymap, xcbConnection, kb);
-
-                       ModIdxShift = xkb_keymap_mod_get_index (xkbKeymap, XKB_MOD_NAME_SHIFT);
-                       ModIdxCtrl = xkb_keymap_mod_get_index (xkbKeymap, XKB_MOD_NAME_CTRL);
-                       ModIdxAlt = xkb_keymap_mod_get_index (xkbKeymap, XKB_MOD_NAME_ALT);
-                       ModIdxLogo = xkb_keymap_mod_get_index (xkbKeymap, XKB_MOD_NAME_LOGO);
-                       ModIdxCapsLock = xkb_keymap_mod_get_index (xkbKeymap, XKB_MOD_NAME_CAPS);
-                       ModIdxNumLock = xkb_keymap_mod_get_index (xkbKeymap, XKB_MOD_NAME_NUM);
-               }
-       }
-}
-
diff --git a/Crow/src/backends/xcb/XCursor.cs b/Crow/src/backends/xcb/XCursor.cs
deleted file mode 100644 (file)
index 1cca510..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-//
-// XCursor.cs
-//
-// Author:
-//       Jean-Philippe Bruyère <jp.bruyere@hotmail.com>
-//
-// Copyright (c) 2013-2017 Jean-Philippe Bruyère
-//
-// 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.
-
-using System;
-using System.IO;
-using System.Diagnostics;
-using System.Collections.Generic;
-
-namespace Crow
-{
-       public class XCursorFile
-       {
-               const uint XC_TYPE_IMG = 0xfffd0002;
-
-               class toc
-               {
-                       public uint type;
-                       public uint subtype;
-                       public uint pos;
-
-                       public toc(BinaryReader sr)
-                       {
-                               type = sr.ReadUInt32();
-                               subtype = sr.ReadUInt32();
-                               pos = sr.ReadUInt32();
-                       }
-               }
-
-               public List<XCursor> Cursors = new List<XCursor>();
-
-
-               static XCursorFile loadFromStream(Stream s)
-               {
-                       List<toc> tocList = new List<toc> ();
-                       XCursorFile tmp = new XCursorFile ();
-
-                       using (BinaryReader sr = new BinaryReader (s)) {
-                               byte[] data;
-                               //magic: CARD32 ’Xcur’ (0x58, 0x63, 0x75, 0x72)
-                               if (new string (sr.ReadChars (4)) != "Xcur") {
-                                       Debug.WriteLine ("XCursor Load error: Wrong magic");
-                                       return null;
-                               }
-                               //header: CARD32 bytes in this header
-                               uint headerLength = sr.ReadUInt32 ();
-                               //version: CARD32 file version number
-                               uint version = sr.ReadUInt32 ();
-                               //ntoc: CARD32 number of toc entries
-                               uint nbToc = sr.ReadUInt32 ();
-                               //toc: LISTofTOC table of contents
-                               for (uint i = 0; i < nbToc; i++) {
-                                       tocList.Add (new toc (sr));
-                               }
-
-                               foreach (toc t in tocList) {
-                                       if (t.type != XC_TYPE_IMG)
-                                               continue;
-
-                                       sr.BaseStream.Seek (t.pos, SeekOrigin.Begin);
-                                       tmp.Cursors.Add(imageLoad (sr));                                                
-                               }
-                       }
-                       return tmp;
-               }
-
-               public static XCursorFile Load(Interface iface, string path)
-               {
-                       return loadFromStream (iface.GetStreamFromPath (path));
-               }
-
-               static XCursor imageLoad(BinaryReader sr)
-               {
-                       XCursor tmp = new XCursor();
-                       //                      header: 36 Image headers are 36 bytes
-                       uint header = sr.ReadUInt32();
-                       //                      type: 0xfffd0002 Image type is 0xfffd0002
-                       uint type = sr.ReadUInt32();
-                       //                      subtype: CARD32 Image subtype is the nominal size
-                       uint subtype = sr.ReadUInt32();
-                       //                      version: 1
-                       uint version = sr.ReadUInt32();
-                       //                      width: CARD32 Must be less than or equal to 0x7fff
-                       tmp.Width = sr.ReadUInt32();
-                       //                      height: CARD32 Must be less than or equal to 0x7fff
-                       tmp.Height = sr.ReadUInt32();
-                       //                      xhot: CARD32 Must be less than or equal to width
-                       tmp.Xhot = sr.ReadUInt32();
-                       //                      yhot: CARD32 Must be less than or equal to height
-                       tmp.Yhot = sr.ReadUInt32();
-                       //                      delay: CARD32 Delay between animation frames in milliseconds
-                       tmp.Delay = sr.ReadUInt32();
-                       //                      pixels: LISTofCARD32 Packed ARGB format pixels
-                       tmp.data = sr.ReadBytes((int)(tmp.Width * tmp.Height * 4));
-                       return tmp;
-               }
-       }
-       public class XCursor
-       {
-               public static XCursor Default;
-               public static XCursor Cross;
-               public static XCursor Arrow;
-               public static XCursor Text;
-               public static XCursor SW;
-               public static XCursor SE;
-               public static XCursor NW;
-               public static XCursor NE;
-               public static XCursor N;
-               public static XCursor S;
-               public static XCursor V;
-               public static XCursor H;
-
-               public uint Width;
-               public uint Height;
-               public uint Xhot;
-               public uint Yhot;
-               public uint Delay;
-               public byte[] data;
-
-               public XCursor ()
-               {
-               }
-//             public static implicit operator MouseCursor(XCursor xc)
-//             {
-//                     return new MouseCursor((int)xc.Xhot, (int)xc.Yhot, (int)xc.Width, (int)xc.Height,xc.data);
-//             }
-       }
-}
-
diff --git a/Crow/src/backends/xlib/X11Keyboard.cs b/Crow/src/backends/xlib/X11Keyboard.cs
deleted file mode 100644 (file)
index 2af86d3..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-//
-// XCBKeyboard.cs
-//
-// Author:
-//       Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
-//
-// Copyright (c) 2013-2017 Jean-Philippe Bruyère
-//
-// 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.
-using System;
-using System.Runtime.InteropServices;
-
-namespace Crow.XLib
-{
-       public class X11Keyboard
-       {
-               #region PInvoke
-               [DllImportAttribute("X11")]
-               static extern IntPtr XFree(IntPtr data);
-               [DllImport ("libX11")]
-               static extern void XDisplayKeycodes (IntPtr disp, out int min, out int max);
-               [DllImport ("libX11")]
-               static extern IntPtr XGetKeyboardMapping (IntPtr disp, byte first_keycode, int keycode_count, 
-                       out int keysyms_per_keycode_return);
-               [DllImport ("libX11")]
-               unsafe static extern byte* XGetModifierMapping (IntPtr disp);
-               [DllImport ("libX11")]
-               static extern uint XKeycodeToKeysym (IntPtr display, int keycode, int index);
-               #endregion
-
-               #region IKeyboard implementation
-
-               public event EventHandler<KeyEventArgs> KeyDown;
-               public event EventHandler<KeyEventArgs> KeyUp;
-               public event EventHandler<KeyPressEventArgs> KeyPress;
-
-               public void HandleEvent (uint keycode, bool pressed) {
-                       /*int min_keycode, max_keycode, keysyms_per_keycode;
-                                               XLib.NativeMethods.XDisplayKeycodes (xDisp, out min_keycode, out max_keycode);
-
-                                               IntPtr ksp = XLib.NativeMethods.XGetKeyboardMapping (xDisp, (byte)min_keycode,
-                                                                    max_keycode + 1 - min_keycode, out keysyms_per_keycode);
-                                               XLib.NativeMethods.XFree (ksp);*/
-
-                       uint keySym;
-                       keySym = XKeycodeToKeysym (xDisp, (int)keycode, 0);
-                       char c = (char)keySym;
-                       if (pressed)
-                               KeyDown.Raise (this, new KeyEventArgs ((Key)keySym, false));
-                       else 
-                               KeyUp.Raise (this, new KeyEventArgs ((Key)keySym, false));                      
-               }
-               public bool IsDown (Key key) {
-                       throw new NotImplementedException();
-               }
-               public bool Shift {
-                       get {
-                               throw new NotImplementedException();
-                       }
-               }
-               public bool Ctrl {
-                       get {
-                               throw new NotImplementedException ();
-                       }
-               }
-               public bool Alt {
-                       get {
-                               throw new NotImplementedException ();
-                       }
-               }
-               public void Destroy () {
-
-               }
-               #endregion
-
-
-               IntPtr xDisp;
-
-               public X11Keyboard (IntPtr _xDisp)
-               {
-                       xDisp = _xDisp;
-
-                       int min_keycode, max_keycode, keysyms_per_keycode;
-
-                       XDisplayKeycodes (xDisp, out min_keycode, out max_keycode);
-                       IntPtr ksp = XGetKeyboardMapping (xDisp, (byte) min_keycode,
-                               max_keycode + 1 - min_keycode, out keysyms_per_keycode);
-                       XFree (ksp);
-
-                       unsafe {
-                               byte* modmap_unmanaged = XGetModifierMapping (xDisp);
-                               int nummodmap = 0;
-                               int* ptr = (int*)modmap_unmanaged;
-                               nummodmap = ptr [0];
-
-                               for (int i = 0; i< nummodmap; i++) {
-                                       Console.WriteLine(modmap_unmanaged[i+4]);
-                               }
-                               XFree ((IntPtr)modmap_unmanaged);
-                       }
-               }
-       }
-}
-
diff --git a/Crow/src/backends/xlib/X11Structs.cs b/Crow/src/backends/xlib/X11Structs.cs
deleted file mode 100644 (file)
index 5e43e00..0000000
+++ /dev/null
@@ -1,1821 +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.Diagnostics;
-using System.Runtime.InteropServices;
-using System.Threading;
-using System.Reflection;
-
-// X11 Version
-namespace Crow.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 ? "<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 <flags={0}, functions={1}, decorations={2}, input_mode={3}, status={4}", (MotifFlags) flags.ToInt32 (), (MotifFunctions) functions.ToInt32 (), (MotifDecorations) decorations.ToInt32 (), (MotifInputMode) input_mode.ToInt32 (), status.ToInt32 ());
-               }
-       }
-
-       [Flags]
-       public enum MotifFlags {
-               Functions               = 1,
-               Decorations             = 2,
-               InputMode               = 4,
-               Status                  = 8
-       }
-
-       [Flags]
-       public enum MotifFunctions {
-               All                     = 0x01,
-               Resize                  = 0x02,
-               Move                    = 0x04,
-               Minimize                = 0x08,
-               Maximize                = 0x10,
-               Close                   = 0x20
-       }
-
-       [Flags]
-       public enum MotifDecorations {
-               All                     = 0x01,
-               Border                  = 0x02,
-               ResizeH                 = 0x04,
-               Title                   = 0x08,
-               Menu                    = 0x10,
-               Minimize                = 0x20,
-               Maximize                = 0x40,
-               
-       }
-
-       [Flags]
-       public enum MotifInputMode {
-               Modeless                = 0,
-               ApplicationModal        = 1,
-               SystemModal             = 2,
-               FullApplicationModal    = 3
-       }
-
-       [Flags]
-       public enum KeyMasks {
-               ShiftMask               = (1 << 0),
-               LockMask                = (1 << 1),
-               ControlMask             = (1 << 2),
-               Mod1Mask                = (1 << 3),
-               Mod2Mask                = (1 << 4),
-               Mod3Mask                = (1 << 5),
-               Mod4Mask                = (1 << 6),
-               Mod5Mask                = (1 << 7),
-
-               ModMasks                = Mod1Mask | Mod2Mask | Mod3Mask | Mod4Mask | Mod5Mask
-       }
-
-       [Flags]
-       public enum MouseKeyMasks {
-               Button1Mask             = (1 << 8),
-               Button2Mask             = (1 << 9),
-               Button3Mask             = (1 << 10),
-               Button4Mask             = (1 << 11),
-               Button5Mask             = (1 << 12),
-       }
-
-       [StructLayout (LayoutKind.Sequential)]
-       public struct XModifierKeymap {
-               public int max_keypermod;
-               public IntPtr modifiermap;
-       } 
-
-       public enum PropertyMode {
-               Replace                 = 0,
-               Prepend                 = 1,
-               Append                  = 2
-       }
-
-       [StructLayout (LayoutKind.Sequential)]
-       public struct XKeyBoardState {
-               public int key_click_percent;
-               public int bell_percent;
-               public uint bell_pitch, bell_duration;
-               public IntPtr led_mask;
-               public int global_auto_repeat;
-               public AutoRepeats auto_repeats;
-
-               [StructLayout (LayoutKind.Explicit)]
-                       public struct AutoRepeats {
-                       [FieldOffset (0)]
-                       public byte first;
-                               
-                       [FieldOffset (31)]
-                       public byte last;
-               }
-       }
-
-       [Flags]
-       public enum GCFunction {
-               GCFunction              = 1<<0,
-               GCPlaneMask             = 1<<1,
-               GCForeground            = 1<<2,
-               GCBackground            = 1<<3,
-               GCLineWidth             = 1<<4,
-               GCLineStyle             = 1<<5,
-               GCCapStyle              = 1<<6,
-               GCJoinStyle             = 1<<7,
-               GCFillStyle             = 1<<8,
-               GCFillRule              = 1<<9, 
-               GCTile                  = 1<<10,
-               GCStipple               = 1<<11,
-               GCTileStipXOrigin       = 1<<12,
-               GCTileStipYOrigin       = 1<<13,
-               GCFont                  = 1<<14,
-               GCSubwindowMode         = 1<<15,
-               GCGraphicsExposures     = 1<<16,
-               GCClipXOrigin           = 1<<17,
-               GCClipYOrigin           = 1<<18,
-               GCClipMask              = 1<<19,
-               GCDashOffset            = 1<<20,
-               GCDashList              = 1<<21,
-               GCArcMode               = 1<<22
-       }
-
-       public enum GCJoinStyle {
-               JoinMiter               = 0,
-               JoinRound               = 1,
-               JoinBevel               = 2
-       }
-
-       public enum GCLineStyle {
-               LineSolid               = 0,
-               LineOnOffDash           = 1,
-               LineDoubleDash          = 2
-       }
-
-       public enum GCCapStyle {
-               CapNotLast              = 0,
-               CapButt                 = 1,
-               CapRound                = 2,
-               CapProjecting           = 3
-       }
-
-       public enum GCFillStyle {
-               FillSolid               = 0,
-               FillTiled               = 1,
-               FillStippled            = 2,
-               FillOpaqueStppled       = 3
-       }
-
-       public enum GCFillRule {
-               EvenOddRule             = 0,
-               WindingRule             = 1
-       }
-
-       public enum GCArcMode {
-               ArcChord                = 0,
-               ArcPieSlice             = 1
-       }
-
-       public enum GCSubwindowMode {
-               ClipByChildren          = 0,
-               IncludeInferiors        = 1
-       }
-
-       [StructLayout (LayoutKind.Sequential)]
-       public struct XGCValues {
-               public GXFunction               function;
-               public IntPtr                   plane_mask;
-               public IntPtr                   foreground;
-               public IntPtr                   background;
-               public int                      line_width;
-               public GCLineStyle              line_style;
-               public GCCapStyle               cap_style;
-               public GCJoinStyle              join_style;
-               public GCFillStyle              fill_style;
-               public GCFillRule               fill_rule;
-               public GCArcMode                arc_mode;
-               public IntPtr                   tile;
-               public IntPtr                   stipple;
-               public int                      ts_x_origin;
-               public int                      ts_y_origin;
-               public IntPtr                   font;
-               public GCSubwindowMode  subwindow_mode;
-               public bool                     graphics_exposures;
-               public int                      clip_x_origin;
-               public int                      clib_y_origin;
-               public IntPtr                   clip_mask;
-               public int                      dash_offset;
-               public byte                     dashes;
-       }
-
-       public enum GXFunction {
-               GXclear                         = 0x0,          /* 0 */
-               GXand                           = 0x1,          /* src AND dst */
-               GXandReverse                    = 0x2,          /* src AND NOT dst */
-               GXcopy                          = 0x3,          /* src */
-               GXandInverted                   = 0x4,          /* NOT src AND dst */
-               GXnoop                          = 0x5,          /* dst */
-               GXxor                           = 0x6,          /* src XOR dst */
-               GXor                            = 0x7,          /* src OR dst */
-               GXnor                           = 0x8,          /* NOT src AND NOT dst */
-               GXequiv                         = 0x9,          /* NOT src XOR dst */
-               GXinvert                        = 0xa,          /* NOT dst */
-               GXorReverse                     = 0xb,          /* src OR NOT dst */
-               GXcopyInverted                  = 0xc,          /* NOT src */
-               GXorInverted                    = 0xd,          /* NOT src OR dst */
-               GXnand                          = 0xe,          /* NOT src OR NOT dst */
-               GXset                           = 0xf           /* 1 */
-       }
-
-       public enum NetWindowManagerState {
-               Remove                          = 0,
-               Add                             = 1,
-               Toggle                          = 2
-       }
-
-       public enum RevertTo {
-               None                            = 0,
-               PointerRoot                     = 1,
-               Parent                          = 2
-       }
-
-       public enum MapState {
-               IsUnmapped                      = 0,
-               IsUnviewable                    = 1,
-               IsViewable                      = 2
-       }
-
-       public enum CursorFontShape {
-               XC_X_cursor                     = 0,
-               XC_arrow                        = 2,
-               XC_based_arrow_down             = 4,
-               XC_based_arrow_up               = 6,
-               XC_boat                         = 8,
-               XC_bogosity                     = 10,
-               XC_bottom_left_corner           = 12,
-               XC_bottom_right_corner          = 14,
-               XC_bottom_side                  = 16,
-               XC_bottom_tee                   = 18,
-               XC_box_spiral                   = 20,
-               XC_center_ptr                   = 22,
-
-               XC_circle                       = 24,
-               XC_clock                        = 26,
-               XC_coffee_mug                   = 28,
-               XC_cross                        = 30,
-               XC_cross_reverse                = 32,
-               XC_crosshair                    = 34,
-               XC_diamond_cross                = 36,
-               XC_dot                          = 38,
-               XC_dotbox                       = 40,
-               XC_double_arrow                 = 42,
-               XC_draft_large                  = 44,
-               XC_draft_small                  = 46,
-
-               XC_draped_box                   = 48,
-               XC_exchange                     = 50,
-               XC_fleur                        = 52,
-               XC_gobbler                      = 54,
-               XC_gumby                        = 56,
-               XC_hand1                        = 58,
-               XC_hand2                        = 60,
-               XC_heart                        = 62,
-               XC_icon                         = 64,
-               XC_iron_cross                   = 66,
-               XC_left_ptr                     = 68,
-               XC_left_side                    = 70,
-
-               XC_left_tee                     = 72,
-               XC_left_button                  = 74,
-               XC_ll_angle                     = 76,
-               XC_lr_angle                     = 78,
-               XC_man                          = 80,
-               XC_middlebutton                 = 82,
-               XC_mouse                        = 84,
-               XC_pencil                       = 86,
-               XC_pirate                       = 88,
-               XC_plus                         = 90,
-               XC_question_arrow               = 92,
-               XC_right_ptr                    = 94,
-
-               XC_right_side                   = 96,
-               XC_right_tee                    = 98,
-               XC_rightbutton                  = 100,
-               XC_rtl_logo                     = 102,
-               XC_sailboat                     = 104,
-               XC_sb_down_arrow                = 106,
-               XC_sb_h_double_arrow            = 108,
-               XC_sb_left_arrow                = 110,
-               XC_sb_right_arrow               = 112,
-               XC_sb_up_arrow                  = 114,
-               XC_sb_v_double_arrow            = 116,
-               XC_sb_shuttle                   = 118,
-
-               XC_sizing                       = 120,
-               XC_spider                       = 122,
-               XC_spraycan                     = 124,
-               XC_star                         = 126,
-               XC_target                       = 128,
-               XC_tcross                       = 130,
-               XC_top_left_arrow               = 132,
-               XC_top_left_corner              = 134,
-               XC_top_right_corner             = 136,
-               XC_top_side                     = 138,
-               XC_top_tee                      = 140,
-               XC_trek                         = 142,
-
-               XC_ul_angle                     = 144,
-               XC_umbrella                     = 146,
-               XC_ur_angle                     = 148,
-               XC_watch                        = 150,
-               XC_xterm                        = 152,
-               XC_num_glyphs                   = 154
-       }
-
-       public enum SystrayRequest {
-               SYSTEM_TRAY_REQUEST_DOCK        = 0,
-               SYSTEM_TRAY_BEGIN_MESSAGE       = 1,
-               SYSTEM_TRAY_CANCEL_MESSAGE      = 2
-       }
-
-       public enum NetWmStateRequest {
-               _NET_WM_STATE_REMOVE            = 0,
-               _NET_WM_STATE_ADD               = 1,
-               _NET_WM_STATE_TOGGLE            = 2
-       }
-
-       public enum NetWmMoveResize {
-               _NET_WM_MOVERESIZE_SIZE_TOPLEFT =       0,
-               _NET_WM_MOVERESIZE_SIZE_TOP =           1,
-               _NET_WM_MOVERESIZE_SIZE_TOPRIGHT =      2,
-               _NET_WM_MOVERESIZE_SIZE_RIGHT =         3,
-               _NET_WM_MOVERESIZE_SIZE_BOTTOMRIGHT =   4,
-               _NET_WM_MOVERESIZE_SIZE_BOTTOM =        5,
-               _NET_WM_MOVERESIZE_SIZE_BOTTOMLEFT =    6,
-               _NET_WM_MOVERESIZE_SIZE_LEFT =          7,
-               _NET_WM_MOVERESIZE_MOVE =               8,
-               _NET_WM_MOVERESIZE_SIZE_KEYBOARD =      9,
-               _NET_WM_MOVERESIZE_MOVE_KEYBOARD =      10,
-               _NET_WM_MOVERESIZE_CANCEL =             11
-       }
-
-       [Flags]
-       public enum XSizeHintsFlags  {
-               USPosition                      = (1 << 0),
-               USSize                          = (1 << 1),
-               PPosition                       = (1 << 2),
-               PSize                           = (1 << 3),
-               PMinSize                        = (1 << 4),
-               PMaxSize                        = (1 << 5),
-               PResizeInc                      = (1 << 6),
-               PAspect                         = (1 << 7),
-               PAllHints                       = (PPosition | PSize | PMinSize | PMaxSize | PResizeInc | PAspect),
-               PBaseSize                       = (1 << 8),
-               PWinGravity                     = (1 << 9),
-       }
-
-       [StructLayout(LayoutKind.Sequential)]
-       public struct XSizeHints {
-               public IntPtr                   flags;
-               public int                      x;
-               public int                      y;
-               public int                      width;
-               public int                      height;
-               public int                      min_width;
-               public int                      min_height;
-               public int                      max_width;
-               public int                      max_height;
-               public int                      width_inc;
-               public int                      height_inc;
-               public int                      min_aspect_x;
-               public int                      min_aspect_y;
-               public int                      max_aspect_x;
-               public int                      max_aspect_y;
-               public int                      base_width;
-               public int                      base_height;
-               public int                      win_gravity;
-       }
-
-       [Flags]
-       public enum XWMHintsFlags {
-               InputHint                       = (1 << 0),
-               StateHint                       = (1 << 1),
-               IconPixmapHint                  = (1 << 2),
-               IconWindowHint                  = (1 << 3),
-               IconPositionHint                = (1 << 4),
-               IconMaskHint                    = (1 << 5),
-               WindowGroupHint                 = (1 << 6),
-               AllHints                        = (InputHint | StateHint | IconPixmapHint | IconWindowHint | IconPositionHint | IconMaskHint | WindowGroupHint)
-       }
-
-       public enum XInitialState {
-               DontCareState                   = 0,
-               NormalState                     = 1,
-               ZoomState                       = 2,
-               IconicState                     = 3,
-               InactiveState                   = 4
-       }
-
-       [StructLayout(LayoutKind.Sequential)]
-       public struct XWMHints {
-               public IntPtr                   flags;
-               public bool                     input;
-               public XInitialState            initial_state;
-               public IntPtr                   icon_pixmap;
-               public IntPtr                   icon_window;
-               public int                      icon_x;
-               public int                      icon_y;
-               public IntPtr                   icon_mask;
-               public IntPtr                   window_group;
-       }
-
-       [StructLayout(LayoutKind.Sequential)]
-       public struct XIconSize {
-               public int                      min_width;
-               public int                      min_height;
-               public int                      max_width;
-               public int                      max_height;
-               public int                      width_inc;
-               public int                      height_inc;
-       }
-
-       public struct CaretStruct {
-               public Timer    Timer;                          // Blink interval
-               public IntPtr   Hwnd;                           // Window owning the caret
-               public IntPtr   Window;                         // Actual X11 handle of the window
-               public int      X;                              // X position of the caret
-               public int      Y;                              // Y position of the caret
-               public int      Width;                          // Width of the caret; if no image used
-               public int      Height;                         // Height of the caret, if no image used
-               public bool     Visible;                        // Is caret visible?
-               public bool     On;                             // Caret blink display state: On/Off
-               public IntPtr   gc;                             // Graphics context
-               public bool     Paused;                         // Don't update right now
-       }
-
-       public struct HoverStruct {
-               public Timer    Timer;                          // for hovering
-               public IntPtr   Window;                         // Last window we entered; used to generate WM_MOUSEHOVER (handle is X11 handle)
-               public int      X;                              // Last MouseMove X coordinate; used to generate WM_MOUSEHOVER
-               public int      Y;                              // Last MouseMove Y coordinate; used to generate WM_MOUSEHOVER
-               public Size     Size;                           // Size of the rectangle the mouse has to stay in to generate hover
-               public int      Interval;                       // in milliseconds, how long to hold before hover is generated
-               public IntPtr   Atom;                           // X Atom
-       }
-
-       /*public struct ClickStruct {
-               public IntPtr   Hwnd;                           // 
-               public Msg      Message;                        // 
-               public IntPtr   wParam;                         // 
-               public IntPtr   lParam;                         // 
-               public long     Time;                           // Last time we received a mouse click
-               public bool     Pending;                        // True if we haven't sent the last mouse click
-       }*/
-
-       public struct GrabStruct {
-               public bool             Confined;               // Is the current grab (if any) confined to grab_area?
-               public IntPtr           Hwnd;                   // The window that is grabbed
-               public Rectangle        Area;                   // The area the current grab is confined to
-       }
-
-       public delegate int  XErrorHandler(IntPtr DisplayHandle, ref XErrorEvent error_event);
-
-       public enum XRequest : byte {
-               X_CreateWindow                  = 1,
-               X_ChangeWindowAttributes        = 2,
-               X_GetWindowAttributes           = 3,
-               X_DestroyWindow                 = 4,
-               X_DestroySubwindows             = 5,
-               X_ChangeSaveSet                 = 6,
-               X_ReparentWindow                = 7,
-               X_MapWindow                     = 8,
-               X_MapSubwindows                 = 9,
-               X_UnmapWindow                   = 10,
-               X_UnmapSubwindows               = 11,
-               X_ConfigureWindow               = 12,
-               X_CirculateWindow               = 13,
-               X_GetGeometry                   = 14,
-               X_QueryTree                     = 15,
-               X_InternAtom                    = 16,
-               X_GetAtomName                   = 17,
-               X_ChangeProperty                = 18,
-               X_DeleteProperty                = 19,
-               X_GetProperty                   = 20,
-               X_ListProperties                = 21,
-               X_SetSelectionOwner             = 22,
-               X_GetSelectionOwner             = 23,
-               X_ConvertSelection              = 24,
-               X_SendEvent                     = 25,
-               X_GrabPointer                   = 26,
-               X_UngrabPointer                 = 27,
-               X_GrabButton                    = 28,
-               X_UngrabButton                  = 29,
-               X_ChangeActivePointerGrab       = 30,
-               X_GrabKeyboard                  = 31,
-               X_UngrabKeyboard                = 32,
-               X_GrabKey                       = 33,
-               X_UngrabKey                     = 34,
-               X_AllowEvents                   = 35,
-               X_GrabServer                    = 36,
-               X_UngrabServer                  = 37,
-               X_QueryPointer                  = 38,
-               X_GetMotionEvents               = 39,
-               X_TranslateCoords               = 40,
-               X_WarpPointer                   = 41,
-               X_SetInputFocus                 = 42,
-               X_GetInputFocus                 = 43,
-               X_QueryKeymap                   = 44,
-               X_OpenFont                      = 45,
-               X_CloseFont                     = 46,
-               X_QueryFont                     = 47,
-               X_QueryTextExtents              = 48,
-               X_ListFonts                     = 49,
-               X_ListFontsWithInfo             = 50,
-               X_SetFontPath                   = 51,
-               X_GetFontPath                   = 52,
-               X_CreatePixmap                  = 53,
-               X_FreePixmap                    = 54,
-               X_CreateGC                      = 55,
-               X_ChangeGC                      = 56,
-               X_CopyGC                        = 57,
-               X_SetDashes                     = 58,
-               X_SetClipRectangles             = 59,
-               X_FreeGC                        = 60,
-               X_ClearArea                     = 61,
-               X_CopyArea                      = 62,
-               X_CopyPlane                     = 63,
-               X_PolyPoint                     = 64,
-               X_PolyLine                      = 65,
-               X_PolySegment                   = 66,
-               X_PolyRectangle                 = 67,
-               X_PolyArc                       = 68,
-               X_FillPoly                      = 69,
-               X_PolyFillRectangle             = 70,
-               X_PolyFillArc                   = 71,
-               X_PutImage                      = 72,
-               X_GetImage                      = 73,
-               X_PolyText8                     = 74,
-               X_PolyText16                    = 75,
-               X_ImageText8                    = 76,
-               X_ImageText16                   = 77,
-               X_CreateColormap                = 78,
-               X_FreeColormap                  = 79,
-               X_CopyColormapAndFree           = 80,
-               X_InstallColormap               = 81,
-               X_UninstallColormap             = 82,
-               X_ListInstalledColormaps        = 83,
-               X_AllocColor                    = 84,
-               X_AllocNamedColor               = 85,
-               X_AllocColorCells               = 86,
-               X_AllocColorPlanes              = 87,
-               X_FreeColors                    = 88,
-               X_StoreColors                   = 89,
-               X_StoreNamedColor               = 90,
-               X_QueryColors                   = 91,
-               X_LookupColor                   = 92,
-               X_CreateCursor                  = 93,
-               X_CreateGlyphCursor             = 94,
-               X_FreeCursor                    = 95,
-               X_RecolorCursor                 = 96,
-               X_QueryBestSize                 = 97,
-               X_QueryExtension                = 98,
-               X_ListExtensions                = 99,
-               X_ChangeKeyboardMapping         = 100,
-               X_GetKeyboardMapping            = 101,
-               X_ChangeKeyboardControl         = 102,
-               X_GetKeyboardControl            = 103,
-               X_Bell                          = 104,
-               X_ChangePointerControl          = 105,
-               X_GetPointerControl             = 106,
-               X_SetScreenSaver                = 107,
-               X_GetScreenSaver                = 108,
-               X_ChangeHosts                   = 109,
-               X_ListHosts                     = 110,
-               X_SetAccessControl              = 111,
-               X_SetCloseDownMode              = 112,
-               X_KillClient                    = 113,
-               X_RotateProperties              = 114,
-               X_ForceScreenSaver              = 115,
-               X_SetPointerMapping             = 116,
-               X_GetPointerMapping             = 117,
-               X_SetModifierMapping            = 118,
-               X_GetModifierMapping            = 119,
-               X_NoOperation                   = 127
-       }
-
-       [Flags]
-       public enum XIMProperties {
-               XIMPreeditArea          = 0x0001,
-               XIMPreeditCallbacks     = 0x0002,
-               XIMPreeditPosition      = 0x0004,
-               XIMPreeditNothing       = 0x0008,
-               XIMPreeditNone          = 0x0010,
-               XIMStatusArea           = 0x0100,
-               XIMStatusCallbacks      = 0x0200,
-               XIMStatusNothing        = 0x0400,
-               XIMStatusNone           = 0x0800,
-       }
-
-       [Flags]
-       public enum WindowType {
-               Client                  = 1,
-               Whole                   = 2,
-               Both                    = 3
-       }
-
-       public enum XEmbedMessage {
-               EmbeddedNotify = 0,
-               WindowActivate = 1,
-               WindowDeactivate = 2,
-               RequestFocus = 3,
-               FocusIn = 4,
-               FocusOut = 5,
-               FocusNext = 6,
-               FocusPrev = 7,
-               /* 8-9 were used for XEMBED_GRAB_KEY/XEMBED_UNGRAB_KEY */
-               ModalityOn = 10,
-               ModalityOff = 11,
-               RegisterAccelerator = 12,
-               UnregisterAccelerator = 13,
-               ActivateAccelerator = 14
-       }
-
-       [StructLayout (LayoutKind.Sequential)]
-       public struct XcursorImage
-       {
-               private int version;
-               public int size;       /* nominal size for matching */
-               public int width;      /* actual width */
-               public int height;     /* actual height */
-               public int xhot;       /* hot spot x (must be inside image) */
-               public int yhot;       /* hot spot y (must be inside image) */
-               public int delay;       /* hot spot y (must be inside image) */
-               public IntPtr pixels;    /* pointer to pixels */
-
-               public override string ToString ()
-               {
-                       return string.Format ("XCursorImage (version: {0}, size: {1}, width: {2}, height: {3}, xhot: {4}, yhot: {5}, delay: {6}, pixels: {7}", 
-                               version, size, width, height, xhot, yhot, delay, pixels);
-               }
-       } ;
-
-       [StructLayout (LayoutKind.Sequential)]
-       public struct XcursorImages
-       {
-               public int nimage;     /* number of images */
-               public IntPtr images;   /* array of XcursorImage pointers */
-       }
-
-       [StructLayout (LayoutKind.Sequential)]
-       public struct XIMStyles
-       {
-               public ushort count_styles;
-               public IntPtr supported_styles;
-       }
-
-       [StructLayout (LayoutKind.Sequential)]
-       
-       public class XPoint
-       {
-               public short X;
-               public short Y;
-       }
-
-       [StructLayout (LayoutKind.Sequential)]
-       
-       public class XIMCallback
-       {
-               public IntPtr client_data;
-               public XIMProc callback;                
-               GCHandle gch;
-
-               public XIMCallback (IntPtr clientData, XIMProc proc)
-               {
-                       this.client_data = clientData;
-                       this.gch = GCHandle.Alloc (proc);
-                       this.callback = proc;
-               }
-
-               ~XIMCallback ()
-               {
-                       gch.Free ();
-               }
-       }
-       
-       public enum XIMFeedback
-       {
-               Reverse = 1,
-               Underline = 2,
-               Highlight = 4,
-               Primary = 32,
-               Secondary = 64,
-               Tertiary = 128,
-       }
-
-       public struct XIMFeedbackStruct
-       {
-               public byte FeedbackMask; // one or more of XIMFeedback enum
-       }
-       
-       public struct XIMText
-       {
-               public ushort Length;
-               public IntPtr Feedback; // to XIMFeedbackStruct
-               public bool EncodingIsWChar;
-               public IntPtr String; // it could be either char* or wchar_t*
-       }
-
-       public struct XIMPreeditDrawCallbackStruct
-       {
-               public int Caret;
-               public int ChangeFirst;
-               public int ChangeLength;
-               public IntPtr Text; // to XIMText
-       }
-
-       public enum XIMCaretDirection
-       {
-               XIMForwardChar,
-               XIMBackwardChar,
-               XIMForwardWord,
-               XIMBackwardWord,
-               XIMCaretUp,
-               XIMCaretDown,
-               XIMNextLine,
-               XIMPreviousLine,
-               XIMLineStart,
-               XIMLineEnd,
-               XIMAbsolutePosition,
-               XIMDontChange
-       }
-
-       public enum XIMCaretStyle
-       {
-               IsInvisible,
-               IsPrimary,
-               IsSecondary
-       }
-
-       public struct XIMPreeditCaretCallbackStruct
-       {
-               public int Position;
-               public XIMCaretDirection Direction;
-               public XIMCaretStyle Style;
-       }
-
-       // only PreeditStartCallback requires return value though.
-       public delegate int XIMProc (IntPtr xim, IntPtr clientData, IntPtr callData);
-
-       public static class XNames
-       {
-               public const string XNVaNestedList = "XNVaNestedList";
-               public const string XNQueryInputStyle = "queryInputStyle";
-               public const string XNClientWindow = "clientWindow";
-               public const string XNInputStyle = "inputStyle";
-               public const string XNFocusWindow = "focusWindow";
-
-               // XIMPreeditCallbacks delegate names.
-               public const string XNPreeditStartCallback = "preeditStartCallback";
-               public const string XNPreeditDoneCallback = "preeditDoneCallback";
-               public const string XNPreeditDrawCallback = "preeditDrawCallback";
-               public const string XNPreeditCaretCallback = "preeditCaretCallback";
-               public const string XNPreeditStateNotifyCallback = "preeditStateNotifyCallback";
-               public const string XNPreeditAttributes = "preeditAttributes";
-               // XIMStatusCallbacks delegate names.
-               public const string XNStatusStartCallback = "statusStartCallback";
-               public const string XNStatusDoneCallback = "statusDoneCallback";
-               public const string XNStatusDrawCallback = "statusDrawCallback";
-               public const string XNStatusAttributes = "statusAttributes";
-
-               public const string XNArea = "area";
-               public const string XNAreaNeeded = "areaNeeded";
-               public const string XNSpotLocation = "spotLocation";
-               public const string XNFontSet = "fontSet";
-       }
-
-       [StructLayout (LayoutKind.Sequential)]
-       public struct XineramaScreenInfo
-       {
-               public int screen_number;
-               public short x_org;
-               public short y_org;
-               public short width;
-               public short height;
-       }
-}
diff --git a/Crow/src/backends/xlib/XKeySym.cs b/Crow/src/backends/xlib/XKeySym.cs
deleted file mode 100644 (file)
index f874f4d..0000000
+++ /dev/null
@@ -1,2109 +0,0 @@
-/* autogenerated */
-using System;
-
-namespace XLib
-{
-       [Flags]
-       public enum KeySym
-       {
-               XK_VoidSymbol                                   = 0xffffff,
-               XK_BackSpace                                    = 0xff08,
-               XK_Tab                                                  = 0xff09,
-               XK_Linefeed                                             = 0xff0a,
-               XK_Clear                                                = 0xff0b,
-               XK_Return                                               = 0xff0d,
-               XK_Pause                                                = 0xff13,
-               XK_Scroll_Lock                                  = 0xff14,
-               XK_Sys_Req                                              = 0xff15,
-               XK_Escape                                               = 0xff1b,
-               XK_Delete                                               = 0xffff,
-               XK_Multi_key                                    = 0xff20,
-               XK_Codeinput                                    = 0xff37,
-               XK_SingleCandidate                              = 0xff3c,
-               XK_MultipleCandidate                    = 0xff3d,
-               XK_PreviousCandidate                    = 0xff3e,
-               XK_Kanji                                                = 0xff21,
-               XK_Muhenkan                                             = 0xff22,
-               XK_Henkan_Mode                                  = 0xff23,
-               XK_Henkan                                               = 0xff23,
-               XK_Romaji                                               = 0xff24,
-               XK_Hiragana                                             = 0xff25,
-               XK_Katakana                                             = 0xff26,
-               XK_Hiragana_Katakana                    = 0xff27,
-               XK_Zenkaku                                              = 0xff28,
-               XK_Hankaku                                              = 0xff29,
-               XK_Zenkaku_Hankaku                              = 0xff2a,
-               XK_Touroku                                              = 0xff2b,
-               XK_Massyo                                               = 0xff2c,
-               XK_Kana_Lock                                    = 0xff2d,
-               XK_Kana_Shift                                   = 0xff2e,
-               XK_Eisu_Shift                                   = 0xff2f,
-               XK_Eisu_toggle                                  = 0xff30,
-               XK_Kanji_Bangou                                 = 0xff37,
-               XK_Zen_Koho                                             = 0xff3d,
-               XK_Mae_Koho                                             = 0xff3e,
-               XK_Home                                                 = 0xff50,
-               XK_Left                                                 = 0xff51,
-               XK_Up                                                   = 0xff52,
-               XK_Right                                                = 0xff53,
-               XK_Down                                                 = 0xff54,
-               XK_Prior                                                = 0xff55,
-               XK_Page_Up                                              = 0xff55,
-               XK_Next                                                 = 0xff56,
-               XK_Page_Down                                    = 0xff56,
-               XK_End                                                  = 0xff57,
-               XK_Begin                                                = 0xff58,
-               XK_Select                                               = 0xff60,
-               XK_Print                                                = 0xff61,
-               XK_Execute                                              = 0xff62,
-               XK_Insert                                               = 0xff63,
-               XK_Undo                                                 = 0xff65,
-               XK_Redo                                                 = 0xff66,
-               XK_Menu                                                 = 0xff67,
-               XK_Find                                                 = 0xff68,
-               XK_Cancel                                               = 0xff69,
-               XK_Help                                                 = 0xff6a,
-               XK_Break                                                = 0xff6b,
-               XK_Mode_switch                                  = 0xff7e,
-               XK_script_switch                                = 0xff7e,
-               XK_Num_Lock                                             = 0xff7f,
-               XK_KP_Space                                             = 0xff80,
-               XK_KP_Tab                                               = 0xff89,
-               XK_KP_Enter                                             = 0xff8d,
-               XK_KP_F1                                                = 0xff91,
-               XK_KP_F2                                                = 0xff92,
-               XK_KP_F3                                                = 0xff93,
-               XK_KP_F4                                                = 0xff94,
-               XK_KP_Home                                              = 0xff95,
-               XK_KP_Left                                              = 0xff96,
-               XK_KP_Up                                                = 0xff97,
-               XK_KP_Right                                             = 0xff98,
-               XK_KP_Down                                              = 0xff99,
-               XK_KP_Prior                                             = 0xff9a,
-               XK_KP_Page_Up                                   = 0xff9a,
-               XK_KP_Next                                              = 0xff9b,
-               XK_KP_Page_Down                                 = 0xff9b,
-               XK_KP_End                                               = 0xff9c,
-               XK_KP_Begin                                             = 0xff9d,
-               XK_KP_Insert                                    = 0xff9e,
-               XK_KP_Delete                                    = 0xff9f,
-               XK_KP_Equal                                             = 0xffbd,
-               XK_KP_Multiply                                  = 0xffaa,
-               XK_KP_Add                                               = 0xffab,
-               XK_KP_Separator                                 = 0xffac,
-               XK_KP_Subtract                                  = 0xffad,
-               XK_KP_Decimal                                   = 0xffae,
-               XK_KP_Divide                                    = 0xffaf,
-               XK_KP_0                                                 = 0xffb0,
-               XK_KP_1                                                 = 0xffb1,
-               XK_KP_2                                                 = 0xffb2,
-               XK_KP_3                                                 = 0xffb3,
-               XK_KP_4                                                 = 0xffb4,
-               XK_KP_5                                                 = 0xffb5,
-               XK_KP_6                                                 = 0xffb6,
-               XK_KP_7                                                 = 0xffb7,
-               XK_KP_8                                                 = 0xffb8,
-               XK_KP_9                                                 = 0xffb9,
-               XK_F1                                                   = 0xffbe,
-               XK_F2                                                   = 0xffbf,
-               XK_F3                                                   = 0xffc0,
-               XK_F4                                                   = 0xffc1,
-               XK_F5                                                   = 0xffc2,
-               XK_F6                                                   = 0xffc3,
-               XK_F7                                                   = 0xffc4,
-               XK_F8                                                   = 0xffc5,
-               XK_F9                                                   = 0xffc6,
-               XK_F10                                                  = 0xffc7,
-               XK_F11                                                  = 0xffc8,
-               XK_L1                                                   = 0xffc8,
-               XK_F12                                                  = 0xffc9,
-               XK_L2                                                   = 0xffc9,
-               XK_F13                                                  = 0xffca,
-               XK_L3                                                   = 0xffca,
-               XK_F14                                                  = 0xffcb,
-               XK_L4                                                   = 0xffcb,
-               XK_F15                                                  = 0xffcc,
-               XK_L5                                                   = 0xffcc,
-               XK_F16                                                  = 0xffcd,
-               XK_L6                                                   = 0xffcd,
-               XK_F17                                                  = 0xffce,
-               XK_L7                                                   = 0xffce,
-               XK_F18                                                  = 0xffcf,
-               XK_L8                                                   = 0xffcf,
-               XK_F19                                                  = 0xffd0,
-               XK_L9                                                   = 0xffd0,
-               XK_F20                                                  = 0xffd1,
-               XK_L10                                                  = 0xffd1,
-               XK_F21                                                  = 0xffd2,
-               XK_R1                                                   = 0xffd2,
-               XK_F22                                                  = 0xffd3,
-               XK_R2                                                   = 0xffd3,
-               XK_F23                                                  = 0xffd4,
-               XK_R3                                                   = 0xffd4,
-               XK_F24                                                  = 0xffd5,
-               XK_R4                                                   = 0xffd5,
-               XK_F25                                                  = 0xffd6,
-               XK_R5                                                   = 0xffd6,
-               XK_F26                                                  = 0xffd7,
-               XK_R6                                                   = 0xffd7,
-               XK_F27                                                  = 0xffd8,
-               XK_R7                                                   = 0xffd8,
-               XK_F28                                                  = 0xffd9,
-               XK_R8                                                   = 0xffd9,
-               XK_F29                                                  = 0xffda,
-               XK_R9                                                   = 0xffda,
-               XK_F30                                                  = 0xffdb,
-               XK_R10                                                  = 0xffdb,
-               XK_F31                                                  = 0xffdc,
-               XK_R11                                                  = 0xffdc,
-               XK_F32                                                  = 0xffdd,
-               XK_R12                                                  = 0xffdd,
-               XK_F33                                                  = 0xffde,
-               XK_R13                                                  = 0xffde,
-               XK_F34                                                  = 0xffdf,
-               XK_R14                                                  = 0xffdf,
-               XK_F35                                                  = 0xffe0,
-               XK_R15                                                  = 0xffe0,
-               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,
-               XK_ISO_Lock                                             = 0xfe01,
-               XK_ISO_Level2_Latch                             = 0xfe02,
-               XK_ISO_Level3_Shift                             = 0xfe03,
-               XK_ISO_Level3_Latch                             = 0xfe04,
-               XK_ISO_Level3_Lock                              = 0xfe05,
-               XK_ISO_Level5_Shift                             = 0xfe11,
-               XK_ISO_Level5_Latch                             = 0xfe12,
-               XK_ISO_Level5_Lock                              = 0xfe13,
-               XK_ISO_Group_Shift                              = 0xff7e,
-               XK_ISO_Group_Latch                              = 0xfe06,
-               XK_ISO_Group_Lock                               = 0xfe07,
-               XK_ISO_Next_Group                               = 0xfe08,
-               XK_ISO_Next_Group_Lock                  = 0xfe09,
-               XK_ISO_Prev_Group                               = 0xfe0a,
-               XK_ISO_Prev_Group_Lock                  = 0xfe0b,
-               XK_ISO_First_Group                              = 0xfe0c,
-               XK_ISO_First_Group_Lock                 = 0xfe0d,
-               XK_ISO_Last_Group                               = 0xfe0e,
-               XK_ISO_Last_Group_Lock                  = 0xfe0f,
-               XK_ISO_Left_Tab                                 = 0xfe20,
-               XK_ISO_Move_Line_Up                             = 0xfe21,
-               XK_ISO_Move_Line_Down                   = 0xfe22,
-               XK_ISO_Partial_Line_Up                  = 0xfe23,
-               XK_ISO_Partial_Line_Down                = 0xfe24,
-               XK_ISO_Partial_Space_Left               = 0xfe25,
-               XK_ISO_Partial_Space_Right              = 0xfe26,
-               XK_ISO_Set_Margin_Left                  = 0xfe27,
-               XK_ISO_Set_Margin_Right                 = 0xfe28,
-               XK_ISO_Release_Margin_Left              = 0xfe29,
-               XK_ISO_Release_Margin_Right             = 0xfe2a,
-               XK_ISO_Release_Both_Margins             = 0xfe2b,
-               XK_ISO_Fast_Cursor_Left                 = 0xfe2c,
-               XK_ISO_Fast_Cursor_Right                = 0xfe2d,
-               XK_ISO_Fast_Cursor_Up                   = 0xfe2e,
-               XK_ISO_Fast_Cursor_Down                 = 0xfe2f,
-               XK_ISO_Continuous_Underline             = 0xfe30,
-               XK_ISO_Discontinuous_Underline  = 0xfe31,
-               XK_ISO_Emphasize                                = 0xfe32,
-               XK_ISO_Center_Object                    = 0xfe33,
-               XK_ISO_Enter                                    = 0xfe34,
-               XK_dead_grave                                   = 0xfe50,
-               XK_dead_acute                                   = 0xfe51,
-               XK_dead_circumflex                              = 0xfe52,
-               XK_dead_tilde                                   = 0xfe53,
-               XK_dead_perispomeni                             = 0xfe53,
-               XK_dead_macron                                  = 0xfe54,
-               XK_dead_breve                                   = 0xfe55,
-               XK_dead_abovedot                                = 0xfe56,
-               XK_dead_diaeresis                               = 0xfe57,
-               XK_dead_abovering                               = 0xfe58,
-               XK_dead_doubleacute                             = 0xfe59,
-               XK_dead_caron                                   = 0xfe5a,
-               XK_dead_cedilla                                 = 0xfe5b,
-               XK_dead_ogonek                                  = 0xfe5c,
-               XK_dead_iota                                    = 0xfe5d,
-               XK_dead_voiced_sound                    = 0xfe5e,
-               XK_dead_semivoiced_sound                = 0xfe5f,
-               XK_dead_belowdot                                = 0xfe60,
-               XK_dead_hook                                    = 0xfe61,
-               XK_dead_horn                                    = 0xfe62,
-               XK_dead_stroke                                  = 0xfe63,
-               XK_dead_abovecomma                              = 0xfe64,
-               XK_dead_psili                                   = 0xfe64,
-               XK_dead_abovereversedcomma              = 0xfe65,
-               XK_dead_dasia                                   = 0xfe65,
-               XK_dead_doublegrave                             = 0xfe66,
-               XK_dead_belowring                               = 0xfe67,
-               XK_dead_belowmacron                             = 0xfe68,
-               XK_dead_belowcircumflex                 = 0xfe69,
-               XK_dead_belowtilde                              = 0xfe6a,
-               XK_dead_belowbreve                              = 0xfe6b,
-               XK_dead_belowdiaeresis                  = 0xfe6c,
-               XK_dead_invertedbreve                   = 0xfe6d,
-               XK_dead_belowcomma                              = 0xfe6e,
-               XK_dead_currency                                = 0xfe6f,
-               XK_dead_lowline                                 = 0xfe90,
-               XK_dead_aboveverticalline               = 0xfe91,
-               XK_dead_belowverticalline               = 0xfe92,
-               XK_dead_longsolidusoverlay              = 0xfe93,
-               XK_dead_a                                               = 0xfe80,
-               XK_dead_A                                               = 0xfe81,
-               XK_dead_e                                               = 0xfe82,
-               XK_dead_E                                               = 0xfe83,
-               XK_dead_i                                               = 0xfe84,
-               XK_dead_I                                               = 0xfe85,
-               XK_dead_o                                               = 0xfe86,
-               XK_dead_O                                               = 0xfe87,
-               XK_dead_u                                               = 0xfe88,
-               XK_dead_U                                               = 0xfe89,
-               XK_dead_small_schwa                             = 0xfe8a,
-               XK_dead_capital_schwa                   = 0xfe8b,
-               XK_dead_greek                                   = 0xfe8c,
-               XK_First_Virtual_Screen                 = 0xfed0,
-               XK_Prev_Virtual_Screen                  = 0xfed1,
-               XK_Next_Virtual_Screen                  = 0xfed2,
-               XK_Last_Virtual_Screen                  = 0xfed4,
-               XK_Terminate_Server                             = 0xfed5,
-               XK_AccessX_Enable                               = 0xfe70,
-               XK_AccessX_Feedback_Enable              = 0xfe71,
-               XK_RepeatKeys_Enable                    = 0xfe72,
-               XK_SlowKeys_Enable                              = 0xfe73,
-               XK_BounceKeys_Enable                    = 0xfe74,
-               XK_StickyKeys_Enable                    = 0xfe75,
-               XK_MouseKeys_Enable                             = 0xfe76,
-               XK_MouseKeys_Accel_Enable               = 0xfe77,
-               XK_Overlay1_Enable                              = 0xfe78,
-               XK_Overlay2_Enable                              = 0xfe79,
-               XK_AudibleBell_Enable                   = 0xfe7a,
-               XK_Pointer_Left                                 = 0xfee0,
-               XK_Pointer_Right                                = 0xfee1,
-               XK_Pointer_Up                                   = 0xfee2,
-               XK_Pointer_Down                                 = 0xfee3,
-               XK_Pointer_UpLeft                               = 0xfee4,
-               XK_Pointer_UpRight                              = 0xfee5,
-               XK_Pointer_DownLeft                             = 0xfee6,
-               XK_Pointer_DownRight                    = 0xfee7,
-               XK_Pointer_Button_Dflt                  = 0xfee8,
-               XK_Pointer_Button1                              = 0xfee9,
-               XK_Pointer_Button2                              = 0xfeea,
-               XK_Pointer_Button3                              = 0xfeeb,
-               XK_Pointer_Button4                              = 0xfeec,
-               XK_Pointer_Button5                              = 0xfeed,
-               XK_Pointer_DblClick_Dflt                = 0xfeee,
-               XK_Pointer_DblClick1                    = 0xfeef,
-               XK_Pointer_DblClick2                    = 0xfef0,
-               XK_Pointer_DblClick3                    = 0xfef1,
-               XK_Pointer_DblClick4                    = 0xfef2,
-               XK_Pointer_DblClick5                    = 0xfef3,
-               XK_Pointer_Drag_Dflt                    = 0xfef4,
-               XK_Pointer_Drag1                                = 0xfef5,
-               XK_Pointer_Drag2                                = 0xfef6,
-               XK_Pointer_Drag3                                = 0xfef7,
-               XK_Pointer_Drag4                                = 0xfef8,
-               XK_Pointer_Drag5                                = 0xfefd,
-               XK_Pointer_EnableKeys                   = 0xfef9,
-               XK_Pointer_Accelerate                   = 0xfefa,
-               XK_Pointer_DfltBtnNext                  = 0xfefb,
-               XK_Pointer_DfltBtnPrev                  = 0xfefc,
-               XK_ch                                                   = 0xfea0,
-               XK_Ch                                                   = 0xfea1,
-               XK_CH                                                   = 0xfea2,
-               XK_c_h                                                  = 0xfea3,
-               XK_C_h                                                  = 0xfea4,
-               XK_C_H                                                  = 0xfea5,
-               XK_3270_Duplicate                               = 0xfd01,
-               XK_3270_FieldMark                               = 0xfd02,
-               XK_3270_Right2                                  = 0xfd03,
-               XK_3270_Left2                                   = 0xfd04,
-               XK_3270_BackTab                                 = 0xfd05,
-               XK_3270_EraseEOF                                = 0xfd06,
-               XK_3270_EraseInput                              = 0xfd07,
-               XK_3270_Reset                                   = 0xfd08,
-               XK_3270_Quit                                    = 0xfd09,
-               XK_3270_PA1                                             = 0xfd0a,
-               XK_3270_PA2                                             = 0xfd0b,
-               XK_3270_PA3                                             = 0xfd0c,
-               XK_3270_Test                                    = 0xfd0d,
-               XK_3270_Attn                                    = 0xfd0e,
-               XK_3270_CursorBlink                             = 0xfd0f,
-               XK_3270_AltCursor                               = 0xfd10,
-               XK_3270_KeyClick                                = 0xfd11,
-               XK_3270_Jump                                    = 0xfd12,
-               XK_3270_Ident                                   = 0xfd13,
-               XK_3270_Rule                                    = 0xfd14,
-               XK_3270_Copy                                    = 0xfd15,
-               XK_3270_Play                                    = 0xfd16,
-               XK_3270_Setup                                   = 0xfd17,
-               XK_3270_Record                                  = 0xfd18,
-               XK_3270_ChangeScreen                    = 0xfd19,
-               XK_3270_DeleteWord                              = 0xfd1a,
-               XK_3270_ExSelect                                = 0xfd1b,
-               XK_3270_CursorSelect                    = 0xfd1c,
-               XK_3270_PrintScreen                             = 0xfd1d,
-               XK_3270_Enter                                   = 0xfd1e,
-               XK_space                                                = 0x0020,
-               XK_exclam                                               = 0x0021,
-               XK_quotedbl                                             = 0x0022,
-               XK_numbersign                                   = 0x0023,
-               XK_dollar                                               = 0x0024,
-               XK_percent                                              = 0x0025,
-               XK_ampersand                                    = 0x0026,
-               XK_apostrophe                                   = 0x0027,
-               XK_quoteright                                   = 0x0027,
-               XK_parenleft                                    = 0x0028,
-               XK_parenright                                   = 0x0029,
-               XK_asterisk                                             = 0x002a,
-               XK_plus                                                 = 0x002b,
-               XK_comma                                                = 0x002c,
-               XK_minus                                                = 0x002d,
-               XK_period                                               = 0x002e,
-               XK_slash                                                = 0x002f,
-               XK_0                                                    = 0x0030,
-               XK_1                                                    = 0x0031,
-               XK_2                                                    = 0x0032,
-               XK_3                                                    = 0x0033,
-               XK_4                                                    = 0x0034,
-               XK_5                                                    = 0x0035,
-               XK_6                                                    = 0x0036,
-               XK_7                                                    = 0x0037,
-               XK_8                                                    = 0x0038,
-               XK_9                                                    = 0x0039,
-               XK_colon                                                = 0x003a,
-               XK_semicolon                                    = 0x003b,
-               XK_less                                                 = 0x003c,
-               XK_equal                                                = 0x003d,
-               XK_greater                                              = 0x003e,
-               XK_question                                             = 0x003f,
-               XK_at                                                   = 0x0040,
-               XK_A                                                    = 0x0041,
-               XK_B                                                    = 0x0042,
-               XK_C                                                    = 0x0043,
-               XK_D                                                    = 0x0044,
-               XK_E                                                    = 0x0045,
-               XK_F                                                    = 0x0046,
-               XK_G                                                    = 0x0047,
-               XK_H                                                    = 0x0048,
-               XK_I                                                    = 0x0049,
-               XK_J                                                    = 0x004a,
-               XK_K                                                    = 0x004b,
-               XK_L                                                    = 0x004c,
-               XK_M                                                    = 0x004d,
-               XK_N                                                    = 0x004e,
-               XK_O                                                    = 0x004f,
-               XK_P                                                    = 0x0050,
-               XK_Q                                                    = 0x0051,
-               XK_R                                                    = 0x0052,
-               XK_S                                                    = 0x0053,
-               XK_T                                                    = 0x0054,
-               XK_U                                                    = 0x0055,
-               XK_V                                                    = 0x0056,
-               XK_W                                                    = 0x0057,
-               XK_X                                                    = 0x0058,
-               XK_Y                                                    = 0x0059,
-               XK_Z                                                    = 0x005a,
-               XK_bracketleft                                  = 0x005b,
-               XK_backslash                                    = 0x005c,
-               XK_bracketright                                 = 0x005d,
-               XK_asciicircum                                  = 0x005e,
-               XK_underscore                                   = 0x005f,
-               XK_grave                                                = 0x0060,
-               XK_quoteleft                                    = 0x0060,
-               XK_a                                                    = 0x0061,
-               XK_b                                                    = 0x0062,
-               XK_c                                                    = 0x0063,
-               XK_d                                                    = 0x0064,
-               XK_e                                                    = 0x0065,
-               XK_f                                                    = 0x0066,
-               XK_g                                                    = 0x0067,
-               XK_h                                                    = 0x0068,
-               XK_i                                                    = 0x0069,
-               XK_j                                                    = 0x006a,
-               XK_k                                                    = 0x006b,
-               XK_l                                                    = 0x006c,
-               XK_m                                                    = 0x006d,
-               XK_n                                                    = 0x006e,
-               XK_o                                                    = 0x006f,
-               XK_p                                                    = 0x0070,
-               XK_q                                                    = 0x0071,
-               XK_r                                                    = 0x0072,
-               XK_s                                                    = 0x0073,
-               XK_t                                                    = 0x0074,
-               XK_u                                                    = 0x0075,
-               XK_v                                                    = 0x0076,
-               XK_w                                                    = 0x0077,
-               XK_x                                                    = 0x0078,
-               XK_y                                                    = 0x0079,
-               XK_z                                                    = 0x007a,
-               XK_braceleft                                    = 0x007b,
-               XK_bar                                                  = 0x007c,
-               XK_braceright                                   = 0x007d,
-               XK_asciitilde                                   = 0x007e,
-               XK_nobreakspace                                 = 0x00a0,
-               XK_exclamdown                                   = 0x00a1,
-               XK_cent                                                 = 0x00a2,
-               XK_sterling                                             = 0x00a3,
-               XK_currency                                             = 0x00a4,
-               XK_yen                                                  = 0x00a5,
-               XK_brokenbar                                    = 0x00a6,
-               XK_section                                              = 0x00a7,
-               XK_diaeresis                                    = 0x00a8,
-               XK_copyright                                    = 0x00a9,
-               XK_ordfeminine                                  = 0x00aa,
-               XK_guillemotleft                                = 0x00ab,
-               XK_notsign                                              = 0x00ac,
-               XK_hyphen                                               = 0x00ad,
-               XK_registered                                   = 0x00ae,
-               XK_macron                                               = 0x00af,
-               XK_degree                                               = 0x00b0,
-               XK_plusminus                                    = 0x00b1,
-               XK_twosuperior                                  = 0x00b2,
-               XK_threesuperior                                = 0x00b3,
-               XK_acute                                                = 0x00b4,
-               XK_mu                                                   = 0x00b5,
-               XK_paragraph                                    = 0x00b6,
-               XK_periodcentered                               = 0x00b7,
-               XK_cedilla                                              = 0x00b8,
-               XK_onesuperior                                  = 0x00b9,
-               XK_masculine                                    = 0x00ba,
-               XK_guillemotright                               = 0x00bb,
-               XK_onequarter                                   = 0x00bc,
-               XK_onehalf                                              = 0x00bd,
-               XK_threequarters                                = 0x00be,
-               XK_questiondown                                 = 0x00bf,
-               XK_Agrave                                               = 0x00c0,
-               XK_Aacute                                               = 0x00c1,
-               XK_Acircumflex                                  = 0x00c2,
-               XK_Atilde                                               = 0x00c3,
-               XK_Adiaeresis                                   = 0x00c4,
-               XK_Aring                                                = 0x00c5,
-               XK_AE                                                   = 0x00c6,
-               XK_Ccedilla                                             = 0x00c7,
-               XK_Egrave                                               = 0x00c8,
-               XK_Eacute                                               = 0x00c9,
-               XK_Ecircumflex                                  = 0x00ca,
-               XK_Ediaeresis                                   = 0x00cb,
-               XK_Igrave                                               = 0x00cc,
-               XK_Iacute                                               = 0x00cd,
-               XK_Icircumflex                                  = 0x00ce,
-               XK_Idiaeresis                                   = 0x00cf,
-               XK_ETH                                                  = 0x00d0,
-               XK_Eth                                                  = 0x00d0,
-               XK_Ntilde                                               = 0x00d1,
-               XK_Ograve                                               = 0x00d2,
-               XK_Oacute                                               = 0x00d3,
-               XK_Ocircumflex                                  = 0x00d4,
-               XK_Otilde                                               = 0x00d5,
-               XK_Odiaeresis                                   = 0x00d6,
-               XK_multiply                                             = 0x00d7,
-               XK_Oslash                                               = 0x00d8,
-               XK_Ooblique                                             = 0x00d8,
-               XK_Ugrave                                               = 0x00d9,
-               XK_Uacute                                               = 0x00da,
-               XK_Ucircumflex                                  = 0x00db,
-               XK_Udiaeresis                                   = 0x00dc,
-               XK_Yacute                                               = 0x00dd,
-               XK_THORN                                                = 0x00de,
-               XK_Thorn                                                = 0x00de,
-               XK_ssharp                                               = 0x00df,
-               XK_agrave                                               = 0x00e0,
-               XK_aacute                                               = 0x00e1,
-               XK_acircumflex                                  = 0x00e2,
-               XK_atilde                                               = 0x00e3,
-               XK_adiaeresis                                   = 0x00e4,
-               XK_aring                                                = 0x00e5,
-               XK_ae                                                   = 0x00e6,
-               XK_ccedilla                                             = 0x00e7,
-               XK_egrave                                               = 0x00e8,
-               XK_eacute                                               = 0x00e9,
-               XK_ecircumflex                                  = 0x00ea,
-               XK_ediaeresis                                   = 0x00eb,
-               XK_igrave                                               = 0x00ec,
-               XK_iacute                                               = 0x00ed,
-               XK_icircumflex                                  = 0x00ee,
-               XK_idiaeresis                                   = 0x00ef,
-               XK_eth                                                  = 0x00f0,
-               XK_ntilde                                               = 0x00f1,
-               XK_ograve                                               = 0x00f2,
-               XK_oacute                                               = 0x00f3,
-               XK_ocircumflex                                  = 0x00f4,
-               XK_otilde                                               = 0x00f5,
-               XK_odiaeresis                                   = 0x00f6,
-               XK_division                                             = 0x00f7,
-               XK_oslash                                               = 0x00f8,
-               XK_ooblique                                             = 0x00f8,
-               XK_ugrave                                               = 0x00f9,
-               XK_uacute                                               = 0x00fa,
-               XK_ucircumflex                                  = 0x00fb,
-               XK_udiaeresis                                   = 0x00fc,
-               XK_yacute                                               = 0x00fd,
-               XK_thorn                                                = 0x00fe,
-               XK_ydiaeresis                                   = 0x00ff,
-               XK_Aogonek                                              = 0x01a1,
-               XK_breve                                                = 0x01a2,
-               XK_Lstroke                                              = 0x01a3,
-               XK_Lcaron                                               = 0x01a5,
-               XK_Sacute                                               = 0x01a6,
-               XK_Scaron                                               = 0x01a9,
-               XK_Scedilla                                             = 0x01aa,
-               XK_Tcaron                                               = 0x01ab,
-               XK_Zacute                                               = 0x01ac,
-               XK_Zcaron                                               = 0x01ae,
-               XK_Zabovedot                                    = 0x01af,
-               XK_aogonek                                              = 0x01b1,
-               XK_ogonek                                               = 0x01b2,
-               XK_lstroke                                              = 0x01b3,
-               XK_lcaron                                               = 0x01b5,
-               XK_sacute                                               = 0x01b6,
-               XK_caron                                                = 0x01b7,
-               XK_scaron                                               = 0x01b9,
-               XK_scedilla                                             = 0x01ba,
-               XK_tcaron                                               = 0x01bb,
-               XK_zacute                                               = 0x01bc,
-               XK_doubleacute                                  = 0x01bd,
-               XK_zcaron                                               = 0x01be,
-               XK_zabovedot                                    = 0x01bf,
-               XK_Racute                                               = 0x01c0,
-               XK_Abreve                                               = 0x01c3,
-               XK_Lacute                                               = 0x01c5,
-               XK_Cacute                                               = 0x01c6,
-               XK_Ccaron                                               = 0x01c8,
-               XK_Eogonek                                              = 0x01ca,
-               XK_Ecaron                                               = 0x01cc,
-               XK_Dcaron                                               = 0x01cf,
-               XK_Dstroke                                              = 0x01d0,
-               XK_Nacute                                               = 0x01d1,
-               XK_Ncaron                                               = 0x01d2,
-               XK_Odoubleacute                                 = 0x01d5,
-               XK_Rcaron                                               = 0x01d8,
-               XK_Uring                                                = 0x01d9,
-               XK_Udoubleacute                                 = 0x01db,
-               XK_Tcedilla                                             = 0x01de,
-               XK_racute                                               = 0x01e0,
-               XK_abreve                                               = 0x01e3,
-               XK_lacute                                               = 0x01e5,
-               XK_cacute                                               = 0x01e6,
-               XK_ccaron                                               = 0x01e8,
-               XK_eogonek                                              = 0x01ea,
-               XK_ecaron                                               = 0x01ec,
-               XK_dcaron                                               = 0x01ef,
-               XK_dstroke                                              = 0x01f0,
-               XK_nacute                                               = 0x01f1,
-               XK_ncaron                                               = 0x01f2,
-               XK_odoubleacute                                 = 0x01f5,
-               XK_rcaron                                               = 0x01f8,
-               XK_uring                                                = 0x01f9,
-               XK_udoubleacute                                 = 0x01fb,
-               XK_tcedilla                                             = 0x01fe,
-               XK_abovedot                                             = 0x01ff,
-               XK_Hstroke                                              = 0x02a1,
-               XK_Hcircumflex                                  = 0x02a6,
-               XK_Iabovedot                                    = 0x02a9,
-               XK_Gbreve                                               = 0x02ab,
-               XK_Jcircumflex                                  = 0x02ac,
-               XK_hstroke                                              = 0x02b1,
-               XK_hcircumflex                                  = 0x02b6,
-               XK_idotless                                             = 0x02b9,
-               XK_gbreve                                               = 0x02bb,
-               XK_jcircumflex                                  = 0x02bc,
-               XK_Cabovedot                                    = 0x02c5,
-               XK_Ccircumflex                                  = 0x02c6,
-               XK_Gabovedot                                    = 0x02d5,
-               XK_Gcircumflex                                  = 0x02d8,
-               XK_Ubreve                                               = 0x02dd,
-               XK_Scircumflex                                  = 0x02de,
-               XK_cabovedot                                    = 0x02e5,
-               XK_ccircumflex                                  = 0x02e6,
-               XK_gabovedot                                    = 0x02f5,
-               XK_gcircumflex                                  = 0x02f8,
-               XK_ubreve                                               = 0x02fd,
-               XK_scircumflex                                  = 0x02fe,
-               XK_kra                                                  = 0x03a2,
-               XK_kappa                                                = 0x03a2,
-               XK_Rcedilla                                             = 0x03a3,
-               XK_Itilde                                               = 0x03a5,
-               XK_Lcedilla                                             = 0x03a6,
-               XK_Emacron                                              = 0x03aa,
-               XK_Gcedilla                                             = 0x03ab,
-               XK_Tslash                                               = 0x03ac,
-               XK_rcedilla                                             = 0x03b3,
-               XK_itilde                                               = 0x03b5,
-               XK_lcedilla                                             = 0x03b6,
-               XK_emacron                                              = 0x03ba,
-               XK_gcedilla                                             = 0x03bb,
-               XK_tslash                                               = 0x03bc,
-               XK_ENG                                                  = 0x03bd,
-               XK_eng                                                  = 0x03bf,
-               XK_Amacron                                              = 0x03c0,
-               XK_Iogonek                                              = 0x03c7,
-               XK_Eabovedot                                    = 0x03cc,
-               XK_Imacron                                              = 0x03cf,
-               XK_Ncedilla                                             = 0x03d1,
-               XK_Omacron                                              = 0x03d2,
-               XK_Kcedilla                                             = 0x03d3,
-               XK_Uogonek                                              = 0x03d9,
-               XK_Utilde                                               = 0x03dd,
-               XK_Umacron                                              = 0x03de,
-               XK_amacron                                              = 0x03e0,
-               XK_iogonek                                              = 0x03e7,
-               XK_eabovedot                                    = 0x03ec,
-               XK_imacron                                              = 0x03ef,
-               XK_ncedilla                                             = 0x03f1,
-               XK_omacron                                              = 0x03f2,
-               XK_kcedilla                                             = 0x03f3,
-               XK_uogonek                                              = 0x03f9,
-               XK_utilde                                               = 0x03fd,
-               XK_umacron                                              = 0x03fe,
-               XK_Wcircumflex                                  = 0x1000174,
-               XK_wcircumflex                                  = 0x1000175,
-               XK_Ycircumflex                                  = 0x1000176,
-               XK_ycircumflex                                  = 0x1000177,
-               XK_Babovedot                                    = 0x1001e02,
-               XK_babovedot                                    = 0x1001e03,
-               XK_Dabovedot                                    = 0x1001e0a,
-               XK_dabovedot                                    = 0x1001e0b,
-               XK_Fabovedot                                    = 0x1001e1e,
-               XK_fabovedot                                    = 0x1001e1f,
-               XK_Mabovedot                                    = 0x1001e40,
-               XK_mabovedot                                    = 0x1001e41,
-               XK_Pabovedot                                    = 0x1001e56,
-               XK_pabovedot                                    = 0x1001e57,
-               XK_Sabovedot                                    = 0x1001e60,
-               XK_sabovedot                                    = 0x1001e61,
-               XK_Tabovedot                                    = 0x1001e6a,
-               XK_tabovedot                                    = 0x1001e6b,
-               XK_Wgrave                                               = 0x1001e80,
-               XK_wgrave                                               = 0x1001e81,
-               XK_Wacute                                               = 0x1001e82,
-               XK_wacute                                               = 0x1001e83,
-               XK_Wdiaeresis                                   = 0x1001e84,
-               XK_wdiaeresis                                   = 0x1001e85,
-               XK_Ygrave                                               = 0x1001ef2,
-               XK_ygrave                                               = 0x1001ef3,
-               XK_OE                                                   = 0x13bc,
-               XK_oe                                                   = 0x13bd,
-               XK_Ydiaeresis                                   = 0x13be,
-               XK_overline                                             = 0x047e,
-               XK_kana_fullstop                                = 0x04a1,
-               XK_kana_openingbracket                  = 0x04a2,
-               XK_kana_closingbracket                  = 0x04a3,
-               XK_kana_comma                                   = 0x04a4,
-               XK_kana_conjunctive                             = 0x04a5,
-               XK_kana_middledot                               = 0x04a5,
-               XK_kana_WO                                              = 0x04a6,
-               XK_kana_a                                               = 0x04a7,
-               XK_kana_i                                               = 0x04a8,
-               XK_kana_u                                               = 0x04a9,
-               XK_kana_e                                               = 0x04aa,
-               XK_kana_o                                               = 0x04ab,
-               XK_kana_ya                                              = 0x04ac,
-               XK_kana_yu                                              = 0x04ad,
-               XK_kana_yo                                              = 0x04ae,
-               XK_kana_tsu                                             = 0x04af,
-               XK_kana_tu                                              = 0x04af,
-               XK_prolongedsound                               = 0x04b0,
-               XK_kana_A                                               = 0x04b1,
-               XK_kana_I                                               = 0x04b2,
-               XK_kana_U                                               = 0x04b3,
-               XK_kana_E                                               = 0x04b4,
-               XK_kana_O                                               = 0x04b5,
-               XK_kana_KA                                              = 0x04b6,
-               XK_kana_KI                                              = 0x04b7,
-               XK_kana_KU                                              = 0x04b8,
-               XK_kana_KE                                              = 0x04b9,
-               XK_kana_KO                                              = 0x04ba,
-               XK_kana_SA                                              = 0x04bb,
-               XK_kana_SHI                                             = 0x04bc,
-               XK_kana_SU                                              = 0x04bd,
-               XK_kana_SE                                              = 0x04be,
-               XK_kana_SO                                              = 0x04bf,
-               XK_kana_TA                                              = 0x04c0,
-               XK_kana_CHI                                             = 0x04c1,
-               XK_kana_TI                                              = 0x04c1,
-               XK_kana_TSU                                             = 0x04c2,
-               XK_kana_TU                                              = 0x04c2,
-               XK_kana_TE                                              = 0x04c3,
-               XK_kana_TO                                              = 0x04c4,
-               XK_kana_NA                                              = 0x04c5,
-               XK_kana_NI                                              = 0x04c6,
-               XK_kana_NU                                              = 0x04c7,
-               XK_kana_NE                                              = 0x04c8,
-               XK_kana_NO                                              = 0x04c9,
-               XK_kana_HA                                              = 0x04ca,
-               XK_kana_HI                                              = 0x04cb,
-               XK_kana_FU                                              = 0x04cc,
-               XK_kana_HU                                              = 0x04cc,
-               XK_kana_HE                                              = 0x04cd,
-               XK_kana_HO                                              = 0x04ce,
-               XK_kana_MA                                              = 0x04cf,
-               XK_kana_MI                                              = 0x04d0,
-               XK_kana_MU                                              = 0x04d1,
-               XK_kana_ME                                              = 0x04d2,
-               XK_kana_MO                                              = 0x04d3,
-               XK_kana_YA                                              = 0x04d4,
-               XK_kana_YU                                              = 0x04d5,
-               XK_kana_YO                                              = 0x04d6,
-               XK_kana_RA                                              = 0x04d7,
-               XK_kana_RI                                              = 0x04d8,
-               XK_kana_RU                                              = 0x04d9,
-               XK_kana_RE                                              = 0x04da,
-               XK_kana_RO                                              = 0x04db,
-               XK_kana_WA                                              = 0x04dc,
-               XK_kana_N                                               = 0x04dd,
-               XK_voicedsound                                  = 0x04de,
-               XK_semivoicedsound                              = 0x04df,
-               XK_kana_switch                                  = 0xff7e,
-               XK_Farsi_0                                              = 0x10006f0,
-               XK_Farsi_1                                              = 0x10006f1,
-               XK_Farsi_2                                              = 0x10006f2,
-               XK_Farsi_3                                              = 0x10006f3,
-               XK_Farsi_4                                              = 0x10006f4,
-               XK_Farsi_5                                              = 0x10006f5,
-               XK_Farsi_6                                              = 0x10006f6,
-               XK_Farsi_7                                              = 0x10006f7,
-               XK_Farsi_8                                              = 0x10006f8,
-               XK_Farsi_9                                              = 0x10006f9,
-               XK_Arabic_percent                               = 0x100066a,
-               XK_Arabic_superscript_alef              = 0x1000670,
-               XK_Arabic_tteh                                  = 0x1000679,
-               XK_Arabic_peh                                   = 0x100067e,
-               XK_Arabic_tcheh                                 = 0x1000686,
-               XK_Arabic_ddal                                  = 0x1000688,
-               XK_Arabic_rreh                                  = 0x1000691,
-               XK_Arabic_comma                                 = 0x05ac,
-               XK_Arabic_fullstop                              = 0x10006d4,
-               XK_Arabic_0                                             = 0x1000660,
-               XK_Arabic_1                                             = 0x1000661,
-               XK_Arabic_2                                             = 0x1000662,
-               XK_Arabic_3                                             = 0x1000663,
-               XK_Arabic_4                                             = 0x1000664,
-               XK_Arabic_5                                             = 0x1000665,
-               XK_Arabic_6                                             = 0x1000666,
-               XK_Arabic_7                                             = 0x1000667,
-               XK_Arabic_8                                             = 0x1000668,
-               XK_Arabic_9                                             = 0x1000669,
-               XK_Arabic_semicolon                             = 0x05bb,
-               XK_Arabic_question_mark                 = 0x05bf,
-               XK_Arabic_hamza                                 = 0x05c1,
-               XK_Arabic_maddaonalef                   = 0x05c2,
-               XK_Arabic_hamzaonalef                   = 0x05c3,
-               XK_Arabic_hamzaonwaw                    = 0x05c4,
-               XK_Arabic_hamzaunderalef                = 0x05c5,
-               XK_Arabic_hamzaonyeh                    = 0x05c6,
-               XK_Arabic_alef                                  = 0x05c7,
-               XK_Arabic_beh                                   = 0x05c8,
-               XK_Arabic_tehmarbuta                    = 0x05c9,
-               XK_Arabic_teh                                   = 0x05ca,
-               XK_Arabic_theh                                  = 0x05cb,
-               XK_Arabic_jeem                                  = 0x05cc,
-               XK_Arabic_hah                                   = 0x05cd,
-               XK_Arabic_khah                                  = 0x05ce,
-               XK_Arabic_dal                                   = 0x05cf,
-               XK_Arabic_thal                                  = 0x05d0,
-               XK_Arabic_ra                                    = 0x05d1,
-               XK_Arabic_zain                                  = 0x05d2,
-               XK_Arabic_seen                                  = 0x05d3,
-               XK_Arabic_sheen                                 = 0x05d4,
-               XK_Arabic_sad                                   = 0x05d5,
-               XK_Arabic_dad                                   = 0x05d6,
-               XK_Arabic_tah                                   = 0x05d7,
-               XK_Arabic_zah                                   = 0x05d8,
-               XK_Arabic_ain                                   = 0x05d9,
-               XK_Arabic_ghain                                 = 0x05da,
-               XK_Arabic_tatweel                               = 0x05e0,
-               XK_Arabic_feh                                   = 0x05e1,
-               XK_Arabic_qaf                                   = 0x05e2,
-               XK_Arabic_kaf                                   = 0x05e3,
-               XK_Arabic_lam                                   = 0x05e4,
-               XK_Arabic_meem                                  = 0x05e5,
-               XK_Arabic_noon                                  = 0x05e6,
-               XK_Arabic_ha                                    = 0x05e7,
-               XK_Arabic_heh                                   = 0x05e7,
-               XK_Arabic_waw                                   = 0x05e8,
-               XK_Arabic_alefmaksura                   = 0x05e9,
-               XK_Arabic_yeh                                   = 0x05ea,
-               XK_Arabic_fathatan                              = 0x05eb,
-               XK_Arabic_dammatan                              = 0x05ec,
-               XK_Arabic_kasratan                              = 0x05ed,
-               XK_Arabic_fatha                                 = 0x05ee,
-               XK_Arabic_damma                                 = 0x05ef,
-               XK_Arabic_kasra                                 = 0x05f0,
-               XK_Arabic_shadda                                = 0x05f1,
-               XK_Arabic_sukun                                 = 0x05f2,
-               XK_Arabic_madda_above                   = 0x1000653,
-               XK_Arabic_hamza_above                   = 0x1000654,
-               XK_Arabic_hamza_below                   = 0x1000655,
-               XK_Arabic_jeh                                   = 0x1000698,
-               XK_Arabic_veh                                   = 0x10006a4,
-               XK_Arabic_keheh                                 = 0x10006a9,
-               XK_Arabic_gaf                                   = 0x10006af,
-               XK_Arabic_noon_ghunna                   = 0x10006ba,
-               XK_Arabic_heh_doachashmee               = 0x10006be,
-               XK_Farsi_yeh                                    = 0x10006cc,
-               XK_Arabic_farsi_yeh                             = 0x10006cc,
-               XK_Arabic_yeh_baree                             = 0x10006d2,
-               XK_Arabic_heh_goal                              = 0x10006c1,
-               XK_Arabic_switch                                = 0xff7e,
-               XK_Cyrillic_GHE_bar                             = 0x1000492,
-               XK_Cyrillic_ghe_bar                             = 0x1000493,
-               XK_Cyrillic_ZHE_descender               = 0x1000496,
-               XK_Cyrillic_zhe_descender               = 0x1000497,
-               XK_Cyrillic_KA_descender                = 0x100049a,
-               XK_Cyrillic_ka_descender                = 0x100049b,
-               XK_Cyrillic_KA_vertstroke               = 0x100049c,
-               XK_Cyrillic_ka_vertstroke               = 0x100049d,
-               XK_Cyrillic_EN_descender                = 0x10004a2,
-               XK_Cyrillic_en_descender                = 0x10004a3,
-               XK_Cyrillic_U_straight                  = 0x10004ae,
-               XK_Cyrillic_u_straight                  = 0x10004af,
-               XK_Cyrillic_U_straight_bar              = 0x10004b0,
-               XK_Cyrillic_u_straight_bar              = 0x10004b1,
-               XK_Cyrillic_HA_descender                = 0x10004b2,
-               XK_Cyrillic_ha_descender                = 0x10004b3,
-               XK_Cyrillic_CHE_descender               = 0x10004b6,
-               XK_Cyrillic_che_descender               = 0x10004b7,
-               XK_Cyrillic_CHE_vertstroke              = 0x10004b8,
-               XK_Cyrillic_che_vertstroke              = 0x10004b9,
-               XK_Cyrillic_SHHA                                = 0x10004ba,
-               XK_Cyrillic_shha                                = 0x10004bb,
-               XK_Cyrillic_SCHWA                               = 0x10004d8,
-               XK_Cyrillic_schwa                               = 0x10004d9,
-               XK_Cyrillic_I_macron                    = 0x10004e2,
-               XK_Cyrillic_i_macron                    = 0x10004e3,
-               XK_Cyrillic_O_bar                               = 0x10004e8,
-               XK_Cyrillic_o_bar                               = 0x10004e9,
-               XK_Cyrillic_U_macron                    = 0x10004ee,
-               XK_Cyrillic_u_macron                    = 0x10004ef,
-               XK_Serbian_dje                                  = 0x06a1,
-               XK_Macedonia_gje                                = 0x06a2,
-               XK_Cyrillic_io                                  = 0x06a3,
-               XK_Ukrainian_ie                                 = 0x06a4,
-               XK_Ukranian_je                                  = 0x06a4,
-               XK_Macedonia_dse                                = 0x06a5,
-               XK_Ukrainian_i                                  = 0x06a6,
-               XK_Ukranian_i                                   = 0x06a6,
-               XK_Ukrainian_yi                                 = 0x06a7,
-               XK_Ukranian_yi                                  = 0x06a7,
-               XK_Cyrillic_je                                  = 0x06a8,
-               XK_Serbian_je                                   = 0x06a8,
-               XK_Cyrillic_lje                                 = 0x06a9,
-               XK_Serbian_lje                                  = 0x06a9,
-               XK_Cyrillic_nje                                 = 0x06aa,
-               XK_Serbian_nje                                  = 0x06aa,
-               XK_Serbian_tshe                                 = 0x06ab,
-               XK_Macedonia_kje                                = 0x06ac,
-               XK_Ukrainian_ghe_with_upturn    = 0x06ad,
-               XK_Byelorussian_shortu                  = 0x06ae,
-               XK_Cyrillic_dzhe                                = 0x06af,
-               XK_Serbian_dze                                  = 0x06af,
-               XK_numerosign                                   = 0x06b0,
-               XK_Serbian_DJE                                  = 0x06b1,
-               XK_Macedonia_GJE                                = 0x06b2,
-               XK_Cyrillic_IO                                  = 0x06b3,
-               XK_Ukrainian_IE                                 = 0x06b4,
-               XK_Ukranian_JE                                  = 0x06b4,
-               XK_Macedonia_DSE                                = 0x06b5,
-               XK_Ukrainian_I                                  = 0x06b6,
-               XK_Ukranian_I                                   = 0x06b6,
-               XK_Ukrainian_YI                                 = 0x06b7,
-               XK_Ukranian_YI                                  = 0x06b7,
-               XK_Cyrillic_JE                                  = 0x06b8,
-               XK_Serbian_JE                                   = 0x06b8,
-               XK_Cyrillic_LJE                                 = 0x06b9,
-               XK_Serbian_LJE                                  = 0x06b9,
-               XK_Cyrillic_NJE                                 = 0x06ba,
-               XK_Serbian_NJE                                  = 0x06ba,
-               XK_Serbian_TSHE                                 = 0x06bb,
-               XK_Macedonia_KJE                                = 0x06bc,
-               XK_Ukrainian_GHE_WITH_UPTURN    = 0x06bd,
-               XK_Byelorussian_SHORTU                  = 0x06be,
-               XK_Cyrillic_DZHE                                = 0x06bf,
-               XK_Serbian_DZE                                  = 0x06bf,
-               XK_Cyrillic_yu                                  = 0x06c0,
-               XK_Cyrillic_a                                   = 0x06c1,
-               XK_Cyrillic_be                                  = 0x06c2,
-               XK_Cyrillic_tse                                 = 0x06c3,
-               XK_Cyrillic_de                                  = 0x06c4,
-               XK_Cyrillic_ie                                  = 0x06c5,
-               XK_Cyrillic_ef                                  = 0x06c6,
-               XK_Cyrillic_ghe                                 = 0x06c7,
-               XK_Cyrillic_ha                                  = 0x06c8,
-               XK_Cyrillic_i                                   = 0x06c9,
-               XK_Cyrillic_shorti                              = 0x06ca,
-               XK_Cyrillic_ka                                  = 0x06cb,
-               XK_Cyrillic_el                                  = 0x06cc,
-               XK_Cyrillic_em                                  = 0x06cd,
-               XK_Cyrillic_en                                  = 0x06ce,
-               XK_Cyrillic_o                                   = 0x06cf,
-               XK_Cyrillic_pe                                  = 0x06d0,
-               XK_Cyrillic_ya                                  = 0x06d1,
-               XK_Cyrillic_er                                  = 0x06d2,
-               XK_Cyrillic_es                                  = 0x06d3,
-               XK_Cyrillic_te                                  = 0x06d4,
-               XK_Cyrillic_u                                   = 0x06d5,
-               XK_Cyrillic_zhe                                 = 0x06d6,
-               XK_Cyrillic_ve                                  = 0x06d7,
-               XK_Cyrillic_softsign                    = 0x06d8,
-               XK_Cyrillic_yeru                                = 0x06d9,
-               XK_Cyrillic_ze                                  = 0x06da,
-               XK_Cyrillic_sha                                 = 0x06db,
-               XK_Cyrillic_e                                   = 0x06dc,
-               XK_Cyrillic_shcha                               = 0x06dd,
-               XK_Cyrillic_che                                 = 0x06de,
-               XK_Cyrillic_hardsign                    = 0x06df,
-               XK_Cyrillic_YU                                  = 0x06e0,
-               XK_Cyrillic_A                                   = 0x06e1,
-               XK_Cyrillic_BE                                  = 0x06e2,
-               XK_Cyrillic_TSE                                 = 0x06e3,
-               XK_Cyrillic_DE                                  = 0x06e4,
-               XK_Cyrillic_IE                                  = 0x06e5,
-               XK_Cyrillic_EF                                  = 0x06e6,
-               XK_Cyrillic_GHE                                 = 0x06e7,
-               XK_Cyrillic_HA                                  = 0x06e8,
-               XK_Cyrillic_I                                   = 0x06e9,
-               XK_Cyrillic_SHORTI                              = 0x06ea,
-               XK_Cyrillic_KA                                  = 0x06eb,
-               XK_Cyrillic_EL                                  = 0x06ec,
-               XK_Cyrillic_EM                                  = 0x06ed,
-               XK_Cyrillic_EN                                  = 0x06ee,
-               XK_Cyrillic_O                                   = 0x06ef,
-               XK_Cyrillic_PE                                  = 0x06f0,
-               XK_Cyrillic_YA                                  = 0x06f1,
-               XK_Cyrillic_ER                                  = 0x06f2,
-               XK_Cyrillic_ES                                  = 0x06f3,
-               XK_Cyrillic_TE                                  = 0x06f4,
-               XK_Cyrillic_U                                   = 0x06f5,
-               XK_Cyrillic_ZHE                                 = 0x06f6,
-               XK_Cyrillic_VE                                  = 0x06f7,
-               XK_Cyrillic_SOFTSIGN                    = 0x06f8,
-               XK_Cyrillic_YERU                                = 0x06f9,
-               XK_Cyrillic_ZE                                  = 0x06fa,
-               XK_Cyrillic_SHA                                 = 0x06fb,
-               XK_Cyrillic_E                                   = 0x06fc,
-               XK_Cyrillic_SHCHA                               = 0x06fd,
-               XK_Cyrillic_CHE                                 = 0x06fe,
-               XK_Cyrillic_HARDSIGN                    = 0x06ff,
-               XK_Greek_ALPHAaccent                    = 0x07a1,
-               XK_Greek_EPSILONaccent                  = 0x07a2,
-               XK_Greek_ETAaccent                              = 0x07a3,
-               XK_Greek_IOTAaccent                             = 0x07a4,
-               XK_Greek_IOTAdieresis                   = 0x07a5,
-               XK_Greek_IOTAdiaeresis                  = 0x07a5,
-               XK_Greek_OMICRONaccent                  = 0x07a7,
-               XK_Greek_UPSILONaccent                  = 0x07a8,
-               XK_Greek_UPSILONdieresis                = 0x07a9,
-               XK_Greek_OMEGAaccent                    = 0x07ab,
-               XK_Greek_accentdieresis                 = 0x07ae,
-               XK_Greek_horizbar                               = 0x07af,
-               XK_Greek_alphaaccent                    = 0x07b1,
-               XK_Greek_epsilonaccent                  = 0x07b2,
-               XK_Greek_etaaccent                              = 0x07b3,
-               XK_Greek_iotaaccent                             = 0x07b4,
-               XK_Greek_iotadieresis                   = 0x07b5,
-               XK_Greek_iotaaccentdieresis             = 0x07b6,
-               XK_Greek_omicronaccent                  = 0x07b7,
-               XK_Greek_upsilonaccent                  = 0x07b8,
-               XK_Greek_upsilondieresis                = 0x07b9,
-               XK_Greek_upsilonaccentdieresis  = 0x07ba,
-               XK_Greek_omegaaccent                    = 0x07bb,
-               XK_Greek_ALPHA                                  = 0x07c1,
-               XK_Greek_BETA                                   = 0x07c2,
-               XK_Greek_GAMMA                                  = 0x07c3,
-               XK_Greek_DELTA                                  = 0x07c4,
-               XK_Greek_EPSILON                                = 0x07c5,
-               XK_Greek_ZETA                                   = 0x07c6,
-               XK_Greek_ETA                                    = 0x07c7,
-               XK_Greek_THETA                                  = 0x07c8,
-               XK_Greek_IOTA                                   = 0x07c9,
-               XK_Greek_KAPPA                                  = 0x07ca,
-               XK_Greek_LAMDA                                  = 0x07cb,
-               XK_Greek_LAMBDA                                 = 0x07cb,
-               XK_Greek_MU                                             = 0x07cc,
-               XK_Greek_NU                                             = 0x07cd,
-               XK_Greek_XI                                             = 0x07ce,
-               XK_Greek_OMICRON                                = 0x07cf,
-               XK_Greek_PI                                             = 0x07d0,
-               XK_Greek_RHO                                    = 0x07d1,
-               XK_Greek_SIGMA                                  = 0x07d2,
-               XK_Greek_TAU                                    = 0x07d4,
-               XK_Greek_UPSILON                                = 0x07d5,
-               XK_Greek_PHI                                    = 0x07d6,
-               XK_Greek_CHI                                    = 0x07d7,
-               XK_Greek_PSI                                    = 0x07d8,
-               XK_Greek_OMEGA                                  = 0x07d9,
-               XK_Greek_alpha                                  = 0x07e1,
-               XK_Greek_beta                                   = 0x07e2,
-               XK_Greek_gamma                                  = 0x07e3,
-               XK_Greek_delta                                  = 0x07e4,
-               XK_Greek_epsilon                                = 0x07e5,
-               XK_Greek_zeta                                   = 0x07e6,
-               XK_Greek_eta                                    = 0x07e7,
-               XK_Greek_theta                                  = 0x07e8,
-               XK_Greek_iota                                   = 0x07e9,
-               XK_Greek_kappa                                  = 0x07ea,
-               XK_Greek_lamda                                  = 0x07eb,
-               XK_Greek_lambda                                 = 0x07eb,
-               XK_Greek_mu                                             = 0x07ec,
-               XK_Greek_nu                                             = 0x07ed,
-               XK_Greek_xi                                             = 0x07ee,
-               XK_Greek_omicron                                = 0x07ef,
-               XK_Greek_pi                                             = 0x07f0,
-               XK_Greek_rho                                    = 0x07f1,
-               XK_Greek_sigma                                  = 0x07f2,
-               XK_Greek_finalsmallsigma                = 0x07f3,
-               XK_Greek_tau                                    = 0x07f4,
-               XK_Greek_upsilon                                = 0x07f5,
-               XK_Greek_phi                                    = 0x07f6,
-               XK_Greek_chi                                    = 0x07f7,
-               XK_Greek_psi                                    = 0x07f8,
-               XK_Greek_omega                                  = 0x07f9,
-               XK_Greek_switch                                 = 0xff7e,
-               XK_leftradical                                  = 0x08a1,
-               XK_topleftradical                               = 0x08a2,
-               XK_horizconnector                               = 0x08a3,
-               XK_topintegral                                  = 0x08a4,
-               XK_botintegral                                  = 0x08a5,
-               XK_vertconnector                                = 0x08a6,
-               XK_topleftsqbracket                             = 0x08a7,
-               XK_botleftsqbracket                             = 0x08a8,
-               XK_toprightsqbracket                    = 0x08a9,
-               XK_botrightsqbracket                    = 0x08aa,
-               XK_topleftparens                                = 0x08ab,
-               XK_botleftparens                                = 0x08ac,
-               XK_toprightparens                               = 0x08ad,
-               XK_botrightparens                               = 0x08ae,
-               XK_leftmiddlecurlybrace                 = 0x08af,
-               XK_rightmiddlecurlybrace                = 0x08b0,
-               XK_topleftsummation                             = 0x08b1,
-               XK_botleftsummation                             = 0x08b2,
-               XK_topvertsummationconnector    = 0x08b3,
-               XK_botvertsummationconnector    = 0x08b4,
-               XK_toprightsummation                    = 0x08b5,
-               XK_botrightsummation                    = 0x08b6,
-               XK_rightmiddlesummation                 = 0x08b7,
-               XK_lessthanequal                                = 0x08bc,
-               XK_notequal                                             = 0x08bd,
-               XK_greaterthanequal                             = 0x08be,
-               XK_integral                                             = 0x08bf,
-               XK_therefore                                    = 0x08c0,
-               XK_variation                                    = 0x08c1,
-               XK_infinity                                             = 0x08c2,
-               XK_nabla                                                = 0x08c5,
-               XK_approximate                                  = 0x08c8,
-               XK_similarequal                                 = 0x08c9,
-               XK_ifonlyif                                             = 0x08cd,
-               XK_implies                                              = 0x08ce,
-               XK_identical                                    = 0x08cf,
-               XK_radical                                              = 0x08d6,
-               XK_includedin                                   = 0x08da,
-               XK_includes                                             = 0x08db,
-               XK_intersection                                 = 0x08dc,
-               XK_union                                                = 0x08dd,
-               XK_logicaland                                   = 0x08de,
-               XK_logicalor                                    = 0x08df,
-               XK_partialderivative                    = 0x08ef,
-               XK_function                                             = 0x08f6,
-               XK_leftarrow                                    = 0x08fb,
-               XK_uparrow                                              = 0x08fc,
-               XK_rightarrow                                   = 0x08fd,
-               XK_downarrow                                    = 0x08fe,
-               XK_blank                                                = 0x09df,
-               XK_soliddiamond                                 = 0x09e0,
-               XK_checkerboard                                 = 0x09e1,
-               XK_ht                                                   = 0x09e2,
-               XK_ff                                                   = 0x09e3,
-               XK_cr                                                   = 0x09e4,
-               XK_lf                                                   = 0x09e5,
-               XK_nl                                                   = 0x09e8,
-               XK_vt                                                   = 0x09e9,
-               XK_lowrightcorner                               = 0x09ea,
-               XK_uprightcorner                                = 0x09eb,
-               XK_upleftcorner                                 = 0x09ec,
-               XK_lowleftcorner                                = 0x09ed,
-               XK_crossinglines                                = 0x09ee,
-               XK_horizlinescan1                               = 0x09ef,
-               XK_horizlinescan3                               = 0x09f0,
-               XK_horizlinescan5                               = 0x09f1,
-               XK_horizlinescan7                               = 0x09f2,
-               XK_horizlinescan9                               = 0x09f3,
-               XK_leftt                                                = 0x09f4,
-               XK_rightt                                               = 0x09f5,
-               XK_bott                                                 = 0x09f6,
-               XK_topt                                                 = 0x09f7,
-               XK_vertbar                                              = 0x09f8,
-               XK_emspace                                              = 0x0aa1,
-               XK_enspace                                              = 0x0aa2,
-               XK_em3space                                             = 0x0aa3,
-               XK_em4space                                             = 0x0aa4,
-               XK_digitspace                                   = 0x0aa5,
-               XK_punctspace                                   = 0x0aa6,
-               XK_thinspace                                    = 0x0aa7,
-               XK_hairspace                                    = 0x0aa8,
-               XK_emdash                                               = 0x0aa9,
-               XK_endash                                               = 0x0aaa,
-               XK_signifblank                                  = 0x0aac,
-               XK_ellipsis                                             = 0x0aae,
-               XK_doubbaselinedot                              = 0x0aaf,
-               XK_onethird                                             = 0x0ab0,
-               XK_twothirds                                    = 0x0ab1,
-               XK_onefifth                                             = 0x0ab2,
-               XK_twofifths                                    = 0x0ab3,
-               XK_threefifths                                  = 0x0ab4,
-               XK_fourfifths                                   = 0x0ab5,
-               XK_onesixth                                             = 0x0ab6,
-               XK_fivesixths                                   = 0x0ab7,
-               XK_careof                                               = 0x0ab8,
-               XK_figdash                                              = 0x0abb,
-               XK_leftanglebracket                             = 0x0abc,
-               XK_decimalpoint                                 = 0x0abd,
-               XK_rightanglebracket                    = 0x0abe,
-               XK_marker                                               = 0x0abf,
-               XK_oneeighth                                    = 0x0ac3,
-               XK_threeeighths                                 = 0x0ac4,
-               XK_fiveeighths                                  = 0x0ac5,
-               XK_seveneighths                                 = 0x0ac6,
-               XK_trademark                                    = 0x0ac9,
-               XK_signaturemark                                = 0x0aca,
-               XK_trademarkincircle                    = 0x0acb,
-               XK_leftopentriangle                             = 0x0acc,
-               XK_rightopentriangle                    = 0x0acd,
-               XK_emopencircle                                 = 0x0ace,
-               XK_emopenrectangle                              = 0x0acf,
-               XK_leftsinglequotemark                  = 0x0ad0,
-               XK_rightsinglequotemark                 = 0x0ad1,
-               XK_leftdoublequotemark                  = 0x0ad2,
-               XK_rightdoublequotemark                 = 0x0ad3,
-               XK_prescription                                 = 0x0ad4,
-               XK_permille                                             = 0x0ad5,
-               XK_minutes                                              = 0x0ad6,
-               XK_seconds                                              = 0x0ad7,
-               XK_latincross                                   = 0x0ad9,
-               XK_hexagram                                             = 0x0ada,
-               XK_filledrectbullet                             = 0x0adb,
-               XK_filledlefttribullet                  = 0x0adc,
-               XK_filledrighttribullet                 = 0x0add,
-               XK_emfilledcircle                               = 0x0ade,
-               XK_emfilledrect                                 = 0x0adf,
-               XK_enopencircbullet                             = 0x0ae0,
-               XK_enopensquarebullet                   = 0x0ae1,
-               XK_openrectbullet                               = 0x0ae2,
-               XK_opentribulletup                              = 0x0ae3,
-               XK_opentribulletdown                    = 0x0ae4,
-               XK_openstar                                             = 0x0ae5,
-               XK_enfilledcircbullet                   = 0x0ae6,
-               XK_enfilledsqbullet                             = 0x0ae7,
-               XK_filledtribulletup                    = 0x0ae8,
-               XK_filledtribulletdown                  = 0x0ae9,
-               XK_leftpointer                                  = 0x0aea,
-               XK_rightpointer                                 = 0x0aeb,
-               XK_club                                                 = 0x0aec,
-               XK_diamond                                              = 0x0aed,
-               XK_heart                                                = 0x0aee,
-               XK_maltesecross                                 = 0x0af0,
-               XK_dagger                                               = 0x0af1,
-               XK_doubledagger                                 = 0x0af2,
-               XK_checkmark                                    = 0x0af3,
-               XK_ballotcross                                  = 0x0af4,
-               XK_musicalsharp                                 = 0x0af5,
-               XK_musicalflat                                  = 0x0af6,
-               XK_malesymbol                                   = 0x0af7,
-               XK_femalesymbol                                 = 0x0af8,
-               XK_telephone                                    = 0x0af9,
-               XK_telephonerecorder                    = 0x0afa,
-               XK_phonographcopyright                  = 0x0afb,
-               XK_caret                                                = 0x0afc,
-               XK_singlelowquotemark                   = 0x0afd,
-               XK_doublelowquotemark                   = 0x0afe,
-               XK_cursor                                               = 0x0aff,
-               XK_leftcaret                                    = 0x0ba3,
-               XK_rightcaret                                   = 0x0ba6,
-               XK_downcaret                                    = 0x0ba8,
-               XK_upcaret                                              = 0x0ba9,
-               XK_overbar                                              = 0x0bc0,
-               XK_downtack                                             = 0x0bc2,
-               XK_upshoe                                               = 0x0bc3,
-               XK_downstile                                    = 0x0bc4,
-               XK_underbar                                             = 0x0bc6,
-               XK_jot                                                  = 0x0bca,
-               XK_quad                                                 = 0x0bcc,
-               XK_uptack                                               = 0x0bce,
-               XK_circle                                               = 0x0bcf,
-               XK_upstile                                              = 0x0bd3,
-               XK_downshoe                                             = 0x0bd6,
-               XK_rightshoe                                    = 0x0bd8,
-               XK_leftshoe                                             = 0x0bda,
-               XK_lefttack                                             = 0x0bdc,
-               XK_righttack                                    = 0x0bfc,
-               XK_hebrew_doublelowline                 = 0x0cdf,
-               XK_hebrew_aleph                                 = 0x0ce0,
-               XK_hebrew_bet                                   = 0x0ce1,
-               XK_hebrew_beth                                  = 0x0ce1,
-               XK_hebrew_gimel                                 = 0x0ce2,
-               XK_hebrew_gimmel                                = 0x0ce2,
-               XK_hebrew_dalet                                 = 0x0ce3,
-               XK_hebrew_daleth                                = 0x0ce3,
-               XK_hebrew_he                                    = 0x0ce4,
-               XK_hebrew_waw                                   = 0x0ce5,
-               XK_hebrew_zain                                  = 0x0ce6,
-               XK_hebrew_zayin                                 = 0x0ce6,
-               XK_hebrew_chet                                  = 0x0ce7,
-               XK_hebrew_het                                   = 0x0ce7,
-               XK_hebrew_tet                                   = 0x0ce8,
-               XK_hebrew_teth                                  = 0x0ce8,
-               XK_hebrew_yod                                   = 0x0ce9,
-               XK_hebrew_finalkaph                             = 0x0cea,
-               XK_hebrew_kaph                                  = 0x0ceb,
-               XK_hebrew_lamed                                 = 0x0cec,
-               XK_hebrew_finalmem                              = 0x0ced,
-               XK_hebrew_mem                                   = 0x0cee,
-               XK_hebrew_finalnun                              = 0x0cef,
-               XK_hebrew_nun                                   = 0x0cf0,
-               XK_hebrew_samech                                = 0x0cf1,
-               XK_hebrew_samekh                                = 0x0cf1,
-               XK_hebrew_ayin                                  = 0x0cf2,
-               XK_hebrew_finalpe                               = 0x0cf3,
-               XK_hebrew_pe                                    = 0x0cf4,
-               XK_hebrew_finalzade                             = 0x0cf5,
-               XK_hebrew_finalzadi                             = 0x0cf5,
-               XK_hebrew_zade                                  = 0x0cf6,
-               XK_hebrew_zadi                                  = 0x0cf6,
-               XK_hebrew_qoph                                  = 0x0cf7,
-               XK_hebrew_kuf                                   = 0x0cf7,
-               XK_hebrew_resh                                  = 0x0cf8,
-               XK_hebrew_shin                                  = 0x0cf9,
-               XK_hebrew_taw                                   = 0x0cfa,
-               XK_hebrew_taf                                   = 0x0cfa,
-               XK_Hebrew_switch                                = 0xff7e,
-               XK_Thai_kokai                                   = 0x0da1,
-               XK_Thai_khokhai                                 = 0x0da2,
-               XK_Thai_khokhuat                                = 0x0da3,
-               XK_Thai_khokhwai                                = 0x0da4,
-               XK_Thai_khokhon                                 = 0x0da5,
-               XK_Thai_khorakhang                              = 0x0da6,
-               XK_Thai_ngongu                                  = 0x0da7,
-               XK_Thai_chochan                                 = 0x0da8,
-               XK_Thai_choching                                = 0x0da9,
-               XK_Thai_chochang                                = 0x0daa,
-               XK_Thai_soso                                    = 0x0dab,
-               XK_Thai_chochoe                                 = 0x0dac,
-               XK_Thai_yoying                                  = 0x0dad,
-               XK_Thai_dochada                                 = 0x0dae,
-               XK_Thai_topatak                                 = 0x0daf,
-               XK_Thai_thothan                                 = 0x0db0,
-               XK_Thai_thonangmontho                   = 0x0db1,
-               XK_Thai_thophuthao                              = 0x0db2,
-               XK_Thai_nonen                                   = 0x0db3,
-               XK_Thai_dodek                                   = 0x0db4,
-               XK_Thai_totao                                   = 0x0db5,
-               XK_Thai_thothung                                = 0x0db6,
-               XK_Thai_thothahan                               = 0x0db7,
-               XK_Thai_thothong                                = 0x0db8,
-               XK_Thai_nonu                                    = 0x0db9,
-               XK_Thai_bobaimai                                = 0x0dba,
-               XK_Thai_popla                                   = 0x0dbb,
-               XK_Thai_phophung                                = 0x0dbc,
-               XK_Thai_fofa                                    = 0x0dbd,
-               XK_Thai_phophan                                 = 0x0dbe,
-               XK_Thai_fofan                                   = 0x0dbf,
-               XK_Thai_phosamphao                              = 0x0dc0,
-               XK_Thai_moma                                    = 0x0dc1,
-               XK_Thai_yoyak                                   = 0x0dc2,
-               XK_Thai_rorua                                   = 0x0dc3,
-               XK_Thai_ru                                              = 0x0dc4,
-               XK_Thai_loling                                  = 0x0dc5,
-               XK_Thai_lu                                              = 0x0dc6,
-               XK_Thai_wowaen                                  = 0x0dc7,
-               XK_Thai_sosala                                  = 0x0dc8,
-               XK_Thai_sorusi                                  = 0x0dc9,
-               XK_Thai_sosua                                   = 0x0dca,
-               XK_Thai_hohip                                   = 0x0dcb,
-               XK_Thai_lochula                                 = 0x0dcc,
-               XK_Thai_oang                                    = 0x0dcd,
-               XK_Thai_honokhuk                                = 0x0dce,
-               XK_Thai_paiyannoi                               = 0x0dcf,
-               XK_Thai_saraa                                   = 0x0dd0,
-               XK_Thai_maihanakat                              = 0x0dd1,
-               XK_Thai_saraaa                                  = 0x0dd2,
-               XK_Thai_saraam                                  = 0x0dd3,
-               XK_Thai_sarai                                   = 0x0dd4,
-               XK_Thai_saraii                                  = 0x0dd5,
-               XK_Thai_saraue                                  = 0x0dd6,
-               XK_Thai_sarauee                                 = 0x0dd7,
-               XK_Thai_sarau                                   = 0x0dd8,
-               XK_Thai_sarauu                                  = 0x0dd9,
-               XK_Thai_phinthu                                 = 0x0dda,
-               XK_Thai_maihanakat_maitho               = 0x0dde,
-               XK_Thai_baht                                    = 0x0ddf,
-               XK_Thai_sarae                                   = 0x0de0,
-               XK_Thai_saraae                                  = 0x0de1,
-               XK_Thai_sarao                                   = 0x0de2,
-               XK_Thai_saraaimaimuan                   = 0x0de3,
-               XK_Thai_saraaimaimalai                  = 0x0de4,
-               XK_Thai_lakkhangyao                             = 0x0de5,
-               XK_Thai_maiyamok                                = 0x0de6,
-               XK_Thai_maitaikhu                               = 0x0de7,
-               XK_Thai_maiek                                   = 0x0de8,
-               XK_Thai_maitho                                  = 0x0de9,
-               XK_Thai_maitri                                  = 0x0dea,
-               XK_Thai_maichattawa                             = 0x0deb,
-               XK_Thai_thanthakhat                             = 0x0dec,
-               XK_Thai_nikhahit                                = 0x0ded,
-               XK_Thai_leksun                                  = 0x0df0,
-               XK_Thai_leknung                                 = 0x0df1,
-               XK_Thai_leksong                                 = 0x0df2,
-               XK_Thai_leksam                                  = 0x0df3,
-               XK_Thai_leksi                                   = 0x0df4,
-               XK_Thai_lekha                                   = 0x0df5,
-               XK_Thai_lekhok                                  = 0x0df6,
-               XK_Thai_lekchet                                 = 0x0df7,
-               XK_Thai_lekpaet                                 = 0x0df8,
-               XK_Thai_lekkao                                  = 0x0df9,
-               XK_Hangul                                               = 0xff31,
-               XK_Hangul_Start                                 = 0xff32,
-               XK_Hangul_End                                   = 0xff33,
-               XK_Hangul_Hanja                                 = 0xff34,
-               XK_Hangul_Jamo                                  = 0xff35,
-               XK_Hangul_Romaja                                = 0xff36,
-               XK_Hangul_Codeinput                             = 0xff37,
-               XK_Hangul_Jeonja                                = 0xff38,
-               XK_Hangul_Banja                                 = 0xff39,
-               XK_Hangul_PreHanja                              = 0xff3a,
-               XK_Hangul_PostHanja                             = 0xff3b,
-               XK_Hangul_SingleCandidate               = 0xff3c,
-               XK_Hangul_MultipleCandidate             = 0xff3d,
-               XK_Hangul_PreviousCandidate             = 0xff3e,
-               XK_Hangul_Special                               = 0xff3f,
-               XK_Hangul_switch                                = 0xff7e,
-               XK_Hangul_Kiyeog                                = 0x0ea1,
-               XK_Hangul_SsangKiyeog                   = 0x0ea2,
-               XK_Hangul_KiyeogSios                    = 0x0ea3,
-               XK_Hangul_Nieun                                 = 0x0ea4,
-               XK_Hangul_NieunJieuj                    = 0x0ea5,
-               XK_Hangul_NieunHieuh                    = 0x0ea6,
-               XK_Hangul_Dikeud                                = 0x0ea7,
-               XK_Hangul_SsangDikeud                   = 0x0ea8,
-               XK_Hangul_Rieul                                 = 0x0ea9,
-               XK_Hangul_RieulKiyeog                   = 0x0eaa,
-               XK_Hangul_RieulMieum                    = 0x0eab,
-               XK_Hangul_RieulPieub                    = 0x0eac,
-               XK_Hangul_RieulSios                             = 0x0ead,
-               XK_Hangul_RieulTieut                    = 0x0eae,
-               XK_Hangul_RieulPhieuf                   = 0x0eaf,
-               XK_Hangul_RieulHieuh                    = 0x0eb0,
-               XK_Hangul_Mieum                                 = 0x0eb1,
-               XK_Hangul_Pieub                                 = 0x0eb2,
-               XK_Hangul_SsangPieub                    = 0x0eb3,
-               XK_Hangul_PieubSios                             = 0x0eb4,
-               XK_Hangul_Sios                                  = 0x0eb5,
-               XK_Hangul_SsangSios                             = 0x0eb6,
-               XK_Hangul_Ieung                                 = 0x0eb7,
-               XK_Hangul_Jieuj                                 = 0x0eb8,
-               XK_Hangul_SsangJieuj                    = 0x0eb9,
-               XK_Hangul_Cieuc                                 = 0x0eba,
-               XK_Hangul_Khieuq                                = 0x0ebb,
-               XK_Hangul_Tieut                                 = 0x0ebc,
-               XK_Hangul_Phieuf                                = 0x0ebd,
-               XK_Hangul_Hieuh                                 = 0x0ebe,
-               XK_Hangul_A                                             = 0x0ebf,
-               XK_Hangul_AE                                    = 0x0ec0,
-               XK_Hangul_YA                                    = 0x0ec1,
-               XK_Hangul_YAE                                   = 0x0ec2,
-               XK_Hangul_EO                                    = 0x0ec3,
-               XK_Hangul_E                                             = 0x0ec4,
-               XK_Hangul_YEO                                   = 0x0ec5,
-               XK_Hangul_YE                                    = 0x0ec6,
-               XK_Hangul_O                                             = 0x0ec7,
-               XK_Hangul_WA                                    = 0x0ec8,
-               XK_Hangul_WAE                                   = 0x0ec9,
-               XK_Hangul_OE                                    = 0x0eca,
-               XK_Hangul_YO                                    = 0x0ecb,
-               XK_Hangul_U                                             = 0x0ecc,
-               XK_Hangul_WEO                                   = 0x0ecd,
-               XK_Hangul_WE                                    = 0x0ece,
-               XK_Hangul_WI                                    = 0x0ecf,
-               XK_Hangul_YU                                    = 0x0ed0,
-               XK_Hangul_EU                                    = 0x0ed1,
-               XK_Hangul_YI                                    = 0x0ed2,
-               XK_Hangul_I                                             = 0x0ed3,
-               XK_Hangul_J_Kiyeog                              = 0x0ed4,
-               XK_Hangul_J_SsangKiyeog                 = 0x0ed5,
-               XK_Hangul_J_KiyeogSios                  = 0x0ed6,
-               XK_Hangul_J_Nieun                               = 0x0ed7,
-               XK_Hangul_J_NieunJieuj                  = 0x0ed8,
-               XK_Hangul_J_NieunHieuh                  = 0x0ed9,
-               XK_Hangul_J_Dikeud                              = 0x0eda,
-               XK_Hangul_J_Rieul                               = 0x0edb,
-               XK_Hangul_J_RieulKiyeog                 = 0x0edc,
-               XK_Hangul_J_RieulMieum                  = 0x0edd,
-               XK_Hangul_J_RieulPieub                  = 0x0ede,
-               XK_Hangul_J_RieulSios                   = 0x0edf,
-               XK_Hangul_J_RieulTieut                  = 0x0ee0,
-               XK_Hangul_J_RieulPhieuf                 = 0x0ee1,
-               XK_Hangul_J_RieulHieuh                  = 0x0ee2,
-               XK_Hangul_J_Mieum                               = 0x0ee3,
-               XK_Hangul_J_Pieub                               = 0x0ee4,
-               XK_Hangul_J_PieubSios                   = 0x0ee5,
-               XK_Hangul_J_Sios                                = 0x0ee6,
-               XK_Hangul_J_SsangSios                   = 0x0ee7,
-               XK_Hangul_J_Ieung                               = 0x0ee8,
-               XK_Hangul_J_Jieuj                               = 0x0ee9,
-               XK_Hangul_J_Cieuc                               = 0x0eea,
-               XK_Hangul_J_Khieuq                              = 0x0eeb,
-               XK_Hangul_J_Tieut                               = 0x0eec,
-               XK_Hangul_J_Phieuf                              = 0x0eed,
-               XK_Hangul_J_Hieuh                               = 0x0eee,
-               XK_Hangul_RieulYeorinHieuh              = 0x0eef,
-               XK_Hangul_SunkyeongeumMieum             = 0x0ef0,
-               XK_Hangul_SunkyeongeumPieub             = 0x0ef1,
-               XK_Hangul_PanSios                               = 0x0ef2,
-               XK_Hangul_KkogjiDalrinIeung             = 0x0ef3,
-               XK_Hangul_SunkyeongeumPhieuf    = 0x0ef4,
-               XK_Hangul_YeorinHieuh                   = 0x0ef5,
-               XK_Hangul_AraeA                                 = 0x0ef6,
-               XK_Hangul_AraeAE                                = 0x0ef7,
-               XK_Hangul_J_PanSios                             = 0x0ef8,
-               XK_Hangul_J_KkogjiDalrinIeung   = 0x0ef9,
-               XK_Hangul_J_YeorinHieuh                 = 0x0efa,
-               XK_Korean_Won                                   = 0x0eff,
-               XK_Armenian_ligature_ew                 = 0x1000587,
-               XK_Armenian_full_stop                   = 0x1000589,
-               XK_Armenian_verjaket                    = 0x1000589,
-               XK_Armenian_separation_mark             = 0x100055d,
-               XK_Armenian_but                                 = 0x100055d,
-               XK_Armenian_hyphen                              = 0x100058a,
-               XK_Armenian_yentamna                    = 0x100058a,
-               XK_Armenian_exclam                              = 0x100055c,
-               XK_Armenian_amanak                              = 0x100055c,
-               XK_Armenian_accent                              = 0x100055b,
-               XK_Armenian_shesht                              = 0x100055b,
-               XK_Armenian_question                    = 0x100055e,
-               XK_Armenian_paruyk                              = 0x100055e,
-               XK_Armenian_AYB                                 = 0x1000531,
-               XK_Armenian_ayb                                 = 0x1000561,
-               XK_Armenian_BEN                                 = 0x1000532,
-               XK_Armenian_ben                                 = 0x1000562,
-               XK_Armenian_GIM                                 = 0x1000533,
-               XK_Armenian_gim                                 = 0x1000563,
-               XK_Armenian_DA                                  = 0x1000534,
-               XK_Armenian_da                                  = 0x1000564,
-               XK_Armenian_YECH                                = 0x1000535,
-               XK_Armenian_yech                                = 0x1000565,
-               XK_Armenian_ZA                                  = 0x1000536,
-               XK_Armenian_za                                  = 0x1000566,
-               XK_Armenian_E                                   = 0x1000537,
-               XK_Armenian_e                                   = 0x1000567,
-               XK_Armenian_AT                                  = 0x1000538,
-               XK_Armenian_at                                  = 0x1000568,
-               XK_Armenian_TO                                  = 0x1000539,
-               XK_Armenian_to                                  = 0x1000569,
-               XK_Armenian_ZHE                                 = 0x100053a,
-               XK_Armenian_zhe                                 = 0x100056a,
-               XK_Armenian_INI                                 = 0x100053b,
-               XK_Armenian_ini                                 = 0x100056b,
-               XK_Armenian_LYUN                                = 0x100053c,
-               XK_Armenian_lyun                                = 0x100056c,
-               XK_Armenian_KHE                                 = 0x100053d,
-               XK_Armenian_khe                                 = 0x100056d,
-               XK_Armenian_TSA                                 = 0x100053e,
-               XK_Armenian_tsa                                 = 0x100056e,
-               XK_Armenian_KEN                                 = 0x100053f,
-               XK_Armenian_ken                                 = 0x100056f,
-               XK_Armenian_HO                                  = 0x1000540,
-               XK_Armenian_ho                                  = 0x1000570,
-               XK_Armenian_DZA                                 = 0x1000541,
-               XK_Armenian_dza                                 = 0x1000571,
-               XK_Armenian_GHAT                                = 0x1000542,
-               XK_Armenian_ghat                                = 0x1000572,
-               XK_Armenian_TCHE                                = 0x1000543,
-               XK_Armenian_tche                                = 0x1000573,
-               XK_Armenian_MEN                                 = 0x1000544,
-               XK_Armenian_men                                 = 0x1000574,
-               XK_Armenian_HI                                  = 0x1000545,
-               XK_Armenian_hi                                  = 0x1000575,
-               XK_Armenian_NU                                  = 0x1000546,
-               XK_Armenian_nu                                  = 0x1000576,
-               XK_Armenian_SHA                                 = 0x1000547,
-               XK_Armenian_sha                                 = 0x1000577,
-               XK_Armenian_VO                                  = 0x1000548,
-               XK_Armenian_vo                                  = 0x1000578,
-               XK_Armenian_CHA                                 = 0x1000549,
-               XK_Armenian_cha                                 = 0x1000579,
-               XK_Armenian_PE                                  = 0x100054a,
-               XK_Armenian_pe                                  = 0x100057a,
-               XK_Armenian_JE                                  = 0x100054b,
-               XK_Armenian_je                                  = 0x100057b,
-               XK_Armenian_RA                                  = 0x100054c,
-               XK_Armenian_ra                                  = 0x100057c,
-               XK_Armenian_SE                                  = 0x100054d,
-               XK_Armenian_se                                  = 0x100057d,
-               XK_Armenian_VEV                                 = 0x100054e,
-               XK_Armenian_vev                                 = 0x100057e,
-               XK_Armenian_TYUN                                = 0x100054f,
-               XK_Armenian_tyun                                = 0x100057f,
-               XK_Armenian_RE                                  = 0x1000550,
-               XK_Armenian_re                                  = 0x1000580,
-               XK_Armenian_TSO                                 = 0x1000551,
-               XK_Armenian_tso                                 = 0x1000581,
-               XK_Armenian_VYUN                                = 0x1000552,
-               XK_Armenian_vyun                                = 0x1000582,
-               XK_Armenian_PYUR                                = 0x1000553,
-               XK_Armenian_pyur                                = 0x1000583,
-               XK_Armenian_KE                                  = 0x1000554,
-               XK_Armenian_ke                                  = 0x1000584,
-               XK_Armenian_O                                   = 0x1000555,
-               XK_Armenian_o                                   = 0x1000585,
-               XK_Armenian_FE                                  = 0x1000556,
-               XK_Armenian_fe                                  = 0x1000586,
-               XK_Armenian_apostrophe                  = 0x100055a,
-               XK_Georgian_an                                  = 0x10010d0,
-               XK_Georgian_ban                                 = 0x10010d1,
-               XK_Georgian_gan                                 = 0x10010d2,
-               XK_Georgian_don                                 = 0x10010d3,
-               XK_Georgian_en                                  = 0x10010d4,
-               XK_Georgian_vin                                 = 0x10010d5,
-               XK_Georgian_zen                                 = 0x10010d6,
-               XK_Georgian_tan                                 = 0x10010d7,
-               XK_Georgian_in                                  = 0x10010d8,
-               XK_Georgian_kan                                 = 0x10010d9,
-               XK_Georgian_las                                 = 0x10010da,
-               XK_Georgian_man                                 = 0x10010db,
-               XK_Georgian_nar                                 = 0x10010dc,
-               XK_Georgian_on                                  = 0x10010dd,
-               XK_Georgian_par                                 = 0x10010de,
-               XK_Georgian_zhar                                = 0x10010df,
-               XK_Georgian_rae                                 = 0x10010e0,
-               XK_Georgian_san                                 = 0x10010e1,
-               XK_Georgian_tar                                 = 0x10010e2,
-               XK_Georgian_un                                  = 0x10010e3,
-               XK_Georgian_phar                                = 0x10010e4,
-               XK_Georgian_khar                                = 0x10010e5,
-               XK_Georgian_ghan                                = 0x10010e6,
-               XK_Georgian_qar                                 = 0x10010e7,
-               XK_Georgian_shin                                = 0x10010e8,
-               XK_Georgian_chin                                = 0x10010e9,
-               XK_Georgian_can                                 = 0x10010ea,
-               XK_Georgian_jil                                 = 0x10010eb,
-               XK_Georgian_cil                                 = 0x10010ec,
-               XK_Georgian_char                                = 0x10010ed,
-               XK_Georgian_xan                                 = 0x10010ee,
-               XK_Georgian_jhan                                = 0x10010ef,
-               XK_Georgian_hae                                 = 0x10010f0,
-               XK_Georgian_he                                  = 0x10010f1,
-               XK_Georgian_hie                                 = 0x10010f2,
-               XK_Georgian_we                                  = 0x10010f3,
-               XK_Georgian_har                                 = 0x10010f4,
-               XK_Georgian_hoe                                 = 0x10010f5,
-               XK_Georgian_fi                                  = 0x10010f6,
-               XK_Xabovedot                                    = 0x1001e8a,
-               XK_Ibreve                                               = 0x100012c,
-               XK_Zstroke                                              = 0x10001b5,
-               XK_Gcaron                                               = 0x10001e6,
-               XK_Ocaron                                               = 0x10001d1,
-               XK_Obarred                                              = 0x100019f,
-               XK_xabovedot                                    = 0x1001e8b,
-               XK_ibreve                                               = 0x100012d,
-               XK_zstroke                                              = 0x10001b6,
-               XK_gcaron                                               = 0x10001e7,
-               XK_ocaron                                               = 0x10001d2,
-               XK_obarred                                              = 0x1000275,
-               XK_SCHWA                                                = 0x100018f,
-               XK_schwa                                                = 0x1000259,
-               XK_EZH                                                  = 0x10001b7,
-               XK_ezh                                                  = 0x1000292,
-               XK_Lbelowdot                                    = 0x1001e36,
-               XK_lbelowdot                                    = 0x1001e37,
-               XK_Abelowdot                                    = 0x1001ea0,
-               XK_abelowdot                                    = 0x1001ea1,
-               XK_Ahook                                                = 0x1001ea2,
-               XK_ahook                                                = 0x1001ea3,
-               XK_Acircumflexacute                             = 0x1001ea4,
-               XK_acircumflexacute                             = 0x1001ea5,
-               XK_Acircumflexgrave                             = 0x1001ea6,
-               XK_acircumflexgrave                             = 0x1001ea7,
-               XK_Acircumflexhook                              = 0x1001ea8,
-               XK_acircumflexhook                              = 0x1001ea9,
-               XK_Acircumflextilde                             = 0x1001eaa,
-               XK_acircumflextilde                             = 0x1001eab,
-               XK_Acircumflexbelowdot                  = 0x1001eac,
-               XK_acircumflexbelowdot                  = 0x1001ead,
-               XK_Abreveacute                                  = 0x1001eae,
-               XK_abreveacute                                  = 0x1001eaf,
-               XK_Abrevegrave                                  = 0x1001eb0,
-               XK_abrevegrave                                  = 0x1001eb1,
-               XK_Abrevehook                                   = 0x1001eb2,
-               XK_abrevehook                                   = 0x1001eb3,
-               XK_Abrevetilde                                  = 0x1001eb4,
-               XK_abrevetilde                                  = 0x1001eb5,
-               XK_Abrevebelowdot                               = 0x1001eb6,
-               XK_abrevebelowdot                               = 0x1001eb7,
-               XK_Ebelowdot                                    = 0x1001eb8,
-               XK_ebelowdot                                    = 0x1001eb9,
-               XK_Ehook                                                = 0x1001eba,
-               XK_ehook                                                = 0x1001ebb,
-               XK_Etilde                                               = 0x1001ebc,
-               XK_etilde                                               = 0x1001ebd,
-               XK_Ecircumflexacute                             = 0x1001ebe,
-               XK_ecircumflexacute                             = 0x1001ebf,
-               XK_Ecircumflexgrave                             = 0x1001ec0,
-               XK_ecircumflexgrave                             = 0x1001ec1,
-               XK_Ecircumflexhook                              = 0x1001ec2,
-               XK_ecircumflexhook                              = 0x1001ec3,
-               XK_Ecircumflextilde                             = 0x1001ec4,
-               XK_ecircumflextilde                             = 0x1001ec5,
-               XK_Ecircumflexbelowdot                  = 0x1001ec6,
-               XK_ecircumflexbelowdot                  = 0x1001ec7,
-               XK_Ihook                                                = 0x1001ec8,
-               XK_ihook                                                = 0x1001ec9,
-               XK_Ibelowdot                                    = 0x1001eca,
-               XK_ibelowdot                                    = 0x1001ecb,
-               XK_Obelowdot                                    = 0x1001ecc,
-               XK_obelowdot                                    = 0x1001ecd,
-               XK_Ohook                                                = 0x1001ece,
-               XK_ohook                                                = 0x1001ecf,
-               XK_Ocircumflexacute                             = 0x1001ed0,
-               XK_ocircumflexacute                             = 0x1001ed1,
-               XK_Ocircumflexgrave                             = 0x1001ed2,
-               XK_ocircumflexgrave                             = 0x1001ed3,
-               XK_Ocircumflexhook                              = 0x1001ed4,
-               XK_ocircumflexhook                              = 0x1001ed5,
-               XK_Ocircumflextilde                             = 0x1001ed6,
-               XK_ocircumflextilde                             = 0x1001ed7,
-               XK_Ocircumflexbelowdot                  = 0x1001ed8,
-               XK_ocircumflexbelowdot                  = 0x1001ed9,
-               XK_Ohornacute                                   = 0x1001eda,
-               XK_ohornacute                                   = 0x1001edb,
-               XK_Ohorngrave                                   = 0x1001edc,
-               XK_ohorngrave                                   = 0x1001edd,
-               XK_Ohornhook                                    = 0x1001ede,
-               XK_ohornhook                                    = 0x1001edf,
-               XK_Ohorntilde                                   = 0x1001ee0,
-               XK_ohorntilde                                   = 0x1001ee1,
-               XK_Ohornbelowdot                                = 0x1001ee2,
-               XK_ohornbelowdot                                = 0x1001ee3,
-               XK_Ubelowdot                                    = 0x1001ee4,
-               XK_ubelowdot                                    = 0x1001ee5,
-               XK_Uhook                                                = 0x1001ee6,
-               XK_uhook                                                = 0x1001ee7,
-               XK_Uhornacute                                   = 0x1001ee8,
-               XK_uhornacute                                   = 0x1001ee9,
-               XK_Uhorngrave                                   = 0x1001eea,
-               XK_uhorngrave                                   = 0x1001eeb,
-               XK_Uhornhook                                    = 0x1001eec,
-               XK_uhornhook                                    = 0x1001eed,
-               XK_Uhorntilde                                   = 0x1001eee,
-               XK_uhorntilde                                   = 0x1001eef,
-               XK_Uhornbelowdot                                = 0x1001ef0,
-               XK_uhornbelowdot                                = 0x1001ef1,
-               XK_Ybelowdot                                    = 0x1001ef4,
-               XK_ybelowdot                                    = 0x1001ef5,
-               XK_Yhook                                                = 0x1001ef6,
-               XK_yhook                                                = 0x1001ef7,
-               XK_Ytilde                                               = 0x1001ef8,
-               XK_ytilde                                               = 0x1001ef9,
-               XK_Ohorn                                                = 0x10001a0,
-               XK_ohorn                                                = 0x10001a1,
-               XK_Uhorn                                                = 0x10001af,
-               XK_uhorn                                                = 0x10001b0,
-               XK_EcuSign                                              = 0x10020a0,
-               XK_ColonSign                                    = 0x10020a1,
-               XK_CruzeiroSign                                 = 0x10020a2,
-               XK_FFrancSign                                   = 0x10020a3,
-               XK_LiraSign                                             = 0x10020a4,
-               XK_MillSign                                             = 0x10020a5,
-               XK_NairaSign                                    = 0x10020a6,
-               XK_PesetaSign                                   = 0x10020a7,
-               XK_RupeeSign                                    = 0x10020a8,
-               XK_WonSign                                              = 0x10020a9,
-               XK_NewSheqelSign                                = 0x10020aa,
-               XK_DongSign                                             = 0x10020ab,
-               XK_EuroSign                                             = 0x20ac,
-               XK_zerosuperior                                 = 0x1002070,
-               XK_foursuperior                                 = 0x1002074,
-               XK_fivesuperior                                 = 0x1002075,
-               XK_sixsuperior                                  = 0x1002076,
-               XK_sevensuperior                                = 0x1002077,
-               XK_eightsuperior                                = 0x1002078,
-               XK_ninesuperior                                 = 0x1002079,
-               XK_zerosubscript                                = 0x1002080,
-               XK_onesubscript                                 = 0x1002081,
-               XK_twosubscript                                 = 0x1002082,
-               XK_threesubscript                               = 0x1002083,
-               XK_foursubscript                                = 0x1002084,
-               XK_fivesubscript                                = 0x1002085,
-               XK_sixsubscript                                 = 0x1002086,
-               XK_sevensubscript                               = 0x1002087,
-               XK_eightsubscript                               = 0x1002088,
-               XK_ninesubscript                                = 0x1002089,
-               XK_partdifferential                             = 0x1002202,
-               XK_emptyset                                             = 0x1002205,
-               XK_elementof                                    = 0x1002208,
-               XK_notelementof                                 = 0x1002209,
-               XK_containsas                                   = 0x100220B,
-               XK_squareroot                                   = 0x100221A,
-               XK_cuberoot                                             = 0x100221B,
-               XK_fourthroot                                   = 0x100221C,
-               XK_dintegral                                    = 0x100222C,
-               XK_tintegral                                    = 0x100222D,
-               XK_because                                              = 0x1002235,
-               XK_approxeq                                             = 0x1002248,
-               XK_notapproxeq                                  = 0x1002247,
-               XK_notidentical                                 = 0x1002262,
-               XK_stricteq                                             = 0x1002263,
-               XK_braille_dot_1                                = 0xfff1,
-               XK_braille_dot_2                                = 0xfff2,
-               XK_braille_dot_3                                = 0xfff3,
-               XK_braille_dot_4                                = 0xfff4,
-               XK_braille_dot_5                                = 0xfff5,
-               XK_braille_dot_6                                = 0xfff6,
-               XK_braille_dot_7                                = 0xfff7,
-               XK_braille_dot_8                                = 0xfff8,
-               XK_braille_dot_9                                = 0xfff9,
-               XK_braille_dot_10                               = 0xfffa,
-               XK_braille_blank                                = 0x1002800,
-               XK_braille_dots_1                               = 0x1002801,
-               XK_braille_dots_2                               = 0x1002802,
-               XK_braille_dots_12                              = 0x1002803,
-               XK_braille_dots_3                               = 0x1002804,
-               XK_braille_dots_13                              = 0x1002805,
-               XK_braille_dots_23                              = 0x1002806,
-               XK_braille_dots_123                             = 0x1002807,
-               XK_braille_dots_4                               = 0x1002808,
-               XK_braille_dots_14                              = 0x1002809,
-               XK_braille_dots_24                              = 0x100280a,
-               XK_braille_dots_124                             = 0x100280b,
-               XK_braille_dots_34                              = 0x100280c,
-               XK_braille_dots_134                             = 0x100280d,
-               XK_braille_dots_234                             = 0x100280e,
-               XK_braille_dots_1234                    = 0x100280f,
-               XK_braille_dots_5                               = 0x1002810,
-               XK_braille_dots_15                              = 0x1002811,
-               XK_braille_dots_25                              = 0x1002812,
-               XK_braille_dots_125                             = 0x1002813,
-               XK_braille_dots_35                              = 0x1002814,
-               XK_braille_dots_135                             = 0x1002815,
-               XK_braille_dots_235                             = 0x1002816,
-               XK_braille_dots_1235                    = 0x1002817,
-               XK_braille_dots_45                              = 0x1002818,
-               XK_braille_dots_145                             = 0x1002819,
-               XK_braille_dots_245                             = 0x100281a,
-               XK_braille_dots_1245                    = 0x100281b,
-               XK_braille_dots_345                             = 0x100281c,
-               XK_braille_dots_1345                    = 0x100281d,
-               XK_braille_dots_2345                    = 0x100281e,
-               XK_braille_dots_12345                   = 0x100281f,
-               XK_braille_dots_6                               = 0x1002820,
-               XK_braille_dots_16                              = 0x1002821,
-               XK_braille_dots_26                              = 0x1002822,
-               XK_braille_dots_126                             = 0x1002823,
-               XK_braille_dots_36                              = 0x1002824,
-               XK_braille_dots_136                             = 0x1002825,
-               XK_braille_dots_236                             = 0x1002826,
-               XK_braille_dots_1236                    = 0x1002827,
-               XK_braille_dots_46                              = 0x1002828,
-               XK_braille_dots_146                             = 0x1002829,
-               XK_braille_dots_246                             = 0x100282a,
-               XK_braille_dots_1246                    = 0x100282b,
-               XK_braille_dots_346                             = 0x100282c,
-               XK_braille_dots_1346                    = 0x100282d,
-               XK_braille_dots_2346                    = 0x100282e,
-               XK_braille_dots_12346                   = 0x100282f,
-               XK_braille_dots_56                              = 0x1002830,
-               XK_braille_dots_156                             = 0x1002831,
-               XK_braille_dots_256                             = 0x1002832,
-               XK_braille_dots_1256                    = 0x1002833,
-               XK_braille_dots_356                             = 0x1002834,
-               XK_braille_dots_1356                    = 0x1002835,
-               XK_braille_dots_2356                    = 0x1002836,
-               XK_braille_dots_12356                   = 0x1002837,
-               XK_braille_dots_456                             = 0x1002838,
-               XK_braille_dots_1456                    = 0x1002839,
-               XK_braille_dots_2456                    = 0x100283a,
-               XK_braille_dots_12456                   = 0x100283b,
-               XK_braille_dots_3456                    = 0x100283c,
-               XK_braille_dots_13456                   = 0x100283d,
-               XK_braille_dots_23456                   = 0x100283e,
-               XK_braille_dots_123456                  = 0x100283f,
-               XK_braille_dots_7                               = 0x1002840,
-               XK_braille_dots_17                              = 0x1002841,
-               XK_braille_dots_27                              = 0x1002842,
-               XK_braille_dots_127                             = 0x1002843,
-               XK_braille_dots_37                              = 0x1002844,
-               XK_braille_dots_137                             = 0x1002845,
-               XK_braille_dots_237                             = 0x1002846,
-               XK_braille_dots_1237                    = 0x1002847,
-               XK_braille_dots_47                              = 0x1002848,
-               XK_braille_dots_147                             = 0x1002849,
-               XK_braille_dots_247                             = 0x100284a,
-               XK_braille_dots_1247                    = 0x100284b,
-               XK_braille_dots_347                             = 0x100284c,
-               XK_braille_dots_1347                    = 0x100284d,
-               XK_braille_dots_2347                    = 0x100284e,
-               XK_braille_dots_12347                   = 0x100284f,
-               XK_braille_dots_57                              = 0x1002850,
-               XK_braille_dots_157                             = 0x1002851,
-               XK_braille_dots_257                             = 0x1002852,
-               XK_braille_dots_1257                    = 0x1002853,
-               XK_braille_dots_357                             = 0x1002854,
-               XK_braille_dots_1357                    = 0x1002855,
-               XK_braille_dots_2357                    = 0x1002856,
-               XK_braille_dots_12357                   = 0x1002857,
-               XK_braille_dots_457                             = 0x1002858,
-               XK_braille_dots_1457                    = 0x1002859,
-               XK_braille_dots_2457                    = 0x100285a,
-               XK_braille_dots_12457                   = 0x100285b,
-               XK_braille_dots_3457                    = 0x100285c,
-               XK_braille_dots_13457                   = 0x100285d,
-               XK_braille_dots_23457                   = 0x100285e,
-               XK_braille_dots_123457                  = 0x100285f,
-               XK_braille_dots_67                              = 0x1002860,
-               XK_braille_dots_167                             = 0x1002861,
-               XK_braille_dots_267                             = 0x1002862,
-               XK_braille_dots_1267                    = 0x1002863,
-               XK_braille_dots_367                             = 0x1002864,
-               XK_braille_dots_1367                    = 0x1002865,
-               XK_braille_dots_2367                    = 0x1002866,
-               XK_braille_dots_12367                   = 0x1002867,
-               XK_braille_dots_467                             = 0x1002868,
-               XK_braille_dots_1467                    = 0x1002869,
-               XK_braille_dots_2467                    = 0x100286a,
-               XK_braille_dots_12467                   = 0x100286b,
-               XK_braille_dots_3467                    = 0x100286c,
-               XK_braille_dots_13467                   = 0x100286d,
-               XK_braille_dots_23467                   = 0x100286e,
-               XK_braille_dots_123467                  = 0x100286f,
-               XK_braille_dots_567                             = 0x1002870,
-               XK_braille_dots_1567                    = 0x1002871,
-               XK_braille_dots_2567                    = 0x1002872,
-               XK_braille_dots_12567                   = 0x1002873,
-               XK_braille_dots_3567                    = 0x1002874,
-               XK_braille_dots_13567                   = 0x1002875,
-               XK_braille_dots_23567                   = 0x1002876,
-               XK_braille_dots_123567                  = 0x1002877,
-               XK_braille_dots_4567                    = 0x1002878,
-               XK_braille_dots_14567                   = 0x1002879,
-               XK_braille_dots_24567                   = 0x100287a,
-               XK_braille_dots_124567                  = 0x100287b,
-               XK_braille_dots_34567                   = 0x100287c,
-               XK_braille_dots_134567                  = 0x100287d,
-               XK_braille_dots_234567                  = 0x100287e,
-               XK_braille_dots_1234567                 = 0x100287f,
-               XK_braille_dots_8                               = 0x1002880,
-               XK_braille_dots_18                              = 0x1002881,
-               XK_braille_dots_28                              = 0x1002882,
-               XK_braille_dots_128                             = 0x1002883,
-               XK_braille_dots_38                              = 0x1002884,
-               XK_braille_dots_138                             = 0x1002885,
-               XK_braille_dots_238                             = 0x1002886,
-               XK_braille_dots_1238                    = 0x1002887,
-               XK_braille_dots_48                              = 0x1002888,
-               XK_braille_dots_148                             = 0x1002889,
-               XK_braille_dots_248                             = 0x100288a,
-               XK_braille_dots_1248                    = 0x100288b,
-               XK_braille_dots_348                             = 0x100288c,
-               XK_braille_dots_1348                    = 0x100288d,
-               XK_braille_dots_2348                    = 0x100288e,
-               XK_braille_dots_12348                   = 0x100288f,
-               XK_braille_dots_58                              = 0x1002890,
-               XK_braille_dots_158                             = 0x1002891,
-               XK_braille_dots_258                             = 0x1002892,
-               XK_braille_dots_1258                    = 0x1002893,
-               XK_braille_dots_358                             = 0x1002894,
-               XK_braille_dots_1358                    = 0x1002895,
-               XK_braille_dots_2358                    = 0x1002896,
-               XK_braille_dots_12358                   = 0x1002897,
-               XK_braille_dots_458                             = 0x1002898,
-               XK_braille_dots_1458                    = 0x1002899,
-               XK_braille_dots_2458                    = 0x100289a,
-               XK_braille_dots_12458                   = 0x100289b,
-               XK_braille_dots_3458                    = 0x100289c,
-               XK_braille_dots_13458                   = 0x100289d,
-               XK_braille_dots_23458                   = 0x100289e,
-               XK_braille_dots_123458                  = 0x100289f,
-               XK_braille_dots_68                              = 0x10028a0,
-               XK_braille_dots_168                             = 0x10028a1,
-               XK_braille_dots_268                             = 0x10028a2,
-               XK_braille_dots_1268                    = 0x10028a3,
-               XK_braille_dots_368                             = 0x10028a4,
-               XK_braille_dots_1368                    = 0x10028a5,
-               XK_braille_dots_2368                    = 0x10028a6,
-               XK_braille_dots_12368                   = 0x10028a7,
-               XK_braille_dots_468                             = 0x10028a8,
-               XK_braille_dots_1468                    = 0x10028a9,
-               XK_braille_dots_2468                    = 0x10028aa,
-               XK_braille_dots_12468                   = 0x10028ab,
-               XK_braille_dots_3468                    = 0x10028ac,
-               XK_braille_dots_13468                   = 0x10028ad,
-               XK_braille_dots_23468                   = 0x10028ae,
-               XK_braille_dots_123468                  = 0x10028af,
-               XK_braille_dots_568                             = 0x10028b0,
-               XK_braille_dots_1568                    = 0x10028b1,
-               XK_braille_dots_2568                    = 0x10028b2,
-               XK_braille_dots_12568                   = 0x10028b3,
-               XK_braille_dots_3568                    = 0x10028b4,
-               XK_braille_dots_13568                   = 0x10028b5,
-               XK_braille_dots_23568                   = 0x10028b6,
-               XK_braille_dots_123568                  = 0x10028b7,
-               XK_braille_dots_4568                    = 0x10028b8,
-               XK_braille_dots_14568                   = 0x10028b9,
-               XK_braille_dots_24568                   = 0x10028ba,
-               XK_braille_dots_124568                  = 0x10028bb,
-               XK_braille_dots_34568                   = 0x10028bc,
-               XK_braille_dots_134568                  = 0x10028bd,
-               XK_braille_dots_234568                  = 0x10028be,
-               XK_braille_dots_1234568                 = 0x10028bf,
-               XK_braille_dots_78                              = 0x10028c0,
-               XK_braille_dots_178                             = 0x10028c1,
-               XK_braille_dots_278                             = 0x10028c2,
-               XK_braille_dots_1278                    = 0x10028c3,
-               XK_braille_dots_378                             = 0x10028c4,
-               XK_braille_dots_1378                    = 0x10028c5,
-               XK_braille_dots_2378                    = 0x10028c6,
-               XK_braille_dots_12378                   = 0x10028c7,
-               XK_braille_dots_478                             = 0x10028c8,
-               XK_braille_dots_1478                    = 0x10028c9,
-               XK_braille_dots_2478                    = 0x10028ca,
-               XK_braille_dots_12478                   = 0x10028cb,
-               XK_braille_dots_3478                    = 0x10028cc,
-               XK_braille_dots_13478                   = 0x10028cd,
-               XK_braille_dots_23478                   = 0x10028ce,
-               XK_braille_dots_123478                  = 0x10028cf,
-               XK_braille_dots_578                             = 0x10028d0,
-               XK_braille_dots_1578                    = 0x10028d1,
-               XK_braille_dots_2578                    = 0x10028d2,
-               XK_braille_dots_12578                   = 0x10028d3,
-               XK_braille_dots_3578                    = 0x10028d4,
-               XK_braille_dots_13578                   = 0x10028d5,
-               XK_braille_dots_23578                   = 0x10028d6,
-               XK_braille_dots_123578                  = 0x10028d7,
-               XK_braille_dots_4578                    = 0x10028d8,
-               XK_braille_dots_14578                   = 0x10028d9,
-               XK_braille_dots_24578                   = 0x10028da,
-               XK_braille_dots_124578                  = 0x10028db,
-               XK_braille_dots_34578                   = 0x10028dc,
-               XK_braille_dots_134578                  = 0x10028dd,
-               XK_braille_dots_234578                  = 0x10028de,
-               XK_braille_dots_1234578                 = 0x10028df,
-               XK_braille_dots_678                             = 0x10028e0,
-               XK_braille_dots_1678                    = 0x10028e1,
-               XK_braille_dots_2678                    = 0x10028e2,
-               XK_braille_dots_12678                   = 0x10028e3,
-               XK_braille_dots_3678                    = 0x10028e4,
-               XK_braille_dots_13678                   = 0x10028e5,
-               XK_braille_dots_23678                   = 0x10028e6,
-               XK_braille_dots_123678                  = 0x10028e7,
-               XK_braille_dots_4678                    = 0x10028e8,
-               XK_braille_dots_14678                   = 0x10028e9,
-               XK_braille_dots_24678                   = 0x10028ea,
-               XK_braille_dots_124678                  = 0x10028eb,
-               XK_braille_dots_34678                   = 0x10028ec,
-               XK_braille_dots_134678                  = 0x10028ed,
-               XK_braille_dots_234678                  = 0x10028ee,
-               XK_braille_dots_1234678                 = 0x10028ef,
-               XK_braille_dots_5678                    = 0x10028f0,
-               XK_braille_dots_15678                   = 0x10028f1,
-               XK_braille_dots_25678                   = 0x10028f2,
-               XK_braille_dots_125678                  = 0x10028f3,
-               XK_braille_dots_35678                   = 0x10028f4,
-               XK_braille_dots_135678                  = 0x10028f5,
-               XK_braille_dots_235678                  = 0x10028f6,
-               XK_braille_dots_1235678                 = 0x10028f7,
-               XK_braille_dots_45678                   = 0x10028f8,
-               XK_braille_dots_145678                  = 0x10028f9,
-               XK_braille_dots_245678                  = 0x10028fa,
-               XK_braille_dots_1245678                 = 0x10028fb,
-               XK_braille_dots_345678                  = 0x10028fc,
-               XK_braille_dots_1345678                 = 0x10028fd,
-               XK_braille_dots_2345678                 = 0x10028fe,
-               XK_braille_dots_12345678                = 0x10028ff,
-               XK_Sinh_ng                                              = 0x1000d82,
-               XK_Sinh_h2                                              = 0x1000d83,
-               XK_Sinh_a                                               = 0x1000d85,
-               XK_Sinh_aa                                              = 0x1000d86,
-               XK_Sinh_ae                                              = 0x1000d87,
-               XK_Sinh_aee                                             = 0x1000d88,
-               XK_Sinh_i                                               = 0x1000d89,
-               XK_Sinh_ii                                              = 0x1000d8a,
-               XK_Sinh_u                                               = 0x1000d8b,
-               XK_Sinh_uu                                              = 0x1000d8c,
-               XK_Sinh_ri                                              = 0x1000d8d,
-               XK_Sinh_rii                                             = 0x1000d8e,
-               XK_Sinh_lu                                              = 0x1000d8f,
-               XK_Sinh_luu                                             = 0x1000d90,
-               XK_Sinh_e                                               = 0x1000d91,
-               XK_Sinh_ee                                              = 0x1000d92,
-               XK_Sinh_ai                                              = 0x1000d93,
-               XK_Sinh_o                                               = 0x1000d94,
-               XK_Sinh_oo                                              = 0x1000d95,
-               XK_Sinh_au                                              = 0x1000d96,
-               XK_Sinh_ka                                              = 0x1000d9a,
-               XK_Sinh_kha                                             = 0x1000d9b,
-               XK_Sinh_ga                                              = 0x1000d9c,
-               XK_Sinh_gha                                             = 0x1000d9d,
-               XK_Sinh_ng2                                             = 0x1000d9e,
-               XK_Sinh_nga                                             = 0x1000d9f,
-               XK_Sinh_ca                                              = 0x1000da0,
-               XK_Sinh_cha                                             = 0x1000da1,
-               XK_Sinh_ja                                              = 0x1000da2,
-               XK_Sinh_jha                                             = 0x1000da3,
-               XK_Sinh_nya                                             = 0x1000da4,
-               XK_Sinh_jnya                                    = 0x1000da5,
-               XK_Sinh_nja                                             = 0x1000da6,
-               XK_Sinh_tta                                             = 0x1000da7,
-               XK_Sinh_ttha                                    = 0x1000da8,
-               XK_Sinh_dda                                             = 0x1000da9,
-               XK_Sinh_ddha                                    = 0x1000daa,
-               XK_Sinh_nna                                             = 0x1000dab,
-               XK_Sinh_ndda                                    = 0x1000dac,
-               XK_Sinh_tha                                             = 0x1000dad,
-               XK_Sinh_thha                                    = 0x1000dae,
-               XK_Sinh_dha                                             = 0x1000daf,
-               XK_Sinh_dhha                                    = 0x1000db0,
-               XK_Sinh_na                                              = 0x1000db1,
-               XK_Sinh_ndha                                    = 0x1000db3,
-               XK_Sinh_pa                                              = 0x1000db4,
-               XK_Sinh_pha                                             = 0x1000db5,
-               XK_Sinh_ba                                              = 0x1000db6,
-               XK_Sinh_bha                                             = 0x1000db7,
-               XK_Sinh_ma                                              = 0x1000db8,
-               XK_Sinh_mba                                             = 0x1000db9,
-               XK_Sinh_ya                                              = 0x1000dba,
-               XK_Sinh_ra                                              = 0x1000dbb,
-               XK_Sinh_la                                              = 0x1000dbd,
-               XK_Sinh_va                                              = 0x1000dc0,
-               XK_Sinh_sha                                             = 0x1000dc1,
-               XK_Sinh_ssha                                    = 0x1000dc2,
-               XK_Sinh_sa                                              = 0x1000dc3,
-               XK_Sinh_ha                                              = 0x1000dc4,
-               XK_Sinh_lla                                             = 0x1000dc5,
-               XK_Sinh_fa                                              = 0x1000dc6,
-               XK_Sinh_al                                              = 0x1000dca,
-               XK_Sinh_aa2                                             = 0x1000dcf,
-               XK_Sinh_ae2                                             = 0x1000dd0,
-               XK_Sinh_aee2                                    = 0x1000dd1,
-               XK_Sinh_i2                                              = 0x1000dd2,
-               XK_Sinh_ii2                                             = 0x1000dd3,
-               XK_Sinh_u2                                              = 0x1000dd4,
-               XK_Sinh_uu2                                             = 0x1000dd6,
-               XK_Sinh_ru2                                             = 0x1000dd8,
-               XK_Sinh_e2                                              = 0x1000dd9,
-               XK_Sinh_ee2                                             = 0x1000dda,
-               XK_Sinh_ai2                                             = 0x1000ddb,
-               XK_Sinh_o2                                              = 0x1000ddc,
-               XK_Sinh_oo2                                             = 0x1000ddd,
-               XK_Sinh_au2                                             = 0x1000dde,
-               XK_Sinh_lu2                                             = 0x1000ddf,
-               XK_Sinh_ruu2                                    = 0x1000df2,
-               XK_Sinh_luu2                                    = 0x1000df3,
-               XK_Sinh_kunddaliya                              = 0x1000df4,
-       }
-}
diff --git a/Crow/src/backends/xlib/XLibBackend.cs b/Crow/src/backends/xlib/XLibBackend.cs
deleted file mode 100644 (file)
index dfb58e8..0000000
+++ /dev/null
@@ -1,255 +0,0 @@
-//
-// XLibBackend.cs
-//
-// Author:
-//       Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
-//
-// Copyright (c) 2013-2017 Jean-Philippe Bruyère
-//
-// 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.
-using System;
-using System.Diagnostics;
-using System.Runtime.InteropServices;
-
-namespace Crow.XLib
-{
-       public class XLibBackend : IBackend
-       {
-               #region pinvoke
-               [DllImport("X11")]
-               static extern int XInitThreads();
-               [DllImport("X11")]
-               internal static extern IntPtr XOpenDisplay(IntPtr displayName);
-               [DllImport("X11")]
-               internal static extern IntPtr XCloseDisplay(IntPtr disp);
-               [DllImport("X11")]
-               static extern Int32 XDefaultScreen(IntPtr disp);
-               [DllImport("X11")]
-               static extern IntPtr XDefaultRootWindow(IntPtr disp);
-               [DllImport("X11")]
-               static extern UInt32 XDefaultDepth (IntPtr disp, Int32 screen);
-               [DllImport("X11")]
-               static extern IntPtr XDefaultVisual(IntPtr disp, Int32 screen);
-               [DllImport("X11")]
-               static extern IntPtr XCreateSimpleWindow(IntPtr disp, IntPtr rootWindow, Int32 x, Int32 y, UInt32 width, UInt32 height,
-                       UInt32 borderWidth, IntPtr border, IntPtr background);
-               [DllImport("X11")]
-               static extern IntPtr XCreatePixmap(IntPtr disp, IntPtr rootWindow, UInt32 width, UInt32 height, UInt32 depth);
-               [DllImport("X11")]
-               static extern IntPtr XFreePixmap(IntPtr disp, IntPtr pixmap);
-               [DllImport("X11")]
-               static extern IntPtr XFree(IntPtr data);
-               [DllImport("X11")]
-               static extern Int32 XSelectInput(IntPtr disp, IntPtr win, EventMask eventMask);
-               [DllImport("X11")]
-               static extern Int32 XMapWindow(IntPtr disp, IntPtr win);
-               [DllImport("X11")]
-               static extern int XPending (IntPtr disp);
-               [DllImport("X11")]
-               static extern IntPtr XNextEvent(IntPtr disp, ref XEvent xevent);
-               [DllImport("X11")]
-               static extern Int32 XSync(IntPtr disp, int discard);
-               [DllImport("X11")]
-               static extern int XConnectionNumber(IntPtr disp);
-               [DllImport("X11")]
-               static extern IntPtr XSetErrorHandler(XErrorHandler error_handler);
-               [DllImport ("X11")]
-               static extern int XDefineCursor (IntPtr disp, IntPtr wnd, IntPtr cursor);
-
-               [DllImport ("X11")]
-               static extern uint XWarpPointer (IntPtr disp, IntPtr src_w, IntPtr dest_w, int src_x, int src_y, uint src_width, uint src_height, int dest_x, int dest_y);
-
-               [DllImport ("libXcursor.so.1")]
-               static extern int XcursorGetDefaultSize (IntPtr dpy);
-               [DllImport ("libXcursor.so.1")]
-               static extern string XcursorGetTheme (IntPtr dpy);
-               [DllImport ("libXcursor.so.1")]
-               static extern IntPtr XcursorLibraryLoadImage (string name, string theme, int size);
-               [DllImport ("libXcursor.so.1")]
-               static extern void XcursorImageDestroy (IntPtr image);
-
-               [DllImport ("libXcursor.so.1")]
-               static extern IntPtr XcursorImageLoadCursor (IntPtr dpy, IntPtr image);
-               [DllImport ("X11-xcb")]
-               static extern IntPtr XGetXCBConnection (IntPtr dpy);
-               #endregion
-
-               IntPtr xDisp, xwinHnd, xDefaultRootWin, xDefaultVisual;
-               UInt32 xDefaultDepth;
-               Int32 xScreen;
-               XErrorHandler errorHnd;
-
-               Interface iFace;
-               XKB.XCBKeyboard Keyboard;
-
-               IntPtr [] cursors = new IntPtr [(int)MouseCursors.MaxEnum];
-
-               #region IBackend implementation
-
-               public void Init (Interface _iFace)
-               {
-                       iFace = _iFace;
-                       XInitThreads ();
-                       xDisp = XOpenDisplay(IntPtr.Zero);
-                       if (xDisp == IntPtr.Zero)
-                               throw new NotSupportedException("[XLib] Failed to open display.");
-
-                       IntPtr xcbCon = XGetXCBConnection (xDisp);
-                       Keyboard = new XKB.XCBKeyboard (xcbCon, iFace);
-
-                       xScreen = XDefaultScreen(xDisp);
-
-                       xDefaultRootWin = XDefaultRootWindow (xDisp);
-                       xDefaultVisual = XDefaultVisual (xDisp, xScreen);
-                       xDefaultDepth = XDefaultDepth (xDisp, xScreen);
-
-                       xwinHnd = XCreateSimpleWindow (xDisp, xDefaultRootWin,
-                               0, 0, (uint)iFace.ClientRectangle.Width, (uint)iFace.ClientRectangle.Height, 0, IntPtr.Zero, IntPtr.Zero);
-                       if (xwinHnd == IntPtr.Zero)
-                               throw new NotSupportedException("[XLib] Failed to create window.");
-
-                       XSelectInput (xDisp, xwinHnd, EventMask.ExposureMask | 
-                               EventMask.KeyPressMask  | EventMask.KeyReleaseMask | 
-                               EventMask.PointerMotionMask | EventMask.ButtonPressMask | EventMask.ButtonReleaseMask);
-
-                       XMapWindow (xDisp, xwinHnd);
-
-                       //keyboard = new Crow.XLib.X11Keyboard (xDisp);
-
-                       iFace.surf = new Crow.Cairo.XlibSurface (xDisp, xwinHnd, xDefaultVisual, iFace.ClientRectangle.Width, iFace.ClientRectangle.Height);
-
-                       errorHnd = new XErrorHandler (HandleError);
-                       XSetErrorHandler (errorHnd);
-
-                       loadCursors ();
-               }
-
-               public void CleanUp ()
-               {
-                       Keyboard.Destroy ();
-
-                       XCloseDisplay (xDisp);
-               }
-               public void Flush () {
-                       XSync (xDisp, 0);
-               }
-               public void ProcessEvents ()
-               {
-                       if (XPending (xDisp) > 0) {
-                               XEvent xevent = new XEvent ();
-                               XNextEvent (xDisp, ref xevent);
-
-                               switch (xevent.type) {
-                               case XEventName.Expose:
-                                       iFace.ProcessResize (new Rectangle (0, 0, xevent.ExposeEvent.width, xevent.ExposeEvent.height));
-                                       break;
-                               case XEventName.KeyPress:
-                                       Keyboard.HandleEvent ((uint)xevent.KeyEvent.keycode, true);
-                                       break;
-                               case XEventName.KeyRelease:
-                                       Keyboard.HandleEvent ((uint)xevent.KeyEvent.keycode, false);
-                                       break;
-                               case XEventName.MotionNotify:
-                                       //Debug.WriteLine ("motion: ({0},{1})", xevent.MotionEvent.x, xevent.MotionEvent.y);
-                                       iFace.ProcessMouseMove (xevent.MotionEvent.x, xevent.MotionEvent.y);
-                                       break;
-                               case XEventName.ButtonPress:
-                                       //Debug.WriteLine ("button press: {0}", xevent.ButtonEvent.button);
-                                       if (xevent.ButtonEvent.button == 4)
-                                               iFace.ProcessMouseWheelChanged (Interface.WheelIncrement);
-                                       else if(xevent.ButtonEvent.button == 5)
-                                               iFace.ProcessMouseWheelChanged (-Interface.WheelIncrement);
-                                       else
-                                               iFace.ProcessMouseButtonDown ((MouseButton)(xevent.ButtonEvent.button - 1));
-                                       break;
-                               case XEventName.ButtonRelease:
-                                       //Debug.WriteLine ("button release: {0}", xevent.ButtonEvent.button);
-                                       iFace.ProcessMouseButtonUp ((MouseButton)(xevent.ButtonEvent.button - 1));
-                                       break;
-
-                               }
-                       }
-               }
-               public bool IsDown (Key key)
-               {
-                       return false;
-               }
-               public bool Shift {
-                       get { return Keyboard.Shift; }
-               }
-               public bool Ctrl {
-                       get { return Keyboard.Ctrl; }
-               }
-               public bool Alt {
-                       get { return Keyboard.Alt; }
-               }
-               public void SetCursor (MouseCursors newCur)
-               {
-                       XDefineCursor (xDisp, xwinHnd, cursors[(int)newCur]);
-                       XSync (xDisp, 0);
-               }
-               public void SetCursorPosition (int x, int y)
-               {
-                       XWarpPointer (xDisp, IntPtr.Zero, xwinHnd, 0, 0, 0, 0, x, y);
-               }
-               #endregion
-
-               void loadCursor (MouseCursors id, string name)
-               {
-                       IntPtr img = XcursorLibraryLoadImage (name, null, XcursorGetDefaultSize (xDisp));
-                       cursors[(int)id] = XcursorImageLoadCursor (xDisp, img);
-                       XcursorImageDestroy (img);
-               }
-
-               void loadCursors ()
-               {
-                       loadCursor (MouseCursors.Default, "default");
-                       loadCursor (MouseCursors.Cross, "cross");
-                       loadCursor (MouseCursors.Arrow, "arrow");
-                       loadCursor (MouseCursors.Text, "text");
-                       loadCursor (MouseCursors.SW, "bottom_left_corner");
-                       loadCursor (MouseCursors.SE, "bottom_right_corner");
-                       loadCursor (MouseCursors.NW, "top_left_corner");
-                       loadCursor (MouseCursors.NE, "top_right_corner");
-                       loadCursor (MouseCursors.N, "top_side");
-                       loadCursor (MouseCursors.S, "bottom_side");
-                       loadCursor (MouseCursors.V, "size_ver");
-                       loadCursor (MouseCursors.H, "size_hor");
-               }
-
-               int HandleError (IntPtr display, ref XErrorEvent error_event)
-               {
-                       /*if (ErrorExceptions)
-                               throw new X11Exception (error_event.display, error_event.resourceid,
-                                       error_event.serial, error_event.error_code,
-                                       error_event.request_code, error_event.minor_code);
-                       else
-                               Console.WriteLine ("X11 Error encountered: {0}{1}\n",
-                                       X11Exception.GetMessage(error_event.display, error_event.resourceid,
-                                               error_event.serial, error_event.error_code,
-                                               error_event.request_code, error_event.minor_code),
-                                       WhereString());*/
-                       Debug.WriteLine ("XERROR {0}", error_event.error_code);
-                       return 0;
-               }
-
-
-       }
-}
-
index 1936704ebf9b602d96cc711affd7bb244eb35bc1..35ffe23bd42e639ab2a61646cac20748c042509a 100644 (file)
@@ -24,7 +24,7 @@
 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 // THE SOFTWARE.
 using System;
-using Crow.Cairo;
+using vkvg;
 using System.Linq;
 
 namespace Crow
index 4ff6082e1c098016819af90b6c6218ab7ee179f7..eeadd005e5ba0fcc1b728d04347eebcec4d61eb0 100644 (file)
@@ -27,7 +27,7 @@ using System;
 using System.Collections.Generic;
 using System.IO;
 using System.Linq;
-using Crow.Cairo;
+using vkvg;
 
 #if DEBUG_LOG
 namespace Crow
index f1eaf9c8f1a56118de97811661b6e660ddcfba81..ecd7f69a30a6f7d432d421abf495bb4fc7439ae2 100644 (file)
@@ -24,7 +24,7 @@
 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 // THE SOFTWARE.
 using System;
-using Crow.Cairo;
+using vkvg;
 using System.Collections.Generic;
 using System.Diagnostics;
 using System.IO;
index bab0584e8746935b4054fcfaf44a47e28b082c48..bf565e830311dfcf09a52bd62596c1b5a53096d4 100644 (file)
@@ -1,5 +1,5 @@
-//Copyright GPL2
-using Crow.Cairo;
+//Copyright GPL2
+using vkvg;
 
 
 namespace Rsvg {
@@ -108,7 +108,7 @@ namespace Rsvg {
                [DllImport("rsvg-2")]
                static extern void rsvg_handle_render_cairo_sub(IntPtr raw, IntPtr cr, string id);
 
-               public void RenderCairoSub(Crow.Cairo.Context cr, string id) {
+               public void RenderCairoSub(Context cr, string id) {
                        rsvg_handle_render_cairo_sub(Raw, cr == null ? IntPtr.Zero : cr.Handle, id);
                }
 
diff --git a/Crow/src/vkvg/Context.cs b/Crow/src/vkvg/Context.cs
new file mode 100644 (file)
index 0000000..0cf3195
--- /dev/null
@@ -0,0 +1,262 @@
+//
+// Context.cs
+//
+// Author:
+//       Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// Copyright (c) 2018 jp
+//
+// 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.
+using System;
+using System.Text;
+using Crow;
+
+namespace vkvg
+{
+       public class Context: IDisposable
+       {
+
+               IntPtr handle = IntPtr.Zero;
+
+               public Context (Surface surf)
+               {
+                       handle = NativeMethods.vkvg_create (surf.Handle);
+               }
+               ~Context ()
+               {
+                       Dispose (false);
+               }
+
+               public IntPtr Handle { get { return handle; }}
+
+               public void AddReference () {
+                       NativeMethods.vkvg_reference (handle);
+               }
+               public uint References () => NativeMethods.vkvg_get_reference_count (handle);
+
+               public double LineWidth {                       
+                       set { NativeMethods.vkvg_set_line_width (handle, (float)value); }
+               }
+               public uint FontSize {
+                       set { NativeMethods.vkvg_set_font_size (handle, value); }
+               }
+               public string FontFace {
+                       set { NativeMethods.vkvg_select_font_face (handle, value); }
+               }
+               public Operator Operator {
+                       set { NativeMethods.vkvg_set_operator (handle, value); }
+                       get { return NativeMethods.vkvg_get_operator (handle); }
+               }
+               public FontExtents FontExtents {
+                       get {
+                               FontExtents f_extents;
+                               NativeMethods.vkvg_font_extents (handle, out f_extents);
+                               return f_extents;
+                       }
+               }
+               public TextExtents TextExtents(string s)
+               {
+                       TextExtents extents;
+                       NativeMethods.vkvg_text_extents (handle, TerminateUtf8(s), out extents);
+                       return extents;
+               }
+               public void ShowText (string txt) {
+                       NativeMethods.vkvg_show_text (handle, txt);
+               }
+               public void Save () {
+                       NativeMethods.vkvg_save (handle);
+               }
+               public void Restore () {
+                       NativeMethods.vkvg_restore (handle);
+               }
+               public void Flush () {
+                       NativeMethods.vkvg_flush (handle);
+               }
+               public void Clear () {
+                       NativeMethods.vkvg_clear (handle);
+               }
+
+               public void Paint () {
+                       NativeMethods.vkvg_paint (handle);
+               }
+               public void Arc (float xc, float yc, float radius, float a1, float a2) {
+                       NativeMethods.vkvg_arc (handle, xc, yc, radius, a1, a2);
+               }
+               public void Arc (double xc, double yc, double radius, double a1, double a2) {
+                       NativeMethods.vkvg_arc (handle, (float)xc, (float)yc, (float)radius, (float)a1, (float)a2);
+               }
+               public void ArcNegative (float xc, float yc, float radius, float a1, float a2) {
+                       NativeMethods.vkvg_arc_negative (handle, xc, yc, radius, a1, a2);
+               }
+               public void Rectangle (float x, float y, float width, float height) {
+                       NativeMethods.vkvg_rectangle (handle, x, y, width, height);
+               }
+               public void Scale (float sx, float sy) {
+                       NativeMethods.vkvg_scale (handle, sx, sy);
+               }
+               public void Translate (float dx, float dy) {
+                       NativeMethods.vkvg_translate (handle, dx, dy);
+               }
+               public void Rotate (float alpha) {
+                       NativeMethods.vkvg_rotate (handle, alpha);
+               }
+               public void ArcNegative (double xc, double yc, double radius, double a1, double a2) {
+                       NativeMethods.vkvg_arc_negative (handle, (float)xc, (float)yc, (float)radius, (float)a1, (float)a2);
+               }
+               public void Rectangle (double x, double y, double width, double height) {
+                       NativeMethods.vkvg_rectangle (handle, (float)x, (float)y, (float)width, (float)height);
+               }
+               public void Scale (double sx, double sy) {
+                       NativeMethods.vkvg_scale (handle, (float)sx, (float)sy);
+               }
+               public void Translate (double dx, double dy) {
+                       NativeMethods.vkvg_translate (handle, (float)dx, (float)dy);
+               }
+               public void Rotate (double alpha) {
+                       NativeMethods.vkvg_rotate (handle, (float)alpha);
+               }
+
+               public void Fill () {
+                       NativeMethods.vkvg_fill (handle);
+               }
+               public void FillPreserve () {
+                       NativeMethods.vkvg_fill_preserve (handle);
+               }
+               public void Stroke () {
+                       NativeMethods.vkvg_stroke (handle);
+               }
+               public void StrokePreserve () {
+                       NativeMethods.vkvg_stroke_preserve (handle);
+               }
+               public void Clip () {
+                       NativeMethods.vkvg_clip (handle);
+               }
+               public void ClipPreserve () {
+                       NativeMethods.vkvg_clip_preserve (handle);
+               }
+               public void ResetClip () {
+                       NativeMethods.vkvg_reset_clip (handle);
+               }
+               public void NewPath () {
+                       NativeMethods.vkvg_new_path (handle);
+               }
+               public void NewSubPath () {
+                       NativeMethods.vkvg_new_sub_path (handle);
+               }
+               public void ClosePath () {
+                       NativeMethods.vkvg_close_path (handle);
+               }
+
+//             public void Rectangle (float x, float y, float width, float height){
+//                     NativeMethods.vkvg_rectangle ();
+//             }
+               public void MoveTo (PointD p){
+                       NativeMethods.vkvg_move_to (handle, (float)p.X, (float)p.Y);
+               }
+               public void MoveTo (Point p){
+                       NativeMethods.vkvg_move_to (handle, p.X, p.Y);
+               }
+               public void MoveTo (float x, float y){
+                       NativeMethods.vkvg_move_to (handle, x, y);
+               }
+               public void RelMoveTo (float x, float y){
+                       NativeMethods.vkvg_rel_move_to (handle, x, y);
+               }
+               public void LineTo (float x, float y){
+                       NativeMethods.vkvg_line_to (handle, x, y);
+               }
+               public void LineTo (Point p){
+                       NativeMethods.vkvg_line_to (handle, p.X, p.Y);
+               }
+               public void LineTo (PointD p){
+                       NativeMethods.vkvg_line_to (handle, (float)p.X, (float)p.Y);
+               }
+               public void RelLineTo (float x, float y){
+                       NativeMethods.vkvg_rel_line_to (handle, x, y);
+               }
+               public void CurveTo (float x1, float y1, float x2, float y2, float x3, float y3){
+                       NativeMethods.vkvg_curve_to (handle, x1, y1, x2, y2, x3, y3);
+               }
+               public void RelCurveTo (float x1, float y1, float x2, float y2, float x3, float y3){
+                       NativeMethods.vkvg_rel_curve_to (handle, x1, y1, x2, y2, x3, y3);
+               }
+
+               public void MoveTo (double x, double y){
+                       NativeMethods.vkvg_move_to (handle, (float)x, (float)y);
+               }
+               public void RelMoveTo (double x, double y){
+                       NativeMethods.vkvg_rel_move_to (handle, (float)x, (float)y);
+               }
+               public void LineTo (double x, double y){
+                       NativeMethods.vkvg_line_to (handle, (float)x, (float)y);
+               }
+               public void RelLineTo (double x, double y){
+                       NativeMethods.vkvg_rel_line_to (handle, (float)x, (float)y);
+               }
+               public void CurveTo (double x1, double y1, double x2, double y2, double x3, double y3){
+                       NativeMethods.vkvg_curve_to (handle, (float)x1, (float)y1, (float)x2, (float)y2, (float)x3, (float)y3);
+               }
+               public void RelCurveTo (double x1, double y1, double x2, double y2, double x3, double y3){
+                       NativeMethods.vkvg_rel_curve_to (handle, (float)x1, (float)y1, (float)x2, (float)y2, (float)x3, (float)y3);
+               }
+
+               public void SetSource (Pattern pat) {
+                       NativeMethods.vkvg_set_source (handle, pat.Handle);
+               }
+               public void SetSource (float r, float g, float b, float a = 1f) {
+                       NativeMethods.vkvg_set_source_rgba (handle, r, g, b, a);
+               }
+               public void SetSource (double r, double g, double b, double a = 1.0) {
+                       NativeMethods.vkvg_set_source_rgba (handle, (float)r, (float)g, (float)b, (float)a);
+               }
+               public void SetSource (Surface surf, float x = 0f, float y = 0f) {
+                       NativeMethods.vkvg_set_source_surface (handle, surf.Handle, x, y);
+               }
+               public void SetSourceSurface (Surface surf, float x = 0f, float y = 0f) {
+                       NativeMethods.vkvg_set_source_surface (handle, surf.Handle, x, y);
+               }
+
+               private static byte[] TerminateUtf8(string s)
+               {
+                       // compute the byte count including the trailing \0
+                       var byteCount = Encoding.UTF8.GetMaxByteCount(s.Length + 1);
+                       var bytes = new byte[byteCount];
+                       Encoding.UTF8.GetBytes(s, 0, s.Length, bytes, 0);
+                       return bytes;
+               }
+
+               #region IDisposable implementation
+               public void Dispose ()
+               {
+                       Dispose (true);
+                       GC.SuppressFinalize (this);
+               }
+
+               protected virtual void Dispose (bool disposing)
+               {
+                       if (!disposing || handle == IntPtr.Zero)
+                               return;
+
+                       NativeMethods.vkvg_destroy (handle);
+                       handle = IntPtr.Zero;
+               }
+               #endregion
+       }
+}
+
diff --git a/Crow/src/vkvg/Device.cs b/Crow/src/vkvg/Device.cs
new file mode 100644 (file)
index 0000000..1a1b4b5
--- /dev/null
@@ -0,0 +1,77 @@
+//
+// Context.cs
+//
+// Author:
+//       Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// Copyright (c) 2018 jp
+//
+// 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.
+using System;
+
+namespace vkvg
+{
+       public class Device: IDisposable
+       {
+
+               IntPtr handle = IntPtr.Zero;
+
+               #region CTORS & DTOR
+               public Device (IntPtr instance, IntPtr phy, IntPtr dev, uint qFamIdx, SampleCount samples = SampleCount.Sample_1, uint qIndex = 0)
+               {
+                       handle = NativeMethods.vkvg_device_create_multisample (instance, phy, dev, qFamIdx, qIndex, samples, false);
+               }
+               ~Device ()
+               {
+                       Dispose (false);
+               }
+               #endregion
+
+               public void GetDpy (out int hdpy, out int vdpy) {
+                       NativeMethods.vkvg_device_get_dpy (handle, out hdpy, out vdpy);
+               }
+               public void SetDpy (int hdpy, int vdpy) {
+                       NativeMethods.vkvg_device_set_dpy (handle, hdpy, vdpy);
+               }
+               public void AddReference () {
+                       NativeMethods.vkvg_device_reference (handle);
+               }
+               public uint References () => NativeMethods.vkvg_device_get_reference_count (handle);
+
+               public IntPtr Handle { get { return handle; }}
+
+               #region IDisposable implementation
+               public void Dispose ()
+               {
+                       Dispose (true);
+                       GC.SuppressFinalize (this);
+               }
+
+               protected virtual void Dispose (bool disposing)
+               {
+                       if (!disposing || handle == IntPtr.Zero)
+                               return;
+
+                       NativeMethods.vkvg_device_destroy (handle);
+                       handle = IntPtr.Zero;
+               }
+               #endregion
+       }
+}
+
diff --git a/Crow/src/vkvg/Enums.cs b/Crow/src/vkvg/Enums.cs
new file mode 100644 (file)
index 0000000..44b0d08
--- /dev/null
@@ -0,0 +1,139 @@
+//
+// Enums.cs
+//
+// Author:
+//       Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// Copyright (c) 2013-2017 Jean-Philippe Bruyère
+//
+// 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.
+using System;
+
+namespace vkvg {
+       public enum Status {
+               Success = 0,
+               NoMemory,
+               InvalidRestore,
+               InvalidPopGroup,
+               NoCurrentPoint,
+               InvalidMatrix,
+               InvalidStatus,
+               NullPointer,
+               InvalidString,
+               InvalidPathData,
+               ReadError,
+               WriteError,
+               SurfaceFinished,
+               SurfaceTypeMismatch,
+               PatternTypeMismatch,
+               InvalidContent,
+               InvalidFormat,
+               InvalidVisual,
+               FileNotFound,
+               InvalidDash
+       }
+
+       public enum Direction {
+               Horizontal = 0,
+               Vertical = 1
+       }
+
+       public enum Format {
+               ARGB32,
+               RGB24,
+               A8,
+               A1
+       }
+
+       public enum Extend {
+               None,
+               Repeat,
+               Reflect,
+               Pad
+       }
+
+       public enum Filter {
+               Fast,
+               Good,
+               Best,
+               Nearest,
+               Bilinear,
+               Gaussian,
+       }
+
+       public enum PatternType {
+               Solid,
+               Surface,
+               Linear,
+               Radial,
+               Mesh,
+               RasterSource,
+       }
+
+       public enum Operator {
+               Clear,
+               Source,
+               Over,
+               In,
+               Out,
+               Atop,
+
+               Dest,
+               DestOver,
+               DestIn,
+               DestOut,
+               DestAtop,
+
+               Xor,
+               Add,
+               Saturate,
+       }
+
+       public enum FontSlant {
+               Normal,
+               Italic,
+               Oblique
+       }
+       public enum FontWeight {
+               Normal,
+               Bold,
+       }
+
+       public enum SampleCount {
+               Sample_1 = 0x00000001,
+               Sample_2 = 0x00000002,
+               Sample_4 = 0x00000004,
+               Sample_8 = 0x00000008,
+               Sample_16 = 0x00000010,
+               Sample_32 = 0x00000020,
+               Sample_64 = 0x00000040
+       }
+
+       public enum LineCap {
+               Butt,
+               Round,
+               Square
+       }
+
+       public enum LineJoin {
+               Miter,
+               Round,
+               Bevel
+       }
+}
\ No newline at end of file
diff --git a/Crow/src/vkvg/FontExtents.cs b/Crow/src/vkvg/FontExtents.cs
new file mode 100644 (file)
index 0000000..c7f793d
--- /dev/null
@@ -0,0 +1,104 @@
+//
+// Mono.Cairo.FontExtents.cs
+//
+// Authors: Duncan Mak (duncan@ximian.com)
+//          Hisham Mardam Bey (hisham.mardambey@gmail.com)
+//
+// (C) Ximian, Inc. 2003
+//
+// This is a simplistic binding of the Cairo API to C#. All functions
+// in cairo.h are transcribed into their C# equivelants
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// 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.
+//
+
+using System;
+using System.Runtime.InteropServices;
+
+namespace vkvg
+{
+       [StructLayout (LayoutKind.Sequential)]
+       public struct FontExtents
+       {
+               float ascent;
+               float descent;
+               float height;
+               float maxXAdvance;
+               float maxYAdvance;
+               
+               public float Ascent {
+                       get { return ascent; }
+                       set { ascent = value; }
+               }
+               
+               public float Descent {
+                       get { return descent; }
+                       set { descent = value; }
+               }
+               
+               public float Height {
+                       get { return height; }
+                       set { height = value; }
+               }
+               
+               public float MaxXAdvance {
+                       get { return maxXAdvance; }
+                       set { maxXAdvance = value; }
+               }
+               
+               public float MaxYAdvance {
+                       get { return maxYAdvance; }
+                       set { maxYAdvance = value; }
+               }
+
+               public FontExtents (float ascent, float descent, float height, float maxXAdvance, float maxYAdvance)
+               {
+                       this.ascent = ascent;
+                       this.descent = descent;
+                       this.height = height;
+                       this.maxXAdvance = maxXAdvance;
+                       this.maxYAdvance = maxYAdvance;
+               }
+
+               public override bool Equals (object obj)
+               {
+                       if (obj is FontExtents)
+                               return this == (FontExtents) obj;
+                       return false;
+               }
+
+               public override int GetHashCode ()
+               {
+                       return (int) Ascent ^ (int) Descent ^ (int) Height ^ (int) MaxXAdvance ^ (int) MaxYAdvance;
+               }
+
+               public static bool operator == (FontExtents extents, FontExtents other)
+               {
+                       return extents.Ascent == other.Ascent && extents.Descent == other.Descent && extents.Height == other.Height && extents.MaxXAdvance == other.MaxXAdvance && extents.MaxYAdvance == other.MaxYAdvance;
+               }
+
+               public static bool operator != (FontExtents extents, FontExtents other)
+               {
+                       return !(extents == other);
+               }
+       }
+}
diff --git a/Crow/src/vkvg/Matrix.cs b/Crow/src/vkvg/Matrix.cs
new file mode 100644 (file)
index 0000000..54859e4
--- /dev/null
@@ -0,0 +1,113 @@
+//
+// Matrix.cs
+//
+// Author:
+//       Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// Copyright (c) 2019 jp
+//
+// 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.
+using System;
+namespace vkvg {
+       public struct Matrix {
+               float xx; float yx;
+               float xy; float yy;
+               float x0; float y0;
+
+               public float XX { get { return xx; } set { xx = value; } }
+               public float YX { get { return yx; } set { yx = value; } }
+               public float XY { get { return xy; } set { xy = value; } }
+               public float YY { get { return yy; } set { yy = value; } }
+               public float X0 { get { return x0; } set { x0 = value; } }
+               public float Y0 { get { return y0; } set { y0 = value; } }
+
+               public static Matrix Create (float xx, float yx, float xy, float yy, float x0, float y0) {
+                       Matrix tmp;
+                       NativeMethods.vkvg_matrix_init (out tmp, xx, yx, xy, yy, x0, y0);
+                       return tmp;
+               }
+               public static Matrix CreateTranslation (float tx, float ty) {
+                       Matrix tmp;
+                       NativeMethods.vkvg_matrix_init_translate (out tmp, tx, ty);
+                       return tmp;
+               }
+               public static Matrix CreateRotation (float radian) {
+                       Matrix tmp;
+                       NativeMethods.vkvg_matrix_init_rotate (out tmp, radian);
+                       return tmp;
+               }
+               public static Matrix CreateScale (float sx, float sy) {
+                       Matrix tmp;
+                       NativeMethods.vkvg_matrix_init_scale (out tmp, sx, sy);
+                       return tmp;
+               }
+               public static Matrix Identity {
+                       get {
+                               Matrix tmp;
+                               NativeMethods.vkvg_matrix_init_identity (out tmp);
+                               return tmp;
+                       }
+               }
+
+               public void Translate (float tx, float ty) {
+                       Matrix tmp = this;
+                       NativeMethods.vkvg_matrix_translate (ref tmp, tx, ty);
+                       xx = tmp.xx; yx = tmp.yx;
+                       xy = tmp.xy; yy = tmp.yy;
+                       x0 = tmp.x0; y0 = tmp.y0;
+               }
+               public void Rotate (float radian) {
+                       Matrix tmp = this;
+                       NativeMethods.vkvg_matrix_rotate (ref tmp, radian);
+                       xx = tmp.xx; yx = tmp.yx;
+                       xy = tmp.xy; yy = tmp.yy;
+                       x0 = tmp.x0; y0 = tmp.y0;
+               }
+               public void Scale (float sx, float sy) {
+                       Matrix tmp = this;
+                       NativeMethods.vkvg_matrix_scale (ref tmp, sx, sy);
+                       xx = tmp.xx; yx = tmp.yx;
+                       xy = tmp.xy; yy = tmp.yy;
+                       x0 = tmp.x0; y0 = tmp.y0;
+               }
+               public void Invert () {
+                       Matrix tmp = this;
+                       NativeMethods.vkvg_matrix_invert (ref tmp);
+                       xx = tmp.xx; yx = tmp.yx;
+                       xy = tmp.xy; yy = tmp.yy;
+                       x0 = tmp.x0; y0 = tmp.y0;
+               }
+               public void TransformDistance (ref float dx, ref float dy) {
+                       NativeMethods.vkvg_matrix_transform_distance (ref this, ref dx, ref dy);
+               }
+               public void TransformPoint (ref float px, ref float py) {
+                       NativeMethods.vkvg_matrix_transform_distance (ref this, ref px, ref py);
+               }
+
+               public static Matrix operator *(Matrix a, Matrix b) {
+                       Matrix tmp;
+                       NativeMethods.vkvg_matrix_multiply (out tmp, ref a, ref b);
+                       return tmp;
+               }
+
+               public override string ToString () {
+                       return string.Format ($"({xx};{yx};{xy};{yy};{x0};{y0})");
+               }
+       }
+}
diff --git a/Crow/src/vkvg/NativeMethods.cs b/Crow/src/vkvg/NativeMethods.cs
new file mode 100644 (file)
index 0000000..e598170
--- /dev/null
@@ -0,0 +1,266 @@
+//
+// NativeMethods.cs
+//
+// Author:
+//       Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// Copyright (c) 2018 jp
+//
+// 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.
+using System;
+using System.Runtime.InteropServices;
+
+namespace vkvg
+{
+       internal static class NativeMethods
+       {
+               const string libvkvg = "vkvg";
+
+               #region Device
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern IntPtr vkvg_device_create (IntPtr instance, IntPtr phy, IntPtr dev, uint qFamIdx, uint qIndex);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern IntPtr vkvg_device_destroy (IntPtr device);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern IntPtr vkvg_device_create_multisample (IntPtr inst, IntPtr phy, IntPtr vkdev, uint qFamIdx, uint qIndex, SampleCount samples, bool deferredResolve);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern IntPtr vkvg_device_reference (IntPtr dev);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern uint vkvg_device_get_reference_count (IntPtr dev);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_device_set_dpy (IntPtr dev, int hdpy, int vdpy);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_device_get_dpy (IntPtr dev, out int hdpy, out int vdpy);
+               #endregion
+
+               #region Context
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern IntPtr vkvg_create (IntPtr surface);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_destroy (IntPtr ctx);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_flush (IntPtr ctx);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_new_path (IntPtr ctx);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_new_sub_path (IntPtr ctx);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_close_path (IntPtr ctx);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_line_to (IntPtr ctx, float x, float y);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_rel_line_to (IntPtr ctx, float x, float y);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_move_to (IntPtr ctx, float x, float y);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_rel_move_to (IntPtr ctx, float x, float y);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_arc (IntPtr ctx, float xc, float yc, float radius, float a1, float a2);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_arc_negative (IntPtr ctx, float xc, float yc, float radius, float a1, float a2);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_curve_to (IntPtr ctx, float x1, float y1, float x2, float y2, float x3, float y3);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_rel_curve_to (IntPtr ctx, float x1, float y1, float x2, float y2, float x3, float y3);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_rectangle (IntPtr ctx, float x, float y, float width, float height);
+
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_scale (IntPtr ctx, float sx, float sy);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_translate (IntPtr ctx, float dx, float dy);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_rotate (IntPtr ctx, float alpha);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_transform (IntPtr ctx, ref Matrix matrix);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_set_matrix (IntPtr ctx, ref Matrix matrix);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_get_matrix (IntPtr ctx, out Matrix matrix);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_identity_matrix (IntPtr ctx);
+
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_stroke (IntPtr ctx);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_stroke_preserve (IntPtr ctx);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_clip (IntPtr ctx);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_clip_preserve (IntPtr ctx);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_reset_clip (IntPtr ctx);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_fill (IntPtr ctx);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_fill_preserve (IntPtr ctx);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_paint (IntPtr ctx);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_set_source_rgba (IntPtr ctx, float r, float g, float b, float a);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_set_line_width (IntPtr ctx, float width);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_set_line_cap (IntPtr ctx, LineCap cap);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_set_line_join (IntPtr ctx, LineJoin join);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_set_operator (IntPtr ctx, Operator op);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern Operator vkvg_get_operator (IntPtr ctx);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_set_source_surface(IntPtr ctx, IntPtr surf, float x, float y);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_set_source(IntPtr ctx, IntPtr pattern);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_font_extents (IntPtr ctx, out FontExtents extents);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_text_extents (IntPtr ctx, byte[] utf8, out TextExtents extents);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_select_font_face (IntPtr ctx, string name);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_set_font_size (IntPtr ctx, uint size);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_show_text (IntPtr ctx, string text);
+
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_save (IntPtr ctx);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_restore (IntPtr ctx);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_clear (IntPtr ctx);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern float vkvg_get_line_width (IntPtr ctx);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern LineCap vkvg_get_line_cap (IntPtr ctx);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern LineJoin vkvg_get_line_join (IntPtr ctx);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern IntPtr vkvg_get_source (IntPtr ctx);
+
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern IntPtr vkvg_reference (IntPtr ctx);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern uint vkvg_get_reference_count (IntPtr ctx);
+               #endregion
+
+               #region TextRun
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern IntPtr vkvg_text_run_create (IntPtr ctx, byte[] utf8);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_text_run_destroy (IntPtr textRun);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_show_text_run (IntPtr ctx, IntPtr textRun);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_text_run_get_extents (IntPtr textRun);
+               #endregion
+
+               #region Pattern
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern IntPtr vkvg_pattern_create ();
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern IntPtr vkvg_pattern_reference (IntPtr pat);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern uint vkvg_pattern_get_reference_count(IntPtr pat);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern IntPtr vkvg_pattern_create_rgba (float r, float g, float b, float a);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern IntPtr vkvg_pattern_create_rgb (float r, float g, float b);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern IntPtr vkvg_pattern_create_for_surface (IntPtr surf);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern IntPtr vkvg_pattern_create_linear (float x0, float y0, float x1, float y1);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern IntPtr vkvg_pattern_create_radial (float cx0, float cy0, float radius0,
+                                             float cx1, float cy1, float radius1);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_pattern_destroy (IntPtr pat);
+
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_patter_add_color_stop (IntPtr pat, float offset, float r, float g, float b, float a);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_pattern_set_extend (IntPtr pat, Extend extend);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_pattern_set_filter (IntPtr pat, Filter filter);
+
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern Extend vkvg_pattern_get_extend (IntPtr pat);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern Filter vkvg_pattern_get_filter (IntPtr pat);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern PatternType vkvg_pattern_get_type (IntPtr pat);
+               #endregion
+
+               #region Matrices
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_matrix_init_identity (out Matrix matrix);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_matrix_init (out Matrix matrix,
+           float xx, float yx,
+           float xy, float yy,
+           float x0, float y0);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_matrix_init_translate (out Matrix matrix, float tx, float ty);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_matrix_init_scale (out Matrix matrix, float sx, float sy);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_matrix_init_rotate (out Matrix matrix, float radians);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_matrix_translate (ref Matrix matrix, float tx, float ty);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_matrix_scale (ref Matrix matrix, float sx, float sy);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_matrix_rotate (ref Matrix matrix, float radians);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_matrix_multiply (out Matrix result, ref Matrix a, ref Matrix b);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_matrix_transform_distance (ref Matrix matrix, ref float dx, ref float dy);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_matrix_transform_point (ref Matrix matrix, ref float x, ref float y);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_matrix_invert (ref Matrix matrix);
+               #endregion
+
+               #region Surface
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern IntPtr vkvg_surface_create (IntPtr device, uint width, uint height);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern IntPtr vkvg_surface_create_from_image  (IntPtr dev, string filePath);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern IntPtr vkvg_surface_create_from_bitmap  (IntPtr dev, ref byte[] data, uint width, uint height);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void     vkvg_surface_destroy (IntPtr surf);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern IntPtr vkvg_surface_get_vk_image (IntPtr surf);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern int vkvg_surface_get_width (IntPtr surf);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern int vkvg_surface_get_height (IntPtr surf);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_surface_clear (IntPtr surf);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern IntPtr vkvg_surface_reference (IntPtr surf);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern uint vkvg_surface_get_reference_count (IntPtr surf);
+               [DllImport (libvkvg, CallingConvention=CallingConvention.Cdecl)]
+               internal static extern void vkvg_surface_write_to_png (IntPtr surf, [MarshalAs(UnmanagedType.LPStr)]string path);
+               #endregion
+       }
+}
+
diff --git a/Crow/src/vkvg/Pattern.cs b/Crow/src/vkvg/Pattern.cs
new file mode 100644 (file)
index 0000000..f6746ff
--- /dev/null
@@ -0,0 +1,97 @@
+//
+// Pattern.cs
+//
+// Author:
+//       Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// Copyright (c) 2019 jp
+//
+// 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.
+using System;
+namespace vkvg {
+       public class Pattern : IDisposable {
+
+               IntPtr handle = IntPtr.Zero;
+
+               #region CTORS & DTOR
+               protected Pattern (IntPtr handle) {
+                       this.handle = handle;
+               }
+               public Pattern () {
+                       handle = NativeMethods.vkvg_pattern_create ();
+               }
+               public Pattern (float r, float g, float b) {
+                       handle = NativeMethods.vkvg_pattern_create_rgb (r, g, b);
+               }
+               public Pattern (float r, float g, float b, float a) {
+                       handle = NativeMethods.vkvg_pattern_create_rgba (r, g, b, a);
+               }
+               public Pattern (Surface surf) {
+                       handle = NativeMethods.vkvg_pattern_create_for_surface (surf.Handle);
+               }
+
+               ~Pattern () {
+                       Dispose (false);
+               }
+               #endregion
+
+               public static Pattern CreateLinearGradient (float x0, float y0, float x1, float y1) {
+                       return new Pattern (NativeMethods.vkvg_pattern_create_linear (x0, y0, x1, y1));
+               }
+               public static Pattern CreateRadialGradient (float cx0, float cy0, float radius0,
+                                                                                                        float cx1, float cy1, float radius1) {
+                       return new Pattern (NativeMethods.vkvg_pattern_create_radial (cx0, cy0, radius0, cx1, cy1, radius1));
+               }
+
+               public void AddReference () {
+                       NativeMethods.vkvg_pattern_reference (handle);
+               }
+               public uint References () => NativeMethods.vkvg_pattern_get_reference_count (handle);
+
+               public IntPtr Handle { get { return handle; } }
+
+               public Extend Extend {
+                       set { NativeMethods.vkvg_pattern_set_extend (handle, value); }
+                       get { return NativeMethods.vkvg_pattern_get_extend (handle); }
+               }
+               public Filter Filter {
+                       set { NativeMethods.vkvg_pattern_set_filter (handle, value); }
+                       get { return NativeMethods.vkvg_pattern_get_filter (handle); }
+               }
+
+               public void AddColorStop (float offset, float r, float g, float b, float a = 1f) {
+                       NativeMethods.vkvg_patter_add_color_stop (handle, offset, r, g, b, a);
+               }
+
+               #region IDisposable implementation
+               public void Dispose () {
+                       Dispose (true);
+                       GC.SuppressFinalize (this);
+               }
+
+               protected virtual void Dispose (bool disposing) {
+                       if (!disposing || handle == IntPtr.Zero)
+                               return;
+
+                       NativeMethods.vkvg_pattern_destroy (handle);
+                       handle = IntPtr.Zero;
+               }
+               #endregion
+       }
+}
\ No newline at end of file
diff --git a/Crow/src/vkvg/Point.cs b/Crow/src/vkvg/Point.cs
new file mode 100644 (file)
index 0000000..a30e231
--- /dev/null
@@ -0,0 +1,180 @@
+//
+// Point.cs
+//
+// Author:
+//       Jean-Philippe Bruyère <jp.bruyere@hotmail.com>
+//
+// Copyright (c) 2013-2017 Jean-Philippe Bruyère
+//
+// 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.
+
+using System;
+
+namespace vkvg {
+       public struct Point
+    {
+        int _x;
+        int _y;
+
+        public int X
+        {
+            get { return _x; }
+            set { _x = value; }
+        }
+        public int Y
+        {
+            get { return _y; }
+            set { _y = value; }
+        }
+        public Point(int x, int y)
+        {
+            _x = x;
+            _y = y;
+        }
+
+               public int Length {
+                       get { return (int)Math.Sqrt (Math.Pow (_x, 2) + Math.Pow (_y, 2)); }
+               }
+               public double LengthD {
+                       get { return Math.Sqrt (Math.Pow (_x, 2) + Math.Pow (_y, 2)); }
+               }
+        public static implicit operator PointD(Point p)
+        {
+            return new PointD(p.X, p.Y);
+        }
+        public static implicit operator System.Drawing.Point(Point p)
+        {
+            return new System.Drawing.Point(p.X, p.Y);
+        }
+        public static implicit operator Point(System.Drawing.Point p)
+        {
+            return new Point(p.X, p.Y);
+        }
+        public static implicit operator Point(int i)
+        {
+            return new Point(i, i);
+        }
+        public static Point operator /(Point p, int d)
+        {
+            return new Point(p.X / d, p.Y / d);
+        }
+        public static Point operator *(Point p, int d)
+        {
+            return new Point(p.X * d, p.Y * d);
+        }
+        public static Point operator /(Point p, double d)
+        {
+            return new Point((int)(p.X / d), (int)(p.Y / d));
+        }
+        public static Point operator *(Point p, double d)
+        {
+            return new Point((int)(p.X * d), (int)(p.Y * d));
+        }
+        public static Point operator +(Point p1, Point p2)
+        {
+            return new Point(p1.X + p2.X, p1.Y + p2.Y);
+        }
+               public static Point operator +(Point p, int i)
+               {
+                       return new Point(p.X + i, p.Y + i);
+               }
+        public static Point operator -(Point p1, Point p2)
+        {
+            return new Point(p1.X - p2.X, p1.Y - p2.Y);
+        }
+        public static bool operator >=(Point p1, Point p2)
+        {
+            return p1.X >= p2.X && p1.Y >= p2.Y ? true : false;
+        }
+        public static bool operator <=(Point p1, Point p2)
+        {
+            return p1.X <= p2.X && p1.Y <= p2.Y ? true : false;
+        }
+        public static bool operator ==(Point s, int i)
+        {
+            if (s.X == i && s.Y == i)
+                return true;
+            else
+                return false;
+        }
+        public static bool operator !=(Point s, int i)
+        {
+            if (s.X == i && s.Y == i)
+                return false;
+            else
+                return true;
+        }
+        public static bool operator >(Point s, int i)
+        {
+            if (s.X > i && s.Y > i)
+                return true;
+            else
+                return false;
+        }
+        public static bool operator <(Point s, int i)
+        {
+            if (s.X < i && s.Y < i)
+                return true;
+            else
+                return false;
+        }
+        public static bool operator ==(Point s1, Point s2)
+        {
+            if (s1.X == s2.X  && s1.Y == s2.Y)
+                return true;
+            else
+                return false;
+        }
+        public static bool operator !=(Point s1, Point s2)
+        {
+            if (s1.X == s2.X && s1.Y == s2.Y)
+                return false;
+            else
+                return true;
+        }
+
+        public override string ToString()
+        {
+                       return string.Format("({0},{1})", X, Y);
+        }
+
+        public override bool Equals(object obj)
+        {
+            return base.Equals(obj);
+        }
+        public override int GetHashCode()
+        {
+            return base.GetHashCode();
+        }
+               public static Point Parse(string s)
+               {
+                       if (string.IsNullOrEmpty (s))
+                               return default(Point);
+                       string[] d = s.Trim().Split(',');
+                       if (d.Length == 2)
+                               return new Point (int.Parse (d [0]), int.Parse (d [1]));
+                       else if (d.Length == 1) {
+                               int tmp = int.Parse (d [0]);
+                               return new Point (tmp, tmp);
+                       }
+                       throw new Exception ("Crow.Point Parsing Error: " + s);
+               }
+    }
+
+}
diff --git a/Crow/src/vkvg/PointD.cs b/Crow/src/vkvg/PointD.cs
new file mode 100644 (file)
index 0000000..a36f817
--- /dev/null
@@ -0,0 +1,58 @@
+//
+// Mono.Context.cs
+//
+// Author:
+//   Duncan Mak (duncan@ximian.com)
+//   Miguel de Icaza (miguel@novell.com)
+//   Hisham Mardam Bey (hisham.mardambey@gmail.com)
+//   Alp Toker (alp@atoker.com)
+//
+// (C) Ximian Inc, 2003.
+// (C) Novell Inc, 2003.
+//
+// This is an OO wrapper API for the Cairo API.
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// 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.
+//
+
+namespace vkvg {
+
+       public struct PointD
+       {
+               public PointD (double x, double y)
+               {
+                       this.x = x;
+                       this.y = y;
+               }
+
+               double x, y;
+               public double X {
+                       get { return x; }
+                       set { x = value; }
+               }
+
+               public double Y {
+                       get { return y; }
+                       set { y = value; }
+               }
+       }
+}
diff --git a/Crow/src/vkvg/Surface.cs b/Crow/src/vkvg/Surface.cs
new file mode 100644 (file)
index 0000000..c1c2559
--- /dev/null
@@ -0,0 +1,105 @@
+//
+// Context.cs
+//
+// Author:
+//       Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// Copyright (c) 2018 jp
+//
+// 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.
+using System;
+
+namespace vkvg
+{
+       public class Surface: IDisposable
+       {               
+               IntPtr handle = IntPtr.Zero;
+               Device vkvgDev;
+
+               public Surface (Device device, int width, int heigth)
+               {
+                       vkvgDev = device;
+                       handle = NativeMethods.vkvg_surface_create (device.Handle, (uint)width, (uint)heigth);
+               }
+               public Surface (Device device, ref byte[] data, int width, int heigth)
+               {
+                       vkvgDev = device;
+                       handle = NativeMethods.vkvg_surface_create (device.Handle, (uint)width, (uint)heigth);
+               }
+               public Surface (Device device, string imgPath) {
+                       vkvgDev = device;
+                       handle = NativeMethods.vkvg_surface_create_from_image (device.Handle, imgPath);
+               }
+
+               Surface (IntPtr devHandle, int width, int heigth)
+               {
+                       handle = NativeMethods.vkvg_surface_create (devHandle, (uint)width, (uint)heigth);
+               }
+               ~Surface ()
+               {
+                       Dispose (false);
+               }
+
+               public IntPtr Handle { get { return handle; }}
+               public IntPtr VkImage { get { return NativeMethods.vkvg_surface_get_vk_image (handle); }}
+               public int Width { get { return NativeMethods.vkvg_surface_get_width (handle); }}
+               public int Height { get { return NativeMethods.vkvg_surface_get_height (handle); }}
+
+               public void AddReference () {
+                       NativeMethods.vkvg_surface_reference (handle);
+               }
+               public uint References () => NativeMethods.vkvg_surface_get_reference_count (handle);
+
+//             public Surface CreateSimilar (uint width, uint height) {
+//                     return new Surface (handle, width, height);
+//             }
+//             public Surface CreateSimilar (int width, int height) {
+//                     return new Surface (handle, (uint)width, (uint)height);
+//             }
+
+               public void Flush () {
+                       throw new NotImplementedException ();
+               }
+
+               public void WriteToPng (string path) {
+                       NativeMethods.vkvg_surface_write_to_png (handle, path);
+               }
+               public void Clear () {
+                       NativeMethods.vkvg_surface_clear (handle);
+               }
+
+               #region IDisposable implementation
+               public void Dispose ()
+               {
+                       Dispose (true);
+                       GC.SuppressFinalize (this);
+               }
+
+               protected virtual void Dispose (bool disposing)
+               {
+                       if (!disposing || handle == IntPtr.Zero)
+                               return;
+
+                       NativeMethods.vkvg_surface_destroy (handle);
+                       handle = IntPtr.Zero;
+               }
+               #endregion
+       }
+}
+
diff --git a/Crow/src/vkvg/TextExtents.cs b/Crow/src/vkvg/TextExtents.cs
new file mode 100644 (file)
index 0000000..2305d9a
--- /dev/null
@@ -0,0 +1,98 @@
+//
+// Mono.Cairo.TextExtents.cs
+//
+// Authors:
+//   Duncan Mak (duncan@ximian.com)
+//   Hisham Mardam Bey (hisham.mardambey@gmail.com)
+//
+// (C) Ximian, Inc. 2003
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// 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.
+//
+
+using System;
+using System.Runtime.InteropServices;
+
+namespace vkvg
+{
+       [StructLayout (LayoutKind.Sequential)]
+       public struct TextExtents
+       {
+               float xbearing;
+               float ybearing;
+               float width;
+               float height;
+               float xadvance;
+               float yadvance;
+               
+               public float XBearing {
+                       get { return xbearing; }
+                       set { xbearing = value; }
+               }
+               
+               public float YBearing {
+                       get { return ybearing; }
+                       set { ybearing = value; }
+               }
+               
+               public float Width {
+                       get { return width; }
+                       set { width = value; }
+               }
+               
+               public float Height {
+                       get { return height; }
+                       set { height = value; }
+               }
+               
+               public float XAdvance {
+                       get { return xadvance; }
+                       set { xadvance = value; }
+               }
+               
+               public float YAdvance {
+                       get { return yadvance; }
+                       set { yadvance = value; }
+               }
+
+               public override bool Equals (object obj)
+               {
+                       if (obj is TextExtents)
+                               return this == (TextExtents)obj;
+                       return false;
+               }
+
+               public override int GetHashCode ()
+               {
+                       return (int)XBearing ^ (int)YBearing ^ (int)Width ^ (int)Height ^ (int)XAdvance ^ (int)YAdvance;
+               }
+
+               public static bool operator == (TextExtents extents, TextExtents other)
+               {
+                       return extents.XBearing == other.XBearing && extents.YBearing == other.YBearing && extents.Width == other.Width && extents.Height == other.Height && extents.XAdvance == other.XAdvance && extents.YAdvance == other.YAdvance;
+               }
+
+               public static bool operator != (TextExtents extents, TextExtents other)
+               {
+                       return !(extents == other);
+               }
+       }
+}