Skip to content

Commit 11214c7

Browse files
committed
Created a markup extension for ThemedIcon (WIP)
1 parent 2e045b7 commit 11214c7

File tree

3 files changed

+33
-21
lines changed

3 files changed

+33
-21
lines changed

Settings.XamlStyler

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
{
2-
"IndentWithTabs": true
2+
"IndentWithTabs": true,
3+
"NoNewLineMarkupExtensions": "x:Bind, Binding, controls:ThemedIconMarkup",
34
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
// Copyright (c) Files Community
2+
// Licensed under the MIT License.
3+
4+
using Microsoft.UI.Xaml.Markup;
5+
6+
namespace Files.App.Controls
7+
{
8+
[MarkupExtensionReturnType(ReturnType = typeof(ThemedIcon))]
9+
public sealed partial class ThemedIconMarkup : MarkupExtension
10+
{
11+
public Style Style { get; set; } = null!;
12+
13+
public bool IsFilled { get; set; }
14+
15+
public ThemedIconTypes IconType { get; set; }
16+
17+
protected override object ProvideValue()
18+
{
19+
return new ThemedIcon() { Style = Style, IsFilled = IsFilled, IconType = IconType };
20+
}
21+
}
22+
}

tests/Files.App.UITests/Views/OmnibarPage.xaml

+9-20
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,12 @@
2222
TextChanged="Omnibar1_TextChanged">
2323

2424
<controls:OmnibarMode
25+
IconOnActive="{controls:ThemedIconMarkup Style={StaticResource App.ThemedIcons.Omnibar.Path}, IsFilled=True}"
26+
IconOnInactive="{controls:ThemedIconMarkup Style={StaticResource App.ThemedIcons.Omnibar.Path}, IconType=Outline}"
2527
IsDefault="True"
2628
ModeName="Path"
2729
PlaceholderText="Enter text..."
2830
Text="Path...">
29-
<controls:OmnibarMode.IconOnActive>
30-
<controls:ThemedIcon IsFilled="True" Style="{StaticResource App.ThemedIcons.Omnibar.Path}" />
31-
</controls:OmnibarMode.IconOnActive>
32-
<controls:OmnibarMode.IconOnInactive>
33-
<controls:ThemedIcon IconType="Outline" Style="{StaticResource App.ThemedIcons.Omnibar.Path}" />
34-
</controls:OmnibarMode.IconOnInactive>
3531
<controls:OmnibarMode.ContentOnInactive>
3632
<controls:BreadcrumbBar
3733
x:Name="BreadcrumbBar1"
@@ -55,15 +51,11 @@
5551

5652
<controls:OmnibarMode
5753
DisplayMemberPath="Title"
54+
IconOnActive="{controls:ThemedIconMarkup Style={StaticResource App.ThemedIcons.Omnibar.Commands}, IsFilled=True}"
55+
IconOnInactive="{controls:ThemedIconMarkup Style={StaticResource App.ThemedIcons.Omnibar.Commands}, IconType=Outline}"
5856
ModeName="Palette"
5957
PlaceholderText="Enter a palette command..."
6058
SuggestionItemsSource="{x:Bind Omnibar1_PaletteSuggestions, Mode=OneWay}">
61-
<controls:OmnibarMode.IconOnActive>
62-
<controls:ThemedIcon IsFilled="True" Style="{StaticResource App.ThemedIcons.Omnibar.Commands}" />
63-
</controls:OmnibarMode.IconOnActive>
64-
<controls:OmnibarMode.IconOnInactive>
65-
<controls:ThemedIcon IconType="Outline" Style="{StaticResource App.ThemedIcons.Omnibar.Commands}" />
66-
</controls:OmnibarMode.IconOnInactive>
6759
<controls:OmnibarMode.SuggestionItemTemplate>
6860
<DataTemplate x:DataType="data:OmnibarPaletteSuggestionItem">
6961
<Grid Height="48" ColumnSpacing="12">
@@ -99,14 +91,11 @@
9991
</controls:OmnibarMode.SuggestionItemTemplate>
10092
</controls:OmnibarMode>
10193

102-
<controls:OmnibarMode ModeName="Search" PlaceholderText="Enter a search query...">
103-
<controls:OmnibarMode.IconOnActive>
104-
<controls:ThemedIcon IsFilled="True" Style="{StaticResource App.ThemedIcons.Omnibar.Search}" />
105-
</controls:OmnibarMode.IconOnActive>
106-
<controls:OmnibarMode.IconOnInactive>
107-
<controls:ThemedIcon IconType="Outline" Style="{StaticResource App.ThemedIcons.Omnibar.Search}" />
108-
</controls:OmnibarMode.IconOnInactive>
109-
</controls:OmnibarMode>
94+
<controls:OmnibarMode
95+
IconOnActive="{controls:ThemedIconMarkup Style={StaticResource App.ThemedIcons.Omnibar.Search}, IsFilled=True}"
96+
IconOnInactive="{controls:ThemedIconMarkup Style={StaticResource App.ThemedIcons.Omnibar.Search}, IconType=Outline}"
97+
ModeName="Search"
98+
PlaceholderText="Enter a search query..." />
11099

111100
</controls:Omnibar>
112101
</Grid>

0 commit comments

Comments
 (0)