Feature: Added WindowOpener class, which prevents having duplicate windows of the same type opened at the same time

This commit is contained in:
kerams
2014-04-11 19:16:59 +02:00
parent e0eb8c83e2
commit c36b5c77fc
3 changed files with 24 additions and 1 deletions

View File

@@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
namespace Wox.Helper
{
public static class WindowOpener
{
public static T Open<T>(params object[] args) where T : Window
{
var window = Application.Current.Windows.OfType<Window>().FirstOrDefault(x => x.GetType() == typeof(T))
?? (T)Activator.CreateInstance(typeof(T), args);
window.Show();
window.Focus();
Application.Current.MainWindow.Hide();
return (T)window;
}
}
}

View File

@@ -517,7 +517,7 @@ namespace Wox
public void OpenSettingDialog() public void OpenSettingDialog()
{ {
new SettingWindow(this).Show(); WindowOpener.Open<SettingWindow>(this);
} }
public void ShowCurrentResultItemTooltip(string text) public void ShowCurrentResultItemTooltip(string text)

View File

@@ -119,6 +119,7 @@
<Compile Include="Helper\SyntaxSugars.cs" /> <Compile Include="Helper\SyntaxSugars.cs" />
<Compile Include="Helper\WallpaperPathRetrieval.cs" /> <Compile Include="Helper\WallpaperPathRetrieval.cs" />
<Compile Include="Helper\WindowIntelopHelper.cs" /> <Compile Include="Helper\WindowIntelopHelper.cs" />
<Compile Include="Helper\WindowOpener.cs" />
<Compile Include="OpacityModeConverter.cs" /> <Compile Include="OpacityModeConverter.cs" />
<Compile Include="CustomPluginHotkeySetting.xaml.cs"> <Compile Include="CustomPluginHotkeySetting.xaml.cs">
<DependentUpon>CustomPluginHotkeySetting.xaml</DependentUpon> <DependentUpon>CustomPluginHotkeySetting.xaml</DependentUpon>