Calendar buttons etc.
This commit is contained in:
@@ -38,10 +38,7 @@ public partial class CustomCalendarFlipView : FlipView
|
||||
{
|
||||
base.OnApplyTemplate();
|
||||
|
||||
PreviousButtonHorizontal = GetTemplateChild(PART_PreviousButtonHorizontal) as Button;
|
||||
NextButtonHorizontal = GetTemplateChild(PART_NextButtonHorizontal) as Button;
|
||||
PreviousButtonVertical = GetTemplateChild(PART_PreviousButtonVertical) as Button;
|
||||
NextButtonVertical = GetTemplateChild(PART_NextButtonVertical) as Button;
|
||||
RefreshNavigationButtons();
|
||||
|
||||
// Hide navigation buttons
|
||||
HideButton(PreviousButtonHorizontal);
|
||||
@@ -78,25 +75,47 @@ public partial class CustomCalendarFlipView : FlipView
|
||||
|
||||
public void GoPreviousFlip()
|
||||
{
|
||||
var previousButton = DisplayType == CalendarDisplayType.Month
|
||||
? PreviousButtonVertical ?? PreviousButtonHorizontal
|
||||
: PreviousButtonHorizontal ?? PreviousButtonVertical;
|
||||
|
||||
if (previousButton == null) return;
|
||||
|
||||
var backPeer = new ButtonAutomationPeer(previousButton);
|
||||
backPeer.Invoke();
|
||||
InvokeNavigationButton(PreviousButtonHorizontal, PreviousButtonVertical);
|
||||
}
|
||||
|
||||
public void GoNextFlip()
|
||||
{
|
||||
var nextButton = DisplayType == CalendarDisplayType.Month
|
||||
? NextButtonVertical ?? NextButtonHorizontal
|
||||
: NextButtonHorizontal ?? NextButtonVertical;
|
||||
InvokeNavigationButton(NextButtonHorizontal, NextButtonVertical);
|
||||
}
|
||||
|
||||
if (nextButton == null) return;
|
||||
private void RefreshNavigationButtons()
|
||||
{
|
||||
PreviousButtonHorizontal = GetTemplateChild(PART_PreviousButtonHorizontal) as Button;
|
||||
NextButtonHorizontal = GetTemplateChild(PART_NextButtonHorizontal) as Button;
|
||||
PreviousButtonVertical = GetTemplateChild(PART_PreviousButtonVertical) as Button;
|
||||
NextButtonVertical = GetTemplateChild(PART_NextButtonVertical) as Button;
|
||||
}
|
||||
|
||||
var nextPeer = new ButtonAutomationPeer(nextButton);
|
||||
nextPeer.Invoke();
|
||||
private void InvokeNavigationButton(Button? primaryButton, Button? secondaryButton)
|
||||
{
|
||||
if (Items == null || Items.Count == 0)
|
||||
return;
|
||||
|
||||
RefreshNavigationButtons();
|
||||
|
||||
var previousIndex = SelectedIndex;
|
||||
|
||||
if (TryInvokeNavigationButton(primaryButton, previousIndex))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
TryInvokeNavigationButton(secondaryButton, previousIndex);
|
||||
}
|
||||
|
||||
private bool TryInvokeNavigationButton(Button? navigationButton, int previousIndex)
|
||||
{
|
||||
if (navigationButton == null)
|
||||
return false;
|
||||
|
||||
var peer = new ButtonAutomationPeer(navigationButton);
|
||||
peer.Invoke();
|
||||
|
||||
return SelectedIndex != previousIndex;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -92,27 +92,17 @@
|
||||
BorderBrush="Transparent"
|
||||
Visibility="{x:Bind helpers:XamlHelpers.ReverseBoolToVisibilityConverter(PreferencesService.IsWinoAccountButtonHidden), Mode=OneWay}">
|
||||
<Button.Flyout>
|
||||
<Flyout
|
||||
x:Name="WinoAccountFlyout"
|
||||
Placement="Bottom">
|
||||
<Flyout x:Name="WinoAccountFlyout" Placement="Bottom">
|
||||
<Grid MinWidth="320" MaxWidth="360">
|
||||
<StackPanel
|
||||
x:Name="WinoAccountSignedOutView"
|
||||
Spacing="12">
|
||||
<TextBlock
|
||||
Style="{StaticResource BodyStrongTextBlockStyle}"
|
||||
Text="{x:Bind domain:Translator.WinoAccount_Titlebar_SignedOutTitle}" />
|
||||
<StackPanel x:Name="WinoAccountSignedOutView" Spacing="12">
|
||||
<TextBlock Style="{StaticResource BodyStrongTextBlockStyle}" Text="{x:Bind domain:Translator.WinoAccount_Titlebar_SignedOutTitle}" />
|
||||
<TextBlock
|
||||
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
|
||||
Text="{x:Bind domain:Translator.WinoAccount_Titlebar_SignedOutDescription}"
|
||||
TextWrapping="WrapWholeWords" />
|
||||
<StackPanel Orientation="Horizontal" Spacing="8">
|
||||
<Button
|
||||
Click="RegisterWinoAccountClicked"
|
||||
Content="{x:Bind domain:Translator.WinoAccount_RegisterButton_Action}" />
|
||||
<Button
|
||||
Click="LoginWinoAccountClicked"
|
||||
Content="{x:Bind domain:Translator.WinoAccount_LoginButton_Action}" />
|
||||
<Button Click="RegisterWinoAccountClicked" Content="{x:Bind domain:Translator.WinoAccount_RegisterButton_Action}" />
|
||||
<Button Click="LoginWinoAccountClicked" Content="{x:Bind domain:Translator.WinoAccount_LoginButton_Action}" />
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
|
||||
@@ -155,13 +145,12 @@
|
||||
<Border
|
||||
x:Name="WinoAccountSignedOutIcon"
|
||||
Width="30"
|
||||
Height="30"
|
||||
Background="{ThemeResource AccentFillColorDefaultBrush}"
|
||||
CornerRadius="15">
|
||||
<FontIcon
|
||||
Height="30">
|
||||
<Image Source="/Assets/AppEntries/MailAssets/Square150x150Logo.png" />
|
||||
<!--<FontIcon
|
||||
FontSize="16"
|
||||
Foreground="White"
|
||||
Glyph="" />
|
||||
Glyph="" />-->
|
||||
</Border>
|
||||
</Grid>
|
||||
</Button>
|
||||
|
||||
@@ -63,87 +63,6 @@
|
||||
</Style>
|
||||
</Page.Resources>
|
||||
|
||||
<abstract:CalendarAppShellAbstract.ShellContent>
|
||||
<Grid
|
||||
Margin="4,0,0,0"
|
||||
Background="Transparent"
|
||||
ColumnSpacing="12">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Grid x:Name="ShellContentArea" ColumnSpacing="12">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
|
||||
<StackPanel
|
||||
x:Name="NavigationTitleStack"
|
||||
Grid.Column="0"
|
||||
Margin="0,0,12,4"
|
||||
Orientation="Horizontal"
|
||||
Spacing="6">
|
||||
<Button
|
||||
x:Name="PreviousDateButton"
|
||||
Click="PreviousDateClicked"
|
||||
Style="{StaticResource CalendarNavigationButtonStyle}">
|
||||
<PathIcon x:Name="PreviousDateButtonPathIcon" Data="F1 M 8.72 18.599998 C 8.879999 18.733334 9.059999 18.799999 9.26 18.799999 C 9.459999 18.799999 9.633332 18.719999 9.78 18.559999 C 9.926666 18.4 10 18.219999 10 18.019999 C 10 17.82 9.92 17.653332 9.76 17.52 L 4.52 12.559999 L 17.24 12.559999 C 17.453333 12.559999 17.633331 12.486667 17.779999 12.339999 C 17.926666 12.193334 18 12.013333 18 11.799999 C 18 11.586666 17.926666 11.406667 17.779999 11.259999 C 17.633331 11.113333 17.453333 11.039999 17.24 11.039999 L 4.52 11.039999 L 9.76 6.08 C 9.973333 5.893333 10.046666 5.653332 9.98 5.359999 C 9.913333 5.066666 9.74 4.880001 9.46 4.799999 C 9.179999 4.720001 8.933332 4.786667 8.72 5 L 2.32 11.08 C 2.16 11.24 2.053333 11.426666 2 11.639999 C 1.973333 11.746666 1.973333 11.853333 2 11.959999 C 2.053333 12.173333 2.16 12.360001 2.32 12.52 Z " />
|
||||
</Button>
|
||||
|
||||
<Button
|
||||
x:Name="NextDateButton"
|
||||
Click="NextDateClicked"
|
||||
Style="{StaticResource CalendarNavigationButtonStyle}">
|
||||
<PathIcon x:Name="NextDateButtonPathIcon" Data="F1 M 11.28 5 C 11.12 4.866667 10.94 4.806667 10.74 4.82 C 10.539999 4.833334 10.366666 4.913334 10.219999 5.059999 C 10.073333 5.206665 10 5.379999 10 5.58 C 10 5.779999 10.08 5.946667 10.24 6.08 L 15.48 11.039999 L 2.76 11.039999 C 2.546667 11.039999 2.366667 11.113333 2.22 11.259999 C 2.073333 11.406667 2 11.586666 2 11.799999 C 2 12.013333 2.073333 12.193334 2.22 12.339999 C 2.366667 12.486667 2.546667 12.559999 2.76 12.559999 L 15.48 12.559999 L 10.24 17.52 C 10.026667 17.706665 9.953333 17.946667 10.02 18.24 C 10.086666 18.533333 10.259999 18.719999 10.54 18.799999 C 10.82 18.879999 11.066667 18.813334 11.28 18.599998 L 17.68 12.52 C 17.84 12.360001 17.946667 12.173333 18 11.959999 C 18 11.853333 18 11.746666 18 11.639999 C 17.946667 11.426666 17.84 11.24 17.68 11.08 Z " />
|
||||
</Button>
|
||||
|
||||
<calendarControls:CustomCalendarFlipView
|
||||
x:Name="DayHeaderNavigationItemsFlipView"
|
||||
MaxHeight="30"
|
||||
Margin="8,4,0,0"
|
||||
HorizontalAlignment="Left"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalContentAlignment="Left"
|
||||
Background="Transparent"
|
||||
DisplayType="{x:Bind ViewModel.StatePersistenceService.CalendarDisplayType, Mode=OneWay}"
|
||||
FontSize="14"
|
||||
FontWeight="Normal"
|
||||
IsHitTestVisible="False"
|
||||
ItemsSource="{x:Bind ViewModel.DateNavigationHeaderItems}"
|
||||
SelectedIndex="{x:Bind ViewModel.SelectedDateNavigationHeaderIndex, Mode=OneWay}">
|
||||
<FlipView.ItemTemplate>
|
||||
<DataTemplate x:DataType="x:String">
|
||||
<TextBlock
|
||||
VerticalAlignment="Center"
|
||||
FontSize="18"
|
||||
Style="{StaticResource BodyTextBlockStyle}"
|
||||
Text="{x:Bind}" />
|
||||
</DataTemplate>
|
||||
</FlipView.ItemTemplate>
|
||||
</calendarControls:CustomCalendarFlipView>
|
||||
</StackPanel>
|
||||
<AutoSuggestBox
|
||||
x:Name="SearchBox"
|
||||
Grid.Column="1"
|
||||
HorizontalAlignment="Stretch"
|
||||
VerticalAlignment="Center"
|
||||
BorderBrush="Transparent"
|
||||
PlaceholderText="Search" />
|
||||
|
||||
</Grid>
|
||||
|
||||
<calendarControls:WinoCalendarTypeSelectorControl
|
||||
x:Name="CalendarTypeSelector"
|
||||
Grid.Column="2"
|
||||
HorizontalAlignment="Right"
|
||||
DisplayDayCount="{x:Bind ViewModel.StatePersistenceService.DayDisplayCount, Mode=OneWay}"
|
||||
SelectedType="{x:Bind ViewModel.StatePersistenceService.CalendarDisplayType, Mode=TwoWay}"
|
||||
TodayClickedCommand="{x:Bind ViewModel.TodayClickedCommand}" />
|
||||
</Grid>
|
||||
</abstract:CalendarAppShellAbstract.ShellContent>
|
||||
<Grid
|
||||
x:Name="RootGrid"
|
||||
Padding="0"
|
||||
@@ -179,9 +98,9 @@
|
||||
MenuItemTemplateSelector="{StaticResource NavigationMenuTemplateSelector}"
|
||||
MenuItemsSource="{x:Bind ViewModel.MenuItems, Mode=OneWay}"
|
||||
OpenPaneLength="{x:Bind ViewModel.StatePersistenceService.OpenPaneLength, Mode=TwoWay}"
|
||||
PaneClosed="NavigationPaneClosed"
|
||||
PaneDisplayMode="Auto"
|
||||
PaneOpened="NavigationPaneOpened"
|
||||
PaneClosed="NavigationPaneClosed"
|
||||
Style="{StaticResource CalendarShellNavigationViewStyle}">
|
||||
<muxc:NavigationView.PaneCustomContent>
|
||||
<Grid x:Name="PaneCustomContent" Padding="0,0,0,6">
|
||||
|
||||
@@ -80,18 +80,22 @@
|
||||
</TransitionCollection>
|
||||
</StackPanel.ChildrenTransitions>
|
||||
|
||||
<!-- App About hero card -->
|
||||
<!-- About hero card. -->
|
||||
<Border
|
||||
Padding="24,20"
|
||||
Background="{ThemeResource CardBackgroundFillColorDefaultBrush}"
|
||||
BorderBrush="{ThemeResource CardStrokeColorDefaultBrush}"
|
||||
BorderThickness="1"
|
||||
CornerRadius="8">
|
||||
<Grid ColumnSpacing="16">
|
||||
<Grid ColumnSpacing="16" RowSpacing="16">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<StackPanel
|
||||
VerticalAlignment="Center"
|
||||
@@ -104,8 +108,12 @@
|
||||
Source="ms-appx:///Assets/AppEntries/MailAssets/Square150x150Logo.scale-100.png"
|
||||
Stretch="Uniform" />
|
||||
<StackPanel VerticalAlignment="Center">
|
||||
<TextBlock Style="{StaticResource TitleTextBlockStyle}" Text="Wino Mail" />
|
||||
<TextBlock
|
||||
VerticalAlignment="Center"
|
||||
Style="{StaticResource TitleTextBlockStyle}"
|
||||
Text="Wino Mail" />
|
||||
<TextBlock
|
||||
VerticalAlignment="Top"
|
||||
Foreground="{ThemeResource TextFillColorTertiaryBrush}"
|
||||
Style="{StaticResource CaptionTextBlockStyle}"
|
||||
Text="{x:Bind ViewModel.VersionText, Mode=OneWay}" />
|
||||
@@ -130,6 +138,7 @@
|
||||
Stretch="Uniform" />
|
||||
</Viewbox>
|
||||
</Button>
|
||||
|
||||
<Button
|
||||
Command="{x:Bind ViewModel.NavigateExternalCommand}"
|
||||
CommandParameter="{x:Bind ViewModel.GitHubUrl, Mode=OneWay}"
|
||||
@@ -142,6 +151,7 @@
|
||||
Stretch="Uniform" />
|
||||
</Viewbox>
|
||||
</Button>
|
||||
|
||||
<Button
|
||||
Command="{x:Bind ViewModel.NavigateExternalCommand}"
|
||||
CommandParameter="Store"
|
||||
@@ -157,106 +167,6 @@
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- Loading indicator -->
|
||||
<ProgressRing
|
||||
x:Name="WinoAccountBusyRing"
|
||||
Width="24"
|
||||
Height="24"
|
||||
HorizontalAlignment="Center"
|
||||
x:Load="{x:Bind ViewModel.IsWinoAccountBusy, Mode=OneWay}"
|
||||
IsActive="True" />
|
||||
|
||||
<!-- Wino Account: Signed-out state -->
|
||||
<controls:SettingsCard
|
||||
x:Name="SignedOutCard"
|
||||
Description="{x:Bind domain:Translator.SettingsHome_WinoAccount_SignedOutDescription}"
|
||||
Header="{x:Bind domain:Translator.SettingsHome_WinoAccount_Title}"
|
||||
x:Load="{x:Bind ViewModel.IsWinoAccountSignedOut, Mode=OneWay}">
|
||||
<controls:SettingsCard.HeaderIcon>
|
||||
<FontIcon Glyph="" />
|
||||
</controls:SettingsCard.HeaderIcon>
|
||||
<StackPanel Orientation="Horizontal" Spacing="8">
|
||||
<Button
|
||||
Command="{x:Bind ViewModel.WinoAccountSignInCommand}"
|
||||
Content="{x:Bind domain:Translator.Buttons_SignIn}"
|
||||
Style="{StaticResource AccentButtonStyle}" />
|
||||
<Button Command="{x:Bind ViewModel.WinoAccountRegisterCommand}" Content="{x:Bind domain:Translator.Buttons_CreateAccount}" />
|
||||
</StackPanel>
|
||||
</controls:SettingsCard>
|
||||
|
||||
<!-- Wino Account: Signed-in state -->
|
||||
<controls:SettingsExpander
|
||||
x:Name="SignedInExpander"
|
||||
Description="{x:Bind ViewModel.WinoAccountStatusText, Mode=OneWay}"
|
||||
Header="{x:Bind ViewModel.WinoAccountEmail, Mode=OneWay}"
|
||||
x:Load="{x:Bind ViewModel.IsWinoAccountSignedIn, Mode=OneWay}">
|
||||
<controls:SettingsExpander.HeaderIcon>
|
||||
<FontIcon Glyph="" />
|
||||
</controls:SettingsExpander.HeaderIcon>
|
||||
<Button
|
||||
Command="{x:Bind ViewModel.WinoAccountSignOutCommand}"
|
||||
Content="{x:Bind domain:Translator.WinoAccount_SignOutButton_Action}" />
|
||||
|
||||
<controls:SettingsExpander.Items>
|
||||
<!-- AI Pack active (with progress bar) -->
|
||||
<controls:SettingsCard
|
||||
x:Name="AiPackActiveCard"
|
||||
Description="{x:Bind ViewModel.AiUsageSummary, Mode=OneWay}"
|
||||
Header="{x:Bind domain:Translator.SettingsHome_AiPack_Title}"
|
||||
x:Load="{x:Bind ViewModel.CanShowAiUsage, Mode=OneWay}">
|
||||
<controls:SettingsCard.HeaderIcon>
|
||||
<ImageIcon Source="ms-appx:///Assets/AIPackIcon.png" />
|
||||
</controls:SettingsCard.HeaderIcon>
|
||||
<StackPanel MinWidth="200" Spacing="4">
|
||||
<ProgressBar
|
||||
Height="8"
|
||||
Maximum="100"
|
||||
Value="{x:Bind ViewModel.AiUsagePercent, Mode=OneWay}" />
|
||||
<TextBlock
|
||||
Foreground="{ThemeResource TextFillColorTertiaryBrush}"
|
||||
Style="{StaticResource CaptionTextBlockStyle}"
|
||||
Text="{x:Bind ViewModel.AiBillingPeriodSummary, Mode=OneWay}" />
|
||||
</StackPanel>
|
||||
</controls:SettingsCard>
|
||||
|
||||
<!-- AI Pack not purchased -->
|
||||
<controls:SettingsCard
|
||||
x:Name="AiPackBuyCard"
|
||||
Description="{x:Bind domain:Translator.WinoAccount_Management_AiPackBuyDescription}"
|
||||
Header="{x:Bind domain:Translator.SettingsHome_AiPack_Title}"
|
||||
x:Load="{x:Bind ViewModel.CanShowBuyAiPack, Mode=OneWay}">
|
||||
<controls:SettingsCard.HeaderIcon>
|
||||
<ImageIcon Source="ms-appx:///Assets/AIPackIcon.png" />
|
||||
</controls:SettingsCard.HeaderIcon>
|
||||
<Button
|
||||
Command="{x:Bind ViewModel.OpenBuyAiPackPageCommand}"
|
||||
Content="{x:Bind domain:Translator.Buttons_Purchase}"
|
||||
Style="{StaticResource AccentButtonStyle}" />
|
||||
</controls:SettingsCard>
|
||||
|
||||
<!-- Settings sync -->
|
||||
<controls:SettingsCard
|
||||
Click="WinoAccountManagementClicked"
|
||||
Description="{x:Bind domain:Translator.SettingsHome_SettingsSync_Description}"
|
||||
Header="{x:Bind domain:Translator.SettingsHome_SettingsSync_Title}"
|
||||
IsClickEnabled="True">
|
||||
<controls:SettingsCard.HeaderIcon>
|
||||
<FontIcon Glyph="" />
|
||||
</controls:SettingsCard.HeaderIcon>
|
||||
</controls:SettingsCard>
|
||||
|
||||
<!-- Manage Wino Account -->
|
||||
<controls:SettingsCard
|
||||
Click="WinoAccountManagementClicked"
|
||||
Header="{x:Bind domain:Translator.SettingsHome_WinoAccount_ManageLink}"
|
||||
IsClickEnabled="True">
|
||||
<controls:SettingsCard.HeaderIcon>
|
||||
<FontIcon Glyph="" />
|
||||
</controls:SettingsCard.HeaderIcon>
|
||||
</controls:SettingsCard>
|
||||
</controls:SettingsExpander.Items>
|
||||
</controls:SettingsExpander>
|
||||
|
||||
|
||||
<Border
|
||||
Padding="12,0,34,20"
|
||||
|
||||
@@ -523,10 +523,10 @@
|
||||
ItemInvoked="NavigationViewItemInvoked"
|
||||
MenuItemTemplateSelector="{StaticResource NavigationMenuTemplateSelector}"
|
||||
OpenPaneLength="{x:Bind ViewModel.StatePersistenceService.OpenPaneLength, Mode=TwoWay}"
|
||||
PaneDisplayMode="Auto"
|
||||
PaneOpening="NavigationPaneOpening"
|
||||
PaneOpened="NavigationPaneOpened"
|
||||
PaneClosed="NavigationPaneClosed"
|
||||
PaneDisplayMode="Auto"
|
||||
PaneOpened="NavigationPaneOpened"
|
||||
PaneOpening="NavigationPaneOpening"
|
||||
ScrollViewer.VerticalScrollBarVisibility="Hidden"
|
||||
SelectionChanged="MenuSelectionChanged"
|
||||
Style="{StaticResource CalendarShellNavigationViewStyle}">
|
||||
|
||||
Reference in New Issue
Block a user