Skip to content

Commit 5bd5f5c

Browse files
committed
HAX SUI: display a border on the color chips if they're not gonna be visible
1 parent e97388c commit 5bd5f5c

File tree

4 files changed

+34
-2
lines changed

4 files changed

+34
-2
lines changed

src/cascadia/TerminalSettingsEditor/ColorSchemeViewModel.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,17 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
167167
}
168168
}
169169

170+
winrt::Windows::UI::Xaml::Media::Brush ColorSchemeViewModel::MaybeContrastingColor(winrt::Windows::UI::Color color)
171+
{
172+
winrt::Windows::UI::Xaml::Media::SolidColorBrush scb{};
173+
scb.Color(color);
174+
if (color == BackgroundColor().Color())
175+
{
176+
scb.Color(ForegroundColor().Color());
177+
}
178+
return scb;
179+
}
180+
170181
ColorTableEntry::ColorTableEntry(uint8_t index, Windows::UI::Color color)
171182
{
172183
static const std::array<hstring, 16> TableColorNames = {

src/cascadia/TerminalSettingsEditor/ColorSchemeViewModel.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
4040

4141
// DON'T YOU DARE ADD A `WINRT_CALLBACK(PropertyChanged` TO A CLASS DERIVED FROM ViewModelHelper. Do this instead:
4242
using ViewModelHelper<ColorSchemeViewModel>::PropertyChanged;
43+
winrt::Windows::UI::Xaml::Media::Brush MaybeContrastingColor(winrt::Windows::UI::Color color);
4344

4445
WINRT_PROPERTY(Windows::Foundation::Collections::IVector<Editor::ColorTableEntry>, NonBrightColorTable, nullptr);
4546
WINRT_PROPERTY(Windows::Foundation::Collections::IVector<Editor::ColorTableEntry>, BrightColorTable, nullptr);

src/cascadia/TerminalSettingsEditor/ColorSchemeViewModel.idl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ namespace Microsoft.Terminal.Settings.Editor
2525
ColorTableEntry CursorColor;
2626
ColorTableEntry SelectionBackgroundColor;
2727

28+
Windows.UI.Xaml.Media.Brush MaybeContrastingColor(Windows.UI.Color color);
29+
2830
void DeleteConfirmation_Click(IInspectable sender, Windows.UI.Xaml.RoutedEventArgs args);
2931
void SetAsDefault_Click(IInspectable sender, Windows.UI.Xaml.RoutedEventArgs args);
3032
void Duplicate_Click(IInspectable sender, Windows.UI.Xaml.RoutedEventArgs args);

src/cascadia/TerminalSettingsEditor/ColorSchemes.xaml

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,12 @@
2121

2222
<DataTemplate x:Key="ColorPreviewChipTemplate"
2323
x:DataType="local:ColorTableEntry">
24-
<Border Width="12"
25-
Height="12"
24+
<Border Width="11"
25+
Height="11"
2626
Background="{x:Bind mtu:Converters.ColorToBrush(Color)}"
27+
BorderThickness="2"
2728
CornerRadius="2" />
29+
<!-- BorderBrush="{x:Bind ((local:ColorSchemeViewModel)DataContext).MaybeContrastingColor(Color)}" -->
2830
</DataTemplate>
2931

3032
<Style x:Key="SchemeGridStyle"
@@ -113,81 +115,97 @@
113115
Grid.Column="0"
114116
Content="{x:Bind ColorEntryAt(0), Mode=OneWay}"
115117
ContentTemplate="{StaticResource ColorPreviewChipTemplate}"
118+
DataContext="{x:Bind (local:ColorSchemeViewModel), Mode=OneWay}"
116119
IsTabStop="False" />
117120
<ContentControl Grid.Row="0"
118121
Grid.Column="1"
119122
Content="{x:Bind ColorEntryAt(1), Mode=OneWay}"
120123
ContentTemplate="{StaticResource ColorPreviewChipTemplate}"
124+
DataContext="{x:Bind (local:ColorSchemeViewModel), Mode=OneWay}"
121125
IsTabStop="False" />
122126
<ContentControl Grid.Row="0"
123127
Grid.Column="2"
124128
Content="{x:Bind ColorEntryAt(2), Mode=OneWay}"
125129
ContentTemplate="{StaticResource ColorPreviewChipTemplate}"
130+
DataContext="{x:Bind (local:ColorSchemeViewModel), Mode=OneWay}"
126131
IsTabStop="False" />
127132
<ContentControl Grid.Row="0"
128133
Grid.Column="3"
129134
Content="{x:Bind ColorEntryAt(3), Mode=OneWay}"
130135
ContentTemplate="{StaticResource ColorPreviewChipTemplate}"
136+
DataContext="{x:Bind (local:ColorSchemeViewModel), Mode=OneWay}"
131137
IsTabStop="False" />
132138
<ContentControl Grid.Row="0"
133139
Grid.Column="4"
134140
Content="{x:Bind ColorEntryAt(4), Mode=OneWay}"
135141
ContentTemplate="{StaticResource ColorPreviewChipTemplate}"
142+
DataContext="{x:Bind (local:ColorSchemeViewModel), Mode=OneWay}"
136143
IsTabStop="False" />
137144
<ContentControl Grid.Row="0"
138145
Grid.Column="5"
139146
Content="{x:Bind ColorEntryAt(5), Mode=OneWay}"
140147
ContentTemplate="{StaticResource ColorPreviewChipTemplate}"
148+
DataContext="{x:Bind (local:ColorSchemeViewModel), Mode=OneWay}"
141149
IsTabStop="False" />
142150
<ContentControl Grid.Row="0"
143151
Grid.Column="6"
144152
Content="{x:Bind ColorEntryAt(6), Mode=OneWay}"
145153
ContentTemplate="{StaticResource ColorPreviewChipTemplate}"
154+
DataContext="{x:Bind (local:ColorSchemeViewModel), Mode=OneWay}"
146155
IsTabStop="False" />
147156
<ContentControl Grid.Row="0"
148157
Grid.Column="7"
149158
Content="{x:Bind ColorEntryAt(7), Mode=OneWay}"
150159
ContentTemplate="{StaticResource ColorPreviewChipTemplate}"
160+
DataContext="{x:Bind (local:ColorSchemeViewModel), Mode=OneWay}"
151161
IsTabStop="False" />
152162
<ContentControl Grid.Row="1"
153163
Grid.Column="0"
154164
Content="{x:Bind ColorEntryAt(8), Mode=OneWay}"
155165
ContentTemplate="{StaticResource ColorPreviewChipTemplate}"
166+
DataContext="{x:Bind (local:ColorSchemeViewModel), Mode=OneWay}"
156167
IsTabStop="False" />
157168
<ContentControl Grid.Row="1"
158169
Grid.Column="1"
159170
Content="{x:Bind ColorEntryAt(9), Mode=OneWay}"
160171
ContentTemplate="{StaticResource ColorPreviewChipTemplate}"
172+
DataContext="{x:Bind (local:ColorSchemeViewModel), Mode=OneWay}"
161173
IsTabStop="False" />
162174
<ContentControl Grid.Row="1"
163175
Grid.Column="2"
164176
Content="{x:Bind ColorEntryAt(10), Mode=OneWay}"
165177
ContentTemplate="{StaticResource ColorPreviewChipTemplate}"
178+
DataContext="{x:Bind (local:ColorSchemeViewModel), Mode=OneWay}"
166179
IsTabStop="False" />
167180
<ContentControl Grid.Row="1"
168181
Grid.Column="3"
169182
Content="{x:Bind ColorEntryAt(11), Mode=OneWay}"
170183
ContentTemplate="{StaticResource ColorPreviewChipTemplate}"
184+
DataContext="{x:Bind (local:ColorSchemeViewModel), Mode=OneWay}"
171185
IsTabStop="False" />
172186
<ContentControl Grid.Row="1"
173187
Grid.Column="4"
174188
Content="{x:Bind ColorEntryAt(12), Mode=OneWay}"
175189
ContentTemplate="{StaticResource ColorPreviewChipTemplate}"
190+
DataContext="{x:Bind (local:ColorSchemeViewModel), Mode=OneWay}"
176191
IsTabStop="False" />
177192
<ContentControl Grid.Row="1"
178193
Grid.Column="5"
179194
Content="{x:Bind ColorEntryAt(13), Mode=OneWay}"
180195
ContentTemplate="{StaticResource ColorPreviewChipTemplate}"
196+
DataContext="{x:Bind (local:ColorSchemeViewModel), Mode=OneWay}"
181197
IsTabStop="False" />
182198
<ContentControl Grid.Row="1"
183199
Grid.Column="6"
184200
Content="{x:Bind ColorEntryAt(14), Mode=OneWay}"
185201
ContentTemplate="{StaticResource ColorPreviewChipTemplate}"
202+
DataContext="{x:Bind (local:ColorSchemeViewModel), Mode=OneWay}"
186203
IsTabStop="False" />
187204
<ContentControl Grid.Row="1"
188205
Grid.Column="7"
189206
Content="{x:Bind ColorEntryAt(15), Mode=OneWay}"
190207
ContentTemplate="{StaticResource ColorPreviewChipTemplate}"
208+
DataContext="{x:Bind (local:ColorSchemeViewModel), Mode=OneWay}"
191209
IsTabStop="False" />
192210
<TextBlock Grid.RowSpan="2"
193211
Grid.Column="8"

0 commit comments

Comments
 (0)