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.AssemblyConfigurationAttribute("Debug")]
[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.AssemblyTitleAttribute("NotVPR_Remote")]
[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.AssemblyConfigurationAttribute("Debug")]
[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.AssemblyTitleAttribute("NotVPR_SideProjecktForVpr_FreeTime")]
[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",
HorizontalAlignment = HorizontalAlignment.Center,
Tag = path + "||" + type // Store path or any identifier
Tag = path + "||" + type,// Store path or any identifier
Focusable = true
};
if (clickHandler != null)

View File

@ -3,174 +3,132 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
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"
Title="MainWindow" Height="450" Width="800"
KeyUp="Key_Up">
<Grid>
<!-- Layout Definitions -->
KeyUp="Key_Up"
PreviewKeyDown="MainWindow_PreviewKeyDown"
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>
<ColumnDefinition Width="200"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="60"/> <!-- Top bar -->
<RowDefinition/> <!-- Content -->
<RowDefinition Height="70"/> <!-- Bottom player -->
<RowDefinition Height="60"/>
<RowDefinition/>
<RowDefinition Height="70"/>
</Grid.RowDefinitions>
<!-- TOP BAR -->
<Grid Grid.ColumnSpan="2" Grid.Row="0" Background="#333">
<Button Content="Login"
Width="80"
Margin="10,10,0,10"
HorizontalAlignment="Left"
VerticalAlignment="Center"/>
<Grid Grid.ColumnSpan="2" Grid.Row="0" Background="#333" KeyboardNavigation.DirectionalNavigation="None">
<Button Content="Login" TabIndex="0" Focusable="True" Width="80" Margin="10,10,0,10"
HorizontalAlignment="Left" VerticalAlignment="Center"/>
<Grid HorizontalAlignment="Center" VerticalAlignment="Center" Width="300">
<TextBox Name="SearchBox"
Padding="8"
FontSize="14"
Background="White"
Foreground="Black"/>
<TextBlock Text="Search..."
Margin="12,0,0,0"
VerticalAlignment="Center"
Foreground="Gray"
IsHitTestVisible="False"/>
<TextBox Name="SearchBox" TabIndex="1" Focusable="True" Padding="8" FontSize="14"
Background="White" Foreground="Black"/>
<TextBlock Text="Search..." Margin="12,0,0,0" VerticalAlignment="Center"
Foreground="Gray" IsHitTestVisible="False"/>
</Grid>
<StackPanel Orientation="Horizontal"
HorizontalAlignment="Right"
Margin="0,0,20,0"
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,0,20,0"
VerticalAlignment="Center">
<Button Content="scann"
Width="40"
Height="40"
Margin="0,0,10,0"
Click="scanButton_Click"/>
<Button Content="scann" TabIndex="2" Focusable="True" Width="40" Height="40"
Margin="0,0,10,0" Click="scanButton_Click"/>
</StackPanel>
</Grid>
<!-- LEFT NAVIGATION -->
<StackPanel Grid.Row="1"
Grid.Column="0"
Background="#222"
VerticalAlignment="Stretch">
<Button Content="Home" Height="60" Foreground="White" Background="Transparent" Click="Home_OnClick" />
<Button Content="Musik" Height="60" Foreground="White" Background="Transparent" Click="Musik_OnClick"/>
<Button Content="Photos" Height="60" Foreground="White" Background="Transparent" Click="Photo_OnClick"/>
<Button Content="Video" Height="60" Foreground="White" Background="Transparent" Click="Video_OnClick" />
<Button Content="Playlist" Height="60" Foreground="White" Background="Transparent" Click="PlayListButton_OnClick" />
<StackPanel Name="catPan" Grid.Row="1" Grid.Column="0" Background="#222" VerticalAlignment="Stretch"
KeyboardNavigation.DirectionalNavigation="None">
<Button Name="FirstCat" Content="Home" Height="60" TabIndex="3" Focusable="True"
Foreground="White" Background="Transparent" Click="Home_OnClick"/>
<Button Content="Musik" Height="60" TabIndex="4" Focusable="True"
Foreground="White" Background="Transparent" Click="Musik_OnClick"/>
<Button Content="Photos" Height="60" TabIndex="5" Focusable="True"
Foreground="White" Background="Transparent" Click="Photo_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>
<!-- MAIN CONTENT WRAPPED IN A GRID FOR LAYERING -->
<Grid Grid.Column="1" Grid.Row="1">
<!-- ScrollViewer (Background) -->
<ScrollViewer x:Name="ScrollContentHome" Background="#444" Panel.ZIndex="0">
<StackPanel Margin="10">
<!-- Favorites -->
<!-- MAIN CONTENT -->
<Grid Grid.Column="1" Grid.Row="1" KeyboardNavigation.DirectionalNavigation="None">
<ScrollViewer x:Name="ScrollContentHome" Background="#444" Panel.ZIndex="0"
KeyboardNavigation.DirectionalNavigation="None" Focusable="False">
<StackPanel Margin="10" KeyboardNavigation.DirectionalNavigation="None">
<TextBlock Text="Favorites" FontSize="18" Foreground="White" Margin="0,10"/>
<WrapPanel Name="Favorites_Home">
<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>
<WrapPanel Name="Favorites_Home" KeyboardNavigation.DirectionalNavigation="None"/>
<!-- Movies -->
<TextBlock Text="Movies" FontSize="18" Foreground="White" Margin="0,20,0,10"/>
<WrapPanel Name="Muvies_Home">
<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 -->
<WrapPanel Name="Muvies_Home" KeyboardNavigation.DirectionalNavigation="None"/>
<TextBlock Text="Series" FontSize="18" Foreground="White" Margin="0,20,0,10"/>
<WrapPanel Name="Series_Home">
<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>
<WrapPanel Name="Series_Home" KeyboardNavigation.DirectionalNavigation="None"/>
<!-- Music -->
<TextBlock Text="Music" FontSize="18" Foreground="White" Margin="0,20,0,10"/>
<WrapPanel Name="Music_Home">
<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 -->
<WrapPanel Name="Music_Home" KeyboardNavigation.DirectionalNavigation="None"/>
<TextBlock Text="Photos" FontSize="18" Foreground="White" Margin="0,20,0,10"/>
<WrapPanel Name="Photos_Home">
<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>
<WrapPanel Name="Photos_Home" KeyboardNavigation.DirectionalNavigation="None"/>
</StackPanel>
</ScrollViewer>
<!-- Video Player (Foreground) -->
<vlc:VideoView x:Name="VideoView"
Panel.ZIndex="1"
Visibility="Collapsed"
Background="Black" />
<!--Catagory-->
<ScrollViewer x:Name="ScrollContentCat" Background="#444" Panel.ZIndex="0" Visibility="Collapsed">
<StackPanel Margin="10">
<!-- Cat-name -->
<!-- VIDEO PLAYER -->
<vlc:VideoView x:Name="VideoView" Panel.ZIndex="1" Visibility="Collapsed" Background="Black"/>
<!-- CATEGORY VIEW -->
<ScrollViewer x:Name="ScrollContentCat" Background="#444" Panel.ZIndex="0" Visibility="Collapsed"
Focusable="False" KeyboardNavigation.DirectionalNavigation="None">
<StackPanel Margin="10" KeyboardNavigation.DirectionalNavigation="None">
<TextBlock Name="Name_of_Catagory_Text" Text="Name_of_Catagory" FontSize="18" Foreground="White" Margin="0,10"/>
<WrapPanel Name="Name_of_Catagory">
<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>
<WrapPanel Name="Name_of_Catagory" KeyboardNavigation.DirectionalNavigation="None"/>
<TextBlock Name="Name_of_Catagory_Text1" Text="Name_of_Catagory1" FontSize="18" Foreground="White" Margin="0,10"/>
<WrapPanel Name="Name_of_Catagory1" Visibility="Collapsed">
<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>
<WrapPanel Name="Name_of_Catagory1" Visibility="Collapsed" KeyboardNavigation.DirectionalNavigation="None"/>
</StackPanel>
</ScrollViewer>
<!--Playlists-->
<ScrollViewer x:Name="ScrollContentPlaylist" Background="#444" Panel.ZIndex="0" Visibility="Collapsed">
<StackPanel x:Name="PlaylistContentPanel">
<Button Content="New Playlist" Background="Black" Foreground="White" Click="PlayListButton_Click"></Button>
</StackPanel>
<!-- PLAYLIST VIEW -->
<ScrollViewer x:Name="ScrollContentPlaylist" Background="#444" Panel.ZIndex="0" Visibility="Collapsed"
Focusable="False" KeyboardNavigation.DirectionalNavigation="None">
<StackPanel x:Name="PlaylistContentPanel" KeyboardNavigation.DirectionalNavigation="None"/>
</ScrollViewer>
</Grid>
<!-- SETTINGS BUTTON -->
<Button Grid.Column="0" Grid.Row="2"
Content="Settings"
Margin="10"
HorizontalAlignment="Left"
Click="PlayListButton_Click"/>
<Button Grid.Column="0" Grid.Row="2" Content="Settings" Margin="10" HorizontalAlignment="Left"
TabIndex="8" Focusable="True" Click="PlayListButton_Click"/>
<!-- PLAYER PROGRESS -->
<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 -->
<Slider Name="itemProgress" PreviewMouseDown="ItemProgress_OnPreviewMouseDown" Panel.ZIndex="2" VerticalAlignment="Top" ValueChanged="ItemProgress_OnValueChanged" Grid.Row="2" Grid.Column="1" Padding="10"></Slider>
<ProgressBar Name="itemProgressVisual" Panel.ZIndex="1" Height="20" VerticalAlignment="Top" Grid.Row="2" Grid.Column="1" Padding="10"></ProgressBar>
<StackPanel Grid.Column="1" Grid.Row="2"
Orientation="Horizontal"
HorizontalAlignment="Center"
VerticalAlignment="Bottom"
Background="#222">
<StackPanel Grid.Column="1" Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Center"
VerticalAlignment="Bottom" Background="#222" KeyboardNavigation.DirectionalNavigation="None">
<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" Click="OnItemPauseBtn_Click"/>
<Button Content="⏭" Width="40" Margin="10" Click="OnItemNextButtonClick"/>
<Button Content="⏮" Width="40" Margin="10" TabIndex="10" Focusable="True" Click="OnItemPriorButtonClick"/>
<Button Content="▶" Width="40" Margin="10" TabIndex="11" Focusable="True" Click="OnItemPauseBtn_Click"/>
<Button Content="⏭" Width="40" Margin="10" TabIndex="12" Focusable="True" Click="OnItemNextButtonClick"/>
<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>
</Grid>
</Window>

View File

@ -82,6 +82,11 @@ public partial class MainWindow : Window
#endregion
//code start
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
FirstCat?.Focus();
}
public MainWindow()
{
#region Init wpf
@ -460,12 +465,14 @@ public partial class MainWindow : Window
{
Close_Player();
Name_of_Catagory_Text1.Visibility = Visibility.Collapsed;
ScrollContentHome.Visibility = Visibility.Collapsed;
ScrollContentCat.Visibility = Visibility.Collapsed;
Name_of_Catagory1.Visibility = Visibility.Collapsed;
PopulateAllCategoriesFromPlaylists();
PopulateAllCategoriesFromPlaylists(); // <-- This needs to set ScrollContentPlaylist visible
}
#endregion
@ -841,6 +848,8 @@ public partial class MainWindow : Window
// Make the ScrollViewer visible
ScrollContentPlaylist.Visibility = Visibility.Visible;
PopulatePlaylistsWithButtons();
}
#region tvRemote
@ -854,6 +863,7 @@ public partial class MainWindow : Window
Dispatcher.Invoke(() =>
{
MessageBox.Show("🔗 Client connected!");
});
};
@ -862,7 +872,25 @@ public partial class MainWindow : Window
Dispatcher.Invoke(() =>
{
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
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
#region load saved data
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);
}
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)
try
{
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)
{
return CreateItemsFromJson(jsonItems, isPhoto: false, isMusic: false);
@ -1245,14 +1374,6 @@ public partial class MainWindow : Window
{
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:
var result = MessageBox.Show(
"Do you want to quit?",
@ -1268,8 +1389,223 @@ public partial class MainWindow : Window
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
#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.AssemblyConfigurationAttribute("Debug")]
[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.AssemblyTitleAttribute("ShadowStream")]
[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>
// This code was generated by a tool.
@ -41,7 +41,7 @@ namespace ModuleManager {
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")]
internal System.Windows.Controls.TextBox SearchBox;
@ -49,6 +49,22 @@ namespace ModuleManager {
#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"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ScrollViewer ScrollContentHome;
@ -65,7 +81,7 @@ namespace ModuleManager {
#line hidden
#line 83 "..\..\..\..\Views\MainWindow.xaml"
#line 77 "..\..\..\..\Views\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.WrapPanel Muvies_Home;
@ -73,7 +89,7 @@ namespace ModuleManager {
#line hidden
#line 92 "..\..\..\..\Views\MainWindow.xaml"
#line 80 "..\..\..\..\Views\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.WrapPanel Series_Home;
@ -81,7 +97,7 @@ namespace ModuleManager {
#line hidden
#line 101 "..\..\..\..\Views\MainWindow.xaml"
#line 83 "..\..\..\..\Views\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.WrapPanel Music_Home;
@ -89,7 +105,7 @@ namespace ModuleManager {
#line hidden
#line 110 "..\..\..\..\Views\MainWindow.xaml"
#line 86 "..\..\..\..\Views\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.WrapPanel Photos_Home;
@ -97,7 +113,7 @@ namespace ModuleManager {
#line hidden
#line 120 "..\..\..\..\Views\MainWindow.xaml"
#line 91 "..\..\..\..\Views\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal LibVLCSharp.WPF.VideoView VideoView;
@ -105,7 +121,7 @@ namespace ModuleManager {
#line hidden
#line 126 "..\..\..\..\Views\MainWindow.xaml"
#line 94 "..\..\..\..\Views\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ScrollViewer ScrollContentCat;
@ -113,7 +129,7 @@ namespace ModuleManager {
#line hidden
#line 129 "..\..\..\..\Views\MainWindow.xaml"
#line 97 "..\..\..\..\Views\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock Name_of_Catagory_Text;
@ -121,7 +137,7 @@ namespace ModuleManager {
#line hidden
#line 130 "..\..\..\..\Views\MainWindow.xaml"
#line 98 "..\..\..\..\Views\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.WrapPanel Name_of_Catagory;
@ -129,7 +145,7 @@ namespace ModuleManager {
#line hidden
#line 136 "..\..\..\..\Views\MainWindow.xaml"
#line 99 "..\..\..\..\Views\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock Name_of_Catagory_Text1;
@ -137,7 +153,7 @@ namespace ModuleManager {
#line hidden
#line 137 "..\..\..\..\Views\MainWindow.xaml"
#line 100 "..\..\..\..\Views\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.WrapPanel Name_of_Catagory1;
@ -145,7 +161,7 @@ namespace ModuleManager {
#line hidden
#line 146 "..\..\..\..\Views\MainWindow.xaml"
#line 105 "..\..\..\..\Views\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ScrollViewer ScrollContentPlaylist;
@ -153,7 +169,7 @@ namespace ModuleManager {
#line hidden
#line 147 "..\..\..\..\Views\MainWindow.xaml"
#line 107 "..\..\..\..\Views\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.StackPanel PlaylistContentPanel;
@ -161,7 +177,7 @@ namespace ModuleManager {
#line hidden
#line 161 "..\..\..\..\Views\MainWindow.xaml"
#line 116 "..\..\..\..\Views\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Slider itemProgress;
@ -169,7 +185,7 @@ namespace ModuleManager {
#line hidden
#line 162 "..\..\..\..\Views\MainWindow.xaml"
#line 119 "..\..\..\..\Views\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ProgressBar itemProgressVisual;
@ -177,7 +193,7 @@ namespace ModuleManager {
#line hidden
#line 168 "..\..\..\..\Views\MainWindow.xaml"
#line 125 "..\..\..\..\Views\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock title;
@ -185,7 +201,7 @@ namespace ModuleManager {
#line hidden
#line 173 "..\..\..\..\Views\MainWindow.xaml"
#line 130 "..\..\..\..\Views\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Slider vol;
@ -227,6 +243,18 @@ namespace ModuleManager {
#line 9 "..\..\..\..\Views\MainWindow.xaml"
((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 hidden
return;
@ -235,105 +263,101 @@ namespace ModuleManager {
return;
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);
#line default
#line hidden
return;
case 4:
#line 60 "..\..\..\..\Views\MainWindow.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Home_OnClick);
#line default
#line hidden
this.catPan = ((System.Windows.Controls.StackPanel)(target));
return;
case 5:
this.FirstCat = ((System.Windows.Controls.Button)(target));
#line 61 "..\..\..\..\Views\MainWindow.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Musik_OnClick);
#line 57 "..\..\..\..\Views\MainWindow.xaml"
this.FirstCat.Click += new System.Windows.RoutedEventHandler(this.Home_OnClick);
#line default
#line hidden
return;
case 6:
#line 62 "..\..\..\..\Views\MainWindow.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Photo_OnClick);
#line 59 "..\..\..\..\Views\MainWindow.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Musik_OnClick);
#line default
#line hidden
return;
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"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Video_OnClick);
#line default
#line hidden
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);
#line default
#line hidden
return;
case 9:
case 10:
this.ScrollContentHome = ((System.Windows.Controls.ScrollViewer)(target));
return;
case 10:
case 11:
this.Favorites_Home = ((System.Windows.Controls.WrapPanel)(target));
return;
case 11:
case 12:
this.Muvies_Home = ((System.Windows.Controls.WrapPanel)(target));
return;
case 12:
case 13:
this.Series_Home = ((System.Windows.Controls.WrapPanel)(target));
return;
case 13:
case 14:
this.Music_Home = ((System.Windows.Controls.WrapPanel)(target));
return;
case 14:
case 15:
this.Photos_Home = ((System.Windows.Controls.WrapPanel)(target));
return;
case 15:
case 16:
this.VideoView = ((LibVLCSharp.WPF.VideoView)(target));
return;
case 16:
case 17:
this.ScrollContentCat = ((System.Windows.Controls.ScrollViewer)(target));
return;
case 17:
case 18:
this.Name_of_Catagory_Text = ((System.Windows.Controls.TextBlock)(target));
return;
case 18:
case 19:
this.Name_of_Catagory = ((System.Windows.Controls.WrapPanel)(target));
return;
case 19:
case 20:
this.Name_of_Catagory_Text1 = ((System.Windows.Controls.TextBlock)(target));
return;
case 20:
case 21:
this.Name_of_Catagory1 = ((System.Windows.Controls.WrapPanel)(target));
return;
case 21:
case 22:
this.ScrollContentPlaylist = ((System.Windows.Controls.ScrollViewer)(target));
return;
case 22:
this.PlaylistContentPanel = ((System.Windows.Controls.StackPanel)(target));
return;
case 23:
#line 148 "..\..\..\..\Views\MainWindow.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.PlayListButton_Click);
#line default
#line hidden
this.PlaylistContentPanel = ((System.Windows.Controls.StackPanel)(target));
return;
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);
#line default
@ -342,13 +366,13 @@ namespace ModuleManager {
case 25:
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);
#line default
#line hidden
#line 161 "..\..\..\..\Views\MainWindow.xaml"
#line 117 "..\..\..\..\Views\MainWindow.xaml"
this.itemProgress.ValueChanged += new System.Windows.RoutedPropertyChangedEventHandler<double>(this.ItemProgress_OnValueChanged);
#line default
@ -362,7 +386,7 @@ namespace ModuleManager {
return;
case 28:
#line 169 "..\..\..\..\Views\MainWindow.xaml"
#line 126 "..\..\..\..\Views\MainWindow.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.OnItemPriorButtonClick);
#line default
@ -370,7 +394,7 @@ namespace ModuleManager {
return;
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);
#line default
@ -378,7 +402,7 @@ namespace ModuleManager {
return;
case 30:
#line 171 "..\..\..\..\Views\MainWindow.xaml"
#line 128 "..\..\..\..\Views\MainWindow.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.OnItemNextButtonClick);
#line default
@ -387,7 +411,7 @@ namespace ModuleManager {
case 31:
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);
#line default

View File

@ -13,7 +13,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("file finder test")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[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.AssemblyTitleAttribute("file finder test")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@ -1 +1 @@
56f52912c137b40320f8746d58c03b940fa0d8ec5ceba306cb1526abf606d929
e92e270ed67f58a7b859d0d7fe2bbac7f7dc3a982926ac43573b8c03f4fb747d