bool template

This commit is contained in:
Pankaj Bhojwani
2025-05-07 15:36:04 -07:00
parent 8754baf846
commit 20eeb06caf
7 changed files with 33 additions and 2 deletions

View File

@@ -637,6 +637,11 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
return winrt::unbox_value<float>(value);
}
bool ArgWrapper::UnboxBool(const Windows::Foundation::IInspectable& value)
{
return winrt::unbox_value<bool>(value);
}
winrt::Windows::Foundation::IReference<bool> ArgWrapper::UnboxBoolOptional(const Windows::Foundation::IInspectable& value)
{
if (!value)

View File

@@ -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<bool> UnboxBoolOptional(const Windows::Foundation::IInspectable& value);
winrt::Windows::Foundation::IReference<Microsoft::Terminal::Core::Color> UnboxTerminalCoreColorOptional(const Windows::Foundation::IInspectable& value);
winrt::Windows::Foundation::IReference<Microsoft::Terminal::Core::Color> UnboxWindowsUIColorOptional(const Windows::Foundation::IInspectable& value);

View File

@@ -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<Boolean> UnboxBoolOptional(Object value);
Windows.Foundation.IReference<Microsoft.Terminal.Core.Color> UnboxTerminalCoreColorOptional(Object value);
Windows.Foundation.IReference<Microsoft.Terminal.Core.Color> UnboxWindowsUIColorOptional(Object value);

View File

@@ -50,8 +50,11 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
{
return FloatTemplate();
}
else if (argType == L"bool" ||
argType == L"Windows::Foundation::IReference<bool>")
else if (argType == L"bool")
{
return BoolTemplate();
}
else if (argType == L"Windows::Foundation::IReference<bool>")
{
return BoolOptionalTemplate();
}

View File

@@ -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);

View File

@@ -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;

View File

@@ -405,6 +405,24 @@
</ListViewItem>
</DataTemplate>
<DataTemplate x:Key="BoolTemplate"
x:DataType="local:ArgWrapper">
<ListViewItem>
<Grid ColumnSpacing="8">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="{StaticResource ArgumentNameWidth}" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Text="{x:Bind Name}"
VerticalAlignment="Center"
Grid.Column="0"/>
<CheckBox IsChecked="{x:Bind UnboxBool(Value), Mode=TwoWay, BindBack=BoolOptionalBindBack}"
IsThreeState="True"
Grid.Column="1"/>
</Grid>
</ListViewItem>
</DataTemplate>
<DataTemplate x:Key="BoolOptionalTemplate"
x:DataType="local:ArgWrapper">
<ListViewItem>
@@ -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}"