Exemple #1
0
        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();
        }
Exemple #2
0
        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;
        }
Exemple #4
0
        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);
 }