1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192
|
using System;
using System.Runtime.InteropServices;
namespace MyGUI.Sharp
{
public class InputManager
{
#region Instance
private static InputManager mInstance = new InputManager();
public static InputManager Instance
{
get { return mInstance; }
}
#endregion
#region KeyFocus
[DllImport(DllName.m_dllName, CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.U1)]
private static extern bool ExportInputManager_GetKeyFocus();
public bool KeyFocus
{
get { return ExportInputManager_GetKeyFocus(); }
}
#endregion
#region KeyFocusWidget
[DllImport(DllName.m_dllName, CallingConvention = CallingConvention.Cdecl)]
private static extern IntPtr ExportInputManager_GetKeyFocusWidget();
[DllImport(DllName.m_dllName, CallingConvention = CallingConvention.Cdecl)]
private static extern void ExportInputManager_SetKeyFocusWidget(IntPtr _widget);
public Widget KeyFocusWidget
{
get { return (Widget)BaseWidget.GetByNative(ExportInputManager_GetKeyFocusWidget()); }
set { ExportInputManager_SetKeyFocusWidget(value == null ? IntPtr.Zero : value.Native); }
}
#endregion
#region MouseFocus
[DllImport(DllName.m_dllName, CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.U1)]
private static extern bool ExportInputManager_GetMouseFocus();
public bool MouseFocus
{
get { return ExportInputManager_GetMouseFocus(); }
}
#endregion
#region MouseFocusWidget
[DllImport(DllName.m_dllName, CallingConvention = CallingConvention.Cdecl)]
private static extern IntPtr ExportInputManager_GetMouseFocusWidget();
public Widget MouseFocusWidget
{
get { return (Widget)BaseWidget.GetByNative(ExportInputManager_GetMouseFocusWidget()); }
}
#endregion
#region ResetKeyFocus
[DllImport(DllName.m_dllName, CallingConvention = CallingConvention.Cdecl)]
private static extern void ExportInputManager_ResetKeyFocusWidget();
public void ResetKeyFocus()
{
ExportInputManager_ResetKeyFocusWidget();
}
#endregion
#region AddWidgetModal
[DllImport(DllName.m_dllName, CallingConvention = CallingConvention.Cdecl)]
private static extern void ExportInputManager_AddWidgetModal(IntPtr _widget);
public void AddWidgetModal(Widget _widget)
{
ExportInputManager_AddWidgetModal(_widget.Native);
}
#endregion
#region RemoveWidgetModal
[DllImport(DllName.m_dllName, CallingConvention = CallingConvention.Cdecl)]
private static extern void ExportInputManager_RemoveWidgetModal(IntPtr _widget);
public void RemoveWidgetModal(Widget _widget)
{
ExportInputManager_RemoveWidgetModal(_widget.Native);
}
#endregion
#region InjectKeyPress
[DllImport(DllName.m_dllName, CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.U1)]
private static extern bool ExportInputManager_InjectKeyPress(KeyCode _keyCode, uint _char);
public bool InjectKeyPress(KeyCode _keyCode, uint _char)
{
return ExportInputManager_InjectKeyPress(_keyCode, _char);
}
#endregion
#region InjectKeyRelease
[DllImport(DllName.m_dllName, CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.U1)]
private static extern bool ExportInputManager_InjectKeyRelease(KeyCode _keyCode);
public bool InjectKeyRelease(KeyCode _keyCode)
{
return ExportInputManager_InjectKeyRelease(_keyCode);
}
#endregion
#region InjectMousePress
[DllImport(DllName.m_dllName, CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.U1)]
private static extern bool ExportInputManager_InjectMousePress(int _absX, int _absY, MouseButton _mouseButton);
public bool InjectMousePress(int _absX, int _absY, MouseButton _mouseButton)
{
return ExportInputManager_InjectMousePress(_absX, _absY, _mouseButton);
}
#endregion
#region InjectMouseRelease
[DllImport(DllName.m_dllName, CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.U1)]
private static extern bool ExportInputManager_InjectMouseRelease(int _absX, int _absY, MouseButton _mouseButton);
public bool InjectMouseRelease(int _absX, int _absY, MouseButton _mouseButton)
{
return ExportInputManager_InjectMouseRelease(_absX, _absY, _mouseButton);
}
#endregion
#region InjectMouseMove
[DllImport(DllName.m_dllName, CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.U1)]
private static extern bool ExportInputManager_InjectMouseMove(int _absX, int _absY, int _absZ);
public bool InjectMouseMove(int _absX, int _absY, int _absZ)
{
return ExportInputManager_InjectMouseMove(_absX, _absY, _absZ);
}
#endregion
#region MousePosition
[DllImport(DllName.m_dllName, CallingConvention = CallingConvention.Cdecl)]
private static extern void ExportInputManager_GetMousePosition(
[Out, MarshalAs(UnmanagedType.I4)] out int _x,
[Out, MarshalAs(UnmanagedType.I4)] out int _y);
public IntPoint MousePosition
{
get
{
IntPoint result = new IntPoint();
ExportInputManager_GetMousePosition(out result.left, out result.top);
return result;
}
}
#endregion
}
}
|