|
4 | 4 | using System.Windows.Controls; |
5 | 5 | using Flow.Launcher.Resources.Pages; |
6 | 6 | using ModernWpf.Media.Animation; |
| 7 | +using CommunityToolkit.Mvvm.DependencyInjection; |
| 8 | +using Flow.Launcher.ViewModel; |
| 9 | +using Flow.Launcher.Infrastructure.UserSettings; |
7 | 10 |
|
8 | 11 | namespace Flow.Launcher |
9 | 12 | { |
10 | 13 | public partial class WelcomeWindow : Window |
11 | 14 | { |
12 | | - public WelcomeWindow() |
13 | | - { |
14 | | - InitializeComponent(); |
15 | | - BackButton.IsEnabled = false; |
16 | | - } |
| 15 | + private readonly WelcomeViewModel _viewModel; |
17 | 16 |
|
18 | | - private NavigationTransitionInfo _transitionInfo = new SlideNavigationTransitionInfo() |
| 17 | + private readonly NavigationTransitionInfo _forwardTransitionInfo = new SlideNavigationTransitionInfo() |
19 | 18 | { |
20 | 19 | Effect = SlideNavigationTransitionEffect.FromRight |
21 | 20 | }; |
22 | | - private NavigationTransitionInfo _backTransitionInfo = new SlideNavigationTransitionInfo() |
| 21 | + private readonly NavigationTransitionInfo _backTransitionInfo = new SlideNavigationTransitionInfo() |
23 | 22 | { |
24 | 23 | Effect = SlideNavigationTransitionEffect.FromLeft |
25 | 24 | }; |
26 | 25 |
|
27 | | - private int pageNum = 1; |
28 | | - private int MaxPage = 5; |
29 | | - public string PageDisplay => $"{pageNum}/5"; |
| 26 | + public WelcomeWindow() |
| 27 | + { |
| 28 | + _viewModel = Ioc.Default.GetRequiredService<WelcomeViewModel>(); |
| 29 | + DataContext = _viewModel; |
| 30 | + InitializeComponent(); |
| 31 | + } |
30 | 32 |
|
31 | | - private void UpdateView() |
| 33 | + private void ForwardButton_Click(object sender, RoutedEventArgs e) |
32 | 34 | { |
33 | | - PageNavigation.Text = PageDisplay; |
34 | | - if (pageNum == 1) |
| 35 | + if (_viewModel.PageNum < WelcomeViewModel.MaxPageNum) |
35 | 36 | { |
36 | | - BackButton.IsEnabled = false; |
37 | | - NextButton.IsEnabled = true; |
38 | | - } |
39 | | - else if (pageNum == MaxPage) |
40 | | - { |
41 | | - BackButton.IsEnabled = true; |
42 | | - NextButton.IsEnabled = false; |
| 37 | + _viewModel.PageNum++; |
| 38 | + ContentFrame.Navigate(PageTypeSelector(_viewModel.PageNum), null, _forwardTransitionInfo); |
43 | 39 | } |
44 | 40 | else |
45 | 41 | { |
46 | | - BackButton.IsEnabled = true; |
47 | | - NextButton.IsEnabled = true; |
| 42 | + _viewModel.NextEnabled = false; |
48 | 43 | } |
49 | 44 | } |
50 | 45 |
|
51 | | - private void ForwardButton_Click(object sender, RoutedEventArgs e) |
52 | | - { |
53 | | - pageNum++; |
54 | | - UpdateView(); |
55 | | - |
56 | | - ContentFrame.Navigate(PageTypeSelector(pageNum), null, _transitionInfo); |
57 | | - } |
58 | | - |
59 | 46 | private void BackwardButton_Click(object sender, RoutedEventArgs e) |
60 | 47 | { |
61 | | - if (pageNum > 1) |
| 48 | + if (_viewModel.PageNum > 1) |
62 | 49 | { |
63 | | - pageNum--; |
64 | | - UpdateView(); |
65 | | - ContentFrame.Navigate(PageTypeSelector(pageNum), null, _backTransitionInfo); |
| 50 | + _viewModel.PageNum--; |
| 51 | + ContentFrame.Navigate(PageTypeSelector(_viewModel.PageNum), null, _backTransitionInfo); |
66 | 52 | } |
67 | 53 | else |
68 | 54 | { |
69 | | - BackButton.IsEnabled = false; |
| 55 | + _viewModel.BackEnabled = false; |
70 | 56 | } |
71 | 57 | } |
72 | 58 |
|
@@ -107,5 +93,11 @@ private void ContentFrame_Loaded(object sender, RoutedEventArgs e) |
107 | 93 | { |
108 | 94 | ContentFrame.Navigate(PageTypeSelector(1)); /* Set First Page */ |
109 | 95 | } |
| 96 | + |
| 97 | + private void Window_Closed(object sender, EventArgs e) |
| 98 | + { |
| 99 | + // Save settings when window is closed |
| 100 | + Ioc.Default.GetRequiredService<Settings>().Save(); |
| 101 | + } |
110 | 102 | } |
111 | 103 | } |
0 commit comments