public virtual void Show() { showing = true; gameObject.SetActive(true); OnShow(); OnWindowOpen.Invoke(); }
/// <summary> /// Opens a window. /// </summary> /// <param name="window">The type of window to open.</param> public static void OpenWindow(WindowTypes window) { OnWindowOpen?.Invoke(windows[(int)window]); }
private void WinWatcher(object sender, DoWorkEventArgs e) { Dictionary <IntPtr, Window> knownWindows = GetWindows(); while (!Cancel) { Thread.Sleep(100); // no cpu hogging IntPtr top = GetForegroundWindow(); Stack <IntPtr> openWindows = WinEnum.Enum(); var closed = knownWindows.Keys.Except(openWindows).ToArray(); // 3-21-15 It needs to be copied. Don't use the ExceptIterator if (OnWindowClose == null) { foreach (IntPtr hwnd in closed) { knownWindows.Remove(hwnd); } } else { foreach (IntPtr hwnd in closed) { Window win = knownWindows[hwnd]; if (!win.IsTitleEmpty()) { OnWindowClose.Invoke(win, EventArgs.Empty); } knownWindows.Remove(hwnd); } } while (openWindows.Count > 0) { IntPtr hwnd = openWindows.Pop(); Window win; if (knownWindows.TryGetValue(hwnd, out win)) { win.Update(top == hwnd); while (win.QueueCount > 0) { SysEvent sysEvent = win.Dequeue(); if (OnWindowMinimize != null && sysEvent == SysEvent.OnWindowMinimize) { OnWindowMinimize.Invoke(win, EventArgs.Empty); } if (OnWindowMaximize != null && sysEvent == SysEvent.OnWindowMaximize) { OnWindowMaximize.Invoke(win, EventArgs.Empty); } if (OnWindowTitleChange != null && sysEvent == SysEvent.OnWindowTitleChange) { OnWindowTitleChange.Invoke(win, EventArgs.Empty); } if (OnWindowFocus != null && sysEvent == SysEvent.OnWindowFocus) { OnWindowFocus.Invoke(win, EventArgs.Empty); } if (OnWindowNoFocus != null && sysEvent == SysEvent.OnWindowNoFocus) { OnWindowNoFocus.Invoke(win, EventArgs.Empty); } if (OnWindowHide != null && sysEvent == SysEvent.OnWindowHide) { OnWindowHide.Invoke(win, EventArgs.Empty); } if (OnWindowShow != null && sysEvent == SysEvent.OnWindowShow) { OnWindowShow.Invoke(win, EventArgs.Empty); } } } else { win = new Window(hwnd, top == hwnd); if (OnWindowOpen != null && !win.IsTitleEmpty()) { OnWindowOpen.Invoke(win, EventArgs.Empty); } knownWindows.Add(hwnd, win); } } } e.Cancel = true; }
private void Subsribe() { _manager.RdpViewer.OnApplicationClose += delegate(object application) { OnApplicationClose?.Invoke(application); }; _manager.RdpViewer.OnApplicationOpen += delegate(object application) { OnApplicationOpen?.Invoke(application); }; _manager.RdpViewer.OnApplicationUpdate += delegate(object application) { OnApplicationUpdate?.Invoke(application); }; _manager.RdpViewer.OnAttendeeConnected += delegate(object attendee) { OnAttendeeConnected?.Invoke(attendee); }; _manager.RdpViewer.OnAttendeeDisconnected += delegate(object info) { OnAttendeeDisconnected?.Invoke(info); }; _manager.RdpViewer.OnAttendeeUpdate += delegate(object attendee) { OnAttendeeUpdate?.Invoke(attendee); }; _manager.RdpViewer.OnChannelDataReceived += delegate(object channel, int id, string data) { OnChannelDataReceived?.Invoke(channel, id, data); }; _manager.RdpViewer.OnChannelDataSent += delegate(object channel, int id, int sent) { OnChannelDataSent?.Invoke(channel, id, sent); }; _manager.RdpViewer.OnConnectionAuthenticated += delegate(object sender, EventArgs args) { OnConnectionAuthenticated?.Invoke(sender, args); }; _manager.RdpViewer.OnConnectionEstablished += delegate(object sender, EventArgs args) { OnConnectionEstablished?.Invoke(sender, args); }; _manager.RdpViewer.OnConnectionFailed += delegate(object sender, EventArgs args) { OnConnectionFailed?.Invoke(sender, args); }; _manager.RdpViewer.OnConnectionTerminated += delegate(int reason, int info) { OnConnectionTerminated?.Invoke(reason, info); }; _manager.RdpViewer.OnControlLevelChangeRequest += delegate(object attendee, CTRL_LEVEL level) { OnControlLevelChangeRequest?.Invoke(attendee, level); }; _manager.RdpViewer.OnError += delegate(object info) { OnError?.Invoke(info); }; _manager.RdpViewer.OnFocusReleased += delegate(int direction) { OnFocusReleased?.Invoke(direction); }; _manager.RdpViewer.OnGraphicsStreamPaused += delegate(object sender, EventArgs args) { OnGraphicsStreamPaused?.Invoke(sender, args); }; _manager.RdpViewer.OnGraphicsStreamResumed += delegate(object sender, EventArgs args) { OnGraphicsStreamResumed?.Invoke(sender, args); }; _manager.RdpViewer.OnSharedDesktopSettingsChanged += delegate(int width, int height, int colordepth) { OnSharedDesktopSettingsChanged?.Invoke(width, height, colordepth); }; _manager.RdpViewer.OnSharedRectChanged += delegate(int left, int top, int right, int bottom) { OnSharedRectChanged?.Invoke(left, top, right, bottom); }; _manager.RdpViewer.OnWindowClose += delegate(object window) { OnWindowClose?.Invoke(window); }; _manager.RdpViewer.OnWindowOpen += delegate(object window) { OnWindowOpen?.Invoke(window); }; _manager.RdpViewer.OnWindowUpdate += delegate(object window) { OnWindowUpdate?.Invoke(window); }; }