private void Configure() { lock (_syncRoot) { if (_configuration != null) { return; } var cfg = CreateConfiguration(); var keyboardEventHandler = cfg.KeyboardEventHandler ?? new BlockAllKeyInputEventHandler(); _configuration = cfg; _lifetimeSupervisor = cfg.LifetimeSupervisor; _lifetimeSupervisor.UseDispatcher(cfg.Dispatcher); _displaySupervisor = new NotificationsDisplaySupervisor( cfg.Dispatcher, cfg.PositionProvider, cfg.LifetimeSupervisor, cfg.DisplayOptions, keyboardEventHandler); } }
public void Dispose() { _window?.Close(); _window = null; _lifetimeSupervisor.ShowNotificationRequested -= LifetimeSupervisorOnShowNotificationRequested; _lifetimeSupervisor.CloseNotificationRequested -= LifetimeSupervisorOnCloseNotificationRequested; _positionProvider.UpdatePositionRequested -= PositionProviderOnUpdatePositionRequested; _positionProvider.UpdateEjectDirectionRequested -= PositionProviderOnUpdateEjectDirectionRequested; _positionProvider.UpdateHeightRequested -= PositionProviderOnUpdateHeightRequested; _lifetimeSupervisor = null; }
public NotificationsDisplaySupervisor(Dispatcher dispatcher, IPositionProvider positionProvider, INotificationsLifetimeSupervisor lifetimeSupervisor, DisplayOptions displayOptions, IKeyboardEventHandler keyboardEventHandler) { _dispatcher = dispatcher; _positionProvider = positionProvider; _lifetimeSupervisor = lifetimeSupervisor; _displayOptions = displayOptions; _keyboardEventHandler = keyboardEventHandler; _lifetimeSupervisor.ShowNotificationRequested += LifetimeSupervisorOnShowNotificationRequested; _lifetimeSupervisor.CloseNotificationRequested += LifetimeSupervisorOnCloseNotificationRequested; _positionProvider.UpdatePositionRequested += PositionProviderOnUpdatePositionRequested; _positionProvider.UpdateEjectDirectionRequested += PositionProviderOnUpdateEjectDirectionRequested; _positionProvider.UpdateHeightRequested += PositionProviderOnUpdateHeightRequested; }
protected virtual void Dispose(bool disposing) { if (_disposed) { return; } if (disposing) { _window?.Close(); _window = null; _lifetimeSupervisor.ShowNotificationRequested -= LifetimeSupervisorOnShowNotificationRequested; _lifetimeSupervisor.CloseNotificationRequested -= LifetimeSupervisorOnCloseNotificationRequested; _positionProvider.UpdatePositionRequested -= PositionProviderOnUpdatePositionRequested; _positionProvider.UpdateEjectDirectionRequested -= PositionProviderOnUpdateEjectDirectionRequested; _positionProvider.UpdateHeightRequested -= PositionProviderOnUpdateHeightRequested; _lifetimeSupervisor = null; } _disposed = true; }