From 80549804e42474c5f513ebc633ee9e2337131ecc Mon Sep 17 00:00:00 2001 From: Eric Tian Date: Fri, 7 Aug 2020 18:53:06 -0700 Subject: [PATCH] Add settings Add a new settings page. _Note: Code for theme changing not done yet!_ --- src/CalcViewModel/Common/NavCategory.cpp | 16 +++ src/CalcViewModel/Common/NavCategory.h | 4 +- src/Calculator/AboutFlyout.xaml | 76 ------------- src/Calculator/AboutFlyout.xaml.h | 22 ---- src/Calculator/Calculator.vcxproj | 16 +-- src/Calculator/Calculator.vcxproj.filters | 2 +- src/Calculator/Resources/en-US/Resources.resw | 93 +++++++++------ src/Calculator/SettingsPage.xaml | 107 ++++++++++++++++++ ...tFlyout.xaml.cpp => SettingsPage.xaml.cpp} | 48 ++++---- src/Calculator/SettingsPage.xaml.h | 22 ++++ src/Calculator/Views/MainPage.xaml | 20 ++-- src/Calculator/Views/MainPage.xaml.cpp | 54 ++++----- src/Calculator/Views/MainPage.xaml.h | 8 +- 13 files changed, 281 insertions(+), 207 deletions(-) delete mode 100644 src/Calculator/AboutFlyout.xaml delete mode 100644 src/Calculator/AboutFlyout.xaml.h create mode 100644 src/Calculator/SettingsPage.xaml rename src/Calculator/{AboutFlyout.xaml.cpp => SettingsPage.xaml.cpp} (59%) create mode 100644 src/Calculator/SettingsPage.xaml.h diff --git a/src/CalcViewModel/Common/NavCategory.cpp b/src/CalcViewModel/Common/NavCategory.cpp index d5769aef..d604801c 100644 --- a/src/CalcViewModel/Common/NavCategory.cpp +++ b/src/CalcViewModel/Common/NavCategory.cpp @@ -42,6 +42,7 @@ static constexpr int PRESSURE_ID = 14; static constexpr int ANGLE_ID = 15; static constexpr int CURRENCY_ID = 16; static constexpr int GRAPHING_ID = 17; +static constexpr int SETTINGS_ID = 18; // ^^^ THESE CONSTANTS SHOULD NEVER CHANGE ^^^ wchar_t* towchar_t(int number) @@ -298,6 +299,16 @@ static const list s_categoryManifest = [] { MyVirtualKey::None, nullptr, SUPPORTS_NEGATIVE, + true }, + NavCategoryInitializer{ ViewMode::Settings, + SETTINGS_ID, + L"Settings", + L"CategoryName_Settings", + L"\uE713", + CategoryGroupType::None, + MyVirtualKey::None, + nullptr, + false, true } }); return res; }(); @@ -371,6 +382,11 @@ bool NavCategory::IsConverterViewMode(ViewMode mode) return IsModeInCategoryGroup(mode, CategoryGroupType::Converter); } +bool NavCategory::IsSettingsViewMode(ViewMode mode) +{ + return mode == ViewMode::Settings; +} + bool NavCategory::IsModeInCategoryGroup(ViewMode mode, CategoryGroupType type) { auto iter = find_if(begin(s_categoryManifest), end(s_categoryManifest), [mode, type](const NavCategoryInitializer& initializer) { diff --git a/src/CalcViewModel/Common/NavCategory.h b/src/CalcViewModel/Common/NavCategory.h index a2edc995..5617c2ce 100644 --- a/src/CalcViewModel/Common/NavCategory.h +++ b/src/CalcViewModel/Common/NavCategory.h @@ -45,7 +45,8 @@ namespace CalculatorApp Pressure = 14, Angle = 15, Currency = 16, - Graphing = 17 + Graphing = 17, + Settings = 18 }; public @@ -138,6 +139,7 @@ namespace CalculatorApp static bool IsGraphingCalculatorViewMode(ViewMode mode); static bool IsDateCalculatorViewMode(ViewMode mode); static bool IsConverterViewMode(ViewMode mode); + static bool IsSettingsViewMode(ViewMode mode); static Platform::String ^ GetFriendlyName(ViewMode mode); static Platform::String ^ GetNameResourceKey(ViewMode mode); diff --git a/src/Calculator/AboutFlyout.xaml b/src/Calculator/AboutFlyout.xaml deleted file mode 100644 index 50f6f4e1..00000000 --- a/src/Calculator/AboutFlyout.xaml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -