Skip to content

Commit 647129d

Browse files
committed
Use active icon when focused
1 parent a6bcfe5 commit 647129d

File tree

5 files changed

+48
-44
lines changed

5 files changed

+48
-44
lines changed

src/Files.App.Controls/Omnibar/Omnibar.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,13 @@ internal void ChangeExpandedMode(OmnibarMode modeToExpand)
9090
foreach (var column in _modesHostGrid.ColumnDefinitions)
9191
column.Width = GridLength.Auto;
9292
foreach (var mode in Modes)
93+
{
94+
VisualStateManager.GoToState(mode, "InactiveIcon", true);
9395
VisualStateManager.GoToState(mode, "Collapsed", true);
96+
}
9497

9598
// Expand the given mode
96-
VisualStateManager.GoToState(modeToExpand, "Focused", true);
99+
VisualStateManager.GoToState(modeToExpand, "ActiveIcon", true);
97100
VisualStateManager.GoToState(modeToExpand, "Visible", true);
98101
_modesHostGrid.ColumnDefinitions[_modesHostGrid.Children.IndexOf(modeToExpand)].Width = new(1, GridUnitType.Star);
99102

src/Files.App.Controls/Omnibar/OmnibarMode.Properties.cs

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ public partial class OmnibarMode
2020
[GeneratedDependencyProperty]
2121
public partial string? TextPlaceholder { get; set; }
2222

23+
[GeneratedDependencyProperty]
24+
public partial string? ToolTip { get; set; }
25+
2326
[GeneratedDependencyProperty]
2427
public partial bool HideContentOnInactive { get; set; }
2528

@@ -37,13 +40,5 @@ public partial class OmnibarMode
3740

3841
[GeneratedDependencyProperty]
3942
internal partial Omnibar? Host { get; set; }
40-
41-
[GeneratedDependencyProperty]
42-
internal partial bool IsHostFocused { get; set; }
43-
44-
partial void OnIsHostFocusedChanged(bool newValue)
45-
{
46-
UpdateVisualStates();
47-
}
4843
}
4944
}

src/Files.App.Controls/Omnibar/OmnibarMode.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,14 @@ namespace Files.App.Controls
1515
[TemplatePart(Name = "PART_ModeIconPresenter", Type = typeof(ContentPresenter))]
1616
[TemplatePart(Name = "PART_InputTextBox", Type = typeof(TextBox))]
1717
// Visual states
18-
[TemplateVisualState(Name = "PointerNormal", GroupName = "CommonStates")]
19-
[TemplateVisualState(Name = "PointerOver", GroupName = "CommonStates")]
20-
[TemplateVisualState(Name = "PointerPressed", GroupName = "CommonStates")]
21-
[TemplateVisualState(Name = "Focused", GroupName = "CommonStates")]
22-
// Visual states
23-
[TemplateVisualState(Name = "Collapsed", GroupName = "InputVisibilityStates")]
24-
[TemplateVisualState(Name = "Visible", GroupName = "InputVisibilityStates")]
18+
[TemplateVisualState(GroupName = "CommonStates", Name = "PointerNormal")]
19+
[TemplateVisualState(GroupName = "CommonStates", Name = "PointerOver")]
20+
[TemplateVisualState(GroupName = "CommonStates", Name = "PointerPressed")]
21+
[TemplateVisualState(GroupName = "CommonStates", Name = "Focused")]
22+
[TemplateVisualState(GroupName = "InputVisibilityStates", Name = "Collapsed")]
23+
[TemplateVisualState(GroupName = "InputVisibilityStates", Name = "Visible")]
24+
[TemplateVisualState(GroupName = "IconStates", Name = "InactiveIcon")]
25+
[TemplateVisualState(GroupName = "IconStates", Name = "ActiveIcon")]
2526
public partial class OmnibarMode : Control
2627
{
2728
private const string ModeClickBorder = "PART_ModeClickBorder";
@@ -30,7 +31,6 @@ public partial class OmnibarMode : Control
3031
private Border? _modeClickArea;
3132
private TextBox? _inputTextBox;
3233

33-
private bool _isHostInitialized;
3434
private bool _isHoveredOver;
3535
private bool _isPressed;
3636

src/Files.App.Controls/Omnibar/OmnibarMode.xaml

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@
3333
Width="{StaticResource OmnibarModeDefaultClickAreaWidth}"
3434
Height="{TemplateBinding Height}"
3535
Background="Transparent"
36-
CornerRadius="{TemplateBinding CornerRadius}">
36+
CornerRadius="{TemplateBinding CornerRadius}"
37+
ToolTipService.ToolTip="{Binding ToolTip, RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}">
3738
<Border.BackgroundTransition>
3839
<BrushTransition Duration="0:0:0.083" />
3940
</Border.BackgroundTransition>
@@ -42,7 +43,7 @@
4243
x:Name="PART_ModeIconPresenter"
4344
HorizontalAlignment="Center"
4445
VerticalAlignment="Center"
45-
Content="{TemplateBinding IconOnInactive}" />
46+
Content="{Binding IconOnInactive, RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}" />
4647
</Border>
4748

4849
<TextBox
@@ -51,7 +52,7 @@
5152
HorizontalAlignment="Stretch"
5253
HorizontalContentAlignment="Stretch"
5354
PlaceholderText="{TemplateBinding TextPlaceholder}"
54-
Text="{TemplateBinding Text}"
55+
Text="{Binding Path=Text, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
5556
Visibility="Collapsed">
5657
<TextBox.Resources>
5758
<SolidColorBrush x:Key="TextControlBackground" Color="Transparent" />
@@ -70,7 +71,7 @@
7071

7172
<VisualStateManager.VisualStateGroups>
7273

73-
<VisualStateGroup x:Name="CommonStates">
74+
<VisualStateGroup x:Name="PointerStates">
7475
<VisualState x:Name="PointerNormal" />
7576
<VisualState x:Name="PointerOver">
7677
<VisualState.Setters>
@@ -80,11 +81,7 @@
8081
<VisualState x:Name="PointerPressed">
8182
<VisualState.Setters>
8283
<Setter Target="PART_ModeClickBorder.Background" Value="{ThemeResource SubtleFillColorSecondaryBrush}" />
83-
</VisualState.Setters>
84-
</VisualState>
85-
<VisualState x:Name="Focused">
86-
<VisualState.Setters>
87-
<Setter Target="PART_ModeIconPresenter.Content" Value="{TemplateBinding IconOnActive}" />
84+
<Setter Target="PART_ModeIconPresenter.Content" Value="{Binding IconOnActive, RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}" />
8885
</VisualState.Setters>
8986
</VisualState>
9087
</VisualStateGroup>
@@ -98,6 +95,15 @@
9895
</VisualState>
9996
</VisualStateGroup>
10097

98+
<VisualStateGroup x:Name="IconStates">
99+
<VisualState x:Name="InactiveIcon" />
100+
<VisualState x:Name="ActiveIcon">
101+
<VisualState.Setters>
102+
<Setter Target="PART_ModeIconPresenter.Content" Value="{Binding IconOnActive, RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}" />
103+
</VisualState.Setters>
104+
</VisualState>
105+
</VisualStateGroup>
106+
101107
</VisualStateManager.VisualStateGroups>
102108
</Grid>
103109
</ControlTemplate>

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

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -64,46 +64,46 @@
6464
Padding="24"
6565
Style="{StaticResource GridExampleControlStyle}">
6666
<controls:Omnibar HorizontalAlignment="Stretch" VerticalAlignment="Center">
67+
6768
<controls:OmnibarMode
6869
HideContentOnInactive="True"
6970
IsDefault="True"
7071
Text="Path..."
71-
TextPlaceholder="Enter text...">
72+
TextPlaceholder="Enter text..."
73+
ToolTip="Path">
7274
<controls:OmnibarMode.IconOnActive>
73-
<controls:ThemedIcon
74-
IconColorType="Normal"
75-
IsFilled="True"
76-
Style="{StaticResource App.ThemedIcons.Omnibar.Path}" />
75+
<controls:ThemedIcon IsFilled="True" Style="{StaticResource App.ThemedIcons.Omnibar.Path}" />
7776
</controls:OmnibarMode.IconOnActive>
7877
<controls:OmnibarMode.IconOnInactive>
79-
<controls:ThemedIcon IconColorType="Normal" Style="{StaticResource App.ThemedIcons.Omnibar.Path}" />
78+
<controls:ThemedIcon Style="{StaticResource App.ThemedIcons.Omnibar.Path}" />
8079
</controls:OmnibarMode.IconOnInactive>
8180
</controls:OmnibarMode>
81+
8282
<controls:OmnibarMode
8383
HideContentOnInactive="True"
8484
Text="Palette..."
85-
TextPlaceholder="Enter a palette command...">
85+
TextPlaceholder="Enter a palette command..."
86+
ToolTip="Palette">
8687
<controls:OmnibarMode.IconOnActive>
87-
<controls:ThemedIcon
88-
IconColorType="Normal"
89-
IsFilled="True"
90-
Style="{StaticResource App.ThemedIcons.Omnibar.Commands}" />
88+
<controls:ThemedIcon IsFilled="True" Style="{StaticResource App.ThemedIcons.Omnibar.Commands}" />
9189
</controls:OmnibarMode.IconOnActive>
9290
<controls:OmnibarMode.IconOnInactive>
93-
<controls:ThemedIcon IconColorType="Normal" Style="{StaticResource App.ThemedIcons.Omnibar.Commands}" />
91+
<controls:ThemedIcon Style="{StaticResource App.ThemedIcons.Omnibar.Commands}" />
9492
</controls:OmnibarMode.IconOnInactive>
9593
</controls:OmnibarMode>
96-
<controls:OmnibarMode Text="Search..." TextPlaceholder="Enter a search query...">
94+
95+
<controls:OmnibarMode
96+
Text="Search..."
97+
TextPlaceholder="Enter a search query..."
98+
ToolTip="Search">
9799
<controls:OmnibarMode.IconOnActive>
98-
<controls:ThemedIcon
99-
IconColorType="Normal"
100-
IsFilled="True"
101-
Style="{StaticResource App.ThemedIcons.Omnibar.Search}" />
100+
<controls:ThemedIcon IsFilled="True" Style="{StaticResource App.ThemedIcons.Omnibar.Search}" />
102101
</controls:OmnibarMode.IconOnActive>
103102
<controls:OmnibarMode.IconOnInactive>
104-
<controls:ThemedIcon IconColorType="Normal" Style="{StaticResource App.ThemedIcons.Omnibar.Search}" />
103+
<controls:ThemedIcon Style="{StaticResource App.ThemedIcons.Omnibar.Search}" />
105104
</controls:OmnibarMode.IconOnInactive>
106105
</controls:OmnibarMode>
106+
107107
</controls:Omnibar>
108108
</Grid>
109109

0 commit comments

Comments
 (0)