Skip to content

Commit 513bd72

Browse files
author
Yair Aichenbaum
committed
Refactored namespaces
Added the option to use shortcuts to select tabs
1 parent 4a60063 commit 513bd72

File tree

6 files changed

+133
-76
lines changed

6 files changed

+133
-76
lines changed

Files/Controls/RibbonArea.xaml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
xmlns:interactivity="using:Microsoft.Xaml.Interactivity"
1111
xmlns:local="using:Files"
1212
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
13-
xmlns:uilib="using:Microsoft.UI.Xaml.Controls"
13+
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
1414
d:DesignHeight="125"
1515
d:DesignWidth="1280"
1616
mc:Ignorable="d">
@@ -1588,28 +1588,28 @@
15881588
Style="{StaticResource AppBarButtonRevealStyle}">
15891589
<AppBarButton.Flyout>
15901590
<MenuFlyout Placement="BottomEdgeAlignedLeft">
1591-
<uilib:RadioMenuFlyoutItem
1591+
<muxc:RadioMenuFlyoutItem
15921592
GroupName="SortGroup"
15931593
IsChecked="{x:Bind parentPage.instanceViewModel.IsSortedByName, Mode=TwoWay}"
15941594
Text="Name" />
1595-
<uilib:RadioMenuFlyoutItem
1595+
<muxc:RadioMenuFlyoutItem
15961596
GroupName="SortGroup"
15971597
IsChecked="{x:Bind parentPage.instanceViewModel.IsSortedByDate, Mode=TwoWay}"
15981598
Text="Date modified" />
1599-
<uilib:RadioMenuFlyoutItem
1599+
<muxc:RadioMenuFlyoutItem
16001600
GroupName="SortGroup"
16011601
IsChecked="{x:Bind parentPage.instanceViewModel.IsSortedByType, Mode=TwoWay}"
16021602
Text="Type" />
1603-
<uilib:RadioMenuFlyoutItem
1603+
<muxc:RadioMenuFlyoutItem
16041604
GroupName="SortGroup"
16051605
IsChecked="{x:Bind parentPage.instanceViewModel.IsSortedBySize, Mode=TwoWay}"
16061606
Text="Size" />
16071607
<MenuFlyoutSeparator />
1608-
<uilib:RadioMenuFlyoutItem
1608+
<muxc:RadioMenuFlyoutItem
16091609
GroupName="SortOrderGroup"
16101610
IsChecked="{x:Bind parentPage.instanceViewModel.IsSortedAscending, Mode=TwoWay}"
16111611
Text="Ascending" />
1612-
<uilib:RadioMenuFlyoutItem
1612+
<muxc:RadioMenuFlyoutItem
16131613
GroupName="SortOrderGroup"
16141614
IsChecked="{x:Bind parentPage.instanceViewModel.IsSortedDescending, Mode=TwoWay}"
16151615
Text="Descending" />

Files/GenericFileBrowser.xaml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,21 @@
88
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
99
xmlns:local="using:Files"
1010
xmlns:local2="using:Files.Filesystem"
11-
xmlns:uilib="using:Microsoft.UI.Xaml.Controls"
11+
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
1212
mc:Ignorable="d" NavigationCacheMode="Required" PointerReleased="GenericItemView_PointerReleased" Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
1313
<local:BaseLayout.Resources>
1414
<MenuFlyout x:Key="BaseLayoutContextFlyout">
1515
<MenuFlyoutSubItem Text="Sort by" x:Name="SortByEmptySpace">
1616
<MenuFlyoutSubItem.Icon>
1717
<FontIcon Glyph="&#xE8CB;"/>
1818
</MenuFlyoutSubItem.Icon>
19-
<uilib:RadioMenuFlyoutItem Text="Name" GroupName="SortGroup" IsChecked="{x:Bind AssociatedViewModel.IsSortedByName, Mode=TwoWay}"/>
20-
<uilib:RadioMenuFlyoutItem Text="Date modified" GroupName="SortGroup" IsChecked="{x:Bind AssociatedViewModel.IsSortedByDate, Mode=TwoWay}"/>
21-
<uilib:RadioMenuFlyoutItem Text="Type" GroupName="SortGroup" IsChecked="{x:Bind AssociatedViewModel.IsSortedByType, Mode=TwoWay}"/>
22-
<uilib:RadioMenuFlyoutItem Text="Size" GroupName="SortGroup" IsChecked="{x:Bind AssociatedViewModel.IsSortedBySize, Mode=TwoWay}"/>
19+
<muxc:RadioMenuFlyoutItem Text="Name" GroupName="SortGroup" IsChecked="{x:Bind AssociatedViewModel.IsSortedByName, Mode=TwoWay}"/>
20+
<muxc:RadioMenuFlyoutItem Text="Date modified" GroupName="SortGroup" IsChecked="{x:Bind AssociatedViewModel.IsSortedByDate, Mode=TwoWay}"/>
21+
<muxc:RadioMenuFlyoutItem Text="Type" GroupName="SortGroup" IsChecked="{x:Bind AssociatedViewModel.IsSortedByType, Mode=TwoWay}"/>
22+
<muxc:RadioMenuFlyoutItem Text="Size" GroupName="SortGroup" IsChecked="{x:Bind AssociatedViewModel.IsSortedBySize, Mode=TwoWay}"/>
2323
<MenuFlyoutSeparator/>
24-
<uilib:RadioMenuFlyoutItem Text="Ascending" GroupName="SortOrderGroup" IsChecked="{x:Bind AssociatedViewModel.IsSortedAscending, Mode=TwoWay}"/>
25-
<uilib:RadioMenuFlyoutItem Text="Descending" GroupName="SortOrderGroup" IsChecked="{x:Bind AssociatedViewModel.IsSortedDescending, Mode=TwoWay}"/>
24+
<muxc:RadioMenuFlyoutItem Text="Ascending" GroupName="SortOrderGroup" IsChecked="{x:Bind AssociatedViewModel.IsSortedAscending, Mode=TwoWay}"/>
25+
<muxc:RadioMenuFlyoutItem Text="Descending" GroupName="SortOrderGroup" IsChecked="{x:Bind AssociatedViewModel.IsSortedDescending, Mode=TwoWay}"/>
2626
</MenuFlyoutSubItem>
2727
<MenuFlyoutItem Text="Refresh" x:Name="RefreshEmptySpace" Click="{x:Bind local:NavigationActions.Refresh_Click}">
2828
<MenuFlyoutItem.Icon>

Files/InstanceTabsView.xaml

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
xmlns:local="using:Files"
77
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
88
xmlns:primitives="using:Microsoft.UI.Xaml.Controls.Primitives"
9-
xmlns:uilib="using:Microsoft.UI.Xaml.Controls"
9+
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
1010
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
1111
mc:Ignorable="d">
1212
<Page.Resources>
@@ -82,14 +82,14 @@
8282
</Setter.Value>
8383
</Setter>
8484
</Style>
85-
<Style x:Key="TabViewStyleFluent" TargetType="uilib:TabView">
85+
<Style x:Key="TabViewStyleFluent" TargetType="muxc:TabView">
8686
<Setter Property="VerticalAlignment" Value="Top" />
8787
<Setter Property="Padding" Value="{ThemeResource TabViewHeaderPadding}" />
8888
<Setter Property="IsTabStop" Value="False" />
8989
<Setter Property="Background" Value="{ThemeResource BackgroundAcrylicBrush}" />
9090
<Setter Property="Template">
9191
<Setter.Value>
92-
<ControlTemplate TargetType="uilib:TabView">
92+
<ControlTemplate TargetType="muxc:TabView">
9393
<Grid>
9494
<Grid.RowDefinitions>
9595
<RowDefinition Height="Auto" />
@@ -175,7 +175,7 @@
175175
</Page.Resources>
176176

177177
<Grid x:Name="rootGrid" Background="Transparent">
178-
<uilib:TabView
178+
<muxc:TabView
179179
x:Name="TabStrip"
180180
Grid.Row="0"
181181
VerticalAlignment="Stretch"
@@ -185,18 +185,30 @@
185185
Style="{ThemeResource TabViewStyleFluent}"
186186
TabCloseRequested="TabStrip_TabCloseRequested"
187187
TabWidthMode="Equal">
188-
<uilib:TabView.Resources>
188+
<muxc:TabView.Resources>
189189
<StaticResource x:Key="TabViewItemHeaderBackgroundSelected" ResourceKey="RibbonBackgroundColor" />
190-
</uilib:TabView.Resources>
191-
<uilib:TabView.TabStripFooterTemplate>
190+
</muxc:TabView.Resources>
191+
<muxc:TabView.TabStripFooterTemplate>
192192
<DataTemplate>
193193
<Grid
194194
x:Name="DragArea"
195195
MinWidth="175"
196196
Background="Transparent"
197197
Loaded="DragArea_Loaded" />
198198
</DataTemplate>
199-
</uilib:TabView.TabStripFooterTemplate>
200-
</uilib:TabView>
199+
</muxc:TabView.TabStripFooterTemplate>
200+
<muxc:TabView.KeyboardAccelerators>
201+
<KeyboardAccelerator Key="Number1" Modifiers="Control" Invoked="NavigateToNumberedTabKeyboardAccelerator_Invoked" />
202+
<KeyboardAccelerator Key="Number2" Modifiers="Control" Invoked="NavigateToNumberedTabKeyboardAccelerator_Invoked" />
203+
<KeyboardAccelerator Key="Number3" Modifiers="Control" Invoked="NavigateToNumberedTabKeyboardAccelerator_Invoked" />
204+
<KeyboardAccelerator Key="Number4" Modifiers="Control" Invoked="NavigateToNumberedTabKeyboardAccelerator_Invoked" />
205+
<KeyboardAccelerator Key="Number5" Modifiers="Control" Invoked="NavigateToNumberedTabKeyboardAccelerator_Invoked" />
206+
<KeyboardAccelerator Key="Number6" Modifiers="Control" Invoked="NavigateToNumberedTabKeyboardAccelerator_Invoked" />
207+
<KeyboardAccelerator Key="Number7" Modifiers="Control" Invoked="NavigateToNumberedTabKeyboardAccelerator_Invoked" />
208+
<KeyboardAccelerator Key="Number8" Modifiers="Control" Invoked="NavigateToNumberedTabKeyboardAccelerator_Invoked" />
209+
<KeyboardAccelerator Key="Number9" Modifiers="Control" Invoked="NavigateToNumberedTabKeyboardAccelerator_Invoked" />
210+
</muxc:TabView.KeyboardAccelerators>
211+
212+
</muxc:TabView>
201213
</Grid>
202214
</Page>

Files/InstanceTabsView.xaml.cs

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
using Windows.UI.ViewManagement;
1515
using Windows.UI.Xaml;
1616
using Windows.UI.Xaml.Controls;
17+
using Windows.UI.Xaml.Input;
1718
using Windows.UI.Xaml.Navigation;
1819

1920
namespace Files
@@ -314,8 +315,52 @@ public static string NormalizePath(string path)
314315
.ToUpperInvariant();
315316
}
316317
}
317-
318-
318+
}
319+
320+
private void NavigateToNumberedTabKeyboardAccelerator_Invoked(KeyboardAccelerator sender, KeyboardAcceleratorInvokedEventArgs args)
321+
{
322+
var InvokedTabView = (args.Element as TabView);
323+
324+
int tabToSelect = 0;
325+
326+
switch (sender.Key)
327+
{
328+
case Windows.System.VirtualKey.Number1:
329+
tabToSelect = 0;
330+
break;
331+
case Windows.System.VirtualKey.Number2:
332+
tabToSelect = 1;
333+
break;
334+
case Windows.System.VirtualKey.Number3:
335+
tabToSelect = 2;
336+
break;
337+
case Windows.System.VirtualKey.Number4:
338+
tabToSelect = 3;
339+
break;
340+
case Windows.System.VirtualKey.Number5:
341+
tabToSelect = 4;
342+
break;
343+
case Windows.System.VirtualKey.Number6:
344+
tabToSelect = 5;
345+
break;
346+
case Windows.System.VirtualKey.Number7:
347+
tabToSelect = 6;
348+
break;
349+
case Windows.System.VirtualKey.Number8:
350+
tabToSelect = 7;
351+
break;
352+
case Windows.System.VirtualKey.Number9:
353+
// Select the last tab
354+
tabToSelect = InvokedTabView.TabItems.Count - 1;
355+
break;
356+
}
357+
358+
// Only select the tab if it is in the list
359+
if (tabToSelect < InvokedTabView.TabItems.Count)
360+
{
361+
InvokedTabView.SelectedIndex = tabToSelect;
362+
}
363+
args.Handled = true;
319364
}
320365

321366
private void DragArea_Loaded(object sender, RoutedEventArgs e)

Files/PhotoAlbum.xaml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
xmlns:local="using:Files"
77
xmlns:local2="using:Files.Filesystem"
88
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
9-
xmlns:uilib="using:Microsoft.UI.Xaml.Controls"
9+
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
1010
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
1111
NavigationCacheMode="Required"
1212
PointerPressed="PhotoAlbumViewer_PointerPressed"
@@ -17,28 +17,28 @@
1717
<MenuFlyoutSubItem.Icon>
1818
<FontIcon Glyph="&#xE8CB;" />
1919
</MenuFlyoutSubItem.Icon>
20-
<uilib:RadioMenuFlyoutItem
20+
<muxc:RadioMenuFlyoutItem
2121
GroupName="SortGroup"
2222
IsChecked="{x:Bind AssociatedViewModel.IsSortedByName, Mode=TwoWay}"
2323
Text="Name" />
24-
<uilib:RadioMenuFlyoutItem
24+
<muxc:RadioMenuFlyoutItem
2525
GroupName="SortGroup"
2626
IsChecked="{x:Bind AssociatedViewModel.IsSortedByDate, Mode=TwoWay}"
2727
Text="Date modified" />
28-
<uilib:RadioMenuFlyoutItem
28+
<muxc:RadioMenuFlyoutItem
2929
GroupName="SortGroup"
3030
IsChecked="{x:Bind AssociatedViewModel.IsSortedByType, Mode=TwoWay}"
3131
Text="Type" />
32-
<uilib:RadioMenuFlyoutItem
32+
<muxc:RadioMenuFlyoutItem
3333
GroupName="SortGroup"
3434
IsChecked="{x:Bind AssociatedViewModel.IsSortedBySize, Mode=TwoWay}"
3535
Text="Size" />
3636
<MenuFlyoutSeparator />
37-
<uilib:RadioMenuFlyoutItem
37+
<muxc:RadioMenuFlyoutItem
3838
GroupName="SortOrderGroup"
3939
IsChecked="{x:Bind AssociatedViewModel.IsSortedAscending, Mode=TwoWay}"
4040
Text="Ascending" />
41-
<uilib:RadioMenuFlyoutItem
41+
<muxc:RadioMenuFlyoutItem
4242
GroupName="SortOrderGroup"
4343
IsChecked="{x:Bind AssociatedViewModel.IsSortedDescending, Mode=TwoWay}"
4444
Text="Descending" />

0 commit comments

Comments
 (0)