From b5eafa69121e7a7ef377349bae94e7f1f7802e9a Mon Sep 17 00:00:00 2001 From: Pankaj Bhojwani Date: Fri, 21 Feb 2025 12:31:28 -0800 Subject: [PATCH] optional uint32 --- .../ActionsViewModel.cpp | 24 ++++++++++++++----- .../TerminalSettingsEditor/ActionsViewModel.h | 9 +++---- .../ActionsViewModel.idl | 7 +++--- .../TerminalSettingsEditor/EditAction.xaml | 6 ++--- 4 files changed, 30 insertions(+), 16 deletions(-) diff --git a/src/cascadia/TerminalSettingsEditor/ActionsViewModel.cpp b/src/cascadia/TerminalSettingsEditor/ActionsViewModel.cpp index cda30230c5..338378ca47 100644 --- a/src/cascadia/TerminalSettingsEditor/ActionsViewModel.cpp +++ b/src/cascadia/TerminalSettingsEditor/ActionsViewModel.cpp @@ -405,16 +405,16 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation return winrt::unbox_value(value); } - uint32_t ArgWrapper::UnboxUInt32Optional(const Windows::Foundation::IInspectable& value) + float ArgWrapper::UnboxUInt32Optional(const Windows::Foundation::IInspectable& value) { const auto unboxed = winrt::unbox_value>(value); if (unboxed) { - return unboxed.Value(); + return static_cast(unboxed.Value()); } else { - return 0; + return NAN; } } @@ -463,14 +463,26 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation Value(box_value(newValue)); } - void ArgWrapper::DoubleBindBack(const double newValue) + void ArgWrapper::Int32BindBack(const double newValue) + { + Value(box_value(static_cast(newValue))); + } + + void ArgWrapper::UInt32BindBack(const double newValue) { Value(box_value(static_cast(newValue))); } - void ArgWrapper::DoubleOptionalBindBack(const double newValue) + void ArgWrapper::UInt32OptionalBindBack(const double newValue) { - Value(box_value(static_cast(newValue))); + if (!isnan(newValue)) + { + Value(box_value(static_cast(newValue))); + } + else + { + Value(nullptr); + } } void ArgWrapper::FloatBindBack(const double newValue) diff --git a/src/cascadia/TerminalSettingsEditor/ActionsViewModel.h b/src/cascadia/TerminalSettingsEditor/ActionsViewModel.h index a6319d05f3..a5beac03a4 100644 --- a/src/cascadia/TerminalSettingsEditor/ActionsViewModel.h +++ b/src/cascadia/TerminalSettingsEditor/ActionsViewModel.h @@ -189,16 +189,17 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation winrt::hstring UnboxString(const Windows::Foundation::IInspectable& value); int32_t UnboxInt32(const Windows::Foundation::IInspectable& value); uint32_t UnboxUInt32(const Windows::Foundation::IInspectable& value); - uint32_t UnboxUInt32Optional(const Windows::Foundation::IInspectable& value); + float UnboxUInt32Optional(const Windows::Foundation::IInspectable& value); float UnboxFloat(const Windows::Foundation::IInspectable& value); winrt::Windows::Foundation::IReference UnboxBoolOptional(const Windows::Foundation::IInspectable& value); winrt::Windows::Foundation::IReference UnboxTerminalCoreColorOptional(const Windows::Foundation::IInspectable& value); winrt::Windows::Foundation::IReference UnboxWindowsUIColorOptional(const Windows::Foundation::IInspectable& value); - // Bind back functions + // bind back functions void StringBindBack(const winrt::hstring& newValue); - void DoubleBindBack(const double newValue); - void DoubleOptionalBindBack(const double newValue); + void Int32BindBack(const double newValue); + void UInt32BindBack(const double newValue); + void UInt32OptionalBindBack(const double newValue); void FloatBindBack(const double newValue); void BoolBindBack(const Windows::Foundation::IReference newValue); void TerminalCoreColorBindBack(const winrt::Windows::Foundation::IReference newValue); diff --git a/src/cascadia/TerminalSettingsEditor/ActionsViewModel.idl b/src/cascadia/TerminalSettingsEditor/ActionsViewModel.idl index 58bad9a393..6147cfe56e 100644 --- a/src/cascadia/TerminalSettingsEditor/ActionsViewModel.idl +++ b/src/cascadia/TerminalSettingsEditor/ActionsViewModel.idl @@ -93,7 +93,7 @@ namespace Microsoft.Terminal.Settings.Editor String UnboxString(Object value); UInt32 UnboxInt32(Object value); UInt32 UnboxUInt32(Object value); - UInt32 UnboxUInt32Optional(Object value); + Single UnboxUInt32Optional(Object value); Single UnboxFloat(Object value); Windows.Foundation.IReference UnboxBoolOptional(Object value); Windows.Foundation.IReference UnboxTerminalCoreColorOptional(Object value); @@ -101,8 +101,9 @@ namespace Microsoft.Terminal.Settings.Editor // bind back functions void StringBindBack(String newValue); - void DoubleBindBack(Double newValue); - void DoubleOptionalBindBack(Double newValue); + void Int32BindBack(Double newValue); + void UInt32BindBack(Double newValue); + void UInt32OptionalBindBack(Double newValue); void FloatBindBack(Double newValue); void BoolBindBack(Windows.Foundation.IReference newValue); void TerminalCoreColorBindBack(Windows.Foundation.IReference newValue); diff --git a/src/cascadia/TerminalSettingsEditor/EditAction.xaml b/src/cascadia/TerminalSettingsEditor/EditAction.xaml index de3e5357e4..e6426bd3f9 100644 --- a/src/cascadia/TerminalSettingsEditor/EditAction.xaml +++ b/src/cascadia/TerminalSettingsEditor/EditAction.xaml @@ -237,7 +237,7 @@ Spacing="8"> - - -