Skip to content

Commit a1aa51f

Browse files
hifihedgehogclaude
andcommitted
Replace custom SVG icons with Segoe MDL2 glyphs, unify sidebar/page icons
- MIDI: replace custom SVG path with E8D6 (Audio) glyph everywhere - Dashboard: F404 sidebar + page header (was Symbol.Home / E80F) - Devices: E772 sidebar + page header (was Symbol.AllApps / E71D) - About: E946 sidebar + page header (was Symbol.Help / E897) - Drivers section header: ED5D (was E964) - Remove unused MidiSvgPath constant and MidiControllerIcon DrawingImage - Rename "About PadForge" page header to "About" Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 89c1413 commit a1aa51f

File tree

9 files changed

+44
-50
lines changed

9 files changed

+44
-50
lines changed

PadForge.App/Common/ControllerIcons.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,5 @@ public static class ControllerIcons
1212

1313
// Joystick icon from svgrepo.com (viewBox -4 -2 24 24, translated to 0,0 origin → 20x22 effective)
1414
public const string VJoySvgPath = "M11.915 15H13V9.874A4.002 4.002 0 0 1 14 2a4 4 0 0 1 1 7.874V15h2a3 3 0 0 1 3 3v4H4v-4a3 3 0 0 1 3-3h.085A1.5 1.5 0 0 1 8.5 14h2a1.5 1.5 0 0 1 1.415 1z";
15-
16-
// MIDI note icon (quarter note / beamed eighth notes, 24x24 viewBox)
17-
public const string MidiSvgPath = "M12 3v10.55A4 4 0 1 0 14 17V7h4V3h-6zM10 19a2 2 0 1 1 0-4 2 2 0 0 1 0 4z";
1815
}
1916
}

PadForge.App/MainWindow.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
<ui:NavigationViewItemSeparator/>
3434
<ui:NavigationViewItem Content="About" Tag="About">
3535
<ui:NavigationViewItem.Icon>
36-
<ui:SymbolIcon Symbol="Help"/>
36+
<ui:FontIcon Glyph="&#xE946;"/>
3737
</ui:NavigationViewItem.Icon>
3838
</ui:NavigationViewItem>
3939
</ui:NavigationView.FooterMenuItems>

PadForge.App/MainWindow.xaml.cs

Lines changed: 17 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -814,7 +814,7 @@ private void OnClosing(object sender, System.ComponentModel.CancelEventArgs e)
814814
private const string XboxSvgPath = Common.ControllerIcons.XboxSvgPath;
815815
private const string DS4SvgPath = Common.ControllerIcons.DS4SvgPath;
816816
private const string VJoySvgPath = Common.ControllerIcons.VJoySvgPath;
817-
private const string MidiSvgPath = Common.ControllerIcons.MidiSvgPath;
817+
818818

819819
/// <summary>Index in NavView.MenuItems where the first controller entry goes (after Dashboard, Profiles, Devices).</summary>
820820
private const int ControllerInsertIndex = 3;
@@ -844,7 +844,7 @@ private void BuildNavigationItems()
844844
{
845845
Content = "Dashboard",
846846
Tag = "Dashboard",
847-
Icon = new SymbolIcon(Symbol.Home)
847+
Icon = new FontIcon { Glyph = "\uF404" }
848848
});
849849

850850
// Profiles.
@@ -861,7 +861,7 @@ private void BuildNavigationItems()
861861
{
862862
Content = "Devices",
863863
Tag = "Devices",
864-
Icon = new SymbolIcon(Symbol.AllApps)
864+
Icon = new FontIcon { Glyph = "\uE772" }
865865
});
866866

867867
// Controller entries (initially none — populated dynamically).
@@ -1152,21 +1152,15 @@ private void UpdateControllerNavItemContent(NavigationViewItem menuItem, NavCont
11521152
if (isMidi)
11531153
{
11541154
// MIDI cards show only a static MIDI icon — no type switching to game controllers.
1155-
var midiIcon = new System.Windows.Shapes.Path
1155+
var midiIcon = new System.Windows.Controls.TextBlock
11561156
{
1157-
Data = System.Windows.Media.Geometry.Parse(MidiSvgPath),
1158-
Width = 13,
1159-
Height = 13,
1160-
Stretch = System.Windows.Media.Stretch.Uniform
1157+
Text = "\uE8D6",
1158+
FontFamily = new System.Windows.Media.FontFamily("Segoe MDL2 Assets"),
1159+
FontSize = 13,
1160+
VerticalAlignment = VerticalAlignment.Center,
1161+
ToolTip = "MIDI"
11611162
};
1162-
midiIcon.SetResourceReference(System.Windows.Shapes.Shape.FillProperty, "SystemControlForegroundBaseHighBrush");
1163-
row.Children.Add(new System.Windows.Controls.Border
1164-
{
1165-
Child = midiIcon,
1166-
Padding = new Thickness(2),
1167-
ToolTip = "MIDI",
1168-
VerticalAlignment = VerticalAlignment.Center
1169-
});
1163+
row.Children.Add(midiIcon);
11701164
}
11711165
else
11721166
{
@@ -2110,14 +2104,14 @@ private void ShowControllerTypePopup(UIElement anchor, PlacementMode placement =
21102104
stack.Children.Add(vjoyBtn);
21112105

21122106
// MIDI button — theme-aware icon fill.
2113-
var midiPopupPath = new System.Windows.Shapes.Path
2107+
var midiPopupIcon = new System.Windows.Controls.TextBlock
21142108
{
2115-
Data = System.Windows.Media.Geometry.Parse(MidiSvgPath),
2116-
Width = 28,
2117-
Height = 28,
2118-
Stretch = System.Windows.Media.Stretch.Uniform
2109+
Text = "\uE8D6",
2110+
FontFamily = new System.Windows.Media.FontFamily("Segoe MDL2 Assets"),
2111+
FontSize = 28,
2112+
HorizontalAlignment = HorizontalAlignment.Center,
2113+
VerticalAlignment = VerticalAlignment.Center
21192114
};
2120-
midiPopupPath.SetResourceReference(System.Windows.Shapes.Shape.FillProperty, "SystemControlForegroundBaseHighBrush");
21212115
bool midiAvailable = DriverInstaller.IsMidiServicesInstalled();
21222116
bool midiAtCapacity = midiCount >= SettingsManager.MaxMidiSlots;
21232117
bool midiDisabled = !midiAvailable || midiAtCapacity;
@@ -2126,7 +2120,7 @@ private void ShowControllerTypePopup(UIElement anchor, PlacementMode placement =
21262120
: "MIDI";
21272121
var midiBtn = new System.Windows.Controls.Button
21282122
{
2129-
Content = midiPopupPath,
2123+
Content = midiPopupIcon,
21302124
ToolTip = midiTooltip,
21312125
Background = System.Windows.Media.Brushes.Transparent,
21322126
Padding = new Thickness(8),

PadForge.App/Resources/ControllerIcons.xaml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,6 @@
3333
</DrawingImage.Drawing>
3434
</DrawingImage>
3535

36-
<!-- MIDI note icon (24x24 viewBox) -->
37-
<DrawingImage x:Key="MidiControllerIcon">
38-
<DrawingImage.Drawing>
39-
<GeometryDrawing Brush="{DynamicResource SystemControlForegroundBaseHighBrush}"
40-
Geometry="M12 3v10.55A4 4 0 1 0 14 17V7h4V3h-6zM10 19a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"/>
41-
</DrawingImage.Drawing>
42-
</DrawingImage>
43-
4436
<!-- Generic gamepad icon (512x512 viewBox, scaled to ~32x32) -->
4537
<DrawingImage x:Key="GenericControllerIcon">
4638
<DrawingImage.Drawing>

PadForge.App/Views/AboutPage.xaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
<StackPanel MaxWidth="600">
88

99
<StackPanel Orientation="Horizontal" Margin="0,0,0,20">
10-
<TextBlock Text="&#xE897;" FontFamily="Segoe MDL2 Assets" FontSize="20"
10+
<TextBlock Text="&#xE946;" FontFamily="Segoe MDL2 Assets" FontSize="20"
1111
VerticalAlignment="Center" Margin="0,0,10,0"/>
12-
<TextBlock Text="About PadForge" Style="{StaticResource TitleTextBlockStyle}"/>
12+
<TextBlock Text="About" Style="{StaticResource TitleTextBlockStyle}"/>
1313
</StackPanel>
1414

1515
<!-- App identity -->

PadForge.App/Views/DashboardPage.xaml

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
<!-- Page header -->
1111
<StackPanel Orientation="Horizontal" Margin="0,0,0,20">
12-
<TextBlock Text="&#xE80F;" FontFamily="Segoe MDL2 Assets" FontSize="20"
12+
<TextBlock Text="&#xF404;" FontFamily="Segoe MDL2 Assets" FontSize="20"
1313
VerticalAlignment="Center" Margin="0,0,10,0"/>
1414
<TextBlock Text="Dashboard" Style="{StaticResource TitleTextBlockStyle}"/>
1515
</StackPanel>
@@ -303,21 +303,19 @@
303303
</StackPanel>
304304

305305
<!-- MIDI icon (shown only for MIDI slots, no type switching) -->
306-
<Path Data="M12 3v10.55A4 4 0 1 0 14 17V7h4V3h-6zM10 19a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"
307-
Fill="{DynamicResource SystemControlForegroundBaseHighBrush}"
308-
Width="14" Height="14" Stretch="Uniform"
309-
VerticalAlignment="Center" ToolTip="MIDI">
310-
<Path.Style>
311-
<Style TargetType="Path">
306+
<TextBlock Text="&#xE8D6;" FontFamily="Segoe MDL2 Assets" FontSize="14"
307+
VerticalAlignment="Center" ToolTip="MIDI">
308+
<TextBlock.Style>
309+
<Style TargetType="TextBlock">
312310
<Setter Property="Visibility" Value="Collapsed"/>
313311
<Style.Triggers>
314312
<DataTrigger Binding="{Binding OutputType}" Value="Midi">
315313
<Setter Property="Visibility" Value="Visible"/>
316314
</DataTrigger>
317315
</Style.Triggers>
318316
</Style>
319-
</Path.Style>
320-
</Path>
317+
</TextBlock.Style>
318+
</TextBlock>
321319

322320
<!-- Per-type instance # -->
323321
<TextBlock Text="{Binding TypeInstanceLabel}"
@@ -441,7 +439,7 @@
441439

442440
<!-- ═══ Driver status ═══ -->
443441
<StackPanel Orientation="Horizontal" Margin="0,20,0,12">
444-
<TextBlock Text="&#xE964;" FontFamily="Segoe MDL2 Assets" FontSize="16"
442+
<TextBlock Text="&#xED5D;" FontFamily="Segoe MDL2 Assets" FontSize="16"
445443
VerticalAlignment="Center" Margin="0,0,8,0"/>
446444
<TextBlock Text="Drivers" Style="{StaticResource SubtitleTextBlockStyle}"/>
447445
</StackPanel>

PadForge.App/Views/DevicesPage.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
<!-- Header -->
1414
<StackPanel Orientation="Horizontal" Margin="0,0,0,16">
15-
<TextBlock Text="&#xE71D;" FontFamily="Segoe MDL2 Assets" FontSize="20"
15+
<TextBlock Text="&#xE772;" FontFamily="Segoe MDL2 Assets" FontSize="20"
1616
VerticalAlignment="Center" Margin="0,0,10,0"/>
1717
<TextBlock Text="Devices" Style="{StaticResource TitleTextBlockStyle}"/>
1818
<Button Content="Refresh" Margin="16,0,0,0"

PadForge.App/Views/PadPage.xaml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,12 +139,25 @@
139139
<Setter Property="Source" Value="{StaticResource VJoyControllerIcon}"/>
140140
</DataTrigger>
141141
<DataTrigger Binding="{Binding OutputType}" Value="Midi">
142-
<Setter Property="Source" Value="{StaticResource MidiControllerIcon}"/>
142+
<Setter Property="Visibility" Value="Collapsed"/>
143143
</DataTrigger>
144144
</Style.Triggers>
145145
</Style>
146146
</Image.Style>
147147
</Image>
148+
<TextBlock Text="&#xE8D6;" FontFamily="Segoe MDL2 Assets" FontSize="14"
149+
VerticalAlignment="Center" Margin="0,0,4,0">
150+
<TextBlock.Style>
151+
<Style TargetType="TextBlock">
152+
<Setter Property="Visibility" Value="Collapsed"/>
153+
<Style.Triggers>
154+
<DataTrigger Binding="{Binding OutputType}" Value="Midi">
155+
<Setter Property="Visibility" Value="Visible"/>
156+
</DataTrigger>
157+
</Style.Triggers>
158+
</Style>
159+
</TextBlock.Style>
160+
</TextBlock>
148161
<TextBlock Text="{Binding TypeInstanceLabel}" FontSize="15" FontWeight="SemiBold"
149162
VerticalAlignment="Center"/>
150163
</StackPanel>

PadForge.App/Views/SettingsPage.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@
208208
<Border Style="{StaticResource CardBorder}" Margin="0,0,0,20">
209209
<StackPanel>
210210
<StackPanel Orientation="Horizontal" Margin="0,0,0,4">
211-
<TextBlock Text="&#xEC4F;" FontFamily="Segoe MDL2 Assets" FontSize="16"
211+
<TextBlock Text="&#xE8D6;" FontFamily="Segoe MDL2 Assets" FontSize="16"
212212
VerticalAlignment="Center" Margin="0,0,8,0"/>
213213
<TextBlock Text="Windows MIDI Services" Style="{StaticResource CardTitle}"/>
214214
</StackPanel>

0 commit comments

Comments
 (0)