本文整理汇总了C#中System.Windows.Forms.XEvent.ToString方法的典型用法代码示例。如果您正苦于以下问题:C# XEvent.ToString方法的具体用法?C# XEvent.ToString怎么用?C# XEvent.ToString使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Windows.Forms.XEvent
的用法示例。
在下文中一共展示了XEvent.ToString方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: UpdateMessageQueue
void UpdateMessageQueue (XEventQueue queue, bool allowIdle) {
DateTime now;
int pending;
Hwnd hwnd;
now = DateTime.UtcNow;
lock (XlibLock) {
pending = XPending (DisplayHandle);
}
if (pending == 0 && allowIdle) {
if ((queue == null || queue.DispatchIdle) && Idle != null) {
Idle (this, EventArgs.Empty);
}
lock (XlibLock) {
pending = XPending (DisplayHandle);
}
}
if (pending == 0) {
int timeout = 0;
if (queue != null) {
if (queue.Paint.Count > 0)
return;
timeout = NextTimeout (queue.timer_list, now);
}
if (timeout > 0) {
#if __MonoCS__
int length = pollfds.Length - 1;
lock (wake_waiting_lock) {
if (wake_waiting == false) {
length ++;
wake_waiting = true;
}
}
Syscall.poll (pollfds, (uint)length, timeout);
// Clean out buffer, so we're not busy-looping on the same data
if (length == pollfds.Length) {
if (pollfds[1].revents != 0)
wake_receive.Receive(network_buffer, 0, 1, SocketFlags.None);
lock (wake_waiting_lock) {
wake_waiting = false;
}
}
#endif
lock (XlibLock) {
pending = XPending (DisplayHandle);
}
}
}
if (queue != null)
CheckTimers (queue.timer_list, now);
while (true) {
XEvent xevent = new XEvent ();
lock (XlibLock) {
if (XPending (DisplayHandle) == 0)
break;
XNextEvent (DisplayHandle, ref xevent);
if (xevent.AnyEvent.type == XEventName.KeyPress ||
xevent.AnyEvent.type == XEventName.KeyRelease) {
// PreFilter() handles "shift key state updates.
Keyboard.PreFilter (xevent);
if (XFilterEvent (ref xevent, Keyboard.ClientWindow)) {
// probably here we could raise WM_IME_KEYDOWN and
// WM_IME_KEYUP, but I'm not sure it is worthy.
continue;
}
}
else if (XFilterEvent (ref xevent, IntPtr.Zero))
continue;
}
hwnd = Hwnd.GetObjectFromWindow(xevent.AnyEvent.window);
if (hwnd == null)
continue;
DebugHelper.WriteLine ("UpdateMessageQueue got Event: " + xevent.ToString ());
switch (xevent.type) {
case XEventName.Expose:
AddExpose (hwnd, xevent.ExposeEvent.window == hwnd.ClientWindow, xevent.ExposeEvent.x, xevent.ExposeEvent.y, xevent.ExposeEvent.width, xevent.ExposeEvent.height);
break;
case XEventName.SelectionClear: {
// Should we do something?
break;
}
case XEventName.SelectionRequest: {
//.........这里部分代码省略.........