This commit is contained in:
Frank Skare
2019-04-27 06:16:46 +02:00
parent 2d9a67c502
commit 6c85ea9625
5 changed files with 39 additions and 24 deletions

View File

@@ -194,6 +194,10 @@ mpv.net bugs and requests: <https://github.com/stax76/mpv.net/issues>
### Changelog ### Changelog
### 3.3 (2019-??-??)
- dark mode support added to the command palette
### 3.2 (2019-04-27) ### 3.2 (2019-04-27)
- mpvInputEdit and mpvConfEdit were discontinued and merged into - mpvInputEdit and mpvConfEdit were discontinued and merged into

View File

@@ -49,7 +49,7 @@ namespace mpvnet
using (var d = new OpenFileDialog()) using (var d = new OpenFileDialog())
{ {
d.Multiselect = true; d.Multiselect = true;
d.Filter = Misc.GetFilter(Misc.FileTypes); d.Filter = Sys.GetFilter();
if (d.ShowDialog() == DialogResult.OK) if (d.ShowDialog() == DialogResult.OK)
mp.LoadFiles(d.FileNames); mp.LoadFiles(d.FileNames);

View File

@@ -15,12 +15,17 @@ using Microsoft.Win32;
namespace mpvnet namespace mpvnet
{ {
public class Misc public class App
{ {
public static readonly string[] FileTypes = "264 265 3gp aac ac3 avc avi avs bmp divx dts dtshd dtshr dtsma eac3 evo flac flv h264 h265 hevc hvc jpg jpeg m2t m2ts m2v m4a m4v mka mkv mlp mov mp2 mp3 mp4 mpa mpeg mpg mpv mts ogg ogm opus pcm png pva raw rmvb thd thd+ac3 true-hd truehd ts vdr vob vpy w64 wav webm wmv y4m".Split(' '); public static bool IsDarkMode {
get {
public static string GetFilter(IEnumerable<string> values) => "*." + string darkMode = MainForm.Instance.MpvNetDarkMode;
String.Join(";*.", values) + "|*." + String.Join(";*.", values) + "|All Files|*.*"; object value = Registry.GetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize", "AppsUseLightTheme", 1);
if (value is null) value = 1;
bool isDarkTheme = (int)value == 0;
return (darkMode == "system" && isDarkTheme) || darkMode == "always";
}
}
} }
public class Sys public class Sys
@@ -46,6 +51,12 @@ namespace mpvnet
{ } { }
return false; return false;
} }
public static string GetFilter()
{
string[] fileTypes = "264 265 3gp aac ac3 avc avi avs bmp divx dts dtshd dtshr dtsma eac3 evo flac flv h264 h265 hevc hvc jpg jpeg m2t m2ts m2v m4a m4v mka mkv mlp mov mp2 mp3 mp4 mpa mpeg mpg mpv mts ogg ogm opus pcm png pva raw rmvb thd thd+ac3 true-hd truehd ts vdr vob vpy w64 wav webm wmv y4m".Split(' ');
return "*." + String.Join(";*.", fileTypes) + "|*." + String.Join(";*.", fileTypes) + "|All Files|*.*";
}
} }
public class StringLogicalComparer : IComparer, IComparer<string> public class StringLogicalComparer : IComparer, IComparer<string>

View File

@@ -1,9 +1,11 @@
using System; using Microsoft.Win32;
using System;
using System.ComponentModel; using System.ComponentModel;
using System.Windows; using System.Windows;
using System.Windows.Data; using System.Windows.Data;
using System.Windows.Input; using System.Windows.Input;
using System.Windows.Interop; using System.Windows.Interop;
using System.Windows.Media;
namespace mpvnet namespace mpvnet
{ {
@@ -19,6 +21,14 @@ namespace mpvnet
var yourCostumFilter = new Predicate<object>(item => Filter((CommandItem)item)); var yourCostumFilter = new Predicate<object>(item => Filter((CommandItem)item));
CollectionView.Filter = yourCostumFilter; CollectionView.Filter = yourCostumFilter;
ListView.ItemsSource = CollectionView; ListView.ItemsSource = CollectionView;
if (App.IsDarkMode)
{
ListView.Foreground = Brushes.White;
ListView.Background = Brushes.Black;
FilterTextBox.Foreground = Brushes.White;
FilterTextBox.Background = Brushes.Black;
}
} }
bool Filter(CommandItem item) bool Filter(CommandItem item)

View File

@@ -30,7 +30,13 @@ namespace mpvnet
LoadSettings(MpvSettingsDefinitions, MpvConf); LoadSettings(MpvSettingsDefinitions, MpvConf);
LoadSettings(MpvNetSettingsDefinitions, MpvNetConf); LoadSettings(MpvNetSettingsDefinitions, MpvNetConf);
SearchControl.Text = (string)Registry.GetValue(@"HKEY_CURRENT_USER\Software\mpv.net", "conf editor search", ""); SearchControl.Text = (string)Registry.GetValue(@"HKEY_CURRENT_USER\Software\mpv.net", "conf editor search", "");
SetDarkTheme();
if (App.IsDarkMode)
{
Foreground = Brushes.White;
Foreground2 = Brushes.Silver;
Background = Brushes.Black;
}
} }
public Brush Foreground2 { public Brush Foreground2 {
@@ -41,22 +47,6 @@ namespace mpvnet
public static readonly DependencyProperty Foreground2Property = public static readonly DependencyProperty Foreground2Property =
DependencyProperty.Register("Foreground2", typeof(Brush), typeof(ConfWindow), new PropertyMetadata(Brushes.DarkSlateGray)); DependencyProperty.Register("Foreground2", typeof(Brush), typeof(ConfWindow), new PropertyMetadata(Brushes.DarkSlateGray));
void SetDarkTheme()
{
string darkMode = MpvNetSettingsDefinitions.Where(item => item.Name == "dark-mode").First().Value;
object value = Registry.GetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize", "AppsUseLightTheme", 1);
if (value is null) value = 1;
bool isDarkTheme = (int)value == 0;
if (!((darkMode == "system" && isDarkTheme) || darkMode == "always"))
return;
Foreground = Brushes.White;
Foreground2 = Brushes.Silver;
Background = Brushes.Black;
}
private void LoadSettings(List<SettingBase> settingsDefinitions, private void LoadSettings(List<SettingBase> settingsDefinitions,
Dictionary<string, string> confSettings) Dictionary<string, string> confSettings)
{ {