From 20eeb06cafbe4e1b9482718b2df66dc751e0488b Mon Sep 17 00:00:00 2001 From: Pankaj Bhojwani Date: Wed, 7 May 2025 15:36:04 -0700 Subject: [PATCH] bool template --- .../ActionsViewModel.cpp | 5 +++++ .../TerminalSettingsEditor/ActionsViewModel.h | 1 + .../ActionsViewModel.idl | 1 + .../ArgsTemplateSelectors.cpp | 7 +++++-- .../ArgsTemplateSelectors.h | 1 + .../ArgsTemplateSelectors.idl | 1 + .../TerminalSettingsEditor/EditAction.xaml | 19 +++++++++++++++++++ 7 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/cascadia/TerminalSettingsEditor/ActionsViewModel.cpp b/src/cascadia/TerminalSettingsEditor/ActionsViewModel.cpp index 3379abee34..14bfef390a 100644 --- a/src/cascadia/TerminalSettingsEditor/ActionsViewModel.cpp +++ b/src/cascadia/TerminalSettingsEditor/ActionsViewModel.cpp @@ -637,6 +637,11 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation return winrt::unbox_value(value); } + bool ArgWrapper::UnboxBool(const Windows::Foundation::IInspectable& value) + { + return winrt::unbox_value(value); + } + winrt::Windows::Foundation::IReference ArgWrapper::UnboxBoolOptional(const Windows::Foundation::IInspectable& value) { if (!value) diff --git a/src/cascadia/TerminalSettingsEditor/ActionsViewModel.h b/src/cascadia/TerminalSettingsEditor/ActionsViewModel.h index 5d6242ef32..6bbef659c9 100644 --- a/src/cascadia/TerminalSettingsEditor/ActionsViewModel.h +++ b/src/cascadia/TerminalSettingsEditor/ActionsViewModel.h @@ -194,6 +194,7 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation float UnboxUInt32Optional(const Windows::Foundation::IInspectable& value); float UnboxUInt64(const Windows::Foundation::IInspectable& value); float UnboxFloat(const Windows::Foundation::IInspectable& value); + bool UnboxBool(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); diff --git a/src/cascadia/TerminalSettingsEditor/ActionsViewModel.idl b/src/cascadia/TerminalSettingsEditor/ActionsViewModel.idl index 7b8601919e..cecc7500cb 100644 --- a/src/cascadia/TerminalSettingsEditor/ActionsViewModel.idl +++ b/src/cascadia/TerminalSettingsEditor/ActionsViewModel.idl @@ -100,6 +100,7 @@ namespace Microsoft.Terminal.Settings.Editor Single UnboxUInt32Optional(Object value); Single UnboxUInt64(Object value); Single UnboxFloat(Object value); + Boolean UnboxBool(Object value); Windows.Foundation.IReference UnboxBoolOptional(Object value); Windows.Foundation.IReference UnboxTerminalCoreColorOptional(Object value); Windows.Foundation.IReference UnboxWindowsUIColorOptional(Object value); diff --git a/src/cascadia/TerminalSettingsEditor/ArgsTemplateSelectors.cpp b/src/cascadia/TerminalSettingsEditor/ArgsTemplateSelectors.cpp index aab56a997e..9d65b6093b 100644 --- a/src/cascadia/TerminalSettingsEditor/ArgsTemplateSelectors.cpp +++ b/src/cascadia/TerminalSettingsEditor/ArgsTemplateSelectors.cpp @@ -50,8 +50,11 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation { return FloatTemplate(); } - else if (argType == L"bool" || - argType == L"Windows::Foundation::IReference") + else if (argType == L"bool") + { + return BoolTemplate(); + } + else if (argType == L"Windows::Foundation::IReference") { return BoolOptionalTemplate(); } diff --git a/src/cascadia/TerminalSettingsEditor/ArgsTemplateSelectors.h b/src/cascadia/TerminalSettingsEditor/ArgsTemplateSelectors.h index ddf2a72794..4aafceaedf 100644 --- a/src/cascadia/TerminalSettingsEditor/ArgsTemplateSelectors.h +++ b/src/cascadia/TerminalSettingsEditor/ArgsTemplateSelectors.h @@ -23,6 +23,7 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation WINRT_PROPERTY(winrt::Windows::UI::Xaml::DataTemplate, UInt64Template); WINRT_PROPERTY(winrt::Windows::UI::Xaml::DataTemplate, FloatTemplate); WINRT_PROPERTY(winrt::Windows::UI::Xaml::DataTemplate, StringTemplate); + WINRT_PROPERTY(winrt::Windows::UI::Xaml::DataTemplate, BoolTemplate); WINRT_PROPERTY(winrt::Windows::UI::Xaml::DataTemplate, BoolOptionalTemplate); WINRT_PROPERTY(winrt::Windows::UI::Xaml::DataTemplate, EnumTemplate); WINRT_PROPERTY(winrt::Windows::UI::Xaml::DataTemplate, FlagTemplate); diff --git a/src/cascadia/TerminalSettingsEditor/ArgsTemplateSelectors.idl b/src/cascadia/TerminalSettingsEditor/ArgsTemplateSelectors.idl index 886df41833..fdf9620d22 100644 --- a/src/cascadia/TerminalSettingsEditor/ArgsTemplateSelectors.idl +++ b/src/cascadia/TerminalSettingsEditor/ArgsTemplateSelectors.idl @@ -16,6 +16,7 @@ namespace Microsoft.Terminal.Settings.Editor Windows.UI.Xaml.DataTemplate UInt64Template; Windows.UI.Xaml.DataTemplate FloatTemplate; Windows.UI.Xaml.DataTemplate StringTemplate; + Windows.UI.Xaml.DataTemplate BoolTemplate; Windows.UI.Xaml.DataTemplate BoolOptionalTemplate; Windows.UI.Xaml.DataTemplate EnumTemplate; Windows.UI.Xaml.DataTemplate FlagTemplate; diff --git a/src/cascadia/TerminalSettingsEditor/EditAction.xaml b/src/cascadia/TerminalSettingsEditor/EditAction.xaml index be30c00e26..44ce690015 100644 --- a/src/cascadia/TerminalSettingsEditor/EditAction.xaml +++ b/src/cascadia/TerminalSettingsEditor/EditAction.xaml @@ -405,6 +405,24 @@ + + + + + + + + + + + + + @@ -536,6 +554,7 @@ FloatTemplate="{StaticResource FloatTemplate}" StringTemplate="{StaticResource StringTemplate}" GuidTemplate="{StaticResource GuidTemplate}" + BoolTemplate="{StaticResource BoolTemplate}" BoolOptionalTemplate="{StaticResource BoolOptionalTemplate}" EnumTemplate="{StaticResource EnumTemplate}" FlagTemplate="{StaticResource FlagTemplate}"