diff --git a/build/pipelines/azure-pipelines.release.yaml b/build/pipelines/azure-pipelines.release.yaml
index 6e049ddd..ba9de01c 100644
--- a/build/pipelines/azure-pipelines.release.yaml
+++ b/build/pipelines/azure-pipelines.release.yaml
@@ -16,8 +16,8 @@ pr: none
variables:
versionMajor: 10
- versionMinor: 2108
- versionBuild: $[counter('10.2108.*', 0)]
+ versionMinor: 2109
+ versionBuild: $[counter('10.2109.*', 0)]
versionPatch: 0
name: '$(versionMajor).$(versionMinor).$(versionBuild).$(versionPatch)'
diff --git a/build/pipelines/templates/build-app-internal.yaml b/build/pipelines/templates/build-app-internal.yaml
index 69b5262e..48a63b5d 100644
--- a/build/pipelines/templates/build-app-internal.yaml
+++ b/build/pipelines/templates/build-app-internal.yaml
@@ -27,7 +27,7 @@ jobs:
downloadDirectory: $(Build.SourcesDirectory)
vstsFeed: WindowsInboxApps
vstsFeedPackage: calculator-internals
- vstsPackageVersion: 0.0.54
+ vstsPackageVersion: 0.0.65
- template: ./build-single-architecture.yaml
parameters:
diff --git a/build/pipelines/templates/prepare-release-internalonly.yaml b/build/pipelines/templates/prepare-release-internalonly.yaml
index cd383dcd..e4bb1932 100644
--- a/build/pipelines/templates/prepare-release-internalonly.yaml
+++ b/build/pipelines/templates/prepare-release-internalonly.yaml
@@ -81,7 +81,7 @@ jobs:
downloadDirectory: $(Build.SourcesDirectory)
vstsFeed: WindowsInboxApps
vstsFeedPackage: calculator-internals
- vstsPackageVersion: 0.0.54
+ vstsPackageVersion: 0.0.65
- powershell: |
# Just modify this line to indicate where your en-us PDP file is. Leave the other lines alone.
diff --git a/src/Calculator/AboutFlyout.xaml b/src/Calculator/AboutFlyout.xaml
deleted file mode 100644
index e9b16a61..00000000
--- a/src/Calculator/AboutFlyout.xaml
+++ /dev/null
@@ -1,95 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Calculator/App.xaml b/src/Calculator/App.xaml
index b72d6eaf..f94645c3 100644
--- a/src/Calculator/App.xaml
+++ b/src/Calculator/App.xaml
@@ -3,15 +3,47 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Controls="using:CalculatorApp.Controls"
xmlns:common="using:CalculatorApp.Common"
- xmlns:local="using:CalculatorApp">
+ xmlns:contract7NotPresent="http://schemas.microsoft.com/winfx/2006/xaml/presentation?IsApiContractNotPresent(Windows.Foundation.UniversalApiContract,7)"
+ xmlns:contract7Present="http://schemas.microsoft.com/winfx/2006/xaml/presentation?IsApiContractPresent(Windows.Foundation.UniversalApiContract,7)"
+ xmlns:converters="using:CalculatorApp.Converters"
+ xmlns:local="using:CalculatorApp"
+ xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
+ xmlns:primitives="using:Microsoft.UI.Xaml.Controls.Primitives">
+
+
+
+
+
+
+ 0
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
0,0,0,0
0
#FF000000
@@ -83,9 +115,48 @@
-
+
+
+
+
+
+ #FFFFFF
+
+
+
+
+
+
+
+
+
+ #000000
+
+
+
+
+
+ 0
0,0,0,0
0
#FFF2F2F2
@@ -161,9 +232,48 @@
-
+
+
+
+
+
+ #FFFFFF
+
+
+
+
+
+
+
+
+
+ #000000
+
+
+
+
+
+ 1
0,1,0,0
2
@@ -195,7 +305,25 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -203,36 +331,40 @@
500
320
- ms-appx:///Assets/CalcMDL2.ttf#Calculator MDL2 Assets
+ ms-appx:///Assets/CalculatorIcons.ttf#Calculator Fluent Icons
256
0,1,0,0
- 15
- SemiBold
+ 14
+ Normal
- 64
+ 70
24
24
16
- 64
+ 70
16
20
10
- 38
+ 44
12
16
- 8
+ 12
12
- 15
+ 14
24
-
- 40
- 40
+ 14
+ SemiBold
+
+ 48
+ 48
+
+ 32
34
38
48
@@ -244,25 +376,31 @@
12
14
+ 12
16
+
+
-
@@ -411,59 +583,98 @@
-
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
-
+
+ ContentTransitions="{TemplateBinding ContentTransitions}">
+
+
+
+
+
-
-
+
+
-
-
+
+
+
-
-
+
+
+
+
+
diff --git a/src/Calculator/App.xaml.cs b/src/Calculator/App.xaml.cs
index 73046d99..a4586952 100644
--- a/src/Calculator/App.xaml.cs
+++ b/src/Calculator/App.xaml.cs
@@ -124,7 +124,7 @@ namespace CalculatorApp
return frame;
}
- private static void SetMinWindowSizeAndActivate(Frame rootFrame, Size minWindowSize)
+ private static void SetMinWindowSizeAndThemeAndActivate(Frame rootFrame, Size minWindowSize)
{
// SetPreferredMinSize should always be called before Window.Activate
ApplicationView appView = ApplicationView.GetForCurrentView();
@@ -132,6 +132,7 @@ namespace CalculatorApp
// Place the frame in the current Window
Window.Current.Content = rootFrame;
+ CalculatorApp.Utils.ThemeHelper.InitializeAppTheme();
Window.Current.Activate();
}
@@ -199,7 +200,7 @@ namespace CalculatorApp
throw new SystemException();
}
- SetMinWindowSizeAndActivate(rootFrame, minWindowSize);
+ SetMinWindowSizeAndThemeAndActivate(rootFrame, minWindowSize);
m_mainViewId = ApplicationView.GetForCurrentView().Id;
AddWindowToMap(WindowFrameService.CreateNewWindowFrameService(rootFrame, false, weak));
}
@@ -223,7 +224,7 @@ namespace CalculatorApp
{
var newRootFrame = App.CreateFrame();
- SetMinWindowSizeAndActivate(newRootFrame, minWindowSize);
+ SetMinWindowSizeAndThemeAndActivate(newRootFrame, minWindowSize);
if (!newRootFrame.Navigate(typeof(MainPage), argument))
{
diff --git a/src/Calculator/Assets/CalcMDL2.ttf b/src/Calculator/Assets/CalcMDL2.ttf
deleted file mode 100644
index 9ee5deb0..00000000
Binary files a/src/Calculator/Assets/CalcMDL2.ttf and /dev/null differ
diff --git a/src/Calculator/Assets/CalculatorIcons.ttf b/src/Calculator/Assets/CalculatorIcons.ttf
new file mode 100644
index 00000000..176efcb9
Binary files /dev/null and b/src/Calculator/Assets/CalculatorIcons.ttf differ
diff --git a/src/Calculator/Calculator.csproj b/src/Calculator/Calculator.csproj
index 75c53533..ecabb4ad 100644
--- a/src/Calculator/Calculator.csproj
+++ b/src/Calculator/Calculator.csproj
@@ -137,9 +137,6 @@
PackageReference
-
- AboutFlyout.xaml
-
App.xaml
@@ -167,10 +164,11 @@
-
+
+
EquationStylePanelControl.xaml
-
+
Calculator.xaml
@@ -232,6 +230,9 @@
OperatorsPanel.xaml
+
+ Settings.xaml
+
CalculatorProgrammerDisplayPanel.xaml
@@ -678,11 +679,7 @@
MSBuild:Compile
Designer
-
- Designer
- MSBuild:Compile
-
-
+
Designer
MSBuild:Compile
@@ -766,6 +763,10 @@
Designer
MSBuild:Compile
+
+ Designer
+ MSBuild:Compile
+
Designer
MSBuild:Compile
@@ -787,7 +788,7 @@
6.2.10
-
+
@@ -804,7 +805,7 @@
-
+
diff --git a/src/Calculator/Common/KeyboardShortcuManager.cs b/src/Calculator/Common/KeyboardShortcuManager.cs
index d6579767..c21ac7fa 100644
--- a/src/Calculator/Common/KeyboardShortcuManager.cs
+++ b/src/Calculator/Common/KeyboardShortcuManager.cs
@@ -575,6 +575,48 @@ namespace CalculatorApp
}
}
+ private static bool CanNavigateModeByShortcut(MUXC.NavigationView navView, MUXC.NavigationViewItem nvi
+ , ApplicationViewModel vm, ViewMode toMode)
+ {
+ return nvi != null && nvi.IsEnabled && navView.Visibility == Visibility.Visible
+ && !vm.IsAlwaysOnTop && NavCategory.IsValidViewMode(toMode);
+ }
+
+ private static void NavigateModeByShortcut(bool controlKeyPressed, bool shiftKeyPressed, bool altPressed
+ , Windows.System.VirtualKey key, ViewMode? toMode)
+ {
+ var lookupMap = GetCurrentKeyDictionary(controlKeyPressed, shiftKeyPressed, altPressed);
+ if (lookupMap != null)
+ {
+ var listItems = EqualRange(lookupMap, (MyVirtualKey)key);
+ foreach (var itemRef in listItems)
+ {
+ var item = itemRef.Target as MUXC.NavigationView;
+ if (item != null)
+ {
+ var navView = (MUXC.NavigationView)item;
+
+ var menuItems = ((ObservableCollection