Files
Wino-Mail/Wino.Calendar/Views/AppShell.xaml.cs

54 lines
1.8 KiB
C#
Raw Normal View History

using CommunityToolkit.Mvvm.Messaging;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Wino.Calendar.Views.Abstract;
2025-01-14 00:53:54 +01:00
using Wino.Core.UWP;
using Wino.Messaging.Client.Calendar;
2025-05-18 14:06:25 +02:00
namespace Wino.Calendar.Views;
public sealed partial class AppShell : AppShellAbstract,
IRecipient<CalendarDisplayTypeChangedMessage>
{
2025-05-18 14:06:25 +02:00
private const string STATE_HorizontalCalendar = "HorizontalCalendar";
private const string STATE_VerticalCalendar = "VerticalCalendar";
public Frame GetShellFrame() => ShellFrame;
public AppShell()
{
2025-05-18 14:06:25 +02:00
InitializeComponent();
2025-05-18 14:06:25 +02:00
Window.Current.SetTitleBar(DragArea);
ManageCalendarDisplayType();
}
2025-05-18 14:06:25 +02:00
private void ManageCalendarDisplayType()
{
// Go to different states based on the display type.
if (ViewModel.IsVerticalCalendar)
{
2025-05-18 14:06:25 +02:00
VisualStateManager.GoToState(this, STATE_VerticalCalendar, false);
}
2025-05-18 14:06:25 +02:00
else
{
2025-05-18 14:06:25 +02:00
VisualStateManager.GoToState(this, STATE_HorizontalCalendar, false);
}
2025-05-18 14:06:25 +02:00
}
2025-05-18 14:06:25 +02:00
private void PreviousDateClicked(object sender, RoutedEventArgs e) => WeakReferenceMessenger.Default.Send(new GoPreviousDateRequestedMessage());
2025-05-18 14:06:25 +02:00
private void NextDateClicked(object sender, RoutedEventArgs e) => WeakReferenceMessenger.Default.Send(new GoNextDateRequestedMessage());
2025-05-18 14:06:25 +02:00
public void Receive(CalendarDisplayTypeChangedMessage message)
{
ManageCalendarDisplayType();
}
2025-01-14 00:53:54 +01:00
2025-05-18 14:06:25 +02:00
private void ShellFrameContentNavigated(object sender, Windows.UI.Xaml.Navigation.NavigationEventArgs e)
=> RealAppBar.ShellFrameContent = (e.Content as BasePage).ShellContent;
2025-01-14 00:53:54 +01:00
2025-05-18 14:06:25 +02:00
private void AppBarBackButtonClicked(Core.UWP.Controls.WinoAppTitleBar sender, RoutedEventArgs args)
=> ViewModel.NavigationService.GoBack();
}