laptop->pc

This commit is contained in:
unknown 2025-07-04 21:51:23 +02:00
parent 9a8ad0bb2f
commit 739e5ccfa6
35 changed files with 685 additions and 293 deletions

View File

@ -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")]

View File

@ -1 +1 @@
b514a04c750ec160bf4b9410f5a30998919de0ec1c4b73c997afa9f6c13170c7 3d15d74596a8970912a8dabdafafc0d6d5790369f74eec627a1983fd3c47a6be

View File

@ -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")]

View File

@ -1 +1 @@
a85a0ab2a07bbb710c1b5ca87c0627824f06d465e0548477032474c6284c068b 8f3d74393500effb2738998a78a667ef4e6938d33d9e57fe382365afa07103b1

View File

@ -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)

View File

@ -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>

View File

@ -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
} }

View File

@ -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"
}
]

View File

@ -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")]

View File

@ -1 +1 @@
96a31703dd7ce1e308583d51d779021c43249d047cd73861027603eab0658335 64a6903ed00f5523561e9e538efb1a80387ebb1b672284765ef27c836d1c356d

View File

@ -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

View File

@ -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")]

View File

@ -1 +1 @@
56f52912c137b40320f8746d58c03b940fa0d8ec5ceba306cb1526abf606d929 e92e270ed67f58a7b859d0d7fe2bbac7f7dc3a982926ac43573b8c03f4fb747d