|
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