aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.ServerApplication/MainWindow.xaml.cs
blob: 3839dc52e23c022d98ad5a4570e3fe2d001e6cce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
using Hardcodet.Wpf.TaskbarNotification;
using System;
using System.ComponentModel;
using System.Threading;
using System.Windows;

namespace MediaBrowser.ServerApplication
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window, INotifyPropertyChanged
    {
        public MainWindow()
        {
            InitializeComponent();
            Loaded += MainWindow_Loaded;
        }

        void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            DataContext = this;
        }

        public event PropertyChangedEventHandler PropertyChanged;

        public void OnPropertyChanged(String info)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(info));
            }
        }

        private int _loadingImageIndex;
        public int LoadingImageIndex
        {
            get { return _loadingImageIndex; }
            set
            {
                _loadingImageIndex = value;
                OnPropertyChanged("LoadingImageIndex");
            }
        }

        #region Context Menu events

        private void cmOpenDashboard_click(object sender, RoutedEventArgs e)
        {
            App.OpenDashboard();
        }

        private void cmVisitCT_click(object sender, RoutedEventArgs e)
        {
            App.OpenUrl("http://community.mediabrowser.tv/");
        }

        private void cmExit_click(object sender, RoutedEventArgs e)
        {
            Close();
        }

        private async void cmdReloadServer_click(object sender, RoutedEventArgs e)
        {
            MbTaskbarIcon.ShowBalloonTip("Media Browser is reloading", "Please wait...", BalloonIcon.Info);

            LoadingImageIndex = 0;

            Timer timer = new Timer(LoadingIconTimerCallback, null, 0, 250);

            await (Application.Current as App).ReloadKernel().ConfigureAwait(false);

            timer.Dispose();

            LoadingImageIndex = 0;
        }

        private void LoadingIconTimerCallback(object stateInfo)
        {
            const int numImages = 4;

            if (LoadingImageIndex < numImages)
            {
                LoadingImageIndex++;
            }
            else
            {
                LoadingImageIndex = 1;
            }
        }

        #endregion

    }
}