Skip to content

Commit 67ca382

Browse files
committed
feat(fontIconSource): Add basic support of FontIconSource
1 parent 2f1dbfa commit 67ca382

File tree

4 files changed

+87
-23
lines changed

4 files changed

+87
-23
lines changed

src/Uno.UI/Generated/3.0.0.0/Windows.UI.Xaml.Controls/FontIconSource.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#pragma warning disable 114 // new keyword hiding
33
namespace Windows.UI.Xaml.Controls
44
{
5-
#if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__
5+
#if false
66
[global::Uno.NotImplemented]
77
#endif
88
public partial class FontIconSource : global::Windows.UI.Xaml.Controls.IconSource
@@ -35,7 +35,7 @@ public bool IsTextScaleFactorEnabled
3535
}
3636
}
3737
#endif
38-
#if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__
38+
#if false
3939
[global::Uno.NotImplemented("__ANDROID__", "__IOS__", "NET461", "__WASM__", "__SKIA__", "__NETSTD_REFERENCE__", "__MACOS__")]
4040
public string Glyph
4141
{
@@ -49,7 +49,7 @@ public string Glyph
4949
}
5050
}
5151
#endif
52-
#if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__
52+
#if false
5353
[global::Uno.NotImplemented("__ANDROID__", "__IOS__", "NET461", "__WASM__", "__SKIA__", "__NETSTD_REFERENCE__", "__MACOS__")]
5454
public global::Windows.UI.Text.FontWeight FontWeight
5555
{
@@ -63,7 +63,7 @@ public string Glyph
6363
}
6464
}
6565
#endif
66-
#if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__
66+
#if false
6767
[global::Uno.NotImplemented("__ANDROID__", "__IOS__", "NET461", "__WASM__", "__SKIA__", "__NETSTD_REFERENCE__", "__MACOS__")]
6868
public global::Windows.UI.Text.FontStyle FontStyle
6969
{
@@ -77,7 +77,7 @@ public string Glyph
7777
}
7878
}
7979
#endif
80-
#if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__
80+
#if false
8181
[global::Uno.NotImplemented("__ANDROID__", "__IOS__", "NET461", "__WASM__", "__SKIA__", "__NETSTD_REFERENCE__", "__MACOS__")]
8282
public double FontSize
8383
{
@@ -91,7 +91,7 @@ public double FontSize
9191
}
9292
}
9393
#endif
94-
#if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__
94+
#if false
9595
[global::Uno.NotImplemented("__ANDROID__", "__IOS__", "NET461", "__WASM__", "__SKIA__", "__NETSTD_REFERENCE__", "__MACOS__")]
9696
public global::Windows.UI.Xaml.Media.FontFamily FontFamily
9797
{
@@ -105,39 +105,39 @@ public double FontSize
105105
}
106106
}
107107
#endif
108-
#if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__
108+
#if false
109109
[global::Uno.NotImplemented("__ANDROID__", "__IOS__", "NET461", "__WASM__", "__SKIA__", "__NETSTD_REFERENCE__", "__MACOS__")]
110110
public static global::Windows.UI.Xaml.DependencyProperty FontFamilyProperty { get; } =
111111
Windows.UI.Xaml.DependencyProperty.Register(
112112
nameof(FontFamily), typeof(global::Windows.UI.Xaml.Media.FontFamily),
113113
typeof(global::Windows.UI.Xaml.Controls.FontIconSource),
114114
new FrameworkPropertyMetadata(default(global::Windows.UI.Xaml.Media.FontFamily)));
115115
#endif
116-
#if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__
116+
#if false
117117
[global::Uno.NotImplemented("__ANDROID__", "__IOS__", "NET461", "__WASM__", "__SKIA__", "__NETSTD_REFERENCE__", "__MACOS__")]
118118
public static global::Windows.UI.Xaml.DependencyProperty FontSizeProperty { get; } =
119119
Windows.UI.Xaml.DependencyProperty.Register(
120120
nameof(FontSize), typeof(double),
121121
typeof(global::Windows.UI.Xaml.Controls.FontIconSource),
122122
new FrameworkPropertyMetadata(default(double)));
123123
#endif
124-
#if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__
124+
#if false
125125
[global::Uno.NotImplemented("__ANDROID__", "__IOS__", "NET461", "__WASM__", "__SKIA__", "__NETSTD_REFERENCE__", "__MACOS__")]
126126
public static global::Windows.UI.Xaml.DependencyProperty FontStyleProperty { get; } =
127127
Windows.UI.Xaml.DependencyProperty.Register(
128128
nameof(FontStyle), typeof(global::Windows.UI.Text.FontStyle),
129129
typeof(global::Windows.UI.Xaml.Controls.FontIconSource),
130130
new FrameworkPropertyMetadata(default(global::Windows.UI.Text.FontStyle)));
131131
#endif
132-
#if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__
132+
#if false
133133
[global::Uno.NotImplemented("__ANDROID__", "__IOS__", "NET461", "__WASM__", "__SKIA__", "__NETSTD_REFERENCE__", "__MACOS__")]
134134
public static global::Windows.UI.Xaml.DependencyProperty FontWeightProperty { get; } =
135135
Windows.UI.Xaml.DependencyProperty.Register(
136136
nameof(FontWeight), typeof(global::Windows.UI.Text.FontWeight),
137137
typeof(global::Windows.UI.Xaml.Controls.FontIconSource),
138138
new FrameworkPropertyMetadata(default(global::Windows.UI.Text.FontWeight)));
139139
#endif
140-
#if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__
140+
#if false
141141
[global::Uno.NotImplemented("__ANDROID__", "__IOS__", "NET461", "__WASM__", "__SKIA__", "__NETSTD_REFERENCE__", "__MACOS__")]
142142
public static global::Windows.UI.Xaml.DependencyProperty GlyphProperty { get; } =
143143
Windows.UI.Xaml.DependencyProperty.Register(
@@ -161,7 +161,7 @@ public double FontSize
161161
typeof(global::Windows.UI.Xaml.Controls.FontIconSource),
162162
new FrameworkPropertyMetadata(default(bool)));
163163
#endif
164-
#if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__
164+
#if false
165165
[global::Uno.NotImplemented("__ANDROID__", "__IOS__", "NET461", "__WASM__", "__SKIA__", "__NETSTD_REFERENCE__", "__MACOS__")]
166166
public FontIconSource()
167167
{
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
using Windows.UI.Text;
2+
using Windows.UI.Xaml.Media;
3+
4+
namespace Windows.UI.Xaml.Controls
5+
{
6+
public partial class FontIconSource : global::Windows.UI.Xaml.Controls.IconSource
7+
{
8+
public string Glyph
9+
{
10+
get => (string)GetValue(GlyphProperty);
11+
set => SetValue(GlyphProperty, value);
12+
}
13+
14+
public static DependencyProperty GlyphProperty { get; } =
15+
DependencyProperty.Register(nameof(Glyph), typeof(string), typeof(FontIconSource), new PropertyMetadata(default(string)));
16+
17+
public FontWeight FontWeight
18+
{
19+
get => (FontWeight)GetValue(FontWeightProperty);
20+
set => SetValue(FontWeightProperty, value);
21+
}
22+
23+
public static DependencyProperty FontWeightProperty { get; } =
24+
DependencyProperty.Register(nameof(FontWeight), typeof(FontWeight), typeof(FontIconSource), new PropertyMetadata(new FontWeight(400)));
25+
26+
public FontStyle FontStyle
27+
{
28+
get => (FontStyle)GetValue(FontStyleProperty);
29+
set => SetValue(FontStyleProperty, value);
30+
}
31+
32+
public static DependencyProperty FontStyleProperty { get; } =
33+
DependencyProperty.Register(nameof(FontStyle), typeof(FontStyle), typeof(FontIconSource), new PropertyMetadata(FontStyle.Normal));
34+
35+
public double FontSize
36+
{
37+
get => (double)GetValue(FontSizeProperty);
38+
set => SetValue(FontSizeProperty, value);
39+
}
40+
41+
public static DependencyProperty FontSizeProperty { get; } =
42+
DependencyProperty.Register(nameof(FontSize), typeof(double), typeof(FontIconSource), new PropertyMetadata(20.0));
43+
44+
public FontFamily FontFamily
45+
{
46+
get => (FontFamily)GetValue(FontFamilyProperty);
47+
set => SetValue(FontFamilyProperty, value);
48+
}
49+
50+
public static DependencyProperty FontFamilyProperty { get; } =
51+
DependencyProperty.Register(nameof(FontFamily), typeof(FontFamily), typeof(FontIconSource), new PropertyMetadata(new FontFamily(Uno.UI.FeatureConfiguration.Font.SymbolsFont)));
52+
53+
/// <inheritdoc />
54+
internal override IconElement CreateIconElement()
55+
=> new FontIcon
56+
{
57+
Glyph = Glyph,
58+
FontWeight = FontWeight,
59+
FontStyle = FontStyle,
60+
FontSize = FontSize,
61+
FontFamily = FontFamily
62+
};
63+
}
64+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#nullable enable
2+
3+
namespace Windows.UI.Xaml.Controls
4+
{
5+
public partial class IconSource : global::Windows.UI.Xaml.DependencyObject
6+
{
7+
internal virtual IconElement? CreateIconElement()
8+
=> default;
9+
}
10+
}

src/Uno.UI/UI/Xaml/Controls/SwipeControl/SwipeItem.cs

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -80,17 +80,7 @@ internal void GenerateControl(AppBarButton appBarButton, Style swipeItemStyle)
8080

8181
if (IconSource is {})
8282
{
83-
// TODO Uno
84-
//appBarButton.Icon = IconSource.CreateIconElement();
85-
86-
// This is a temporary implementation
87-
if (IconSource is FontIconSource fontIconSource)
88-
{
89-
appBarButton.Icon = new FontIcon()
90-
{
91-
Glyph = fontIconSource.Glyph
92-
};
93-
}
83+
appBarButton.Icon = IconSource.CreateIconElement();
9484
}
9585

9686
appBarButton.Label = Text;

0 commit comments

Comments
 (0)