public MainWindow() { InitializeComponent(); Closing += MainWindow_Closing; Closed += MainWindow_Closed; Loaded += MainWindow_Loaded; Application.Current.Deactivated += Current_Deactivated; var profile = LoadProfile(); _profile = new TimeProfileView(profile); _trayIcon = new TrayIcon(); _trayIcon.MainClick += _trayIcon_MainClick; _trayIcon.ExitClick += _trayIcon_ExitClick; _timeKeeper = new TimeKeeper(profile); _timeKeeper.NodeElapsed += TimeKeeperNodeElapsed; _timeKeeper.CurrentChanged += TimeKeeperCurrentChanged; _timeKeeper.Start(); _currentTimeNodeView = new TimeNodeView(); CurrentNode.DataContext = _currentTimeNodeView; SetCurrentValues(); }
public void TestRemoveSelectedTimelineEventUpdatesSelections() { TimeNodeView timeNodeView = timeline.Objects.OfType <EventTypeTimelineView> ().FirstOrDefault().GetNodeAtPosition(10); //Act Selection widgetMock.Raise(w => w.ButtonPressEvent += null, new Point(timeNodeView.Area.TopLeft.X + 1, timeNodeView.Area.TopLeft.Y + 1), (uint)0, ButtonType.Left, ButtonModifier.None, ButtonRepetition.Single); //Assert Selection Assert.IsTrue(timeline.Selections.Any()); Assert.AreEqual(timeNodeView, timeline.Selections [0].Drawable as TimeNodeView); //Act Remove projectVM.Timeline.EventTypesTimeline.FirstOrDefault().ViewModels.Remove(timeNodeView.TimeNode as TimelineEventVM); //Assert Remove Assert.IsFalse(timeline.Selections.Any()); }
private void UpdateFirstLast(TimeNodeView lastNode, TimeNodeView firstNode) { var brightness = (int)LinearNodeInterpolation.Interpolate(TimeSpan.Zero, lastNode.UnderlyingNode, firstNode.UnderlyingNode, NodeProperty.Brightness); var temperature = (int)LinearNodeInterpolation.Interpolate(TimeSpan.Zero, lastNode.UnderlyingNode, firstNode.UnderlyingNode, NodeProperty.ColorTemperature); SetGradientStop(TimeSpan.Zero, brightness, temperature, BackgroundBrush.GradientStops[0]); SetGradientStop(TimeSpan.FromDays(1), brightness, temperature, BackgroundBrush.GradientStops[1]); var firstLine = GraphCanvas.Children.OfType <Line>().First(_ => _.Name == "FirstLine"); var lastLine = GraphCanvas.Children.OfType <Line>().First(_ => _.Name == "LastLine"); var brightnessPercentage = ((double)brightness - TimeProfile.MinBrightness) / (TimeProfile.MaxBrightness - TimeProfile.MinBrightness); var brightnessAbsoluteHeight = (1d - brightnessPercentage) * GraphCanvas.ActualHeight; firstLine.Y1 = brightnessAbsoluteHeight; lastLine.Y2 = brightnessAbsoluteHeight; lastLine.X2 = GraphCanvas.ActualWidth; }
public SettingsGraphNode(TimeNodeView node) { Node = node; InitializeComponent(); Cursor = Cursors.SizeWE; Loaded += (sender, args) => SetPositions(); Node.PropertyChanged += (sender, args) => { if (DraggingType == NodeType.None) { SetPositions(); } }; Divider.MouseLeftButtonDown += (sender, args) => DraggingType = NodeType.Time; BrightnessNode.MouseLeftButtonDown += (sender, args) => DraggingType = NodeType.Brightness; TemperatureNode.MouseLeftButtonDown += (sender, args) => DraggingType = NodeType.Temperature; }
private void SetGradientStop(TimeNodeView node, GradientStop gradientStop) { SetGradientStop(node.TimeOfDay, node.Brightness, node.Temperature, gradientStop); }