From 5bd5f5cb04cbb2073c9ee41882dba5052bba2c33 Mon Sep 17 00:00:00 2001 From: "Dustin L. Howett" Date: Sat, 16 Aug 2025 14:04:45 -0500 Subject: [PATCH] HAX SUI: display a border on the color chips if they're not gonna be visible --- .../ColorSchemeViewModel.cpp | 11 ++++++++++ .../ColorSchemeViewModel.h | 1 + .../ColorSchemeViewModel.idl | 2 ++ .../TerminalSettingsEditor/ColorSchemes.xaml | 22 +++++++++++++++++-- 4 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/cascadia/TerminalSettingsEditor/ColorSchemeViewModel.cpp b/src/cascadia/TerminalSettingsEditor/ColorSchemeViewModel.cpp index fef533a8f5..dc42879fac 100644 --- a/src/cascadia/TerminalSettingsEditor/ColorSchemeViewModel.cpp +++ b/src/cascadia/TerminalSettingsEditor/ColorSchemeViewModel.cpp @@ -167,6 +167,17 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation } } + winrt::Windows::UI::Xaml::Media::Brush ColorSchemeViewModel::MaybeContrastingColor(winrt::Windows::UI::Color color) + { + winrt::Windows::UI::Xaml::Media::SolidColorBrush scb{}; + scb.Color(color); + if (color == BackgroundColor().Color()) + { + scb.Color(ForegroundColor().Color()); + } + return scb; + } + ColorTableEntry::ColorTableEntry(uint8_t index, Windows::UI::Color color) { static const std::array TableColorNames = { diff --git a/src/cascadia/TerminalSettingsEditor/ColorSchemeViewModel.h b/src/cascadia/TerminalSettingsEditor/ColorSchemeViewModel.h index 45d3983f9a..c564f11b99 100644 --- a/src/cascadia/TerminalSettingsEditor/ColorSchemeViewModel.h +++ b/src/cascadia/TerminalSettingsEditor/ColorSchemeViewModel.h @@ -40,6 +40,7 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation // DON'T YOU DARE ADD A `WINRT_CALLBACK(PropertyChanged` TO A CLASS DERIVED FROM ViewModelHelper. Do this instead: using ViewModelHelper::PropertyChanged; + winrt::Windows::UI::Xaml::Media::Brush MaybeContrastingColor(winrt::Windows::UI::Color color); WINRT_PROPERTY(Windows::Foundation::Collections::IVector, NonBrightColorTable, nullptr); WINRT_PROPERTY(Windows::Foundation::Collections::IVector, BrightColorTable, nullptr); diff --git a/src/cascadia/TerminalSettingsEditor/ColorSchemeViewModel.idl b/src/cascadia/TerminalSettingsEditor/ColorSchemeViewModel.idl index 9ad129b228..8838524901 100644 --- a/src/cascadia/TerminalSettingsEditor/ColorSchemeViewModel.idl +++ b/src/cascadia/TerminalSettingsEditor/ColorSchemeViewModel.idl @@ -25,6 +25,8 @@ namespace Microsoft.Terminal.Settings.Editor ColorTableEntry CursorColor; ColorTableEntry SelectionBackgroundColor; + Windows.UI.Xaml.Media.Brush MaybeContrastingColor(Windows.UI.Color color); + void DeleteConfirmation_Click(IInspectable sender, Windows.UI.Xaml.RoutedEventArgs args); void SetAsDefault_Click(IInspectable sender, Windows.UI.Xaml.RoutedEventArgs args); void Duplicate_Click(IInspectable sender, Windows.UI.Xaml.RoutedEventArgs args); diff --git a/src/cascadia/TerminalSettingsEditor/ColorSchemes.xaml b/src/cascadia/TerminalSettingsEditor/ColorSchemes.xaml index 8e94b9f22f..9ae5726e98 100644 --- a/src/cascadia/TerminalSettingsEditor/ColorSchemes.xaml +++ b/src/cascadia/TerminalSettingsEditor/ColorSchemes.xaml @@ -21,10 +21,12 @@ - +