laptop->pc
This commit is contained in:
parent
9a8ad0bb2f
commit
739e5ccfa6
@ -13,7 +13,7 @@ using System.Reflection;
|
|||||||
[assembly: System.Reflection.AssemblyCompanyAttribute("NotVPR_Remote")]
|
[assembly: System.Reflection.AssemblyCompanyAttribute("NotVPR_Remote")]
|
||||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+654af164ab4489c774208e885e281885e008210b")]
|
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+9a8ad0bb2fd16c90755afdfb8d7218362d6b667b")]
|
||||||
[assembly: System.Reflection.AssemblyProductAttribute("NotVPR_Remote")]
|
[assembly: System.Reflection.AssemblyProductAttribute("NotVPR_Remote")]
|
||||||
[assembly: System.Reflection.AssemblyTitleAttribute("NotVPR_Remote")]
|
[assembly: System.Reflection.AssemblyTitleAttribute("NotVPR_Remote")]
|
||||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||||
|
@ -1 +1 @@
|
|||||||
b514a04c750ec160bf4b9410f5a30998919de0ec1c4b73c997afa9f6c13170c7
|
3d15d74596a8970912a8dabdafafc0d6d5790369f74eec627a1983fd3c47a6be
|
||||||
|
@ -13,7 +13,7 @@ using System.Reflection;
|
|||||||
[assembly: System.Reflection.AssemblyCompanyAttribute("NotVPR_SideProjecktForVpr_FreeTime")]
|
[assembly: System.Reflection.AssemblyCompanyAttribute("NotVPR_SideProjecktForVpr_FreeTime")]
|
||||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+654af164ab4489c774208e885e281885e008210b")]
|
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+9a8ad0bb2fd16c90755afdfb8d7218362d6b667b")]
|
||||||
[assembly: System.Reflection.AssemblyProductAttribute("NotVPR_SideProjecktForVpr_FreeTime")]
|
[assembly: System.Reflection.AssemblyProductAttribute("NotVPR_SideProjecktForVpr_FreeTime")]
|
||||||
[assembly: System.Reflection.AssemblyTitleAttribute("NotVPR_SideProjecktForVpr_FreeTime")]
|
[assembly: System.Reflection.AssemblyTitleAttribute("NotVPR_SideProjecktForVpr_FreeTime")]
|
||||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||||
|
@ -1 +1 @@
|
|||||||
a85a0ab2a07bbb710c1b5ca87c0627824f06d465e0548477032474c6284c068b
|
8f3d74393500effb2738998a78a667ef4e6938d33d9e57fe382365afa07103b1
|
||||||
|
@ -61,7 +61,9 @@ namespace ShadowStream.Obejeckte
|
|||||||
{
|
{
|
||||||
Content = isFoto ? "Show" : "Play",
|
Content = isFoto ? "Show" : "Play",
|
||||||
HorizontalAlignment = HorizontalAlignment.Center,
|
HorizontalAlignment = HorizontalAlignment.Center,
|
||||||
Tag = path + "||" + type // Store path or any identifier
|
Tag = path + "||" + type,// Store path or any identifier
|
||||||
|
Focusable = true
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
if (clickHandler != null)
|
if (clickHandler != null)
|
||||||
|
@ -3,174 +3,132 @@
|
|||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:vlc="clr-namespace:LibVLCSharp.WPF;assembly=LibVLCSharp.WPF"
|
xmlns:vlc="clr-namespace:LibVLCSharp.WPF;assembly=LibVLCSharp.WPF"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
Title="MainWindow" Height="450" Width="800"
|
Title="MainWindow" Height="450" Width="800"
|
||||||
KeyUp="Key_Up">
|
KeyUp="Key_Up"
|
||||||
<Grid>
|
PreviewKeyDown="MainWindow_PreviewKeyDown"
|
||||||
<!-- Layout Definitions -->
|
Loaded="MainWindow_Loaded"
|
||||||
|
KeyboardNavigation.DirectionalNavigation="None">
|
||||||
|
|
||||||
|
<Window.Resources>
|
||||||
|
<Style TargetType="Button">
|
||||||
|
<Style.Triggers>
|
||||||
|
<Trigger Property="IsKeyboardFocused" Value="True">
|
||||||
|
<Setter Property="BorderBrush" Value="Red"/>
|
||||||
|
<Setter Property="BorderThickness" Value="2"/>
|
||||||
|
</Trigger>
|
||||||
|
</Style.Triggers>
|
||||||
|
</Style>
|
||||||
|
</Window.Resources>
|
||||||
|
|
||||||
|
<Grid KeyboardNavigation.DirectionalNavigation="None">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="200"/>
|
<ColumnDefinition Width="200"/>
|
||||||
<ColumnDefinition/>
|
<ColumnDefinition/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="60"/> <!-- Top bar -->
|
<RowDefinition Height="60"/>
|
||||||
<RowDefinition/> <!-- Content -->
|
<RowDefinition/>
|
||||||
<RowDefinition Height="70"/> <!-- Bottom player -->
|
<RowDefinition Height="70"/>
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<!-- TOP BAR -->
|
<!-- TOP BAR -->
|
||||||
<Grid Grid.ColumnSpan="2" Grid.Row="0" Background="#333">
|
<Grid Grid.ColumnSpan="2" Grid.Row="0" Background="#333" KeyboardNavigation.DirectionalNavigation="None">
|
||||||
<Button Content="Login"
|
<Button Content="Login" TabIndex="0" Focusable="True" Width="80" Margin="10,10,0,10"
|
||||||
Width="80"
|
HorizontalAlignment="Left" VerticalAlignment="Center"/>
|
||||||
Margin="10,10,0,10"
|
|
||||||
HorizontalAlignment="Left"
|
|
||||||
VerticalAlignment="Center"/>
|
|
||||||
|
|
||||||
<Grid HorizontalAlignment="Center" VerticalAlignment="Center" Width="300">
|
<Grid HorizontalAlignment="Center" VerticalAlignment="Center" Width="300">
|
||||||
<TextBox Name="SearchBox"
|
<TextBox Name="SearchBox" TabIndex="1" Focusable="True" Padding="8" FontSize="14"
|
||||||
Padding="8"
|
Background="White" Foreground="Black"/>
|
||||||
FontSize="14"
|
<TextBlock Text="Search..." Margin="12,0,0,0" VerticalAlignment="Center"
|
||||||
Background="White"
|
Foreground="Gray" IsHitTestVisible="False"/>
|
||||||
Foreground="Black"/>
|
|
||||||
<TextBlock Text="Search..."
|
|
||||||
Margin="12,0,0,0"
|
|
||||||
VerticalAlignment="Center"
|
|
||||||
Foreground="Gray"
|
|
||||||
IsHitTestVisible="False"/>
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,0,20,0"
|
||||||
<StackPanel Orientation="Horizontal"
|
|
||||||
HorizontalAlignment="Right"
|
|
||||||
Margin="0,0,20,0"
|
|
||||||
VerticalAlignment="Center">
|
VerticalAlignment="Center">
|
||||||
<Button Content="scann"
|
<Button Content="scann" TabIndex="2" Focusable="True" Width="40" Height="40"
|
||||||
Width="40"
|
Margin="0,0,10,0" Click="scanButton_Click"/>
|
||||||
Height="40"
|
|
||||||
Margin="0,0,10,0"
|
|
||||||
Click="scanButton_Click"/>
|
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<!-- LEFT NAVIGATION -->
|
<!-- LEFT NAVIGATION -->
|
||||||
<StackPanel Grid.Row="1"
|
<StackPanel Name="catPan" Grid.Row="1" Grid.Column="0" Background="#222" VerticalAlignment="Stretch"
|
||||||
Grid.Column="0"
|
KeyboardNavigation.DirectionalNavigation="None">
|
||||||
Background="#222"
|
<Button Name="FirstCat" Content="Home" Height="60" TabIndex="3" Focusable="True"
|
||||||
VerticalAlignment="Stretch">
|
Foreground="White" Background="Transparent" Click="Home_OnClick"/>
|
||||||
<Button Content="Home" Height="60" Foreground="White" Background="Transparent" Click="Home_OnClick" />
|
<Button Content="Musik" Height="60" TabIndex="4" Focusable="True"
|
||||||
<Button Content="Musik" Height="60" Foreground="White" Background="Transparent" Click="Musik_OnClick"/>
|
Foreground="White" Background="Transparent" Click="Musik_OnClick"/>
|
||||||
<Button Content="Photos" Height="60" Foreground="White" Background="Transparent" Click="Photo_OnClick"/>
|
<Button Content="Photos" Height="60" TabIndex="5" Focusable="True"
|
||||||
<Button Content="Video" Height="60" Foreground="White" Background="Transparent" Click="Video_OnClick" />
|
Foreground="White" Background="Transparent" Click="Photo_OnClick"/>
|
||||||
<Button Content="Playlist" Height="60" Foreground="White" Background="Transparent" Click="PlayListButton_OnClick" />
|
<Button Content="Video" Height="60" TabIndex="6" Focusable="True"
|
||||||
|
Foreground="White" Background="Transparent" Click="Video_OnClick"/>
|
||||||
|
<Button Content="Playlist" Height="60" TabIndex="7" Focusable="True"
|
||||||
|
Foreground="White" Background="Transparent" Click="PlayListButton_OnClick"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<!-- MAIN CONTENT WRAPPED IN A GRID FOR LAYERING -->
|
<!-- MAIN CONTENT -->
|
||||||
<Grid Grid.Column="1" Grid.Row="1">
|
<Grid Grid.Column="1" Grid.Row="1" KeyboardNavigation.DirectionalNavigation="None">
|
||||||
<!-- ScrollViewer (Background) -->
|
<ScrollViewer x:Name="ScrollContentHome" Background="#444" Panel.ZIndex="0"
|
||||||
<ScrollViewer x:Name="ScrollContentHome" Background="#444" Panel.ZIndex="0">
|
KeyboardNavigation.DirectionalNavigation="None" Focusable="False">
|
||||||
<StackPanel Margin="10">
|
<StackPanel Margin="10" KeyboardNavigation.DirectionalNavigation="None">
|
||||||
<!-- Favorites -->
|
|
||||||
<TextBlock Text="Favorites" FontSize="18" Foreground="White" Margin="0,10"/>
|
<TextBlock Text="Favorites" FontSize="18" Foreground="White" Margin="0,10"/>
|
||||||
<WrapPanel Name="Favorites_Home">
|
<WrapPanel Name="Favorites_Home" KeyboardNavigation.DirectionalNavigation="None"/>
|
||||||
<Rectangle Fill="LightBlue" Width="150" Height="100" Margin="5"/>
|
|
||||||
<Rectangle Fill="LightBlue" Width="150" Height="100" Margin="5"/>
|
|
||||||
<Rectangle Fill="LightBlue" Width="150" Height="100" Margin="5"/>
|
|
||||||
<Rectangle Fill="LightBlue" Width="150" Height="100" Margin="5"/>
|
|
||||||
</WrapPanel>
|
|
||||||
|
|
||||||
<!-- Movies -->
|
|
||||||
<TextBlock Text="Movies" FontSize="18" Foreground="White" Margin="0,20,0,10"/>
|
<TextBlock Text="Movies" FontSize="18" Foreground="White" Margin="0,20,0,10"/>
|
||||||
<WrapPanel Name="Muvies_Home">
|
<WrapPanel Name="Muvies_Home" KeyboardNavigation.DirectionalNavigation="None"/>
|
||||||
<Rectangle Fill="LightGreen" Width="150" Height="100" Margin="5"/>
|
|
||||||
<Rectangle Fill="LightGreen" Width="150" Height="100" Margin="5"/>
|
|
||||||
<Rectangle Fill="LightGreen" Width="150" Height="100" Margin="5"/>
|
|
||||||
<Rectangle Fill="LightGreen" Width="150" Height="100" Margin="5"/>
|
|
||||||
</WrapPanel>
|
|
||||||
|
|
||||||
<!-- Series -->
|
|
||||||
<TextBlock Text="Series" FontSize="18" Foreground="White" Margin="0,20,0,10"/>
|
<TextBlock Text="Series" FontSize="18" Foreground="White" Margin="0,20,0,10"/>
|
||||||
<WrapPanel Name="Series_Home">
|
<WrapPanel Name="Series_Home" KeyboardNavigation.DirectionalNavigation="None"/>
|
||||||
<Rectangle Fill="LightGreen" Width="150" Height="100" Margin="5"/>
|
|
||||||
<Rectangle Fill="LightGreen" Width="150" Height="100" Margin="5"/>
|
|
||||||
<Rectangle Fill="LightGreen" Width="150" Height="100" Margin="5"/>
|
|
||||||
<Rectangle Fill="LightGreen" Width="150" Height="100" Margin="5"/>
|
|
||||||
</WrapPanel>
|
|
||||||
|
|
||||||
<!-- Music -->
|
|
||||||
<TextBlock Text="Music" FontSize="18" Foreground="White" Margin="0,20,0,10"/>
|
<TextBlock Text="Music" FontSize="18" Foreground="White" Margin="0,20,0,10"/>
|
||||||
<WrapPanel Name="Music_Home">
|
<WrapPanel Name="Music_Home" KeyboardNavigation.DirectionalNavigation="None"/>
|
||||||
<Rectangle Fill="LightCoral" Width="150" Height="100" Margin="5"/>
|
|
||||||
<Rectangle Fill="LightCoral" Width="150" Height="100" Margin="5"/>
|
|
||||||
<Rectangle Fill="LightCoral" Width="150" Height="100" Margin="5"/>
|
|
||||||
<Rectangle Fill="LightCoral" Width="150" Height="100" Margin="5"/>
|
|
||||||
</WrapPanel>
|
|
||||||
|
|
||||||
<!-- Photos -->
|
|
||||||
<TextBlock Text="Photos" FontSize="18" Foreground="White" Margin="0,20,0,10"/>
|
<TextBlock Text="Photos" FontSize="18" Foreground="White" Margin="0,20,0,10"/>
|
||||||
<WrapPanel Name="Photos_Home">
|
<WrapPanel Name="Photos_Home" KeyboardNavigation.DirectionalNavigation="None"/>
|
||||||
<Rectangle Fill="DarkRed" Width="150" Height="100" Margin="5"/>
|
|
||||||
<Rectangle Fill="DarkRed" Width="150" Height="100" Margin="5"/>
|
|
||||||
<Rectangle Fill="DarkRed" Width="150" Height="100" Margin="5"/>
|
|
||||||
<Rectangle Fill="DarkRed" Width="150" Height="100" Margin="5"/>
|
|
||||||
</WrapPanel>
|
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</ScrollViewer>
|
</ScrollViewer>
|
||||||
|
|
||||||
<!-- Video Player (Foreground) -->
|
<!-- VIDEO PLAYER -->
|
||||||
<vlc:VideoView x:Name="VideoView"
|
<vlc:VideoView x:Name="VideoView" Panel.ZIndex="1" Visibility="Collapsed" Background="Black"/>
|
||||||
Panel.ZIndex="1"
|
|
||||||
Visibility="Collapsed"
|
<!-- CATEGORY VIEW -->
|
||||||
Background="Black" />
|
<ScrollViewer x:Name="ScrollContentCat" Background="#444" Panel.ZIndex="0" Visibility="Collapsed"
|
||||||
|
Focusable="False" KeyboardNavigation.DirectionalNavigation="None">
|
||||||
<!--Catagory-->
|
<StackPanel Margin="10" KeyboardNavigation.DirectionalNavigation="None">
|
||||||
<ScrollViewer x:Name="ScrollContentCat" Background="#444" Panel.ZIndex="0" Visibility="Collapsed">
|
|
||||||
<StackPanel Margin="10">
|
|
||||||
<!-- Cat-name -->
|
|
||||||
<TextBlock Name="Name_of_Catagory_Text" Text="Name_of_Catagory" FontSize="18" Foreground="White" Margin="0,10"/>
|
<TextBlock Name="Name_of_Catagory_Text" Text="Name_of_Catagory" FontSize="18" Foreground="White" Margin="0,10"/>
|
||||||
<WrapPanel Name="Name_of_Catagory">
|
<WrapPanel Name="Name_of_Catagory" KeyboardNavigation.DirectionalNavigation="None"/>
|
||||||
<Rectangle Fill="LightBlue" Width="150" Height="100" Margin="5"/>
|
|
||||||
<Rectangle Fill="LightBlue" Width="150" Height="100" Margin="5"/>
|
|
||||||
<Rectangle Fill="LightBlue" Width="150" Height="100" Margin="5"/>
|
|
||||||
<Rectangle Fill="LightBlue" Width="150" Height="100" Margin="5"/>
|
|
||||||
</WrapPanel>
|
|
||||||
<TextBlock Name="Name_of_Catagory_Text1" Text="Name_of_Catagory1" FontSize="18" Foreground="White" Margin="0,10"/>
|
<TextBlock Name="Name_of_Catagory_Text1" Text="Name_of_Catagory1" FontSize="18" Foreground="White" Margin="0,10"/>
|
||||||
<WrapPanel Name="Name_of_Catagory1" Visibility="Collapsed">
|
<WrapPanel Name="Name_of_Catagory1" Visibility="Collapsed" KeyboardNavigation.DirectionalNavigation="None"/>
|
||||||
<Rectangle Fill="LightBlue" Width="150" Height="100" Margin="5"/>
|
|
||||||
<Rectangle Fill="LightBlue" Width="150" Height="100" Margin="5"/>
|
|
||||||
<Rectangle Fill="LightBlue" Width="150" Height="100" Margin="5"/>
|
|
||||||
<Rectangle Fill="LightBlue" Width="150" Height="100" Margin="5"/>
|
|
||||||
</WrapPanel>
|
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</ScrollViewer>
|
</ScrollViewer>
|
||||||
<!--Playlists-->
|
|
||||||
<ScrollViewer x:Name="ScrollContentPlaylist" Background="#444" Panel.ZIndex="0" Visibility="Collapsed">
|
<!-- PLAYLIST VIEW -->
|
||||||
<StackPanel x:Name="PlaylistContentPanel">
|
<ScrollViewer x:Name="ScrollContentPlaylist" Background="#444" Panel.ZIndex="0" Visibility="Collapsed"
|
||||||
<Button Content="New Playlist" Background="Black" Foreground="White" Click="PlayListButton_Click"></Button>
|
Focusable="False" KeyboardNavigation.DirectionalNavigation="None">
|
||||||
</StackPanel>
|
<StackPanel x:Name="PlaylistContentPanel" KeyboardNavigation.DirectionalNavigation="None"/>
|
||||||
</ScrollViewer>
|
</ScrollViewer>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<!-- SETTINGS BUTTON -->
|
<!-- SETTINGS BUTTON -->
|
||||||
<Button Grid.Column="0" Grid.Row="2"
|
<Button Grid.Column="0" Grid.Row="2" Content="Settings" Margin="10" HorizontalAlignment="Left"
|
||||||
Content="Settings"
|
TabIndex="8" Focusable="True" Click="PlayListButton_Click"/>
|
||||||
Margin="10"
|
|
||||||
HorizontalAlignment="Left"
|
<!-- PLAYER PROGRESS -->
|
||||||
Click="PlayListButton_Click"/>
|
<Slider Name="itemProgress" TabIndex="9" Focusable="True" PreviewMouseDown="ItemProgress_OnPreviewMouseDown"
|
||||||
|
Panel.ZIndex="2" VerticalAlignment="Top" ValueChanged="ItemProgress_OnValueChanged"
|
||||||
|
Grid.Row="2" Grid.Column="1" Padding="10"/>
|
||||||
|
<ProgressBar Name="itemProgressVisual" Panel.ZIndex="1" Height="20" VerticalAlignment="Top"
|
||||||
|
Grid.Row="2" Grid.Column="1" Padding="10"/>
|
||||||
|
|
||||||
<!-- PLAYER CONTROLS -->
|
<!-- PLAYER CONTROLS -->
|
||||||
<Slider Name="itemProgress" PreviewMouseDown="ItemProgress_OnPreviewMouseDown" Panel.ZIndex="2" VerticalAlignment="Top" ValueChanged="ItemProgress_OnValueChanged" Grid.Row="2" Grid.Column="1" Padding="10"></Slider>
|
<StackPanel Grid.Column="1" Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Center"
|
||||||
<ProgressBar Name="itemProgressVisual" Panel.ZIndex="1" Height="20" VerticalAlignment="Top" Grid.Row="2" Grid.Column="1" Padding="10"></ProgressBar>
|
VerticalAlignment="Bottom" Background="#222" KeyboardNavigation.DirectionalNavigation="None">
|
||||||
<StackPanel Grid.Column="1" Grid.Row="2"
|
|
||||||
Orientation="Horizontal"
|
|
||||||
HorizontalAlignment="Center"
|
|
||||||
VerticalAlignment="Bottom"
|
|
||||||
Background="#222">
|
|
||||||
<TextBlock Name="title" Text="Titel" Foreground="White" FontSize="16" Margin="10"/>
|
<TextBlock Name="title" Text="Titel" Foreground="White" FontSize="16" Margin="10"/>
|
||||||
<Button Content="⏮" Width="40" Margin="10" Click="OnItemPriorButtonClick"/>
|
<Button Content="⏮" Width="40" Margin="10" TabIndex="10" Focusable="True" Click="OnItemPriorButtonClick"/>
|
||||||
<Button Content="▶" Width="40" Margin="10" Click="OnItemPauseBtn_Click"/>
|
<Button Content="▶" Width="40" Margin="10" TabIndex="11" Focusable="True" Click="OnItemPauseBtn_Click"/>
|
||||||
<Button Content="⏭" Width="40" Margin="10" Click="OnItemNextButtonClick"/>
|
<Button Content="⏭" Width="40" Margin="10" TabIndex="12" Focusable="True" Click="OnItemNextButtonClick"/>
|
||||||
<TextBlock Text="🔊" Foreground="White" VerticalAlignment="Center" Margin="10,0"/>
|
<TextBlock Text="🔊" Foreground="White" VerticalAlignment="Center" Margin="10,0"/>
|
||||||
<Slider Name="vol" Width="100" Minimum="0" Maximum="100" Value="50" Margin="10" ValueChanged="RangeBase_OnValueChanged"/>
|
<Slider Name="vol" Width="100" Minimum="0" Maximum="100" Value="50" Margin="10"
|
||||||
|
TabIndex="13" Focusable="True" ValueChanged="RangeBase_OnValueChanged"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Window>
|
</Window>
|
||||||
|
@ -82,6 +82,11 @@ public partial class MainWindow : Window
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
//code start
|
//code start
|
||||||
|
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
FirstCat?.Focus();
|
||||||
|
}
|
||||||
|
|
||||||
public MainWindow()
|
public MainWindow()
|
||||||
{
|
{
|
||||||
#region Init wpf
|
#region Init wpf
|
||||||
@ -460,12 +465,14 @@ public partial class MainWindow : Window
|
|||||||
{
|
{
|
||||||
Close_Player();
|
Close_Player();
|
||||||
Name_of_Catagory_Text1.Visibility = Visibility.Collapsed;
|
Name_of_Catagory_Text1.Visibility = Visibility.Collapsed;
|
||||||
|
|
||||||
ScrollContentHome.Visibility = Visibility.Collapsed;
|
ScrollContentHome.Visibility = Visibility.Collapsed;
|
||||||
ScrollContentCat.Visibility = Visibility.Collapsed;
|
ScrollContentCat.Visibility = Visibility.Collapsed;
|
||||||
Name_of_Catagory1.Visibility = Visibility.Collapsed;
|
Name_of_Catagory1.Visibility = Visibility.Collapsed;
|
||||||
PopulateAllCategoriesFromPlaylists();
|
|
||||||
|
PopulateAllCategoriesFromPlaylists(); // <-- This needs to set ScrollContentPlaylist visible
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@ -841,6 +848,8 @@ public partial class MainWindow : Window
|
|||||||
|
|
||||||
// Make the ScrollViewer visible
|
// Make the ScrollViewer visible
|
||||||
ScrollContentPlaylist.Visibility = Visibility.Visible;
|
ScrollContentPlaylist.Visibility = Visibility.Visible;
|
||||||
|
|
||||||
|
PopulatePlaylistsWithButtons();
|
||||||
}
|
}
|
||||||
|
|
||||||
#region tvRemote
|
#region tvRemote
|
||||||
@ -854,6 +863,7 @@ public partial class MainWindow : Window
|
|||||||
Dispatcher.Invoke(() =>
|
Dispatcher.Invoke(() =>
|
||||||
{
|
{
|
||||||
MessageBox.Show("🔗 Client connected!");
|
MessageBox.Show("🔗 Client connected!");
|
||||||
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -862,7 +872,25 @@ public partial class MainWindow : Window
|
|||||||
Dispatcher.Invoke(() =>
|
Dispatcher.Invoke(() =>
|
||||||
{
|
{
|
||||||
MessageBox.Show($"📨 Message: {msg.Trim()}");
|
MessageBox.Show($"📨 Message: {msg.Trim()}");
|
||||||
|
switch (msg.Trim())
|
||||||
|
{
|
||||||
|
//arrow up
|
||||||
|
case "\u2191": MessageBox.Show("case 1"); break;
|
||||||
|
//arrow down
|
||||||
|
case "\u2193": MessageBox.Show("case 2"); break;
|
||||||
|
//arrow left
|
||||||
|
//arrow right
|
||||||
|
//double left
|
||||||
|
//double right
|
||||||
|
//enter
|
||||||
|
//home
|
||||||
|
//vol +
|
||||||
|
//vol -
|
||||||
|
//mute
|
||||||
|
//time stamp
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
// Optional: echo back the message
|
// Optional: echo back the message
|
||||||
Server1.SendMessage("Echo: " + msg.Trim());
|
Server1.SendMessage("Echo: " + msg.Trim());
|
||||||
@ -1004,103 +1032,204 @@ public partial class MainWindow : Window
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
private void PopulatePlaylistsWithButtons()
|
||||||
|
{
|
||||||
|
// Make sure the playlist ScrollViewer is visible
|
||||||
|
ScrollContentHome.Visibility = Visibility.Collapsed;
|
||||||
|
ScrollContentCat.Visibility = Visibility.Collapsed;
|
||||||
|
ScrollContentPlaylist.Visibility = Visibility.Visible;
|
||||||
|
|
||||||
|
// Clear previous content
|
||||||
|
PlaylistContentPanel.Children.Clear();
|
||||||
|
|
||||||
|
// Add "New Playlist" button
|
||||||
|
var newPlaylistBtn = new Button
|
||||||
|
{
|
||||||
|
Content = "New Playlist",
|
||||||
|
Background = Brushes.Black,
|
||||||
|
Foreground = Brushes.White,
|
||||||
|
Margin = new Thickness(5)
|
||||||
|
};
|
||||||
|
newPlaylistBtn.Click += PlayListButton_Click;
|
||||||
|
PlaylistContentPanel.Children.Add(newPlaylistBtn);
|
||||||
|
|
||||||
|
// Guard: If there are no playlists, show a message
|
||||||
|
if (_playlists?.SharedRefs == null || !_playlists.SharedRefs.Any())
|
||||||
|
{
|
||||||
|
PlaylistContentPanel.Children.Add(new TextBlock
|
||||||
|
{
|
||||||
|
Text = "No playlists available.",
|
||||||
|
Foreground = Brushes.White,
|
||||||
|
Margin = new Thickness(10)
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add playlist sections
|
||||||
|
foreach (var playlistCategory in _playlists.SharedRefs)
|
||||||
|
{
|
||||||
|
var container = new StackPanel
|
||||||
|
{
|
||||||
|
Margin = new Thickness(10),
|
||||||
|
Orientation = Orientation.Vertical,
|
||||||
|
HorizontalAlignment = HorizontalAlignment.Stretch
|
||||||
|
};
|
||||||
|
|
||||||
|
// Header row with playlist name and ">>" button
|
||||||
|
var headerRow = new DockPanel
|
||||||
|
{
|
||||||
|
LastChildFill = true, // Let the title take remaining space
|
||||||
|
HorizontalAlignment = HorizontalAlignment.Stretch
|
||||||
|
};
|
||||||
|
|
||||||
|
// Button (goes first, docked right)
|
||||||
|
var btn = new Button
|
||||||
|
{
|
||||||
|
Content = ">>",
|
||||||
|
Width = 30,
|
||||||
|
Height = 25,
|
||||||
|
Margin = new Thickness(10, 0, 0, 0),
|
||||||
|
VerticalAlignment = VerticalAlignment.Center
|
||||||
|
};
|
||||||
|
DockPanel.SetDock(btn, Dock.Right);
|
||||||
|
btn.Click += (s, e) => ShowFullCategoryView(playlistCategory);
|
||||||
|
headerRow.Children.Add(btn);
|
||||||
|
|
||||||
|
// Playlist name
|
||||||
|
var title = new TextBlock
|
||||||
|
{
|
||||||
|
Text = playlistCategory.name,
|
||||||
|
FontSize = 18,
|
||||||
|
FontWeight = FontWeights.Bold,
|
||||||
|
Foreground = Brushes.White,
|
||||||
|
VerticalAlignment = VerticalAlignment.Center,
|
||||||
|
Margin = new Thickness(5)
|
||||||
|
};
|
||||||
|
headerRow.Children.Add(title);
|
||||||
|
|
||||||
|
container.Children.Add(headerRow);
|
||||||
|
|
||||||
|
// Preview items in WrapPanel
|
||||||
|
var wrap = new WrapPanel();
|
||||||
|
PopulatePanelWithItems(playlistCategory.getAllItems().Take(9).ToList(), wrap);
|
||||||
|
container.Children.Add(wrap);
|
||||||
|
|
||||||
|
PlaylistContentPanel.Children.Add(container);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void ShowFullCategoryView(Catagory category)
|
||||||
|
{
|
||||||
|
ScrollContentHome.Visibility = Visibility.Collapsed;
|
||||||
|
ScrollContentPlaylist.Visibility = Visibility.Collapsed;
|
||||||
|
|
||||||
|
ScrollContentCat.Visibility = Visibility.Visible;
|
||||||
|
|
||||||
|
Name_of_Catagory_Text.Text = category.name;
|
||||||
|
Name_of_Catagory1.Visibility = Visibility.Collapsed;
|
||||||
|
|
||||||
|
PopulatePanelWithItems(category.getAllItems(), Name_of_Catagory);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region load saved data
|
#region load saved data
|
||||||
|
|
||||||
private async void LoadSavedData()
|
private async void LoadSavedData()
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Jason_Writer jason_Writer = new Jason_Writer(); // Uses default "Temp Data" folder
|
|
||||||
|
|
||||||
// Load main media lists
|
|
||||||
var muvies = await jason_Writer.LoadListAsync("Muvies");
|
|
||||||
var series = await jason_Writer.LoadListAsync("Series");
|
|
||||||
var photos = await jason_Writer.LoadListAsync("Photos");
|
|
||||||
var music = await jason_Writer.LoadListAsync("Music");
|
|
||||||
var favorites = await jason_Writer.LoadListAsync("Favorit");
|
|
||||||
|
|
||||||
// Initialize progress bar with total count
|
|
||||||
progressScann = new ProgressBar("Reading saved data",
|
|
||||||
muvies.Count + series.Count + photos.Count + music.Count + favorites.Count);
|
|
||||||
progressScann.Show();
|
|
||||||
|
|
||||||
// Create Item lists from JSON
|
|
||||||
List<Item> MuvieItems = CreateItemsFromJson(muvies);
|
|
||||||
List<Item> SerieItems = CreateItemsFromJson(series);
|
|
||||||
List<Item> PhotoItems = CreateItemsFromJson(photos, isPhoto: true);
|
|
||||||
List<Item> MusicItems = CreateItemsFromJson(music, isPhoto: false, isMusic: true);
|
|
||||||
|
|
||||||
Muvie.addItems(MuvieItems);
|
|
||||||
Serie.addItems(SerieItems);
|
|
||||||
Photo.addItems(PhotoItems);
|
|
||||||
Music.addItems(MusicItems);
|
|
||||||
|
|
||||||
// Combine all media items for playlist/favorite matching
|
|
||||||
var allLocs = muvies.Concat(series).Concat(photos).Concat(music).ToList();
|
|
||||||
|
|
||||||
// Enrich favorite items by matching them with main list entries
|
|
||||||
var enrichedFavorites = new List<locJason>();
|
|
||||||
foreach (var fav in favorites)
|
|
||||||
{
|
|
||||||
var match = allLocs.FirstOrDefault(item =>
|
|
||||||
string.Equals(item.path, fav.path, StringComparison.OrdinalIgnoreCase));
|
|
||||||
|
|
||||||
if (match != null)
|
|
||||||
{
|
{
|
||||||
enrichedFavorites.Add(match);
|
try
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
enrichedFavorites.Add(fav); // fallback if not found
|
|
||||||
Console.WriteLine($"[Warning] Favorite not found in main lists: {fav.path}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
List<Item> FavoriteItems = CreateItemsFromJson(enrichedFavorites);
|
|
||||||
Favorites.addItems(FavoriteItems);
|
|
||||||
|
|
||||||
// Load playlists
|
|
||||||
var playlistNames = await jason_Writer.GetSavedPlaylistNamesAsync();
|
|
||||||
|
|
||||||
foreach (var playlistName in playlistNames)
|
|
||||||
{
|
|
||||||
var playlistEntries = await jason_Writer.LoadPlaylistListAsync(playlistName);
|
|
||||||
|
|
||||||
var matchedLocs = new List<locJason>();
|
|
||||||
foreach (var entry in playlistEntries)
|
|
||||||
{
|
|
||||||
var match = allLocs.FirstOrDefault(item =>
|
|
||||||
string.Equals(item.path, entry.path, StringComparison.OrdinalIgnoreCase));
|
|
||||||
|
|
||||||
if (match != null)
|
|
||||||
{
|
{
|
||||||
matchedLocs.Add(match);
|
Jason_Writer jason_Writer = new Jason_Writer(); // Uses default "Temp Data" folder
|
||||||
|
|
||||||
|
// Load main media lists
|
||||||
|
var muvies = await jason_Writer.LoadListAsync("Muvies");
|
||||||
|
var series = await jason_Writer.LoadListAsync("Series");
|
||||||
|
var photos = await jason_Writer.LoadListAsync("Photos");
|
||||||
|
var music = await jason_Writer.LoadListAsync("Music");
|
||||||
|
var favorites = await jason_Writer.LoadListAsync("Favorit");
|
||||||
|
|
||||||
|
// Initialize progress bar with total count
|
||||||
|
progressScann = new ProgressBar("Reading saved data",
|
||||||
|
muvies.Count + series.Count + photos.Count + music.Count + favorites.Count);
|
||||||
|
progressScann.Show();
|
||||||
|
|
||||||
|
// Create Item lists from JSON
|
||||||
|
List<Item> MuvieItems = CreateItemsFromJson(muvies);
|
||||||
|
List<Item> SerieItems = CreateItemsFromJson(series);
|
||||||
|
List<Item> PhotoItems = CreateItemsFromJson(photos, isPhoto: true);
|
||||||
|
List<Item> MusicItems = CreateItemsFromJson(music, isPhoto: false, isMusic: true);
|
||||||
|
|
||||||
|
Muvie.addItems(MuvieItems);
|
||||||
|
Serie.addItems(SerieItems);
|
||||||
|
Photo.addItems(PhotoItems);
|
||||||
|
Music.addItems(MusicItems);
|
||||||
|
|
||||||
|
// Combine all media items for playlist/favorite matching
|
||||||
|
var allLocs = muvies.Concat(series).Concat(photos).Concat(music).ToList();
|
||||||
|
|
||||||
|
// Enrich favorite items by matching them with main list entries
|
||||||
|
var enrichedFavorites = new List<locJason>();
|
||||||
|
foreach (var fav in favorites)
|
||||||
|
{
|
||||||
|
var match = allLocs.FirstOrDefault(item =>
|
||||||
|
string.Equals(item.path, fav.path, StringComparison.OrdinalIgnoreCase));
|
||||||
|
|
||||||
|
if (match != null)
|
||||||
|
{
|
||||||
|
enrichedFavorites.Add(match);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
enrichedFavorites.Add(fav); // fallback if not found
|
||||||
|
Console.WriteLine($"[Warning] Favorite not found in main lists: {fav.path}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Item> FavoriteItems = CreateItemsFromJson(enrichedFavorites);
|
||||||
|
Favorites.addItems(FavoriteItems);
|
||||||
|
|
||||||
|
// Load playlists
|
||||||
|
var playlistNames = await jason_Writer.GetSavedPlaylistNamesAsync();
|
||||||
|
|
||||||
|
foreach (var playlistName in playlistNames)
|
||||||
|
{
|
||||||
|
var playlistEntries = await jason_Writer.LoadPlaylistListAsync(playlistName);
|
||||||
|
|
||||||
|
var matchedLocs = new List<locJason>();
|
||||||
|
foreach (var entry in playlistEntries)
|
||||||
|
{
|
||||||
|
var match = allLocs.FirstOrDefault(item =>
|
||||||
|
string.Equals(item.path, entry.path, StringComparison.OrdinalIgnoreCase));
|
||||||
|
|
||||||
|
if (match != null)
|
||||||
|
{
|
||||||
|
matchedLocs.Add(match);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Console.WriteLine($"[Warning] Playlist '{playlistName}' contains unknown path: {entry.path}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Item> PlaylistItems = CreateItemsFromJson(matchedLocs);
|
||||||
|
var playlistCategory = new Catagory(playlistName);
|
||||||
|
playlistCategory.addItems(PlaylistItems);
|
||||||
|
_playlists.SharedRefs.Add(playlistCategory);
|
||||||
|
}
|
||||||
|
|
||||||
|
MenueItems(); // Refresh the UI
|
||||||
|
progressScann.Hide();
|
||||||
|
log.Log("Loaded saved data from JSON.");
|
||||||
}
|
}
|
||||||
else
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Console.WriteLine($"[Warning] Playlist '{playlistName}' contains unknown path: {entry.path}");
|
MessageBox.Show($"Failed to load saved data:\n{ex.Message}", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
|
log.Error($"LoadSavedData error: {ex}");
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
List<Item> PlaylistItems = CreateItemsFromJson(matchedLocs);
|
|
||||||
var playlistCategory = new Catagory(playlistName);
|
|
||||||
playlistCategory.addItems(PlaylistItems);
|
|
||||||
_playlists.SharedRefs.Add(playlistCategory);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MenueItems(); // Refresh the UI
|
|
||||||
progressScann.Hide();
|
|
||||||
log.Log("Loaded saved data from JSON.");
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
MessageBox.Show($"Failed to load saved data:\n{ex.Message}", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
|
|
||||||
log.Error($"LoadSavedData error: {ex}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private List<Item> CreateItemsFromJson(List<locJason> jsonItems)
|
private List<Item> CreateItemsFromJson(List<locJason> jsonItems)
|
||||||
{
|
{
|
||||||
return CreateItemsFromJson(jsonItems, isPhoto: false, isMusic: false);
|
return CreateItemsFromJson(jsonItems, isPhoto: false, isMusic: false);
|
||||||
@ -1245,14 +1374,6 @@ public partial class MainWindow : Window
|
|||||||
{
|
{
|
||||||
switch (e.Key)
|
switch (e.Key)
|
||||||
{
|
{
|
||||||
case Key.Left:_mediaPlayer.Time=_mediaPlayer.Time-10000;break;
|
|
||||||
case Key.Right:_mediaPlayer.Time=_mediaPlayer.Time+10000;break;
|
|
||||||
case Key.Space:
|
|
||||||
if (_mediaPlayer.IsPlaying)
|
|
||||||
_mediaPlayer.Pause();
|
|
||||||
else
|
|
||||||
_mediaPlayer.Play();
|
|
||||||
break;
|
|
||||||
case Key.Escape:
|
case Key.Escape:
|
||||||
var result = MessageBox.Show(
|
var result = MessageBox.Show(
|
||||||
"Do you want to quit?",
|
"Do you want to quit?",
|
||||||
@ -1268,8 +1389,223 @@ public partial class MainWindow : Window
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
if (VideoView.IsVisible)
|
||||||
|
{
|
||||||
|
switch (e.Key)
|
||||||
|
{
|
||||||
|
case Key.Left:_mediaPlayer.Time=_mediaPlayer.Time-10000;break;
|
||||||
|
case Key.Right:_mediaPlayer.Time=_mediaPlayer.Time+10000;break;
|
||||||
|
case Key.Space:
|
||||||
|
if (_mediaPlayer.IsPlaying)
|
||||||
|
_mediaPlayer.Pause();
|
||||||
|
else
|
||||||
|
_mediaPlayer.Play();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region arrow nav
|
||||||
|
private void MainWindow_PreviewKeyDown(object sender, KeyEventArgs e)
|
||||||
|
{
|
||||||
|
if (Keyboard.FocusedElement is not DependencyObject focusedElement)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var wrapPanel = FindAncestor<WrapPanel>(focusedElement);
|
||||||
|
|
||||||
|
if (wrapPanel != null && wrapPanel.Children.Count > 0)
|
||||||
|
{
|
||||||
|
int focusedIndex = FindFocusedIndexInWrapPanel(wrapPanel, focusedElement);
|
||||||
|
if (focusedIndex == -1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
int columns = CalculateColumns(wrapPanel);
|
||||||
|
|
||||||
|
switch (e.Key)
|
||||||
|
{
|
||||||
|
case Key.Left:
|
||||||
|
e.Handled = true;
|
||||||
|
if (IsLeftmostInRow(focusedIndex, columns))
|
||||||
|
{
|
||||||
|
FirstCat?.Focus();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MoveFocusInWrapPanel(wrapPanel, focusedIndex - 1);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Key.Right:
|
||||||
|
e.Handled = true;
|
||||||
|
MoveFocusInWrapPanel(wrapPanel, focusedIndex + 1);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Key.Up:
|
||||||
|
e.Handled = true;
|
||||||
|
MoveFocusInWrapPanel(wrapPanel, focusedIndex - columns);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Key.Down:
|
||||||
|
e.Handled = true;
|
||||||
|
MoveFocusInWrapPanel(wrapPanel, focusedIndex + columns);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (FirstCat.IsFocused && e.Key == Key.Right)
|
||||||
|
{
|
||||||
|
// Find the first visible WrapPanel child in your current visible ScrollViewer
|
||||||
|
var firstFocusable = FindFirstFocusableInVisibleWrapPanel();
|
||||||
|
if (firstFocusable != null)
|
||||||
|
{
|
||||||
|
firstFocusable.Focus();
|
||||||
|
e.Handled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Finds the first focusable control in the first visible WrapPanel child of your main ScrollViewer content
|
||||||
|
private Control FindFirstFocusableInVisibleWrapPanel()
|
||||||
|
{
|
||||||
|
ScrollViewer currentScrollViewer = null;
|
||||||
|
|
||||||
|
if (ScrollContentHome.Visibility == Visibility.Visible)
|
||||||
|
{
|
||||||
|
currentScrollViewer = ScrollContentHome;
|
||||||
|
}
|
||||||
|
else if (ScrollContentCat.Visibility == Visibility.Visible)
|
||||||
|
{
|
||||||
|
currentScrollViewer = ScrollContentCat;
|
||||||
|
}
|
||||||
|
else if (ScrollContentPlaylist.Visibility == Visibility.Visible)
|
||||||
|
{
|
||||||
|
currentScrollViewer = ScrollContentPlaylist;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Console.WriteLine("No visible ScrollViewer found");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
Panel mainPanel = currentScrollViewer.Content as Panel;
|
||||||
|
if (mainPanel != null)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < mainPanel.Children.Count; i++)
|
||||||
|
{
|
||||||
|
var child = mainPanel.Children[i];
|
||||||
|
WrapPanel wp = child as WrapPanel;
|
||||||
|
if (wp != null && wp.Visibility == Visibility.Visible && wp.Children.Count > 0)
|
||||||
|
{
|
||||||
|
Control firstFocusable = FindFirstFocusableChild(wp);
|
||||||
|
if (firstFocusable != null)
|
||||||
|
{
|
||||||
|
return firstFocusable;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Console.WriteLine("ScrollViewer content is not a Panel");
|
||||||
|
}
|
||||||
|
|
||||||
|
Control fallback = FindFirstFocusableChild(currentScrollViewer.Content as DependencyObject);
|
||||||
|
if (fallback != null)
|
||||||
|
return fallback;
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ... rest of your helpers remain unchanged ...
|
||||||
|
|
||||||
|
private int CalculateColumns(WrapPanel panel)
|
||||||
|
{
|
||||||
|
if (panel.Children.Count == 0) return 1;
|
||||||
|
|
||||||
|
var firstChild = panel.Children[0] as FrameworkElement;
|
||||||
|
if (firstChild == null) return 1;
|
||||||
|
|
||||||
|
double itemWidth = firstChild.ActualWidth + firstChild.Margin.Left + firstChild.Margin.Right;
|
||||||
|
if (itemWidth <= 1) itemWidth = 150; // fallback
|
||||||
|
|
||||||
|
double panelWidth = panel.ActualWidth;
|
||||||
|
int columns = Math.Max(1, (int)(panelWidth / itemWidth));
|
||||||
|
return columns;
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool IsLeftmostInRow(int index, int columns) => (index % columns) == 0;
|
||||||
|
|
||||||
|
private void MoveFocusInWrapPanel(WrapPanel panel, int index)
|
||||||
|
{
|
||||||
|
if (index < 0 || index >= panel.Children.Count) return;
|
||||||
|
|
||||||
|
if (panel.Children[index] is Control ctrl && ctrl.Focusable)
|
||||||
|
ctrl.Focus();
|
||||||
|
else if (panel.Children[index] is Panel container)
|
||||||
|
{
|
||||||
|
var focusable = FindFirstFocusableChild(container);
|
||||||
|
focusable?.Focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private int FindFocusedIndexInWrapPanel(WrapPanel panel, DependencyObject focusedElement)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < panel.Children.Count; i++)
|
||||||
|
{
|
||||||
|
var container = panel.Children[i];
|
||||||
|
if (IsOrContains(container, focusedElement))
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool IsOrContains(DependencyObject parent, DependencyObject child)
|
||||||
|
{
|
||||||
|
if (parent == child) return true;
|
||||||
|
|
||||||
|
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(parent); i++)
|
||||||
|
{
|
||||||
|
var sub = VisualTreeHelper.GetChild(parent, i);
|
||||||
|
if (IsOrContains(sub, child))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Control FindFirstFocusableChild(DependencyObject parent)
|
||||||
|
{
|
||||||
|
if (parent is Control c && c.Focusable)
|
||||||
|
return c;
|
||||||
|
|
||||||
|
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(parent); i++)
|
||||||
|
{
|
||||||
|
var found = FindFirstFocusableChild(VisualTreeHelper.GetChild(parent, i));
|
||||||
|
if (found != null)
|
||||||
|
return found;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static T FindAncestor<T>(DependencyObject child) where T : DependencyObject
|
||||||
|
{
|
||||||
|
DependencyObject current = child;
|
||||||
|
while (current != null)
|
||||||
|
{
|
||||||
|
if (current is T match)
|
||||||
|
return match;
|
||||||
|
current = VisualTreeHelper.GetParent(current);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
}
|
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,72 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "Great_Teacher_Onizuka-E18-720p.mp4",
|
||||||
|
"type": "Serie",
|
||||||
|
"path": "G:/Great Teacher Onizuka\\EP 1-24\\Great_Teacher_Onizuka-E18-720p.mp4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Great_Teacher_Onizuka-E2-720p.mp4",
|
||||||
|
"type": "Serie",
|
||||||
|
"path": "G:/Great Teacher Onizuka\\EP 1-24\\Great_Teacher_Onizuka-E2-720p.mp4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Great_Teacher_Onizuka-E10-720p.mp4",
|
||||||
|
"type": "Serie",
|
||||||
|
"path": "G:/Great Teacher Onizuka\\EP 1-24\\Great_Teacher_Onizuka-E10-720p.mp4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Great_Teacher_Onizuka-E1-720p.mp4",
|
||||||
|
"type": "Serie",
|
||||||
|
"path": "G:/Great Teacher Onizuka\\EP 1-24\\Great_Teacher_Onizuka-E1-720p.mp4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Great_Teacher_Onizuka-E13-720p.mp4",
|
||||||
|
"type": "Serie",
|
||||||
|
"path": "G:/Great Teacher Onizuka\\EP 1-24\\Great_Teacher_Onizuka-E13-720p.mp4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Great_Teacher_Onizuka-E15-720p.mp4",
|
||||||
|
"type": "Serie",
|
||||||
|
"path": "G:/Great Teacher Onizuka\\EP 1-24\\Great_Teacher_Onizuka-E15-720p.mp4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Great_Teacher_Onizuka-E12-720p.mp4",
|
||||||
|
"type": "Serie",
|
||||||
|
"path": "G:/Great Teacher Onizuka\\EP 1-24\\Great_Teacher_Onizuka-E12-720p.mp4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Great_Teacher_Onizuka-E3-720p.mp4",
|
||||||
|
"type": "Serie",
|
||||||
|
"path": "G:/Great Teacher Onizuka\\EP 1-24\\Great_Teacher_Onizuka-E3-720p.mp4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Great_Teacher_Onizuka-E7-720p.mp4",
|
||||||
|
"type": "Serie",
|
||||||
|
"path": "G:/Great Teacher Onizuka\\EP 1-24\\Great_Teacher_Onizuka-E7-720p.mp4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Great_Teacher_Onizuka-E23-720p.mp4",
|
||||||
|
"type": "Serie",
|
||||||
|
"path": "G:/Great Teacher Onizuka\\EP 1-24\\Great_Teacher_Onizuka-E23-720p.mp4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Great_Teacher_Onizuka-E24-720p.mp4",
|
||||||
|
"type": "Serie",
|
||||||
|
"path": "G:/Great Teacher Onizuka\\EP 1-24\\Great_Teacher_Onizuka-E24-720p.mp4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Great_Teacher_Onizuka-E21-720p.mp4",
|
||||||
|
"type": "Serie",
|
||||||
|
"path": "G:/Great Teacher Onizuka\\EP 1-24\\Great_Teacher_Onizuka-E21-720p.mp4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Great_Teacher_Onizuka-E19-720p.mp4",
|
||||||
|
"type": "Serie",
|
||||||
|
"path": "G:/Great Teacher Onizuka\\EP 1-24\\Great_Teacher_Onizuka-E19-720p.mp4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Great_Teacher_Onizuka-E5-720p.mp4",
|
||||||
|
"type": "Serie",
|
||||||
|
"path": "G:/Great Teacher Onizuka\\EP 1-24\\Great_Teacher_Onizuka-E5-720p.mp4"
|
||||||
|
}
|
||||||
|
]
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -13,7 +13,7 @@ using System.Reflection;
|
|||||||
[assembly: System.Reflection.AssemblyCompanyAttribute("ShadowStream")]
|
[assembly: System.Reflection.AssemblyCompanyAttribute("ShadowStream")]
|
||||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+654af164ab4489c774208e885e281885e008210b")]
|
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+9a8ad0bb2fd16c90755afdfb8d7218362d6b667b")]
|
||||||
[assembly: System.Reflection.AssemblyProductAttribute("ShadowStream")]
|
[assembly: System.Reflection.AssemblyProductAttribute("ShadowStream")]
|
||||||
[assembly: System.Reflection.AssemblyTitleAttribute("ShadowStream")]
|
[assembly: System.Reflection.AssemblyTitleAttribute("ShadowStream")]
|
||||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||||
|
@ -1 +1 @@
|
|||||||
96a31703dd7ce1e308583d51d779021c43249d047cd73861027603eab0658335
|
64a6903ed00f5523561e9e538efb1a80387ebb1b672284765ef27c836d1c356d
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,4 +1,4 @@
|
|||||||
#pragma checksum "..\..\..\..\Views\MainWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "02D83F6CF7A1CE05E7F06B523353C42B3794759A"
|
#pragma checksum "..\..\..\..\Views\MainWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "3C6357FEE810548F6E83EABFE636E916E4C2FAE0"
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
@ -41,7 +41,7 @@ namespace ModuleManager {
|
|||||||
public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
|
public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
|
||||||
|
|
||||||
|
|
||||||
#line 31 "..\..\..\..\Views\MainWindow.xaml"
|
#line 41 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||||
internal System.Windows.Controls.TextBox SearchBox;
|
internal System.Windows.Controls.TextBox SearchBox;
|
||||||
|
|
||||||
@ -49,6 +49,22 @@ namespace ModuleManager {
|
|||||||
#line hidden
|
#line hidden
|
||||||
|
|
||||||
|
|
||||||
|
#line 54 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
|
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||||
|
internal System.Windows.Controls.StackPanel catPan;
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
|
||||||
|
|
||||||
|
#line 56 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
|
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||||
|
internal System.Windows.Controls.Button FirstCat;
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
|
||||||
|
|
||||||
#line 70 "..\..\..\..\Views\MainWindow.xaml"
|
#line 70 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||||
internal System.Windows.Controls.ScrollViewer ScrollContentHome;
|
internal System.Windows.Controls.ScrollViewer ScrollContentHome;
|
||||||
@ -65,7 +81,7 @@ namespace ModuleManager {
|
|||||||
#line hidden
|
#line hidden
|
||||||
|
|
||||||
|
|
||||||
#line 83 "..\..\..\..\Views\MainWindow.xaml"
|
#line 77 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||||
internal System.Windows.Controls.WrapPanel Muvies_Home;
|
internal System.Windows.Controls.WrapPanel Muvies_Home;
|
||||||
|
|
||||||
@ -73,7 +89,7 @@ namespace ModuleManager {
|
|||||||
#line hidden
|
#line hidden
|
||||||
|
|
||||||
|
|
||||||
#line 92 "..\..\..\..\Views\MainWindow.xaml"
|
#line 80 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||||
internal System.Windows.Controls.WrapPanel Series_Home;
|
internal System.Windows.Controls.WrapPanel Series_Home;
|
||||||
|
|
||||||
@ -81,7 +97,7 @@ namespace ModuleManager {
|
|||||||
#line hidden
|
#line hidden
|
||||||
|
|
||||||
|
|
||||||
#line 101 "..\..\..\..\Views\MainWindow.xaml"
|
#line 83 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||||
internal System.Windows.Controls.WrapPanel Music_Home;
|
internal System.Windows.Controls.WrapPanel Music_Home;
|
||||||
|
|
||||||
@ -89,7 +105,7 @@ namespace ModuleManager {
|
|||||||
#line hidden
|
#line hidden
|
||||||
|
|
||||||
|
|
||||||
#line 110 "..\..\..\..\Views\MainWindow.xaml"
|
#line 86 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||||
internal System.Windows.Controls.WrapPanel Photos_Home;
|
internal System.Windows.Controls.WrapPanel Photos_Home;
|
||||||
|
|
||||||
@ -97,7 +113,7 @@ namespace ModuleManager {
|
|||||||
#line hidden
|
#line hidden
|
||||||
|
|
||||||
|
|
||||||
#line 120 "..\..\..\..\Views\MainWindow.xaml"
|
#line 91 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||||
internal LibVLCSharp.WPF.VideoView VideoView;
|
internal LibVLCSharp.WPF.VideoView VideoView;
|
||||||
|
|
||||||
@ -105,7 +121,7 @@ namespace ModuleManager {
|
|||||||
#line hidden
|
#line hidden
|
||||||
|
|
||||||
|
|
||||||
#line 126 "..\..\..\..\Views\MainWindow.xaml"
|
#line 94 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||||
internal System.Windows.Controls.ScrollViewer ScrollContentCat;
|
internal System.Windows.Controls.ScrollViewer ScrollContentCat;
|
||||||
|
|
||||||
@ -113,7 +129,7 @@ namespace ModuleManager {
|
|||||||
#line hidden
|
#line hidden
|
||||||
|
|
||||||
|
|
||||||
#line 129 "..\..\..\..\Views\MainWindow.xaml"
|
#line 97 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||||
internal System.Windows.Controls.TextBlock Name_of_Catagory_Text;
|
internal System.Windows.Controls.TextBlock Name_of_Catagory_Text;
|
||||||
|
|
||||||
@ -121,7 +137,7 @@ namespace ModuleManager {
|
|||||||
#line hidden
|
#line hidden
|
||||||
|
|
||||||
|
|
||||||
#line 130 "..\..\..\..\Views\MainWindow.xaml"
|
#line 98 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||||
internal System.Windows.Controls.WrapPanel Name_of_Catagory;
|
internal System.Windows.Controls.WrapPanel Name_of_Catagory;
|
||||||
|
|
||||||
@ -129,7 +145,7 @@ namespace ModuleManager {
|
|||||||
#line hidden
|
#line hidden
|
||||||
|
|
||||||
|
|
||||||
#line 136 "..\..\..\..\Views\MainWindow.xaml"
|
#line 99 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||||
internal System.Windows.Controls.TextBlock Name_of_Catagory_Text1;
|
internal System.Windows.Controls.TextBlock Name_of_Catagory_Text1;
|
||||||
|
|
||||||
@ -137,7 +153,7 @@ namespace ModuleManager {
|
|||||||
#line hidden
|
#line hidden
|
||||||
|
|
||||||
|
|
||||||
#line 137 "..\..\..\..\Views\MainWindow.xaml"
|
#line 100 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||||
internal System.Windows.Controls.WrapPanel Name_of_Catagory1;
|
internal System.Windows.Controls.WrapPanel Name_of_Catagory1;
|
||||||
|
|
||||||
@ -145,7 +161,7 @@ namespace ModuleManager {
|
|||||||
#line hidden
|
#line hidden
|
||||||
|
|
||||||
|
|
||||||
#line 146 "..\..\..\..\Views\MainWindow.xaml"
|
#line 105 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||||
internal System.Windows.Controls.ScrollViewer ScrollContentPlaylist;
|
internal System.Windows.Controls.ScrollViewer ScrollContentPlaylist;
|
||||||
|
|
||||||
@ -153,7 +169,7 @@ namespace ModuleManager {
|
|||||||
#line hidden
|
#line hidden
|
||||||
|
|
||||||
|
|
||||||
#line 147 "..\..\..\..\Views\MainWindow.xaml"
|
#line 107 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||||
internal System.Windows.Controls.StackPanel PlaylistContentPanel;
|
internal System.Windows.Controls.StackPanel PlaylistContentPanel;
|
||||||
|
|
||||||
@ -161,7 +177,7 @@ namespace ModuleManager {
|
|||||||
#line hidden
|
#line hidden
|
||||||
|
|
||||||
|
|
||||||
#line 161 "..\..\..\..\Views\MainWindow.xaml"
|
#line 116 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||||
internal System.Windows.Controls.Slider itemProgress;
|
internal System.Windows.Controls.Slider itemProgress;
|
||||||
|
|
||||||
@ -169,7 +185,7 @@ namespace ModuleManager {
|
|||||||
#line hidden
|
#line hidden
|
||||||
|
|
||||||
|
|
||||||
#line 162 "..\..\..\..\Views\MainWindow.xaml"
|
#line 119 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||||
internal System.Windows.Controls.ProgressBar itemProgressVisual;
|
internal System.Windows.Controls.ProgressBar itemProgressVisual;
|
||||||
|
|
||||||
@ -177,7 +193,7 @@ namespace ModuleManager {
|
|||||||
#line hidden
|
#line hidden
|
||||||
|
|
||||||
|
|
||||||
#line 168 "..\..\..\..\Views\MainWindow.xaml"
|
#line 125 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||||
internal System.Windows.Controls.TextBlock title;
|
internal System.Windows.Controls.TextBlock title;
|
||||||
|
|
||||||
@ -185,7 +201,7 @@ namespace ModuleManager {
|
|||||||
#line hidden
|
#line hidden
|
||||||
|
|
||||||
|
|
||||||
#line 173 "..\..\..\..\Views\MainWindow.xaml"
|
#line 130 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
|
||||||
internal System.Windows.Controls.Slider vol;
|
internal System.Windows.Controls.Slider vol;
|
||||||
|
|
||||||
@ -227,6 +243,18 @@ namespace ModuleManager {
|
|||||||
#line 9 "..\..\..\..\Views\MainWindow.xaml"
|
#line 9 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
((ModuleManager.MainWindow)(target)).KeyUp += new System.Windows.Input.KeyEventHandler(this.Key_Up);
|
((ModuleManager.MainWindow)(target)).KeyUp += new System.Windows.Input.KeyEventHandler(this.Key_Up);
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
|
||||||
|
#line 10 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
|
((ModuleManager.MainWindow)(target)).PreviewKeyDown += new System.Windows.Input.KeyEventHandler(this.MainWindow_PreviewKeyDown);
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
|
||||||
|
#line 11 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
|
((ModuleManager.MainWindow)(target)).Loaded += new System.Windows.RoutedEventHandler(this.MainWindow_Loaded);
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
#line hidden
|
#line hidden
|
||||||
return;
|
return;
|
||||||
@ -235,105 +263,101 @@ namespace ModuleManager {
|
|||||||
return;
|
return;
|
||||||
case 3:
|
case 3:
|
||||||
|
|
||||||
#line 51 "..\..\..\..\Views\MainWindow.xaml"
|
#line 49 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.scanButton_Click);
|
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.scanButton_Click);
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
#line hidden
|
#line hidden
|
||||||
return;
|
return;
|
||||||
case 4:
|
case 4:
|
||||||
|
this.catPan = ((System.Windows.Controls.StackPanel)(target));
|
||||||
#line 60 "..\..\..\..\Views\MainWindow.xaml"
|
|
||||||
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Home_OnClick);
|
|
||||||
|
|
||||||
#line default
|
|
||||||
#line hidden
|
|
||||||
return;
|
return;
|
||||||
case 5:
|
case 5:
|
||||||
|
this.FirstCat = ((System.Windows.Controls.Button)(target));
|
||||||
|
|
||||||
#line 61 "..\..\..\..\Views\MainWindow.xaml"
|
#line 57 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Musik_OnClick);
|
this.FirstCat.Click += new System.Windows.RoutedEventHandler(this.Home_OnClick);
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
#line hidden
|
#line hidden
|
||||||
return;
|
return;
|
||||||
case 6:
|
case 6:
|
||||||
|
|
||||||
#line 62 "..\..\..\..\Views\MainWindow.xaml"
|
#line 59 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Photo_OnClick);
|
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Musik_OnClick);
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
#line hidden
|
#line hidden
|
||||||
return;
|
return;
|
||||||
case 7:
|
case 7:
|
||||||
|
|
||||||
|
#line 61 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
|
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Photo_OnClick);
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
return;
|
||||||
|
case 8:
|
||||||
|
|
||||||
#line 63 "..\..\..\..\Views\MainWindow.xaml"
|
#line 63 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Video_OnClick);
|
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Video_OnClick);
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
#line hidden
|
#line hidden
|
||||||
return;
|
return;
|
||||||
case 8:
|
case 9:
|
||||||
|
|
||||||
#line 64 "..\..\..\..\Views\MainWindow.xaml"
|
#line 65 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.PlayListButton_OnClick);
|
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.PlayListButton_OnClick);
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
#line hidden
|
#line hidden
|
||||||
return;
|
return;
|
||||||
case 9:
|
case 10:
|
||||||
this.ScrollContentHome = ((System.Windows.Controls.ScrollViewer)(target));
|
this.ScrollContentHome = ((System.Windows.Controls.ScrollViewer)(target));
|
||||||
return;
|
return;
|
||||||
case 10:
|
case 11:
|
||||||
this.Favorites_Home = ((System.Windows.Controls.WrapPanel)(target));
|
this.Favorites_Home = ((System.Windows.Controls.WrapPanel)(target));
|
||||||
return;
|
return;
|
||||||
case 11:
|
case 12:
|
||||||
this.Muvies_Home = ((System.Windows.Controls.WrapPanel)(target));
|
this.Muvies_Home = ((System.Windows.Controls.WrapPanel)(target));
|
||||||
return;
|
return;
|
||||||
case 12:
|
case 13:
|
||||||
this.Series_Home = ((System.Windows.Controls.WrapPanel)(target));
|
this.Series_Home = ((System.Windows.Controls.WrapPanel)(target));
|
||||||
return;
|
return;
|
||||||
case 13:
|
case 14:
|
||||||
this.Music_Home = ((System.Windows.Controls.WrapPanel)(target));
|
this.Music_Home = ((System.Windows.Controls.WrapPanel)(target));
|
||||||
return;
|
return;
|
||||||
case 14:
|
case 15:
|
||||||
this.Photos_Home = ((System.Windows.Controls.WrapPanel)(target));
|
this.Photos_Home = ((System.Windows.Controls.WrapPanel)(target));
|
||||||
return;
|
return;
|
||||||
case 15:
|
case 16:
|
||||||
this.VideoView = ((LibVLCSharp.WPF.VideoView)(target));
|
this.VideoView = ((LibVLCSharp.WPF.VideoView)(target));
|
||||||
return;
|
return;
|
||||||
case 16:
|
case 17:
|
||||||
this.ScrollContentCat = ((System.Windows.Controls.ScrollViewer)(target));
|
this.ScrollContentCat = ((System.Windows.Controls.ScrollViewer)(target));
|
||||||
return;
|
return;
|
||||||
case 17:
|
case 18:
|
||||||
this.Name_of_Catagory_Text = ((System.Windows.Controls.TextBlock)(target));
|
this.Name_of_Catagory_Text = ((System.Windows.Controls.TextBlock)(target));
|
||||||
return;
|
return;
|
||||||
case 18:
|
case 19:
|
||||||
this.Name_of_Catagory = ((System.Windows.Controls.WrapPanel)(target));
|
this.Name_of_Catagory = ((System.Windows.Controls.WrapPanel)(target));
|
||||||
return;
|
return;
|
||||||
case 19:
|
case 20:
|
||||||
this.Name_of_Catagory_Text1 = ((System.Windows.Controls.TextBlock)(target));
|
this.Name_of_Catagory_Text1 = ((System.Windows.Controls.TextBlock)(target));
|
||||||
return;
|
return;
|
||||||
case 20:
|
case 21:
|
||||||
this.Name_of_Catagory1 = ((System.Windows.Controls.WrapPanel)(target));
|
this.Name_of_Catagory1 = ((System.Windows.Controls.WrapPanel)(target));
|
||||||
return;
|
return;
|
||||||
case 21:
|
case 22:
|
||||||
this.ScrollContentPlaylist = ((System.Windows.Controls.ScrollViewer)(target));
|
this.ScrollContentPlaylist = ((System.Windows.Controls.ScrollViewer)(target));
|
||||||
return;
|
return;
|
||||||
case 22:
|
|
||||||
this.PlaylistContentPanel = ((System.Windows.Controls.StackPanel)(target));
|
|
||||||
return;
|
|
||||||
case 23:
|
case 23:
|
||||||
|
this.PlaylistContentPanel = ((System.Windows.Controls.StackPanel)(target));
|
||||||
#line 148 "..\..\..\..\Views\MainWindow.xaml"
|
|
||||||
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.PlayListButton_Click);
|
|
||||||
|
|
||||||
#line default
|
|
||||||
#line hidden
|
|
||||||
return;
|
return;
|
||||||
case 24:
|
case 24:
|
||||||
|
|
||||||
#line 158 "..\..\..\..\Views\MainWindow.xaml"
|
#line 113 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.PlayListButton_Click);
|
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.PlayListButton_Click);
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
@ -342,13 +366,13 @@ namespace ModuleManager {
|
|||||||
case 25:
|
case 25:
|
||||||
this.itemProgress = ((System.Windows.Controls.Slider)(target));
|
this.itemProgress = ((System.Windows.Controls.Slider)(target));
|
||||||
|
|
||||||
#line 161 "..\..\..\..\Views\MainWindow.xaml"
|
#line 116 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
this.itemProgress.PreviewMouseDown += new System.Windows.Input.MouseButtonEventHandler(this.ItemProgress_OnPreviewMouseDown);
|
this.itemProgress.PreviewMouseDown += new System.Windows.Input.MouseButtonEventHandler(this.ItemProgress_OnPreviewMouseDown);
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
#line hidden
|
#line hidden
|
||||||
|
|
||||||
#line 161 "..\..\..\..\Views\MainWindow.xaml"
|
#line 117 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
this.itemProgress.ValueChanged += new System.Windows.RoutedPropertyChangedEventHandler<double>(this.ItemProgress_OnValueChanged);
|
this.itemProgress.ValueChanged += new System.Windows.RoutedPropertyChangedEventHandler<double>(this.ItemProgress_OnValueChanged);
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
@ -362,7 +386,7 @@ namespace ModuleManager {
|
|||||||
return;
|
return;
|
||||||
case 28:
|
case 28:
|
||||||
|
|
||||||
#line 169 "..\..\..\..\Views\MainWindow.xaml"
|
#line 126 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.OnItemPriorButtonClick);
|
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.OnItemPriorButtonClick);
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
@ -370,7 +394,7 @@ namespace ModuleManager {
|
|||||||
return;
|
return;
|
||||||
case 29:
|
case 29:
|
||||||
|
|
||||||
#line 170 "..\..\..\..\Views\MainWindow.xaml"
|
#line 127 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.OnItemPauseBtn_Click);
|
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.OnItemPauseBtn_Click);
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
@ -378,7 +402,7 @@ namespace ModuleManager {
|
|||||||
return;
|
return;
|
||||||
case 30:
|
case 30:
|
||||||
|
|
||||||
#line 171 "..\..\..\..\Views\MainWindow.xaml"
|
#line 128 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.OnItemNextButtonClick);
|
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.OnItemNextButtonClick);
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
@ -387,7 +411,7 @@ namespace ModuleManager {
|
|||||||
case 31:
|
case 31:
|
||||||
this.vol = ((System.Windows.Controls.Slider)(target));
|
this.vol = ((System.Windows.Controls.Slider)(target));
|
||||||
|
|
||||||
#line 173 "..\..\..\..\Views\MainWindow.xaml"
|
#line 131 "..\..\..\..\Views\MainWindow.xaml"
|
||||||
this.vol.ValueChanged += new System.Windows.RoutedPropertyChangedEventHandler<double>(this.RangeBase_OnValueChanged);
|
this.vol.ValueChanged += new System.Windows.RoutedPropertyChangedEventHandler<double>(this.RangeBase_OnValueChanged);
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -13,7 +13,7 @@ using System.Reflection;
|
|||||||
[assembly: System.Reflection.AssemblyCompanyAttribute("file finder test")]
|
[assembly: System.Reflection.AssemblyCompanyAttribute("file finder test")]
|
||||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+654af164ab4489c774208e885e281885e008210b")]
|
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+9a8ad0bb2fd16c90755afdfb8d7218362d6b667b")]
|
||||||
[assembly: System.Reflection.AssemblyProductAttribute("file finder test")]
|
[assembly: System.Reflection.AssemblyProductAttribute("file finder test")]
|
||||||
[assembly: System.Reflection.AssemblyTitleAttribute("file finder test")]
|
[assembly: System.Reflection.AssemblyTitleAttribute("file finder test")]
|
||||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||||
|
@ -1 +1 @@
|
|||||||
56f52912c137b40320f8746d58c03b940fa0d8ec5ceba306cb1526abf606d929
|
e92e270ed67f58a7b859d0d7fe2bbac7f7dc3a982926ac43573b8c03f4fb747d
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user