mirror of
https://github.com/microsoft/terminal.git
synced 2026-05-20 05:54:23 +00:00
Fold new converter into existing code better
This commit is contained in:
@@ -64,7 +64,7 @@
|
||||
|
||||
<local:ColorToBrushConverter x:Key="ColorToBrushConverter" />
|
||||
<local:ColorToStringConverter x:Key="ColorToStringConverter" />
|
||||
<local:EmptyStringToVisibilityConverter x:Key="EmptyStringToVisibilityConverter" />
|
||||
<mtu:StringNotEmptyToVisibilityConverter x:Key="StringNotEmptyToVisibilityConverter" />
|
||||
|
||||
<Color x:Key="DeleteButtonColor">Firebrick</Color>
|
||||
|
||||
@@ -1240,7 +1240,7 @@
|
||||
ContentTransitions="{TemplateBinding ContentTransitions}" />
|
||||
<TextBlock Style="{StaticResource SettingsPageItemDescriptionStyle}"
|
||||
Text="{Binding Tag, RelativeSource={RelativeSource Mode=TemplatedParent}}"
|
||||
Visibility="{Binding Tag, RelativeSource={RelativeSource Mode=TemplatedParent}, Converter={StaticResource EmptyStringToVisibilityConverter}}" />
|
||||
Visibility="{Binding Tag, RelativeSource={RelativeSource Mode=TemplatedParent}, Converter={StaticResource StringNotEmptyToVisibilityConverter}}" />
|
||||
</StackPanel>
|
||||
<FontIcon Grid.Column="1"
|
||||
Margin="20,0,8,0"
|
||||
|
||||
@@ -107,8 +107,8 @@
|
||||
<SubType>Code</SubType>
|
||||
</ClInclude>
|
||||
<ClInclude Include="SegoeFluentIconList.h" />
|
||||
<ClInclude Include="Converters.h">
|
||||
<DependentUpon>Converters.idl</DependentUpon>
|
||||
<ClInclude Include="TerminalColorConverters.h">
|
||||
<DependentUpon>TerminalColorConverters.idl</DependentUpon>
|
||||
<SubType>Code</SubType>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ColorSchemeViewModel.h">
|
||||
@@ -309,8 +309,8 @@
|
||||
<DependentUpon>ActionsViewModel.idl</DependentUpon>
|
||||
<SubType>Code</SubType>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Converters.cpp">
|
||||
<DependentUpon>Converters.idl</DependentUpon>
|
||||
<ClCompile Include="TerminalColorConverters.cpp">
|
||||
<DependentUpon>TerminalColorConverters.idl</DependentUpon>
|
||||
<SubType>Code</SubType>
|
||||
</ClCompile>
|
||||
<ClCompile Include="ColorSchemeViewModel.cpp">
|
||||
@@ -432,7 +432,7 @@
|
||||
</Midl>
|
||||
<Midl Include="ProfileViewModel.idl" />
|
||||
<Midl Include="ActionsViewModel.idl" />
|
||||
<Midl Include="Converters.idl" />
|
||||
<Midl Include="TerminalColorConverters.idl" />
|
||||
<Midl Include="ColorSchemeViewModel.idl" />
|
||||
<Midl Include="ColorSchemesPageViewModel.idl" />
|
||||
<Midl Include="InteractionViewModel.idl" />
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
<Midl Include="LaunchViewModel.idl" />
|
||||
<Midl Include="EnumEntry.idl" />
|
||||
<Midl Include="SettingContainer.idl" />
|
||||
<Midl Include="Converters.idl" />
|
||||
<Midl Include="TerminalColorConverters.idl" />
|
||||
<Midl Include="NewTabMenuViewModel.idl" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -2,10 +2,9 @@
|
||||
// Licensed under the MIT license.
|
||||
|
||||
#include "pch.h"
|
||||
#include "Converters.h"
|
||||
#include "TerminalColorConverters.h"
|
||||
#include "ColorToBrushConverter.g.cpp"
|
||||
#include "ColorToStringConverter.g.cpp"
|
||||
#include "EmptyStringToVisibilityConverter.g.cpp"
|
||||
|
||||
using namespace winrt::Microsoft::Terminal::Settings::Model;
|
||||
|
||||
@@ -33,22 +32,4 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
|
||||
{
|
||||
throw hresult_not_implemented();
|
||||
}
|
||||
|
||||
Windows::Foundation::IInspectable EmptyStringToVisibilityConverter::Convert(Windows::Foundation::IInspectable const& value, Windows::UI::Xaml::Interop::TypeName const& /*targetType*/, Windows::Foundation::IInspectable const& /*parameter*/, hstring const& /*language*/)
|
||||
{
|
||||
hstring text;
|
||||
if (value)
|
||||
{
|
||||
if (const auto& str{ value.try_as<hstring>() })
|
||||
{
|
||||
text = *str;
|
||||
}
|
||||
}
|
||||
return winrt::box_value(text.empty() ? Windows::UI::Xaml::Visibility::Collapsed : Windows::UI::Xaml::Visibility::Visible);
|
||||
}
|
||||
|
||||
Windows::Foundation::IInspectable EmptyStringToVisibilityConverter::ConvertBack(Windows::Foundation::IInspectable const& /*value*/, Windows::UI::Xaml::Interop::TypeName const& /*targetType*/, Windows::Foundation::IInspectable const& /*parameter*/, hstring const& /*language*/)
|
||||
{
|
||||
throw hresult_not_implemented();
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,6 @@
|
||||
|
||||
#include "ColorToBrushConverter.g.h"
|
||||
#include "ColorToStringConverter.g.h"
|
||||
#include "EmptyStringToVisibilityConverter.g.h"
|
||||
#include "Utils.h"
|
||||
|
||||
namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
|
||||
@@ -25,19 +24,10 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
|
||||
Windows::Foundation::IInspectable Convert(Windows::Foundation::IInspectable const& value, Windows::UI::Xaml::Interop::TypeName const& targetType, Windows::Foundation::IInspectable const& parameter, hstring const& language);
|
||||
Windows::Foundation::IInspectable ConvertBack(Windows::Foundation::IInspectable const& value, Windows::UI::Xaml::Interop::TypeName const& targetType, Windows::Foundation::IInspectable const& parameter, hstring const& language);
|
||||
};
|
||||
|
||||
struct EmptyStringToVisibilityConverter : EmptyStringToVisibilityConverterT<EmptyStringToVisibilityConverter>
|
||||
{
|
||||
EmptyStringToVisibilityConverter() = default;
|
||||
|
||||
Windows::Foundation::IInspectable Convert(Windows::Foundation::IInspectable const& value, Windows::UI::Xaml::Interop::TypeName const& targetType, Windows::Foundation::IInspectable const& parameter, hstring const& language);
|
||||
Windows::Foundation::IInspectable ConvertBack(Windows::Foundation::IInspectable const& value, Windows::UI::Xaml::Interop::TypeName const& targetType, Windows::Foundation::IInspectable const& parameter, hstring const& language);
|
||||
};
|
||||
};
|
||||
|
||||
namespace winrt::Microsoft::Terminal::Settings::Editor::factory_implementation
|
||||
{
|
||||
BASIC_FACTORY(ColorToBrushConverter);
|
||||
BASIC_FACTORY(ColorToStringConverter);
|
||||
BASIC_FACTORY(EmptyStringToVisibilityConverter);
|
||||
}
|
||||
@@ -12,9 +12,4 @@ namespace Microsoft.Terminal.Settings.Editor
|
||||
{
|
||||
ColorToStringConverter();
|
||||
}
|
||||
|
||||
runtimeclass EmptyStringToVisibilityConverter : [default] Windows.UI.Xaml.Data.IValueConverter
|
||||
{
|
||||
EmptyStringToVisibilityConverter();
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,7 @@
|
||||
#include <til/winrt.h>
|
||||
|
||||
#include "Converters.g.cpp"
|
||||
#include "StringNotEmptyToVisibilityConverter.g.cpp"
|
||||
|
||||
#pragma warning(disable : 26497) // We will make these functions constexpr, as they are part of an ABI boundary.
|
||||
#pragma warning(disable : 26440) // The function ... can be declared as noexcept.
|
||||
@@ -80,4 +81,22 @@ namespace winrt::Microsoft::Terminal::UI::implementation
|
||||
{
|
||||
return fontWeight.Weight;
|
||||
}
|
||||
|
||||
winrt::Windows::Foundation::IInspectable StringNotEmptyToVisibilityConverter::Convert(winrt::Windows::Foundation::IInspectable const& value, winrt::Windows::UI::Xaml::Interop::TypeName const& /*targetType*/, winrt::Windows::Foundation::IInspectable const& /*parameter*/, winrt::hstring const& /*language*/)
|
||||
{
|
||||
winrt::hstring text;
|
||||
if (value)
|
||||
{
|
||||
if (const auto& str{ value.try_as<winrt::hstring>() })
|
||||
{
|
||||
text = *str;
|
||||
}
|
||||
}
|
||||
return winrt::box_value(Converters::StringNotEmptyToVisibility(text));
|
||||
}
|
||||
|
||||
winrt::Windows::Foundation::IInspectable StringNotEmptyToVisibilityConverter::ConvertBack(winrt::Windows::Foundation::IInspectable const& /*value*/, winrt::Windows::UI::Xaml::Interop::TypeName const& /*targetType*/, winrt::Windows::Foundation::IInspectable const& /*parameter*/, winrt::hstring const& /*language*/)
|
||||
{
|
||||
throw winrt::hresult_not_implemented();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "Converters.g.h"
|
||||
#include "StringNotEmptyToVisibilityConverter.g.h"
|
||||
|
||||
namespace winrt::Microsoft::Terminal::UI::implementation
|
||||
{
|
||||
@@ -29,11 +30,18 @@ namespace winrt::Microsoft::Terminal::UI::implementation
|
||||
static winrt::Windows::UI::Xaml::Media::SolidColorBrush ColorToBrush(winrt::Windows::UI::Color color);
|
||||
static double FontWeightToDouble(winrt::Windows::UI::Text::FontWeight fontWeight);
|
||||
};
|
||||
|
||||
struct StringNotEmptyToVisibilityConverter : StringNotEmptyToVisibilityConverterT<StringNotEmptyToVisibilityConverter>
|
||||
{
|
||||
StringNotEmptyToVisibilityConverter() = default;
|
||||
|
||||
winrt::Windows::Foundation::IInspectable Convert(winrt::Windows::Foundation::IInspectable const& value, winrt::Windows::UI::Xaml::Interop::TypeName const& targetType, winrt::Windows::Foundation::IInspectable const& parameter, winrt::hstring const& language);
|
||||
winrt::Windows::Foundation::IInspectable ConvertBack(winrt::Windows::Foundation::IInspectable const& value, winrt::Windows::UI::Xaml::Interop::TypeName const& targetType, winrt::Windows::Foundation::IInspectable const& parameter, winrt::hstring const& language);
|
||||
};
|
||||
}
|
||||
|
||||
namespace winrt::Microsoft::Terminal::UI::factory_implementation
|
||||
{
|
||||
struct Converters : ConvertersT<Converters, implementation::Converters>
|
||||
{
|
||||
};
|
||||
BASIC_FACTORY(Converters);
|
||||
BASIC_FACTORY(StringNotEmptyToVisibilityConverter);
|
||||
}
|
||||
|
||||
@@ -27,4 +27,12 @@ namespace Microsoft.Terminal.UI
|
||||
static Windows.UI.Xaml.Media.SolidColorBrush ColorToBrush(Windows.UI.Color color);
|
||||
static Double FontWeightToDouble(Windows.UI.Text.FontWeight fontWeight);
|
||||
}
|
||||
|
||||
// IValueConverter wrapper around Converters.StringNotEmptyToVisibility, for use
|
||||
// in classic {Binding} scenarios (e.g. ControlTemplates) where x:Bind function
|
||||
// syntax against the static Converters helpers isn't available.
|
||||
runtimeclass StringNotEmptyToVisibilityConverter : [default] Windows.UI.Xaml.Data.IValueConverter
|
||||
{
|
||||
StringNotEmptyToVisibilityConverter();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
#include <Windows.Graphics.Imaging.Interop.h>
|
||||
|
||||
#include <winrt/Windows.UI.Xaml.Controls.h>
|
||||
#include <winrt/Windows.UI.Xaml.Data.h>
|
||||
#include <winrt/Windows.UI.Xaml.Markup.h>
|
||||
#include <winrt/Windows.UI.Xaml.Input.h>
|
||||
#include <winrt/Windows.UI.Xaml.Media.Imaging.h>
|
||||
|
||||
Reference in New Issue
Block a user