// -------------------------------------------------------------------------- /// <summary> /// ctor /// </summary> // -------------------------------------------------------------------------- public NotificationWidget(TimerInstance data, AppModel appModel, double location) { InitializeComponent(); this._data = data; this._appModel = appModel; this.DataContext = data; LocationTheta = location; data.OnDismiss += () => this.Close(); this.Loaded += (a, b) => { _draggingLogic = new DraggingLogic(this, this); _draggingLogic.OnPositionChanged += (xm, ym) => { Center = new Point(Center.X + xm / _draggingLogic.DpiCorrectionX, Center.Y + ym / _draggingLogic.DpiCorrectionY); }; }; }
// -------------------------------------------------------------------------- /// <summary> /// ctor /// </summary> // -------------------------------------------------------------------------- public MainWindow() { _theModel = new AppModel((runme) => { Dispatcher.Invoke(runme); }); _theModel.OnCenter += HandleOnCenter; InitializeComponent(); CompositionTarget.Rendering += AnimateFrame; this.Loaded += MainWindow_Loaded; this.DataContext = _theModel; _theModel.OnNotification += HandleNewNotification; int maxLocations = 10; var thetaSlice = (Math.PI * 2) / maxLocations; for (int i = 0; i < maxLocations; i++) { _emptyNotificationLocations.Add(thetaSlice * i); } }