Merging with master
@@ -166,6 +166,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Plugin.Indexer",
|
|||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.Launcher", "src\modules\launcher\Microsoft.Launcher\Microsoft.Launcher.vcxproj", "{E364F67B-BB12-4E91-B639-355866EBCD8B}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.Launcher", "src\modules\launcher\Microsoft.Launcher\Microsoft.Launcher.vcxproj", "{E364F67B-BB12-4E91-B639-355866EBCD8B}"
|
||||||
|
{F97E5003-F263-4D4A-A964-0F1F3C82DEF2} = {F97E5003-F263-4D4A-A964-0F1F3C82DEF2}
|
||||||
|
EndProjectSection
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PowerLauncher", "src\modules\launcher\PowerLauncher\PowerLauncher.csproj", "{F97E5003-F263-4D4A-A964-0F1F3C82DEF2}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PowerLauncher.UI", "src\modules\launcher\PowerLauncher.UI\PowerLauncher.UI.csproj", "{4A3DE70C-684C-410D-B851-C23B6DAEDF16}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
@@ -309,6 +315,20 @@ Global
|
|||||||
{E364F67B-BB12-4E91-B639-355866EBCD8B}.Debug|x64.Build.0 = Debug|x64
|
{E364F67B-BB12-4E91-B639-355866EBCD8B}.Debug|x64.Build.0 = Debug|x64
|
||||||
{E364F67B-BB12-4E91-B639-355866EBCD8B}.Release|x64.ActiveCfg = Release|x64
|
{E364F67B-BB12-4E91-B639-355866EBCD8B}.Release|x64.ActiveCfg = Release|x64
|
||||||
{E364F67B-BB12-4E91-B639-355866EBCD8B}.Release|x64.Build.0 = Release|x64
|
{E364F67B-BB12-4E91-B639-355866EBCD8B}.Release|x64.Build.0 = Release|x64
|
||||||
|
{F8B870EB-D5F5-45BA-9CF7-A5C459818820}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{F8B870EB-D5F5-45BA-9CF7-A5C459818820}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{F8B870EB-D5F5-45BA-9CF7-A5C459818820}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{F8B870EB-D5F5-45BA-9CF7-A5C459818820}.Release|x64.Build.0 = Release|x64
|
||||||
|
{F97E5003-F263-4D4A-A964-0F1F3C82DEF2}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{F97E5003-F263-4D4A-A964-0F1F3C82DEF2}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{F97E5003-F263-4D4A-A964-0F1F3C82DEF2}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{F97E5003-F263-4D4A-A964-0F1F3C82DEF2}.Release|x64.Build.0 = Release|x64
|
||||||
|
{4A3DE70C-684C-410D-B851-C23B6DAEDF16}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{4A3DE70C-684C-410D-B851-C23B6DAEDF16}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{4A3DE70C-684C-410D-B851-C23B6DAEDF16}.Debug|x64.Deploy.0 = Debug|x64
|
||||||
|
{4A3DE70C-684C-410D-B851-C23B6DAEDF16}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{4A3DE70C-684C-410D-B851-C23B6DAEDF16}.Release|x64.Build.0 = Release|x64
|
||||||
|
{4A3DE70C-684C-410D-B851-C23B6DAEDF16}.Release|x64.Deploy.0 = Release|x64
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
@@ -351,6 +371,9 @@ Global
|
|||||||
{787B8AA6-CA93-4C84-96FE-DF31110AD1C4} = {4AFC9975-2456-4C70-94A4-84073C1CED93}
|
{787B8AA6-CA93-4C84-96FE-DF31110AD1C4} = {4AFC9975-2456-4C70-94A4-84073C1CED93}
|
||||||
{F8B870EB-D5F5-45BA-9CF7-A5C459818820} = {4AFC9975-2456-4C70-94A4-84073C1CED93}
|
{F8B870EB-D5F5-45BA-9CF7-A5C459818820} = {4AFC9975-2456-4C70-94A4-84073C1CED93}
|
||||||
{E364F67B-BB12-4E91-B639-355866EBCD8B} = {C140A3EF-6DBF-4084-9D4C-4EB5A99FEE68}
|
{E364F67B-BB12-4E91-B639-355866EBCD8B} = {C140A3EF-6DBF-4084-9D4C-4EB5A99FEE68}
|
||||||
|
{F8B870EB-D5F5-45BA-9CF7-A5C459818820} = {4AFC9975-2456-4C70-94A4-84073C1CED93}
|
||||||
|
{F97E5003-F263-4D4A-A964-0F1F3C82DEF2} = {C140A3EF-6DBF-4084-9D4C-4EB5A99FEE68}
|
||||||
|
{4A3DE70C-684C-410D-B851-C23B6DAEDF16} = {C140A3EF-6DBF-4084-9D4C-4EB5A99FEE68}
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
SolutionGuid = {C3A2F9D1-7930-4EF4-A6FC-7EE0A99821D0}
|
SolutionGuid = {C3A2F9D1-7930-4EF4-A6FC-7EE0A99821D0}
|
||||||
|
|||||||
65
src/modules/launcher/.gitattributes
vendored
@@ -1,65 +0,0 @@
|
|||||||
###############################################################################
|
|
||||||
# Set default behavior to automatically normalize line endings.
|
|
||||||
###############################################################################
|
|
||||||
* text=auto
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Set default behavior for command prompt diff.
|
|
||||||
#
|
|
||||||
# This is need for earlier builds of msysgit that does not have it on by
|
|
||||||
# default for csharp files.
|
|
||||||
# Note: This is only used by command line
|
|
||||||
###############################################################################
|
|
||||||
#*.cs diff=csharp
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Set the merge driver for project and solution files
|
|
||||||
#
|
|
||||||
# Merging from the command prompt will add diff markers to the files if there
|
|
||||||
# are conflicts (Merging from VS is not affected by the settings below, in VS
|
|
||||||
# the diff markers are never inserted). Diff markers may cause the following
|
|
||||||
# file extensions to fail to load in VS. An alternative would be to treat
|
|
||||||
# these files as binary and thus will always conflict and require user
|
|
||||||
# intervention with every merge. To do so, just uncomment the entries below
|
|
||||||
###############################################################################
|
|
||||||
#*.sln merge=binary
|
|
||||||
#*.csproj merge=binary
|
|
||||||
#*.vbproj merge=binary
|
|
||||||
#*.vcxproj merge=binary
|
|
||||||
#*.vcproj merge=binary
|
|
||||||
#*.dbproj merge=binary
|
|
||||||
#*.fsproj merge=binary
|
|
||||||
#*.lsproj merge=binary
|
|
||||||
#*.wixproj merge=binary
|
|
||||||
#*.modelproj merge=binary
|
|
||||||
#*.sqlproj merge=binary
|
|
||||||
#*.wwaproj merge=binary
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# behavior for image files
|
|
||||||
#
|
|
||||||
# image files are treated as binary by default.
|
|
||||||
###############################################################################
|
|
||||||
#*.jpg binary
|
|
||||||
#*.png binary
|
|
||||||
#*.gif binary
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# diff behavior for common document formats
|
|
||||||
#
|
|
||||||
# Convert binary document formats to text before diffing them. This feature
|
|
||||||
# is only available from the command line. Turn it on by uncommenting the
|
|
||||||
# entries below.
|
|
||||||
###############################################################################
|
|
||||||
#*.doc diff=astextplain
|
|
||||||
#*.DOC diff=astextplain
|
|
||||||
#*.docx diff=astextplain
|
|
||||||
#*.DOCX diff=astextplain
|
|
||||||
#*.dot diff=astextplain
|
|
||||||
#*.DOT diff=astextplain
|
|
||||||
#*.pdf diff=astextplain
|
|
||||||
#*.PDF diff=astextplain
|
|
||||||
#*.rtf diff=astextplain
|
|
||||||
#*.RTF diff=astextplain
|
|
||||||
|
|
||||||
PythonHome/* linguist-vendored
|
|
||||||
302
src/modules/launcher/.gitignore
vendored
@@ -1,302 +0,0 @@
|
|||||||
## https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
|
|
||||||
## Ignore Visual Studio temporary files, build results, and
|
|
||||||
## files generated by popular Visual Studio add-ons.
|
|
||||||
|
|
||||||
# User-specific files
|
|
||||||
*.suo
|
|
||||||
*.user
|
|
||||||
*.userosscache
|
|
||||||
*.sln.docstates
|
|
||||||
|
|
||||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
|
||||||
*.userprefs
|
|
||||||
|
|
||||||
# Build results
|
|
||||||
[Dd]ebug/
|
|
||||||
[Dd]ebugPublic/
|
|
||||||
[Rr]elease/
|
|
||||||
[Rr]eleases/
|
|
||||||
x64/
|
|
||||||
x86/
|
|
||||||
bld/
|
|
||||||
[Bb]in/
|
|
||||||
[Oo]bj/
|
|
||||||
[Ll]og/
|
|
||||||
|
|
||||||
# Visual Studio 2015 cache/options directory
|
|
||||||
.vs/
|
|
||||||
# Uncomment if you have tasks that create the project's static files in wwwroot
|
|
||||||
#wwwroot/
|
|
||||||
|
|
||||||
# MSTest test Results
|
|
||||||
[Tt]est[Rr]esult*/
|
|
||||||
[Bb]uild[Ll]og.*
|
|
||||||
|
|
||||||
# NUNIT
|
|
||||||
*.VisualState.xml
|
|
||||||
TestResult.xml
|
|
||||||
|
|
||||||
# Build Results of an ATL Project
|
|
||||||
[Dd]ebugPS/
|
|
||||||
[Rr]eleasePS/
|
|
||||||
dlldata.c
|
|
||||||
|
|
||||||
# DNX
|
|
||||||
project.lock.json
|
|
||||||
artifacts/
|
|
||||||
|
|
||||||
*_i.c
|
|
||||||
*_p.c
|
|
||||||
*_i.h
|
|
||||||
*.ilk
|
|
||||||
*.meta
|
|
||||||
*.obj
|
|
||||||
*.pch
|
|
||||||
*.pdb
|
|
||||||
*.pgc
|
|
||||||
*.pgd
|
|
||||||
*.rsp
|
|
||||||
*.sbr
|
|
||||||
*.tlb
|
|
||||||
*.tli
|
|
||||||
*.tlh
|
|
||||||
*.tmp
|
|
||||||
*.tmp_proj
|
|
||||||
*.log
|
|
||||||
*.vspscc
|
|
||||||
*.vssscc
|
|
||||||
.builds
|
|
||||||
*.pidb
|
|
||||||
*.svclog
|
|
||||||
*.scc
|
|
||||||
|
|
||||||
# Chutzpah Test files
|
|
||||||
_Chutzpah*
|
|
||||||
|
|
||||||
# Visual C++ cache files
|
|
||||||
ipch/
|
|
||||||
*.aps
|
|
||||||
*.ncb
|
|
||||||
*.opendb
|
|
||||||
*.opensdf
|
|
||||||
*.sdf
|
|
||||||
*.cachefile
|
|
||||||
|
|
||||||
# Visual Studio profiler
|
|
||||||
*.psess
|
|
||||||
*.vsp
|
|
||||||
*.vspx
|
|
||||||
*.sap
|
|
||||||
|
|
||||||
# TFS 2012 Local Workspace
|
|
||||||
$tf/
|
|
||||||
|
|
||||||
# Guidance Automation Toolkit
|
|
||||||
*.gpState
|
|
||||||
|
|
||||||
# ReSharper is a .NET coding add-in
|
|
||||||
_ReSharper*/
|
|
||||||
*.[Rr]e[Ss]harper
|
|
||||||
*.DotSettings.user
|
|
||||||
|
|
||||||
# JustCode is a .NET coding add-in
|
|
||||||
.JustCode
|
|
||||||
|
|
||||||
# TeamCity is a build add-in
|
|
||||||
_TeamCity*
|
|
||||||
|
|
||||||
# DotCover is a Code Coverage Tool
|
|
||||||
*.dotCover
|
|
||||||
|
|
||||||
# NCrunch
|
|
||||||
_NCrunch_*
|
|
||||||
.*crunch*.local.xml
|
|
||||||
nCrunchTemp_*
|
|
||||||
|
|
||||||
# MightyMoose
|
|
||||||
*.mm.*
|
|
||||||
AutoTest.Net/
|
|
||||||
|
|
||||||
# Web workbench (sass)
|
|
||||||
.sass-cache/
|
|
||||||
|
|
||||||
# Installshield output folder
|
|
||||||
[Ee]xpress/
|
|
||||||
|
|
||||||
# DocProject is a documentation generator add-in
|
|
||||||
DocProject/buildhelp/
|
|
||||||
DocProject/Help/*.HxT
|
|
||||||
DocProject/Help/*.HxC
|
|
||||||
DocProject/Help/*.hhc
|
|
||||||
DocProject/Help/*.hhk
|
|
||||||
DocProject/Help/*.hhp
|
|
||||||
DocProject/Help/Html2
|
|
||||||
DocProject/Help/html
|
|
||||||
|
|
||||||
# Click-Once directory
|
|
||||||
publish/
|
|
||||||
|
|
||||||
# Publish Web Output
|
|
||||||
*.[Pp]ublish.xml
|
|
||||||
*.azurePubxml
|
|
||||||
# TODO: Comment the next line if you want to checkin your web deploy settings
|
|
||||||
# but database connection strings (with potential passwords) will be unencrypted
|
|
||||||
*.pubxml
|
|
||||||
*.publishproj
|
|
||||||
|
|
||||||
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
|
||||||
# checkin your Azure Web App publish settings, but sensitive information contained
|
|
||||||
# in these scripts will be unencrypted
|
|
||||||
PublishScripts/
|
|
||||||
|
|
||||||
# NuGet Packages
|
|
||||||
*.nupkg
|
|
||||||
# The packages folder can be ignored because of Package Restore
|
|
||||||
**/packages/*
|
|
||||||
# except build/, which is used as an MSBuild target.
|
|
||||||
!**/packages/build/
|
|
||||||
# Uncomment if necessary however generally it will be regenerated when needed
|
|
||||||
#!**/packages/repositories.config
|
|
||||||
# NuGet v3's project.json files produces more ignoreable files
|
|
||||||
*.nuget.props
|
|
||||||
*.nuget.targets
|
|
||||||
|
|
||||||
# Microsoft Azure Build Output
|
|
||||||
csx/
|
|
||||||
*.build.csdef
|
|
||||||
|
|
||||||
# Microsoft Azure Emulator
|
|
||||||
ecf/
|
|
||||||
rcf/
|
|
||||||
|
|
||||||
# Windows Store app package directories and files
|
|
||||||
AppPackages/
|
|
||||||
BundleArtifacts/
|
|
||||||
Package.StoreAssociation.xml
|
|
||||||
_pkginfo.txt
|
|
||||||
|
|
||||||
# Visual Studio cache files
|
|
||||||
# files ending in .cache can be ignored
|
|
||||||
*.[Cc]ache
|
|
||||||
# but keep track of directories ending in .cache
|
|
||||||
!*.[Cc]ache/
|
|
||||||
|
|
||||||
# Others
|
|
||||||
ClientBin/
|
|
||||||
~$*
|
|
||||||
*~
|
|
||||||
*.dbmdl
|
|
||||||
*.dbproj.schemaview
|
|
||||||
*.pfx
|
|
||||||
*.publishsettings
|
|
||||||
node_modules/
|
|
||||||
orleans.codegen.cs
|
|
||||||
|
|
||||||
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
|
||||||
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
|
||||||
#bower_components/
|
|
||||||
|
|
||||||
# RIA/Silverlight projects
|
|
||||||
Generated_Code/
|
|
||||||
|
|
||||||
# Backup & report files from converting an old project file
|
|
||||||
# to a newer Visual Studio version. Backup files are not needed,
|
|
||||||
# because we have git ;-)
|
|
||||||
_UpgradeReport_Files/
|
|
||||||
Backup*/
|
|
||||||
UpgradeLog*.XML
|
|
||||||
UpgradeLog*.htm
|
|
||||||
|
|
||||||
# SQL Server files
|
|
||||||
*.mdf
|
|
||||||
*.ldf
|
|
||||||
|
|
||||||
# Business Intelligence projects
|
|
||||||
*.rdl.data
|
|
||||||
*.bim.layout
|
|
||||||
*.bim_*.settings
|
|
||||||
|
|
||||||
# Microsoft Fakes
|
|
||||||
FakesAssemblies/
|
|
||||||
|
|
||||||
# GhostDoc plugin setting file
|
|
||||||
*.GhostDoc.xml
|
|
||||||
|
|
||||||
# Node.js Tools for Visual Studio
|
|
||||||
.ntvs_analysis.dat
|
|
||||||
|
|
||||||
# Visual Studio 6 build log
|
|
||||||
*.plg
|
|
||||||
|
|
||||||
# Visual Studio 6 workspace options file
|
|
||||||
*.opt
|
|
||||||
|
|
||||||
# Visual Studio LightSwitch build output
|
|
||||||
**/*.HTMLClient/GeneratedArtifacts
|
|
||||||
**/*.DesktopClient/GeneratedArtifacts
|
|
||||||
**/*.DesktopClient/ModelManifest.xml
|
|
||||||
**/*.Server/GeneratedArtifacts
|
|
||||||
**/*.Server/ModelManifest.xml
|
|
||||||
_Pvt_Extensions
|
|
||||||
|
|
||||||
# Paket dependency manager
|
|
||||||
.paket/paket.exe
|
|
||||||
paket-files/
|
|
||||||
|
|
||||||
# FAKE - F# Make
|
|
||||||
.fake/
|
|
||||||
|
|
||||||
# JetBrains Rider
|
|
||||||
.idea/
|
|
||||||
*.sln.iml
|
|
||||||
|
|
||||||
## https://github.com/github/gitignore/blob/master/C%2B%2B.gitignore
|
|
||||||
## C++
|
|
||||||
|
|
||||||
# Compiled Object files
|
|
||||||
*.slo
|
|
||||||
*.lo
|
|
||||||
*.o
|
|
||||||
*.obj
|
|
||||||
|
|
||||||
# Precompiled Headers
|
|
||||||
*.gch
|
|
||||||
*.pch
|
|
||||||
|
|
||||||
# Compiled Dynamic libraries
|
|
||||||
*.so
|
|
||||||
*.dylib
|
|
||||||
*.dll
|
|
||||||
|
|
||||||
# Fortran module files
|
|
||||||
*.mod
|
|
||||||
|
|
||||||
# Compiled Static libraries
|
|
||||||
*.lai
|
|
||||||
*.la
|
|
||||||
*.a
|
|
||||||
*.lib
|
|
||||||
|
|
||||||
# Executables
|
|
||||||
*.exe
|
|
||||||
*.out
|
|
||||||
*.app
|
|
||||||
|
|
||||||
# New to Visual Studio
|
|
||||||
*.VC.db
|
|
||||||
|
|
||||||
## Wox specific
|
|
||||||
Output/*
|
|
||||||
/Python.Runtime.dll
|
|
||||||
Thumbs.db
|
|
||||||
RELEASES
|
|
||||||
|
|
||||||
|
|
||||||
*.sublime-*
|
|
||||||
*.dgml
|
|
||||||
migrateToAutomaticPackageRestore.ps1
|
|
||||||
*.pyd
|
|
||||||
*.pyc
|
|
||||||
*.diagsession
|
|
||||||
Output-Performance.txt
|
|
||||||
*.diff
|
|
||||||
8
src/modules/launcher/Directory.Build.targets
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
|
||||||
|
<Target Name="KillPowerLauncher" BeforeTargets="PreBuildEvent;BeforeClean">
|
||||||
|
<Message Text="Killing process 'PowerLauncher.exe'" Importance="normal" ContinueOnError="true" />
|
||||||
|
<Exec Command="taskkill /f /im PowerLauncher.exe" ContinueOnError="true"/>
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
</Project>
|
||||||
@@ -1,102 +0,0 @@
|
|||||||
<!--
|
|
||||||
===================================================
|
|
||||||
DO NOT DELETE UNTIL YOU HAVE READ THE FIRST SECTION
|
|
||||||
===================================================
|
|
||||||
|
|
||||||
To be able to help you we need enough information to find
|
|
||||||
what is causing your issue. Please follow the instructions
|
|
||||||
and type the requested information where prompted.
|
|
||||||
|
|
||||||
===================================================
|
|
||||||
中文版说明,请仔细阅读并在填写后删除此说明段落,无效的反馈会被直接关闭
|
|
||||||
===================================================
|
|
||||||
请遵循以下说明,提供我们所需要的信息来,这样我们才能找出导致你
|
|
||||||
遇到的问题的原因,来更好的帮助你。
|
|
||||||
如果可以的话,请附上一份英文的翻译(哪怕是直接使用谷歌翻译)
|
|
||||||
请注意,无效的反馈(尤其是没有填写下面那些信息的反馈)会被直接关闭!
|
|
||||||
-->
|
|
||||||
|
|
||||||
### Are you submitting a bug report?
|
|
||||||
|
|
||||||
(write your answer here)
|
|
||||||
|
|
||||||
<!--
|
|
||||||
If your answer is "Yes", please follow the instructions below.
|
|
||||||
|
|
||||||
If your answer is "No", you may delete everything below and then proceed
|
|
||||||
to write your concern.
|
|
||||||
|
|
||||||
你是否是在提交一个bug(软件缺陷)?
|
|
||||||
如果你的答案是『是的』,请继续回答下面的提问。
|
|
||||||
如果你的答案是『不是』,你可以删除下面的一切,然后说出你的想法。
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Some problems are known of and there are
|
|
||||||
already workarounds or existing issues.
|
|
||||||
|
|
||||||
Known problems for 1.3.183:
|
|
||||||
We are aware of the following issues and the following workarounds exist:
|
|
||||||
1. `System.NullReferenceException`: https://github.com/Wox-launcher/Wox/releases/tag/v1.3.475
|
|
||||||
2. `System.UriFormatException`: delete your old theme file
|
|
||||||
3. `System.Threading.Tasks.TaskCanceledException`: https://github.com/Wox-launcher/Wox/releases/tag/v1.3.475
|
|
||||||
4. `System.AggregateException`: see https://github.com/Wox-launcher/Wox/issues/1777
|
|
||||||
|
|
||||||
If none of them match your case, please continue.
|
|
||||||
|
|
||||||
已知问题及解决方案:(略,如果有任何问题请继续提问)
|
|
||||||
-->
|
|
||||||
|
|
||||||
### Steps to reproduce
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Write what steps you took in order for this problem to happen.
|
|
||||||
If you do not provide any steps, we cannot replicate your problem
|
|
||||||
and will not be able to help you.
|
|
||||||
|
|
||||||
复现问题的步骤:
|
|
||||||
在此按顺序一步步说明在问题发生前你做了什么操作。
|
|
||||||
如果你没法说明你的步骤,那么我们无法复现你的问题,也就无法帮助你了。
|
|
||||||
-->
|
|
||||||
|
|
||||||
1.
|
|
||||||
2.
|
|
||||||
3.
|
|
||||||
|
|
||||||
### Wox Error Window text
|
|
||||||
<!--
|
|
||||||
Paste below the logs generated by the Wox error reporter.
|
|
||||||
|
|
||||||
请在此处粘贴 Wox 错误报告程序提供的日志。
|
|
||||||
-->
|
|
||||||
|
|
||||||
(paste here)
|
|
||||||
|
|
||||||
|
|
||||||
### Detailed logs
|
|
||||||
<!--
|
|
||||||
Please also provide detailed logs. The latest log file
|
|
||||||
can be found here: %APPDATA%\Wox\Logs\version\<date>.txt
|
|
||||||
Drag and drop that file below this comment.
|
|
||||||
In some cases you can skip uploading the the logs, but the chances
|
|
||||||
of us being able to solve the problem will be higher if you do.
|
|
||||||
|
|
||||||
详细日志:
|
|
||||||
请在此处提供详细日志。你可以在这个目录找到最新的日志:
|
|
||||||
%APPDATA%\Wox\Logs\version\<date>.txt
|
|
||||||
直接拖放文件到这个评论就可以上传(国内大部分地区可能需要翻墙才能上传,作为备选方案可以考虑直接在此粘贴文件内容)
|
|
||||||
-->
|
|
||||||
|
|
||||||
(drop your log file here)
|
|
||||||
|
|
||||||
### Screenshots (optional)
|
|
||||||
<!--
|
|
||||||
If you think it will be helpful to provide a screenshot
|
|
||||||
to better describe your problem, upload it below
|
|
||||||
|
|
||||||
截图(可选)
|
|
||||||
如果你认为截图能够有助于说明你的问题,请在下面上传它。
|
|
||||||
-->
|
|
||||||
|
|
||||||
(drop your screenshot here)
|
|
||||||
|
|
||||||
@@ -87,11 +87,15 @@ namespace Microsoft.Plugin.Indexer
|
|||||||
results.Add(r);
|
results.Add(r);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
catch(InvalidOperationException)
|
||||||
|
{
|
||||||
|
//The connection has closed, internal error of ExecuteReader()
|
||||||
|
//Not showing this exception to the users
|
||||||
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
results.Add(new Result
|
results.Add(new Result
|
||||||
{
|
{
|
||||||
// TODO: Localize the string
|
|
||||||
Title = ex.ToString(),
|
Title = ex.ToString(),
|
||||||
IcoPath = "Images\\WindowsIndexerImg.bmp"
|
IcoPath = "Images\\WindowsIndexerImg.bmp"
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -6,7 +6,6 @@
|
|||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
<RootNamespace>Wox.Plugin.Indexer</RootNamespace>
|
<RootNamespace>Wox.Plugin.Indexer</RootNamespace>
|
||||||
<AssemblyName>Wox.Plugin.Indexer</AssemblyName>
|
<AssemblyName>Wox.Plugin.Indexer</AssemblyName>
|
||||||
<UseWindowsForms>true</UseWindowsForms>
|
|
||||||
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
||||||
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
|
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
|
||||||
<Platforms>x64</Platforms>
|
<Platforms>x64</Platforms>
|
||||||
@@ -55,8 +54,4 @@
|
|||||||
</None>
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Folder Include="Properties\" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -10,9 +10,12 @@ namespace Microsoft.Plugin.Indexer.SearchHelper
|
|||||||
public OleDbConnection conn;
|
public OleDbConnection conn;
|
||||||
public OleDbCommand command;
|
public OleDbCommand command;
|
||||||
public OleDbDataReader WDSResults;
|
public OleDbDataReader WDSResults;
|
||||||
|
private readonly object _lock = new object();
|
||||||
|
|
||||||
public IEnumerable<SearchResult> ExecuteQuery(ISearchQueryHelper queryHelper, string keyword)
|
|
||||||
|
public List<SearchResult> ExecuteQuery(ISearchQueryHelper queryHelper, string keyword)
|
||||||
{
|
{
|
||||||
|
List<SearchResult> _Result = new List<SearchResult>();
|
||||||
// Generate SQL from our parameters, converting the userQuery from AQS->WHERE clause
|
// Generate SQL from our parameters, converting the userQuery from AQS->WHERE clause
|
||||||
string sqlQuery = queryHelper.GenerateSQLFromUserQuery(keyword);
|
string sqlQuery = queryHelper.GenerateSQLFromUserQuery(keyword);
|
||||||
|
|
||||||
@@ -29,19 +32,19 @@ namespace Microsoft.Plugin.Indexer.SearchHelper
|
|||||||
// execute the command, which returns the results as an OleDbDataReader.
|
// execute the command, which returns the results as an OleDbDataReader.
|
||||||
using (WDSResults = command.ExecuteReader())
|
using (WDSResults = command.ExecuteReader())
|
||||||
{
|
{
|
||||||
while (WDSResults.Read())
|
if(WDSResults.HasRows)
|
||||||
{
|
{
|
||||||
// col 0 is our path in display format
|
while (WDSResults.Read() && WDSResults.GetValue(0) != DBNull.Value)
|
||||||
if (WDSResults.GetString(0) != null)
|
|
||||||
{
|
{
|
||||||
var result = new SearchResult { Path = WDSResults.GetString(0) };
|
var result = new SearchResult { Path = WDSResults.GetString(0) };
|
||||||
yield return result;
|
_Result.Add(result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return _Result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -91,10 +94,12 @@ namespace Microsoft.Plugin.Indexer.SearchHelper
|
|||||||
|
|
||||||
public IEnumerable<SearchResult> Search(string keyword, string pattern = "*", int maxCount = 100)
|
public IEnumerable<SearchResult> Search(string keyword, string pattern = "*", int maxCount = 100)
|
||||||
{
|
{
|
||||||
ISearchQueryHelper queryHelper;
|
lock(_lock){
|
||||||
InitQueryHelper(out queryHelper, maxCount);
|
ISearchQueryHelper queryHelper;
|
||||||
ModifyQueryHelper(ref queryHelper, pattern);
|
InitQueryHelper(out queryHelper, maxCount);
|
||||||
return ExecuteQuery(queryHelper, keyword);
|
ModifyQueryHelper(ref queryHelper, pattern);
|
||||||
|
return ExecuteQuery(queryHelper, keyword);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
<RootNamespace>Wox.Plugin.Caculator</RootNamespace>
|
<RootNamespace>Wox.Plugin.Caculator</RootNamespace>
|
||||||
<AssemblyName>Wox.Plugin.Caculator</AssemblyName>
|
<AssemblyName>Wox.Plugin.Caculator</AssemblyName>
|
||||||
|
<useWPF>true</useWPF>
|
||||||
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
||||||
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
|
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
|
||||||
<Platforms>x64</Platforms>
|
<Platforms>x64</Platforms>
|
||||||
@@ -107,8 +108,4 @@
|
|||||||
<PackageReference Include="System.Runtime" Version="4.3.1" />
|
<PackageReference Include="System.Runtime" Version="4.3.1" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Folder Include="Properties\" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
@@ -109,8 +109,4 @@
|
|||||||
<PackageReference Include="System.Runtime" Version="4.3.1" />
|
<PackageReference Include="System.Runtime" Version="4.3.1" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Folder Include="Properties\" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
@@ -115,11 +115,8 @@
|
|||||||
<PackageReference Include="JetBrains.Annotations" Version="2019.1.3" />
|
<PackageReference Include="JetBrains.Annotations" Version="2019.1.3" />
|
||||||
<PackageReference Include="Microsoft.Windows.SDK.Contracts" Version="10.0.18362.2005" />
|
<PackageReference Include="Microsoft.Windows.SDK.Contracts" Version="10.0.18362.2005" />
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
|
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
|
||||||
<PackageReference Include="NLog" Version="4.7.0-rc1" />
|
<PackageReference Include="NLog" Version="4.7.0" />
|
||||||
<PackageReference Include="System.Runtime" Version="4.3.1" />
|
<PackageReference Include="System.Runtime" Version="4.3.1" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Folder Include="Properties\" />
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
</Project>
|
||||||
@@ -104,8 +104,4 @@
|
|||||||
<PackageReference Include="System.Runtime" Version="4.3.1" />
|
<PackageReference Include="System.Runtime" Version="4.3.1" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Folder Include="Properties\" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
296
src/modules/launcher/PowerLauncher.UI/App.xaml
Normal file
@@ -0,0 +1,296 @@
|
|||||||
|
<xaml:XamlApplication
|
||||||
|
x:Class="PowerLauncher.UI.App"
|
||||||
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:xaml="using:Microsoft.Toolkit.Win32.UI.XamlHost"
|
||||||
|
xmlns:ToolkitControls="using:Microsoft.Toolkit.Uwp.UI.Controls"
|
||||||
|
xmlns:local="using:PowerLauncher.UI">
|
||||||
|
<Application.Resources>
|
||||||
|
<ResourceDictionary>
|
||||||
|
<ResourceDictionary.MergedDictionaries>
|
||||||
|
<XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />
|
||||||
|
</ResourceDictionary.MergedDictionaries>
|
||||||
|
<ResourceDictionary.ThemeDictionaries>
|
||||||
|
<ResourceDictionary x:Key="Light">
|
||||||
|
<SolidColorBrush x:Key="PrimaryTextColor" Color="Black"/>
|
||||||
|
<AcrylicBrush x:Key="BackdropAcrylicBrush" BackgroundSource="Backdrop" TintColor="White" TintOpacity="0.9" FallbackColor="White"/>
|
||||||
|
<AcrylicBrush x:Key="KeyboardShortcutAcrylicBrush" BackgroundSource="Backdrop" TintColor="White" TintOpacity="0.9" FallbackColor="White"/>
|
||||||
|
<SolidColorBrush x:Key="ItemBackgroundColor" Color="#FFFFFFFF"/>
|
||||||
|
<Color x:Key="DropShadowColor">#FF979797</Color>
|
||||||
|
<x:Double x:Key="DropShadowBlurRadius">8</x:Double>
|
||||||
|
</ResourceDictionary>
|
||||||
|
|
||||||
|
<ResourceDictionary x:Key="Default">
|
||||||
|
<SolidColorBrush x:Key="PrimaryTextColor" Color="White"/>
|
||||||
|
<AcrylicBrush x:Key="BackdropAcrylicBrush" BackgroundSource="Backdrop" TintColor="#88484848" TintOpacity="0.9" FallbackColor="#FF484848"/>
|
||||||
|
<AcrylicBrush x:Key="KeyboardShortcutAcrylicBrush" BackgroundSource="Backdrop" TintColor="Black" TintOpacity="0.9" FallbackColor="Black"/>
|
||||||
|
<SolidColorBrush x:Key="ItemBackgroundColor" Color="#FFFFFFFF"/>
|
||||||
|
<x:Double x:Key="DropShadowBlurRadius">8</x:Double>
|
||||||
|
<Color x:Key="DropShadowColor">#FF979797</Color>
|
||||||
|
</ResourceDictionary>
|
||||||
|
</ResourceDictionary.ThemeDictionaries>
|
||||||
|
|
||||||
|
<Style x:Key="IconOnlyButton" TargetType="Button">
|
||||||
|
<Setter Property="Background" Value="{ThemeResource ButtonRevealBackground}" />
|
||||||
|
<Setter Property="Foreground" Value="{ThemeResource PrimaryTextColor}" />
|
||||||
|
<!--<Setter Property="BorderBrush" Value="0" />-->
|
||||||
|
<Setter Property="BorderThickness" Value="{ThemeResource ButtonRevealBorderThemeThickness}" />
|
||||||
|
<Setter Property="Padding" Value="{ThemeResource ButtonPadding}" />
|
||||||
|
<Setter Property="HorizontalAlignment" Value="Left" />
|
||||||
|
<Setter Property="VerticalAlignment" Value="Center" />
|
||||||
|
<Setter Property="FontFamily" Value="{ThemeResource ContentControlThemeFontFamily}" />
|
||||||
|
<Setter Property="FontWeight" Value="Normal" />
|
||||||
|
<Setter Property="FontSize" Value="{ThemeResource ControlContentThemeFontSize}" />
|
||||||
|
<Setter Property="UseSystemFocusVisuals" Value="{StaticResource UseSystemFocusVisuals}" />
|
||||||
|
<Setter Property="FocusVisualMargin" Value="-3" />
|
||||||
|
<Setter Property="Template">
|
||||||
|
<Setter.Value>
|
||||||
|
<ControlTemplate TargetType="Button">
|
||||||
|
<Grid x:Name="RootGrid" Background="Transparent" CornerRadius="{TemplateBinding CornerRadius}">
|
||||||
|
|
||||||
|
<VisualStateManager.VisualStateGroups>
|
||||||
|
<VisualStateGroup x:Name="CommonStates">
|
||||||
|
<VisualState x:Name="Normal">
|
||||||
|
|
||||||
|
<Storyboard>
|
||||||
|
<PointerUpThemeAnimation Storyboard.TargetName="RootGrid" />
|
||||||
|
</Storyboard>
|
||||||
|
</VisualState>
|
||||||
|
|
||||||
|
<VisualState x:Name="PointerOver">
|
||||||
|
<VisualState.Setters>
|
||||||
|
<Setter Target="RootGrid.(RevealBrush.State)" Value="PointerOver" />
|
||||||
|
<Setter Target="RootGrid.Background" Value="{ThemeResource ButtonRevealBackgroundPointerOver}" />
|
||||||
|
<Setter Target="ContentPresenter.BorderBrush" Value="{ThemeResource ButtonRevealBorderBrushPointerOver}" />
|
||||||
|
<!--<Setter Target="ContentPresenter.Foreground" Value="{ThemeResource ButtonForegroundPointerOver}" />-->
|
||||||
|
</VisualState.Setters>
|
||||||
|
|
||||||
|
<Storyboard>
|
||||||
|
<PointerUpThemeAnimation Storyboard.TargetName="RootGrid" />
|
||||||
|
</Storyboard>
|
||||||
|
</VisualState>
|
||||||
|
|
||||||
|
<VisualState x:Name="Pressed">
|
||||||
|
<VisualState.Setters>
|
||||||
|
<Setter Target="RootGrid.(RevealBrush.State)" Value="Pressed" />
|
||||||
|
<Setter Target="RootGrid.Background" Value="{ThemeResource ButtonRevealBackgroundPressed}" />
|
||||||
|
<Setter Target="ContentPresenter.BorderBrush" Value="{ThemeResource ButtonRevealBorderBrushPressed}" />
|
||||||
|
<Setter Target="ContentPresenter.Foreground" Value="{ThemeResource ButtonForegroundPressed}" />
|
||||||
|
</VisualState.Setters>
|
||||||
|
|
||||||
|
<Storyboard>
|
||||||
|
<PointerDownThemeAnimation Storyboard.TargetName="RootGrid" />
|
||||||
|
</Storyboard>
|
||||||
|
</VisualState>
|
||||||
|
|
||||||
|
<VisualState x:Name="Disabled">
|
||||||
|
<VisualState.Setters>
|
||||||
|
<Setter Target="RootGrid.Background" Value="{ThemeResource ButtonRevealBackgroundDisabled}" />
|
||||||
|
<Setter Target="ContentPresenter.BorderBrush" Value="{ThemeResource ButtonRevealBorderBrushDisabled}" />
|
||||||
|
<Setter Target="ContentPresenter.Foreground" Value="{ThemeResource ButtonForegroundDisabled}" />
|
||||||
|
</VisualState.Setters>
|
||||||
|
</VisualState>
|
||||||
|
|
||||||
|
</VisualStateGroup>
|
||||||
|
|
||||||
|
</VisualStateManager.VisualStateGroups>
|
||||||
|
<ContentPresenter x:Name="ContentPresenter" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="0" CornerRadius="{TemplateBinding CornerRadius}" Content="{TemplateBinding Content}" ContentTransitions="{TemplateBinding ContentTransitions}" ContentTemplate="{TemplateBinding ContentTemplate}" Padding="{TemplateBinding Padding}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" AutomationProperties.AccessibilityView="Raw" />
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
</ControlTemplate>
|
||||||
|
</Setter.Value>
|
||||||
|
</Setter>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style TargetType="GridViewItem" x:Key="DropShadowGridViewItemRevealStyle">
|
||||||
|
<Setter Property="FontFamily" Value="{ThemeResource ContentControlThemeFontFamily}" />
|
||||||
|
<Setter Property="Background" Value="Transparent" />
|
||||||
|
<!--<Setter Property="Background" Value="{ThemeResource GridViewItemRevealBackground}" />-->
|
||||||
|
<Setter Property="BorderThickness" Value="{ThemeResource GridViewItemRevealBorderThemeThickness}" />
|
||||||
|
<Setter Property="BorderBrush" Value="{ThemeResource GridViewItemRevealBorderBrush}" />
|
||||||
|
<Setter Property="FontSize" Value="{ThemeResource ControlContentThemeFontSize}" />
|
||||||
|
|
||||||
|
<Setter Property="Foreground" Value="{ThemeResource GridViewItemForeground}" />
|
||||||
|
<Setter Property="TabNavigation" Value="Local" />
|
||||||
|
<Setter Property="IsHoldingEnabled" Value="True" />
|
||||||
|
<Setter Property="HorizontalContentAlignment" Value="Center" />
|
||||||
|
<Setter Property="VerticalContentAlignment" Value="Center" />
|
||||||
|
<Setter Property="Margin" Value="0,0,4,4" />
|
||||||
|
<Setter Property="MinWidth" Value="{ThemeResource GridViewItemMinWidth}" />
|
||||||
|
<Setter Property="MinHeight" Value="{ThemeResource GridViewItemMinHeight}" />
|
||||||
|
<Setter Property="AllowDrop" Value="False" />
|
||||||
|
<Setter Property="UseSystemFocusVisuals" Value="True" />
|
||||||
|
<Setter Property="FocusVisualMargin" Value="-2" />
|
||||||
|
<Setter Property="FocusVisualPrimaryBrush" Value="{ThemeResource GridViewItemFocusVisualPrimaryBrush}" />
|
||||||
|
<Setter Property="FocusVisualPrimaryThickness" Value="2" />
|
||||||
|
<Setter Property="FocusVisualSecondaryBrush" Value="{ThemeResource GridViewItemFocusVisualSecondaryBrush}" />
|
||||||
|
<Setter Property="FocusVisualSecondaryThickness" Value="1" />
|
||||||
|
|
||||||
|
<Setter Property="Template">
|
||||||
|
<Setter.Value>
|
||||||
|
<ControlTemplate TargetType="GridViewItem">
|
||||||
|
|
||||||
|
<Grid x:Name="RootGrid" Width="120" Background="{ThemeResource GridViewItemRevealBackground}">
|
||||||
|
<!--<Interactivity:Interaction.Behaviors>
|
||||||
|
<Core:EventTriggerBehavior EventName="PointerEntered">
|
||||||
|
<Core:CallMethodAction TargetObject="{Binding ElementName=GridScaleUp}" MethodName="StartAnimation"/>
|
||||||
|
</Core:EventTriggerBehavior>
|
||||||
|
<Core:EventTriggerBehavior EventName="PointerExited">
|
||||||
|
<Core:CallMethodAction TargetObject="{Binding ElementName=GridScaleDown}" MethodName="StartAnimation"/>
|
||||||
|
</Core:EventTriggerBehavior>
|
||||||
|
</Interactivity:Interaction.Behaviors>-->
|
||||||
|
<VisualStateManager.VisualStateGroups>
|
||||||
|
<VisualStateGroup x:Name="CommonStates">
|
||||||
|
|
||||||
|
<VisualStateGroup.Transitions>
|
||||||
|
<VisualTransition From="PointerOver" To="Normal" GeneratedDuration="0:0:0">
|
||||||
|
<Storyboard>
|
||||||
|
<DoubleAnimationUsingKeyFrames EnableDependentAnimation="True" Storyboard.TargetName="DropShadowHolder" Storyboard.TargetProperty="(DropShadowPanel.ShadowOpacity)">
|
||||||
|
<EasingDoubleKeyFrame KeyTime="00:00:00" Value="0.8">
|
||||||
|
<EasingDoubleKeyFrame.EasingFunction>
|
||||||
|
<CubicEase EasingMode="EaseIn"/>
|
||||||
|
</EasingDoubleKeyFrame.EasingFunction>
|
||||||
|
</EasingDoubleKeyFrame>
|
||||||
|
<EasingDoubleKeyFrame KeyTime="00:00:0.6" Value="0.2">
|
||||||
|
<EasingDoubleKeyFrame.EasingFunction>
|
||||||
|
<CubicEase EasingMode="EaseOut"/>
|
||||||
|
</EasingDoubleKeyFrame.EasingFunction>
|
||||||
|
</EasingDoubleKeyFrame>
|
||||||
|
</DoubleAnimationUsingKeyFrames>
|
||||||
|
<DoubleAnimationUsingKeyFrames EnableDependentAnimation="True" Storyboard.TargetName="DropShadowHolder" Storyboard.TargetProperty="(DropShadowPanel.BlurRadius)">
|
||||||
|
<EasingDoubleKeyFrame KeyTime="00:00:00" Value="{StaticResource DropShadowBlurRadiusOnHover}">
|
||||||
|
<EasingDoubleKeyFrame.EasingFunction>
|
||||||
|
<CubicEase EasingMode="EaseIn"/>
|
||||||
|
</EasingDoubleKeyFrame.EasingFunction>
|
||||||
|
</EasingDoubleKeyFrame>
|
||||||
|
<EasingDoubleKeyFrame KeyTime="00:00:0.6" Value="{StaticResource DropShadowBlurRadius}">
|
||||||
|
<EasingDoubleKeyFrame.EasingFunction>
|
||||||
|
<CubicEase EasingMode="EaseOut"/>
|
||||||
|
</EasingDoubleKeyFrame.EasingFunction>
|
||||||
|
</EasingDoubleKeyFrame>
|
||||||
|
</DoubleAnimationUsingKeyFrames>
|
||||||
|
</Storyboard>
|
||||||
|
</VisualTransition>
|
||||||
|
</VisualStateGroup.Transitions>
|
||||||
|
|
||||||
|
<VisualState x:Name="Normal"/>
|
||||||
|
<VisualState x:Name="Selected">
|
||||||
|
<VisualState.Setters>
|
||||||
|
<Setter Target="ContentPresenter.BorderThickness" Value="2" />
|
||||||
|
<Setter Target="ContentPresenter.BorderBrush" Value="{StaticResource PrimaryTextColor}" />
|
||||||
|
</VisualState.Setters>
|
||||||
|
</VisualState>
|
||||||
|
|
||||||
|
<VisualState x:Name="PointerOver">
|
||||||
|
<VisualState.Setters>
|
||||||
|
<Setter Target="RootGrid.(RevealBrush.State)" Value="PointerOver" />
|
||||||
|
<Setter Target="RootGrid.Background" Value="{ThemeResource ListViewItemRevealBackground}" />
|
||||||
|
<!--<Setter Target="ContentPresenter.BorderBrush" Value="{ThemeResource GridViewItemRevealBackgroundPointerOver}"/>-->
|
||||||
|
<!--<Setter Target="ContentPresenter.Foreground" Value="{ThemeResource GridViewItemRevealForegroundPointerOver}" />-->
|
||||||
|
</VisualState.Setters>
|
||||||
|
<Storyboard>
|
||||||
|
<DoubleAnimationUsingKeyFrames EnableDependentAnimation="True" Storyboard.TargetName="DropShadowHolder" Storyboard.TargetProperty="(DropShadowPanel.ShadowOpacity)">
|
||||||
|
<EasingDoubleKeyFrame KeyTime="00:00:00" Value="0.2">
|
||||||
|
<EasingDoubleKeyFrame.EasingFunction>
|
||||||
|
<CubicEase EasingMode="EaseIn"/>
|
||||||
|
</EasingDoubleKeyFrame.EasingFunction>
|
||||||
|
</EasingDoubleKeyFrame>
|
||||||
|
<EasingDoubleKeyFrame KeyTime="00:00:0.6" Value="0.8">
|
||||||
|
<EasingDoubleKeyFrame.EasingFunction>
|
||||||
|
<CubicEase EasingMode="EaseOut"/>
|
||||||
|
</EasingDoubleKeyFrame.EasingFunction>
|
||||||
|
</EasingDoubleKeyFrame>
|
||||||
|
</DoubleAnimationUsingKeyFrames>
|
||||||
|
<DoubleAnimationUsingKeyFrames EnableDependentAnimation="True" Storyboard.TargetName="DropShadowHolder" Storyboard.TargetProperty="(DropShadowPanel.BlurRadius)">
|
||||||
|
<EasingDoubleKeyFrame KeyTime="00:00:00" Value="{StaticResource DropShadowBlurRadius}">
|
||||||
|
<EasingDoubleKeyFrame.EasingFunction>
|
||||||
|
<CubicEase EasingMode="EaseIn"/>
|
||||||
|
</EasingDoubleKeyFrame.EasingFunction>
|
||||||
|
</EasingDoubleKeyFrame>
|
||||||
|
<EasingDoubleKeyFrame KeyTime="00:00:0.6" Value="{StaticResource DropShadowBlurRadiusOnHover}">
|
||||||
|
<EasingDoubleKeyFrame.EasingFunction>
|
||||||
|
<CubicEase EasingMode="EaseOut"/>
|
||||||
|
</EasingDoubleKeyFrame.EasingFunction>
|
||||||
|
</EasingDoubleKeyFrame>
|
||||||
|
</DoubleAnimationUsingKeyFrames>
|
||||||
|
</Storyboard>
|
||||||
|
</VisualState>
|
||||||
|
|
||||||
|
<VisualState x:Name="PointerOverSelected">
|
||||||
|
<VisualState.Setters>
|
||||||
|
<Setter Target="RootGrid.(RevealBrush.State)" Value="PointerOver" />
|
||||||
|
<Setter Target="RootGrid.Background" Value="{ThemeResource ListViewItemRevealBackground }" />
|
||||||
|
<Setter Target="ContentPresenter.BorderThickness" Value="2" />
|
||||||
|
<Setter Target="ContentPresenter.BorderBrush" Value="{StaticResource PrimaryTextColor}" />
|
||||||
|
<!--<Setter Target="ContentPresenter.Foreground" Value="{ThemeResource GridViewItemRevealForegroundPointerOver}" />-->
|
||||||
|
</VisualState.Setters>
|
||||||
|
</VisualState>
|
||||||
|
|
||||||
|
<VisualState x:Name="PointerOverPressed">
|
||||||
|
<VisualState.Setters>
|
||||||
|
<Setter Target="RootGrid.(RevealBrush.State)" Value="Pressed" />
|
||||||
|
<Setter Target="RootGrid.Background" Value="{ThemeResource ListViewItemRevealBackground }" />
|
||||||
|
<Setter Target="ContentPresenter.BorderBrush" Value="{ThemeResource ListViewItemRevealBackground }" />
|
||||||
|
<!--<Setter Target="ContentPresenter.Foreground" Value="{ThemeResource GridViewItemForegroundPressed}" />-->
|
||||||
|
</VisualState.Setters>
|
||||||
|
</VisualState>
|
||||||
|
|
||||||
|
<VisualState x:Name="Pressed">
|
||||||
|
<VisualState.Setters>
|
||||||
|
<Setter Target="RootGrid.(RevealBrush.State)" Value="Pressed" />
|
||||||
|
<Setter Target="RootGrid.Background" Value="{ThemeResource ListViewItemRevealBackground }" />
|
||||||
|
<Setter Target="ContentPresenter.BorderBrush" Value="{ThemeResource ListViewItemRevealBackground }" />
|
||||||
|
<!--<Setter Target="ContentPresenter.Foreground" Value="{ThemeResource GridViewItemForegroundPressed}" />-->
|
||||||
|
</VisualState.Setters>
|
||||||
|
</VisualState>
|
||||||
|
|
||||||
|
|
||||||
|
<VisualState x:Name="PressedSelected">
|
||||||
|
<VisualState.Setters>
|
||||||
|
<Setter Target="RootGrid.(RevealBrush.State)" Value="Pressed" />
|
||||||
|
|
||||||
|
<Setter Target="ContentPresenter.BorderThickness" Value="2" />
|
||||||
|
<Setter Target="ContentPresenter.BorderBrush" Value="{StaticResource PrimaryTextColor}" />
|
||||||
|
<!--<Setter Target="ContentPresenter.Foreground" Value="{ThemeResource GridViewItemForegroundPressed}" />-->
|
||||||
|
</VisualState.Setters>
|
||||||
|
</VisualState>
|
||||||
|
</VisualStateGroup>
|
||||||
|
<VisualStateGroup x:Name="DisabledStates">
|
||||||
|
<VisualState x:Name="Enabled" />
|
||||||
|
|
||||||
|
<VisualState x:Name="Disabled">
|
||||||
|
<VisualState.Setters>
|
||||||
|
<Setter Target="Root.RevealBorderThickness" Value="0" />
|
||||||
|
</VisualState.Setters>
|
||||||
|
</VisualState>
|
||||||
|
</VisualStateGroup>
|
||||||
|
</VisualStateManager.VisualStateGroups>
|
||||||
|
|
||||||
|
<ToolkitControls:DropShadowPanel x:Name="DropShadowHolder" VerticalAlignment="Stretch" Width="72" Margin="10" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch"
|
||||||
|
BlurRadius="{StaticResource DropShadowBlurRadius}"
|
||||||
|
ShadowOpacity="0.2"
|
||||||
|
OffsetX="0"
|
||||||
|
OffsetY="0"
|
||||||
|
Color="{StaticResource DropShadowColor}">
|
||||||
|
<ContentPresenter x:Name="ContentPresenter" CornerRadius="4" Width="72"
|
||||||
|
Background="{StaticResource ItemBackgroundColor}"
|
||||||
|
BorderBrush="{TemplateBinding BorderBrush}"
|
||||||
|
BorderThickness="2"
|
||||||
|
Content="{TemplateBinding Content}"
|
||||||
|
ContentTransitions="{TemplateBinding ContentTransitions}"
|
||||||
|
ContentTemplate="{TemplateBinding ContentTemplate}"
|
||||||
|
Padding="{TemplateBinding Padding}"
|
||||||
|
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
|
||||||
|
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
|
||||||
|
|
||||||
|
AutomationProperties.AccessibilityView="Raw" />
|
||||||
|
</ToolkitControls:DropShadowPanel>
|
||||||
|
</Grid>
|
||||||
|
</ControlTemplate>
|
||||||
|
</Setter.Value>
|
||||||
|
</Setter>
|
||||||
|
</Style>
|
||||||
|
</ResourceDictionary>
|
||||||
|
</Application.Resources>
|
||||||
|
</xaml:XamlApplication>
|
||||||
10
src/modules/launcher/PowerLauncher.UI/App.xaml.cs
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
namespace PowerLauncher.UI
|
||||||
|
{
|
||||||
|
public sealed partial class App : Microsoft.Toolkit.Win32.UI.XamlHost.XamlApplication
|
||||||
|
{
|
||||||
|
public App()
|
||||||
|
{
|
||||||
|
this.Initialize();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 66 KiB |
|
After Width: | Height: | Size: 134 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 6.3 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 53 KiB |
|
After Width: | Height: | Size: 69 KiB |
|
After Width: | Height: | Size: 141 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 64 KiB |
|
After Width: | Height: | Size: 712 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 712 B |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 4.7 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 712 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
BIN
src/modules/launcher/PowerLauncher.UI/Assets/StoreLogo.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 69 KiB |
@@ -0,0 +1,45 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using Microsoft.Xaml.Interactivity;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Windows.UI.Xaml;
|
||||||
|
using Windows.UI.Xaml.Controls;
|
||||||
|
using Windows.UI.Xaml.Controls.Primitives;
|
||||||
|
using Windows.UI.Xaml.Media;
|
||||||
|
|
||||||
|
namespace PowerToysUX.Behaviors
|
||||||
|
{
|
||||||
|
public class CloseFlyoutAction : DependencyObject, IAction
|
||||||
|
{
|
||||||
|
public object Execute(object sender, object parameter)
|
||||||
|
{
|
||||||
|
var parent = TargetObject ?? sender as DependencyObject;
|
||||||
|
while (parent != null)
|
||||||
|
{
|
||||||
|
if (parent is FlyoutPresenter)
|
||||||
|
{
|
||||||
|
((parent as FlyoutPresenter).Parent as Popup).IsOpen = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
parent = VisualTreeHelper.GetParent(parent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Control TargetObject
|
||||||
|
{
|
||||||
|
get { return (Control)GetValue(TargetObjectProperty); }
|
||||||
|
set { SetValue(TargetObjectProperty, value); }
|
||||||
|
}
|
||||||
|
public static readonly DependencyProperty TargetObjectProperty =
|
||||||
|
DependencyProperty.Register(nameof(TargetObject), typeof(Control), typeof(CloseFlyoutAction), new PropertyMetadata(null));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
using Microsoft.Xaml.Interactivity;
|
||||||
|
using Windows.UI.Xaml;
|
||||||
|
using Windows.UI.Xaml.Controls;
|
||||||
|
using Windows.UI.Xaml.Controls.Primitives;
|
||||||
|
|
||||||
|
namespace PowerToysUX.Behaviours
|
||||||
|
{
|
||||||
|
public class OpenFlyoutAction : DependencyObject, IAction
|
||||||
|
{
|
||||||
|
public object Execute(object sender, object parameter)
|
||||||
|
{
|
||||||
|
FlyoutBase.ShowAttachedFlyout(TargetObject ?? (FrameworkElement)sender);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Control TargetObject
|
||||||
|
{
|
||||||
|
get { return (Control)GetValue(TargetObjectProperty); }
|
||||||
|
set { SetValue(TargetObjectProperty, value); }
|
||||||
|
}
|
||||||
|
public static readonly DependencyProperty TargetObjectProperty =
|
||||||
|
DependencyProperty.Register(nameof(TargetObject), typeof(Control), typeof(OpenFlyoutAction), new PropertyMetadata(null));
|
||||||
|
}
|
||||||
|
}
|
||||||
485
src/modules/launcher/PowerLauncher.UI/LauncherControl.xaml
Normal file
@@ -0,0 +1,485 @@
|
|||||||
|
<UserControl
|
||||||
|
x:Class="PowerLauncher.UI.LauncherControl"
|
||||||
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:local="using:PowerLauncher.UI"
|
||||||
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
mc:Ignorable="d"
|
||||||
|
xmlns:ToolkitBehaviors="using:Microsoft.Toolkit.Uwp.UI.Animations.Behaviors"
|
||||||
|
xmlns:Core="using:Microsoft.Xaml.Interactions.Core"
|
||||||
|
xmlns:Interactivity="using:Microsoft.Xaml.Interactivity"
|
||||||
|
d:DesignHeight="300"
|
||||||
|
d:DesignWidth="400">
|
||||||
|
<UserControl.Resources>
|
||||||
|
|
||||||
|
<Style TargetType="AutoSuggestBox" x:Name="CustomStyledAutoSuggestBox">
|
||||||
|
<Setter Property="VerticalAlignment" Value="Top" />
|
||||||
|
<Setter Property="IsTabStop" Value="False" />
|
||||||
|
<Setter Property="TextBoxStyle" Value="{StaticResource AutoSuggestBoxTextBoxStyle}" />
|
||||||
|
<Setter Property="UseSystemFocusVisuals" Value="{ThemeResource IsApplicationFocusVisualKindReveal}" />
|
||||||
|
<Setter Property="Template">
|
||||||
|
<Setter.Value>
|
||||||
|
<ControlTemplate TargetType="AutoSuggestBox">
|
||||||
|
<Grid x:Name="LayoutRoot">
|
||||||
|
|
||||||
|
<VisualStateManager.VisualStateGroups>
|
||||||
|
<VisualStateGroup x:Name="Orientation">
|
||||||
|
<VisualState x:Name="Landscape" />
|
||||||
|
<VisualState x:Name="Portrait" />
|
||||||
|
|
||||||
|
</VisualStateGroup>
|
||||||
|
|
||||||
|
</VisualStateManager.VisualStateGroups>
|
||||||
|
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="*" />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="*" />
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
|
<TextBox x:Name="TextBox"
|
||||||
|
Style="{StaticResource CustomAutoSuggestBoxTextBoxStyle}"
|
||||||
|
PlaceholderText="{TemplateBinding PlaceholderText}"
|
||||||
|
Header="{TemplateBinding Header}" Height="72"
|
||||||
|
Width="{TemplateBinding Width}"
|
||||||
|
Description="{TemplateBinding Description}"
|
||||||
|
ScrollViewer.BringIntoViewOnFocusChange="False"
|
||||||
|
Canvas.ZIndex="0"
|
||||||
|
Margin="0" VerticalAlignment="Center"
|
||||||
|
FontSize="24"
|
||||||
|
DesiredCandidateWindowAlignment="BottomEdge"
|
||||||
|
UseSystemFocusVisuals="{TemplateBinding UseSystemFocusVisuals}" />
|
||||||
|
|
||||||
|
<Popup x:Name="SuggestionsPopup" Margin="0,24,0,0">
|
||||||
|
<Border x:Name="SuggestionsContainer">
|
||||||
|
<ListView x:Name="SuggestionsList"
|
||||||
|
Background="{ThemeResource AutoSuggestBoxSuggestionsListBackground}"
|
||||||
|
BorderThickness="{ThemeResource AutoSuggestListBorderThemeThickness}"
|
||||||
|
BorderBrush="{ThemeResource AutoSuggestBoxSuggestionsListBorderBrush}"
|
||||||
|
DisplayMemberPath="{TemplateBinding DisplayMemberPath}"
|
||||||
|
IsItemClickEnabled="True"
|
||||||
|
ItemTemplate="{TemplateBinding ItemTemplate}"
|
||||||
|
ItemTemplateSelector="{TemplateBinding ItemTemplateSelector}"
|
||||||
|
ItemContainerStyle="{TemplateBinding ItemContainerStyle}"
|
||||||
|
MaxHeight="{ThemeResource AutoSuggestListMaxHeight}"
|
||||||
|
Margin="{ThemeResource AutoSuggestListMargin}"
|
||||||
|
Padding="{ThemeResource AutoSuggestListPadding}" />
|
||||||
|
</Border>
|
||||||
|
</Popup>
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
</ControlTemplate>
|
||||||
|
</Setter.Value>
|
||||||
|
</Setter>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style TargetType="TextBox" x:Key="CustomAutoSuggestBoxTextBoxStyle">
|
||||||
|
<Setter Property="MinWidth" Value="{ThemeResource TextControlThemeMinWidth}" />
|
||||||
|
<Setter Property="MinHeight" Value="{ThemeResource TextControlThemeMinHeight}" />
|
||||||
|
<Setter Property="Foreground" Value="{ThemeResource TextControlForeground}" />
|
||||||
|
<Setter Property="Background" Value="{ThemeResource TextControlBackground}" />
|
||||||
|
<Setter Property="BorderBrush" Value="{ThemeResource TextControlBorderBrush}" />
|
||||||
|
<Setter Property="SelectionHighlightColor" Value="{ThemeResource TextControlSelectionHighlightColor}" />
|
||||||
|
<Setter Property="BorderThickness" Value="0" />
|
||||||
|
<Setter Property="FontFamily" Value="{ThemeResource ContentControlThemeFontFamily}" />
|
||||||
|
<Setter Property="FontSize" Value="{ThemeResource ControlContentThemeFontSize}" />
|
||||||
|
<Setter Property="ScrollViewer.HorizontalScrollMode" Value="Auto" />
|
||||||
|
<Setter Property="ScrollViewer.VerticalScrollMode" Value="Auto" />
|
||||||
|
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Hidden" />
|
||||||
|
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Hidden" />
|
||||||
|
<Setter Property="ScrollViewer.IsDeferredScrollingEnabled" Value="False" />
|
||||||
|
<Setter Property="Padding" Value="{ThemeResource TextControlThemePadding}" />
|
||||||
|
<Setter Property="Template">
|
||||||
|
<Setter.Value>
|
||||||
|
<ControlTemplate TargetType="TextBox">
|
||||||
|
<Grid>
|
||||||
|
|
||||||
|
<Grid.Resources>
|
||||||
|
<Style x:Name="DeleteButtonStyle" TargetType="Button">
|
||||||
|
<Setter Property="Template">
|
||||||
|
<Setter.Value>
|
||||||
|
<ControlTemplate TargetType="Button">
|
||||||
|
<Grid x:Name="ButtonLayoutGrid"
|
||||||
|
BorderBrush="{ThemeResource TextControlButtonBorderBrush}"
|
||||||
|
BorderThickness="{TemplateBinding BorderThickness}"
|
||||||
|
Background="{ThemeResource TextControlButtonBackground}">
|
||||||
|
|
||||||
|
<VisualStateManager.VisualStateGroups>
|
||||||
|
<VisualStateGroup x:Name="CommonStates">
|
||||||
|
<VisualState x:Name="Normal" />
|
||||||
|
|
||||||
|
<VisualState x:Name="PointerOver">
|
||||||
|
<Storyboard>
|
||||||
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ButtonLayoutGrid" Storyboard.TargetProperty="Background">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="Transparent" />
|
||||||
|
</ObjectAnimationUsingKeyFrames>
|
||||||
|
<!--<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ButtonLayoutGrid" Storyboard.TargetProperty="BorderBrush">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextControlButtonBorderBrushPointerOver}" />
|
||||||
|
</ObjectAnimationUsingKeyFrames>-->
|
||||||
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="GlyphElement" Storyboard.TargetProperty="Foreground">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource PrimaryTextColor}" />
|
||||||
|
</ObjectAnimationUsingKeyFrames>
|
||||||
|
</Storyboard>
|
||||||
|
</VisualState>
|
||||||
|
|
||||||
|
<VisualState x:Name="Pressed">
|
||||||
|
<Storyboard>
|
||||||
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ButtonLayoutGrid" Storyboard.TargetProperty="Background">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="Transparent" />
|
||||||
|
</ObjectAnimationUsingKeyFrames>
|
||||||
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ButtonLayoutGrid" Storyboard.TargetProperty="BorderBrush">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextControlButtonBorderBrushPressed}" />
|
||||||
|
</ObjectAnimationUsingKeyFrames>
|
||||||
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="GlyphElement" Storyboard.TargetProperty="Foreground">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextControlButtonForegroundPressed}" />
|
||||||
|
</ObjectAnimationUsingKeyFrames>
|
||||||
|
</Storyboard>
|
||||||
|
</VisualState>
|
||||||
|
|
||||||
|
<VisualState x:Name="Disabled">
|
||||||
|
<Storyboard>
|
||||||
|
<DoubleAnimation Storyboard.TargetName="ButtonLayoutGrid"
|
||||||
|
Storyboard.TargetProperty="Opacity"
|
||||||
|
To="0"
|
||||||
|
Duration="0" />
|
||||||
|
</Storyboard>
|
||||||
|
</VisualState>
|
||||||
|
</VisualStateGroup>
|
||||||
|
</VisualStateManager.VisualStateGroups>
|
||||||
|
<TextBlock x:Name="GlyphElement"
|
||||||
|
Foreground="{ThemeResource TextControlPlaceholderForeground}"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
HorizontalAlignment="Center"
|
||||||
|
FontStyle="Normal"
|
||||||
|
FontSize="{ThemeResource AutoSuggestBoxIconFontSize}"
|
||||||
|
Text=""
|
||||||
|
FontFamily="{ThemeResource SymbolThemeFontFamily}"
|
||||||
|
AutomationProperties.AccessibilityView="Raw" />
|
||||||
|
</Grid>
|
||||||
|
</ControlTemplate>
|
||||||
|
</Setter.Value>
|
||||||
|
</Setter>
|
||||||
|
</Style>
|
||||||
|
<Style x:Name="QueryButtonStyle" TargetType="Button">
|
||||||
|
<Setter Property="Template">
|
||||||
|
<Setter.Value>
|
||||||
|
<ControlTemplate TargetType="Button">
|
||||||
|
<ContentPresenter x:Name="ContentPresenter"
|
||||||
|
Foreground="{ThemeResource TextControlPlaceholderForeground}"
|
||||||
|
Background="{ThemeResource TextControlButtonBackground}"
|
||||||
|
BackgroundSizing="{TemplateBinding BackgroundSizing}"
|
||||||
|
BorderBrush="{ThemeResource TextControlButtonBorderBrush}"
|
||||||
|
BorderThickness="{TemplateBinding BorderThickness}"
|
||||||
|
Content="" FontFamily="Segoe MDL2 Assets"
|
||||||
|
ContentTemplate="{TemplateBinding ContentTemplate}"
|
||||||
|
ContentTransitions="{TemplateBinding ContentTransitions}"
|
||||||
|
FontSize="24"
|
||||||
|
Padding="{TemplateBinding Padding}"
|
||||||
|
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
|
||||||
|
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
|
||||||
|
AutomationProperties.AccessibilityView="Raw">
|
||||||
|
|
||||||
|
<VisualStateManager.VisualStateGroups>
|
||||||
|
<VisualStateGroup x:Name="CommonStates">
|
||||||
|
<VisualState x:Name="Normal" />
|
||||||
|
|
||||||
|
<VisualState x:Name="PointerOver">
|
||||||
|
<Storyboard>
|
||||||
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Background">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="Transparent" />
|
||||||
|
</ObjectAnimationUsingKeyFrames>
|
||||||
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="BorderBrush">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextControlButtonBorderBrushPointerOver}" />
|
||||||
|
</ObjectAnimationUsingKeyFrames>
|
||||||
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource PrimaryTextColor}" />
|
||||||
|
</ObjectAnimationUsingKeyFrames>
|
||||||
|
</Storyboard>
|
||||||
|
</VisualState>
|
||||||
|
|
||||||
|
<VisualState x:Name="Pressed">
|
||||||
|
<Storyboard>
|
||||||
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Background">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="Transparent" />
|
||||||
|
</ObjectAnimationUsingKeyFrames>
|
||||||
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="BorderBrush">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextControlButtonBorderBrushPressed}" />
|
||||||
|
</ObjectAnimationUsingKeyFrames>
|
||||||
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextControlButtonForegroundPressed}" />
|
||||||
|
</ObjectAnimationUsingKeyFrames>
|
||||||
|
</Storyboard>
|
||||||
|
</VisualState>
|
||||||
|
|
||||||
|
<VisualState x:Name="Disabled">
|
||||||
|
<Storyboard>
|
||||||
|
<DoubleAnimation Storyboard.TargetName="ContentPresenter"
|
||||||
|
Storyboard.TargetProperty="Opacity"
|
||||||
|
To="0"
|
||||||
|
Duration="0" />
|
||||||
|
</Storyboard>
|
||||||
|
</VisualState>
|
||||||
|
</VisualStateGroup>
|
||||||
|
</VisualStateManager.VisualStateGroups>
|
||||||
|
</ContentPresenter>
|
||||||
|
</ControlTemplate>
|
||||||
|
</Setter.Value>
|
||||||
|
</Setter>
|
||||||
|
</Style>
|
||||||
|
</Grid.Resources>
|
||||||
|
|
||||||
|
<VisualStateManager.VisualStateGroups>
|
||||||
|
<VisualStateGroup x:Name="CommonStates">
|
||||||
|
|
||||||
|
<VisualState x:Name="Disabled">
|
||||||
|
|
||||||
|
<Storyboard>
|
||||||
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="HeaderContentPresenter" Storyboard.TargetProperty="Foreground">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextControlHeaderForegroundDisabled}" />
|
||||||
|
</ObjectAnimationUsingKeyFrames>
|
||||||
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="BorderElement" Storyboard.TargetProperty="Background">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextControlBackgroundDisabled}" />
|
||||||
|
</ObjectAnimationUsingKeyFrames>
|
||||||
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="BorderElement" Storyboard.TargetProperty="BorderBrush">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextControlBorderBrushDisabled}" />
|
||||||
|
</ObjectAnimationUsingKeyFrames>
|
||||||
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentElement" Storyboard.TargetProperty="Foreground">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextControlForegroundDisabled}" />
|
||||||
|
</ObjectAnimationUsingKeyFrames>
|
||||||
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="PlaceholderTextContentPresenter" Storyboard.TargetProperty="Foreground">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextControlPlaceholderForegroundDisabled}" />
|
||||||
|
</ObjectAnimationUsingKeyFrames>
|
||||||
|
</Storyboard>
|
||||||
|
</VisualState>
|
||||||
|
<VisualState x:Name="Normal" />
|
||||||
|
|
||||||
|
<VisualState x:Name="PointerOver">
|
||||||
|
|
||||||
|
<Storyboard>
|
||||||
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="BorderElement" Storyboard.TargetProperty="BorderBrush">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextControlBorderBrushPointerOver}" />
|
||||||
|
</ObjectAnimationUsingKeyFrames>
|
||||||
|
<!--<ObjectAnimationUsingKeyFrames Storyboard.TargetName="BorderElement" Storyboard.TargetProperty="Background">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="#FF2e2e2e" />
|
||||||
|
</ObjectAnimationUsingKeyFrames>-->
|
||||||
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="PlaceholderTextContentPresenter" Storyboard.TargetProperty="Foreground">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="#FF7e7e7e" />
|
||||||
|
</ObjectAnimationUsingKeyFrames>
|
||||||
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentElement" Storyboard.TargetProperty="Foreground">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource PrimaryTextColor}" />
|
||||||
|
</ObjectAnimationUsingKeyFrames>
|
||||||
|
</Storyboard>
|
||||||
|
</VisualState>
|
||||||
|
<VisualState x:Name="Focused">
|
||||||
|
|
||||||
|
<Storyboard>
|
||||||
|
<!--<ObjectAnimationUsingKeyFrames Storyboard.TargetName="PlaceholderTextContentPresenter" Storyboard.TargetProperty="Foreground">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="#" />
|
||||||
|
</ObjectAnimationUsingKeyFrames>
|
||||||
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="BorderElement" Storyboard.TargetProperty="Background">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="#FF2e2e2e" />
|
||||||
|
</ObjectAnimationUsingKeyFrames>-->
|
||||||
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="BorderElement" Storyboard.TargetProperty="BorderBrush">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextControlBorderBrushFocused}" />
|
||||||
|
</ObjectAnimationUsingKeyFrames>
|
||||||
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentElement" Storyboard.TargetProperty="Foreground">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource PrimaryTextColor}" />
|
||||||
|
</ObjectAnimationUsingKeyFrames>
|
||||||
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentElement" Storyboard.TargetProperty="RequestedTheme">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="Light" />
|
||||||
|
</ObjectAnimationUsingKeyFrames>
|
||||||
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="QueryButton" Storyboard.TargetProperty="Foreground">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextControlButtonForeground}" />
|
||||||
|
</ObjectAnimationUsingKeyFrames>
|
||||||
|
</Storyboard>
|
||||||
|
</VisualState>
|
||||||
|
|
||||||
|
</VisualStateGroup>
|
||||||
|
<VisualStateGroup x:Name="ButtonStates">
|
||||||
|
<VisualState x:Name="ButtonVisible">
|
||||||
|
|
||||||
|
<Storyboard>
|
||||||
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="DeleteButton" Storyboard.TargetProperty="Visibility">
|
||||||
|
<DiscreteObjectKeyFrame KeyTime="0">
|
||||||
|
<DiscreteObjectKeyFrame.Value>
|
||||||
|
<Visibility>Visible</Visibility>
|
||||||
|
</DiscreteObjectKeyFrame.Value>
|
||||||
|
</DiscreteObjectKeyFrame>
|
||||||
|
</ObjectAnimationUsingKeyFrames>
|
||||||
|
</Storyboard>
|
||||||
|
</VisualState>
|
||||||
|
<VisualState x:Name="ButtonCollapsed" />
|
||||||
|
|
||||||
|
</VisualStateGroup>
|
||||||
|
|
||||||
|
</VisualStateManager.VisualStateGroups>
|
||||||
|
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="*" />
|
||||||
|
<ColumnDefinition Width="Auto" />
|
||||||
|
<ColumnDefinition Width="Auto" />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="Auto" />
|
||||||
|
<RowDefinition Height="*" />
|
||||||
|
<RowDefinition Height="Auto" />
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
<Border x:Name="BorderElement"
|
||||||
|
Grid.Row="1" CornerRadius="4"
|
||||||
|
|
||||||
|
Background="{TemplateBinding Background}"
|
||||||
|
BorderBrush="{TemplateBinding BorderBrush}"
|
||||||
|
|
||||||
|
Grid.ColumnSpan="3"
|
||||||
|
Grid.RowSpan="1" />
|
||||||
|
<ContentPresenter x:Name="HeaderContentPresenter"
|
||||||
|
x:DeferLoadStrategy="Lazy"
|
||||||
|
Visibility="Collapsed"
|
||||||
|
Grid.Row="0"
|
||||||
|
Foreground="{ThemeResource TextControlHeaderForeground}"
|
||||||
|
Margin="{ThemeResource AutoSuggestBoxTopHeaderMargin}"
|
||||||
|
Grid.ColumnSpan="3"
|
||||||
|
Content="{TemplateBinding Header}"
|
||||||
|
ContentTemplate="{TemplateBinding HeaderTemplate}"
|
||||||
|
FontWeight="Normal"
|
||||||
|
TextWrapping="Wrap" />
|
||||||
|
<ScrollViewer x:Name="ContentElement"
|
||||||
|
Grid.Row="1"
|
||||||
|
HorizontalScrollMode="{TemplateBinding ScrollViewer.HorizontalScrollMode}"
|
||||||
|
HorizontalScrollBarVisibility="{TemplateBinding ScrollViewer.HorizontalScrollBarVisibility}"
|
||||||
|
VerticalScrollMode="{TemplateBinding ScrollViewer.VerticalScrollMode}"
|
||||||
|
VerticalScrollBarVisibility="{TemplateBinding ScrollViewer.VerticalScrollBarVisibility}"
|
||||||
|
IsHorizontalRailEnabled="{TemplateBinding ScrollViewer.IsHorizontalRailEnabled}"
|
||||||
|
IsVerticalRailEnabled="{TemplateBinding ScrollViewer.IsVerticalRailEnabled}"
|
||||||
|
IsDeferredScrollingEnabled="{TemplateBinding ScrollViewer.IsDeferredScrollingEnabled}"
|
||||||
|
|
||||||
|
Padding="{TemplateBinding Padding}"
|
||||||
|
IsTabStop="False" Margin="12,0,0,0"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
AutomationProperties.AccessibilityView="Raw"
|
||||||
|
ZoomMode="Disabled" />
|
||||||
|
<ContentControl x:Name="PlaceholderTextContentPresenter"
|
||||||
|
Grid.Row="1" Opacity="0.6" CornerRadius="4"
|
||||||
|
Height="42"
|
||||||
|
Foreground="{ThemeResource TextControlPlaceholderForeground}"
|
||||||
|
Margin="12,0,0,0"
|
||||||
|
Padding="{TemplateBinding Padding}"
|
||||||
|
IsTabStop="False"
|
||||||
|
Grid.ColumnSpan="3"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Content="{TemplateBinding PlaceholderText}"
|
||||||
|
IsHitTestVisible="False" />
|
||||||
|
<Button x:Name="DeleteButton"
|
||||||
|
Grid.Row="1"
|
||||||
|
Style="{StaticResource DeleteButtonStyle}"
|
||||||
|
BorderThickness="{TemplateBinding BorderThickness}"
|
||||||
|
IsTabStop="False"
|
||||||
|
Grid.Column="1"
|
||||||
|
Visibility="Collapsed" Opacity="0"
|
||||||
|
FontSize="{TemplateBinding FontSize}"
|
||||||
|
MinWidth="34"
|
||||||
|
AutomationProperties.AccessibilityView="Raw"
|
||||||
|
VerticalAlignment="Stretch" />
|
||||||
|
<Button x:Name="QueryButton"
|
||||||
|
Grid.Row="1"
|
||||||
|
Style="{StaticResource QueryButtonStyle}"
|
||||||
|
BorderThickness="{TemplateBinding BorderThickness}"
|
||||||
|
IsTabStop="False"
|
||||||
|
Grid.Column="2"
|
||||||
|
FontSize="{TemplateBinding FontSize}"
|
||||||
|
MinWidth="34"
|
||||||
|
Width="{TemplateBinding Height}"
|
||||||
|
VerticalAlignment="Stretch"
|
||||||
|
AutomationProperties.AccessibilityView="Raw"/>
|
||||||
|
<ContentPresenter x:Name="DescriptionPresenter"
|
||||||
|
Grid.Row="2"
|
||||||
|
Grid.ColumnSpan="3"
|
||||||
|
Content="{TemplateBinding Description}"
|
||||||
|
x:Load="False"
|
||||||
|
Foreground="{ThemeResource SystemControlDescriptionTextForegroundBrush}"
|
||||||
|
AutomationProperties.AccessibilityView="Raw" />
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
</ControlTemplate>
|
||||||
|
</Setter.Value>
|
||||||
|
</Setter>
|
||||||
|
</Style>
|
||||||
|
<ThemeShadow x:Name="ShellBarShadow"/>
|
||||||
|
</UserControl.Resources>
|
||||||
|
<Grid>
|
||||||
|
<Grid x:Name="ShadowReceiverGrid"/>
|
||||||
|
<Grid x:Name="PowerBar" CornerRadius="4" Height="72" Background="{StaticResource BackdropAcrylicBrush}" Translation="0,0,16" Shadow="{StaticResource ShellBarShadow}" Margin="12" VerticalAlignment="Top" HorizontalAlignment="Center" MinWidth="240">
|
||||||
|
<AutoSuggestBox x:Name="SearchBox" x:FieldModifier="public" PlaceholderText="Launch an app" FontSize="24" Style="{StaticResource CustomStyledAutoSuggestBox}"
|
||||||
|
MinWidth="720" ItemsSource="{Binding Results.Results}">
|
||||||
|
<AutoSuggestBox.QueryIcon>
|
||||||
|
<SymbolIcon Symbol="Find"/>
|
||||||
|
</AutoSuggestBox.QueryIcon>
|
||||||
|
<AutoSuggestBox.ItemTemplate>
|
||||||
|
<DataTemplate >
|
||||||
|
<Grid Height="72" Width="690" Background="Transparent" RowSpacing="0">
|
||||||
|
<Interactivity:Interaction.Behaviors>
|
||||||
|
<Core:EventTriggerBehavior EventName="PointerEntered">
|
||||||
|
<Core:CallMethodAction TargetObject="{Binding ElementName=ShowActionButtons}" MethodName="StartAnimation"/>
|
||||||
|
|
||||||
|
</Core:EventTriggerBehavior>
|
||||||
|
<Core:EventTriggerBehavior EventName="PointerExited">
|
||||||
|
<Core:CallMethodAction TargetObject="{Binding ElementName=HideActionsButtons}" MethodName="StartAnimation"/>
|
||||||
|
</Core:EventTriggerBehavior>
|
||||||
|
</Interactivity:Interaction.Behaviors>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="64" />
|
||||||
|
<ColumnDefinition Width="*" />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<Grid.RowDefinitions >
|
||||||
|
<RowDefinition Height="*"/>
|
||||||
|
<RowDefinition Height="*"/>
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
|
<Image x:Name="AppIcon" Height="36" Margin="8,0,0,0" Grid.RowSpan="2" HorizontalAlignment="Left" Source="{Binding Result.IcoPath}" />
|
||||||
|
<TextBlock x:Name="Title" Grid.Column="1" Text="{Binding Result.Title}" FontWeight="SemiBold" FontSize="20" VerticalAlignment="Bottom"/>
|
||||||
|
<TextBlock x:Name="Path" Grid.Column="1" Text= "{Binding Result.SubTitle}" Grid.Row="1" Opacity="0.6" VerticalAlignment="Top"/>
|
||||||
|
<StackPanel Orientation="Horizontal" Opacity="0" HorizontalAlignment="Right" Grid.RowSpan="2" Grid.Column="1">
|
||||||
|
<Interactivity:Interaction.Behaviors>
|
||||||
|
<ToolkitBehaviors:Fade x:Name="ShowActionButtons" Duration="250" Delay="0" AutomaticallyStart="False" Value="1" />
|
||||||
|
<ToolkitBehaviors:Fade x:Name="HideActionsButtons" Duration="250" Delay="0" AutomaticallyStart="False" Value="0" />
|
||||||
|
</Interactivity:Interaction.Behaviors>
|
||||||
|
<Button Background="Transparent" Height="42" Width="42" Grid.Column="1" BorderThickness="1" Style="{ThemeResource ButtonRevealStyle}">
|
||||||
|
<ToolTipService.ToolTip>
|
||||||
|
<TextBlock Text="Run as administrator"/>
|
||||||
|
</ToolTipService.ToolTip>
|
||||||
|
<Button.Content>
|
||||||
|
<FontIcon FontFamily="Segoe MDL2 Assets" FontSize="16" Glyph=""/>
|
||||||
|
</Button.Content>
|
||||||
|
</Button>
|
||||||
|
<Button Background="Transparent" Height="42" Width="42" Grid.Column="1" BorderThickness="1" Style="{ThemeResource ButtonRevealStyle}">
|
||||||
|
<ToolTipService.ToolTip>
|
||||||
|
<TextBlock Text="Open file location"/>
|
||||||
|
</ToolTipService.ToolTip>
|
||||||
|
<Button.Content>
|
||||||
|
<FontIcon FontFamily="Segoe MDL2 Assets" FontSize="16" Glyph=""/>
|
||||||
|
</Button.Content>
|
||||||
|
</Button>
|
||||||
|
<Button Background="Transparent" Height="42" Width="42" Grid.Column="1" BorderThickness="1" Style="{ThemeResource ButtonRevealStyle}">
|
||||||
|
<ToolTipService.ToolTip>
|
||||||
|
<TextBlock Text="Open in console"/>
|
||||||
|
</ToolTipService.ToolTip>
|
||||||
|
<Button.Content>
|
||||||
|
<FontIcon FontFamily="Segoe MDL2 Assets" FontSize="16" Glyph=""/>
|
||||||
|
</Button.Content>
|
||||||
|
</Button>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
</DataTemplate>
|
||||||
|
</AutoSuggestBox.ItemTemplate>
|
||||||
|
</AutoSuggestBox>
|
||||||
|
</Grid>
|
||||||
|
</Grid>
|
||||||
|
</UserControl>
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
using Windows.UI.Xaml.Controls;
|
||||||
|
|
||||||
|
namespace PowerLauncher.UI
|
||||||
|
{
|
||||||
|
public sealed partial class LauncherControl : UserControl
|
||||||
|
{
|
||||||
|
public LauncherControl()
|
||||||
|
{
|
||||||
|
this.InitializeComponent();
|
||||||
|
ShellBarShadow.Receivers.Add(ShadowReceiverGrid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
0
src/modules/launcher/PowerLauncher.UI/MainPage.xaml
Normal file
49
src/modules/launcher/PowerLauncher.UI/Package.appxmanifest
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<Package
|
||||||
|
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
|
||||||
|
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
|
||||||
|
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
|
||||||
|
IgnorableNamespaces="uap mp">
|
||||||
|
|
||||||
|
<Identity
|
||||||
|
Name="78860e6a-98b2-4807-8aba-23e9979d9f70"
|
||||||
|
Publisher="CN=bakudies"
|
||||||
|
Version="1.0.0.0" />
|
||||||
|
|
||||||
|
<mp:PhoneIdentity PhoneProductId="78860e6a-98b2-4807-8aba-23e9979d9f70" PhonePublisherId="00000000-0000-0000-0000-000000000000"/>
|
||||||
|
|
||||||
|
<Properties>
|
||||||
|
<DisplayName>PowerLauncher.UI</DisplayName>
|
||||||
|
<PublisherDisplayName>bakudies</PublisherDisplayName>
|
||||||
|
<Logo>Assets\StoreLogo.png</Logo>
|
||||||
|
</Properties>
|
||||||
|
|
||||||
|
<Dependencies>
|
||||||
|
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0" />
|
||||||
|
</Dependencies>
|
||||||
|
|
||||||
|
<Resources>
|
||||||
|
<Resource Language="x-generate"/>
|
||||||
|
</Resources>
|
||||||
|
|
||||||
|
<Applications>
|
||||||
|
<Application Id="App"
|
||||||
|
Executable="$targetnametoken$.exe"
|
||||||
|
EntryPoint="PowerLauncher.UI.App">
|
||||||
|
<uap:VisualElements
|
||||||
|
DisplayName="PowerLauncher.UI"
|
||||||
|
Square150x150Logo="Assets\Square150x150Logo.png"
|
||||||
|
Square44x44Logo="Assets\Square44x44Logo.png"
|
||||||
|
Description="PowerLauncher.UI"
|
||||||
|
BackgroundColor="transparent">
|
||||||
|
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png"/>
|
||||||
|
<uap:SplashScreen Image="Assets\SplashScreen.png" />
|
||||||
|
</uap:VisualElements>
|
||||||
|
</Application>
|
||||||
|
</Applications>
|
||||||
|
|
||||||
|
<Capabilities>
|
||||||
|
<Capability Name="internetClient" />
|
||||||
|
</Capabilities>
|
||||||
|
</Package>
|
||||||
117
src/modules/launcher/PowerLauncher.UI/PowerLauncher.UI.csproj
Normal file
@@ -0,0 +1,117 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">x64</Platform>
|
||||||
|
<ProjectGuid>{4A3DE70C-684C-410D-B851-C23B6DAEDF16}</ProjectGuid>
|
||||||
|
<OutputType>AppContainerExe</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>PowerLauncher.UI</RootNamespace>
|
||||||
|
<AssemblyName>PowerLauncher.UI</AssemblyName>
|
||||||
|
<DefaultLanguage>en-US</DefaultLanguage>
|
||||||
|
<TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
|
||||||
|
<TargetPlatformVersion Condition=" '$(TargetPlatformVersion)' == '' ">10.0.18362.0</TargetPlatformVersion>
|
||||||
|
<TargetPlatformMinVersion>10.0.18362.0</TargetPlatformMinVersion>
|
||||||
|
<MinimumVisualStudioVersion>14</MinimumVisualStudioVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||||
|
<WindowsXamlEnableOverview>true</WindowsXamlEnableOverview>
|
||||||
|
<AppxPackageSigningEnabled>false</AppxPackageSigningEnabled>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<OutputPath>bin\x64\Debug\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
||||||
|
<NoWarn>;2008</NoWarn>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<PlatformTarget>x64</PlatformTarget>
|
||||||
|
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<Prefer32Bit>true</Prefer32Bit>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||||
|
<OutputPath>bin\x64\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<NoWarn>;2008</NoWarn>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<PlatformTarget>x64</PlatformTarget>
|
||||||
|
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<Prefer32Bit>true</Prefer32Bit>
|
||||||
|
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="App.xaml.cs">
|
||||||
|
<DependentUpon>App.xaml</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="LauncherControl.xaml.cs">
|
||||||
|
<DependentUpon>LauncherControl.xaml</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AppxManifest Include="Package.appxmanifest">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</AppxManifest>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Content Include="Properties\Default.rd.xml" />
|
||||||
|
<Content Include="Assets\LockScreenLogo.scale-200.png" />
|
||||||
|
<Content Include="Assets\SplashScreen.scale-200.png" />
|
||||||
|
<Content Include="Assets\Square150x150Logo.scale-200.png" />
|
||||||
|
<Content Include="Assets\Square44x44Logo.scale-200.png" />
|
||||||
|
<Content Include="Assets\Square44x44Logo.targetsize-24_altform-unplated.png" />
|
||||||
|
<Content Include="Assets\StoreLogo.png" />
|
||||||
|
<Content Include="Assets\Wide310x150Logo.scale-200.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ApplicationDefinition Include="App.xaml">
|
||||||
|
<Generator>MSBuild:Compile</Generator>
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</ApplicationDefinition>
|
||||||
|
<Page Include="LauncherControl.xaml">
|
||||||
|
<Generator>MSBuild:Compile</Generator>
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</Page>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform">
|
||||||
|
<Version>6.2.10</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Microsoft.Toolkit.Uwp.UI">
|
||||||
|
<Version>6.0.0</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Microsoft.Toolkit.Uwp.UI.Animations">
|
||||||
|
<Version>6.0.0</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Microsoft.Toolkit.Uwp.UI.Controls">
|
||||||
|
<Version>6.0.0</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Microsoft.Toolkit.Win32.UI.XamlApplication">
|
||||||
|
<Version>6.0.0</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Microsoft.UI.Xaml">
|
||||||
|
<Version>2.4.0-prerelease.200322001</Version>
|
||||||
|
</PackageReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' < '14.0' ">
|
||||||
|
<VisualStudioVersion>14.0</VisualStudioVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets" />
|
||||||
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
-->
|
||||||
|
<PropertyGroup>
|
||||||
|
<EnableTypeInfoReflection>false</EnableTypeInfoReflection>
|
||||||
|
<EnableXBindDiagnostics>false</EnableXBindDiagnostics>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// General Information about an assembly is controlled through the following
|
||||||
|
// set of attributes. Change these attribute values to modify the information
|
||||||
|
// associated with an assembly.
|
||||||
|
[assembly: AssemblyTitle("PowerLauncher.UI")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("PowerLauncher.UI")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © 2020")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// Version information for an assembly consists of the following four values:
|
||||||
|
//
|
||||||
|
// Major Version
|
||||||
|
// Minor Version
|
||||||
|
// Build Number
|
||||||
|
// Revision
|
||||||
|
//
|
||||||
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
|
// by using the '*' as shown below:
|
||||||
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
<!--
|
||||||
|
This file contains Runtime Directives used by .NET Native. The defaults here are suitable for most
|
||||||
|
developers. However, you can modify these parameters to modify the behavior of the .NET Native
|
||||||
|
optimizer.
|
||||||
|
|
||||||
|
Runtime Directives are documented at https://go.microsoft.com/fwlink/?LinkID=391919
|
||||||
|
|
||||||
|
To fully enable reflection for App1.MyClass and all of its public/private members
|
||||||
|
<Type Name="App1.MyClass" Dynamic="Required All"/>
|
||||||
|
|
||||||
|
To enable dynamic creation of the specific instantiation of AppClass<T> over System.Int32
|
||||||
|
<TypeInstantiation Name="App1.AppClass" Arguments="System.Int32" Activate="Required Public" />
|
||||||
|
|
||||||
|
Using the Namespace directive to apply reflection policy to all the types in a particular namespace
|
||||||
|
<Namespace Name="DataClasses.ViewModels" Serialize="All" />
|
||||||
|
-->
|
||||||
|
|
||||||
|
<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
|
||||||
|
<Application>
|
||||||
|
<!--
|
||||||
|
An Assembly element with Name="*Application*" applies to all assemblies in
|
||||||
|
the application package. The asterisks are not wildcards.
|
||||||
|
-->
|
||||||
|
<Assembly Name="*Application*" Dynamic="Required All" />
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Add your application specific runtime directives here. -->
|
||||||
|
|
||||||
|
|
||||||
|
</Application>
|
||||||
|
</Directives>
|
||||||
45
src/modules/launcher/PowerLauncher/ActionKeywords.xaml
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
<Window x:Class="Wox.ActionKeywords"
|
||||||
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
Title="ActionKeywords"
|
||||||
|
Icon="Images\app.png"
|
||||||
|
ResizeMode="NoResize"
|
||||||
|
Loaded="ActionKeyword_OnLoaded"
|
||||||
|
WindowStartupLocation="CenterScreen"
|
||||||
|
Height="200" Width="600">
|
||||||
|
<Grid>
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition />
|
||||||
|
<RowDefinition />
|
||||||
|
<RowDefinition />
|
||||||
|
<RowDefinition />
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="170" />
|
||||||
|
<ColumnDefinition />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<TextBlock Margin="10" FontSize="14" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center"
|
||||||
|
HorizontalAlignment="Right" Text="{DynamicResource oldActionKeyword}" />
|
||||||
|
<TextBlock x:Name="tbOldActionKeyword" Margin="10" FontSize="14" Grid.Row="0" Grid.Column="1"
|
||||||
|
VerticalAlignment="Center" HorizontalAlignment="Left">
|
||||||
|
Old ActionKeywords:
|
||||||
|
</TextBlock>
|
||||||
|
|
||||||
|
<TextBlock Margin="10" FontSize="14" Grid.Row="1" Grid.Column="0" VerticalAlignment="Center"
|
||||||
|
HorizontalAlignment="Right" Text="{DynamicResource newActionKeyword}" />
|
||||||
|
<StackPanel Grid.Row="1" Orientation="Horizontal" Grid.Column="1">
|
||||||
|
<TextBox x:Name="tbAction" Margin="10" Width="400" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<TextBlock Grid.Row="2" Grid.ColumnSpan="1" Grid.Column="1" Padding="5" Foreground="Gray"
|
||||||
|
Text="{DynamicResource actionkeyword_tips}" />
|
||||||
|
|
||||||
|
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Grid.Row="3" Grid.Column="1">
|
||||||
|
<Button x:Name="btnCancel" Click="BtnCancel_OnClick" Margin="10 0 10 0" Width="80" Height="25"
|
||||||
|
Content="{DynamicResource cancel}" />
|
||||||
|
<Button x:Name="btnDone" Margin="10 0 10 0" Width="80" Height="25" Click="btnDone_OnClick">
|
||||||
|
<TextBlock x:Name="lblAdd" Text="{DynamicResource done}" />
|
||||||
|
</Button>
|
||||||
|
</StackPanel>
|
||||||
|
</Grid>
|
||||||
|
</Window>
|
||||||
58
src/modules/launcher/PowerLauncher/ActionKeywords.xaml.cs
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
using System.Windows;
|
||||||
|
using Wox.Core.Plugin;
|
||||||
|
using Wox.Core.Resource;
|
||||||
|
using Wox.Infrastructure.Exception;
|
||||||
|
using Wox.Infrastructure.UserSettings;
|
||||||
|
using Wox.Plugin;
|
||||||
|
|
||||||
|
namespace Wox
|
||||||
|
{
|
||||||
|
public partial class ActionKeywords : Window
|
||||||
|
{
|
||||||
|
private PluginPair _plugin;
|
||||||
|
private Settings _settings;
|
||||||
|
private readonly Internationalization _translater = InternationalizationManager.Instance;
|
||||||
|
|
||||||
|
public ActionKeywords(string pluginId, Settings settings)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
_plugin = PluginManager.GetPluginForId(pluginId);
|
||||||
|
_settings = settings;
|
||||||
|
if (_plugin == null)
|
||||||
|
{
|
||||||
|
MessageBox.Show(_translater.GetTranslation("cannotFindSpecifiedPlugin"));
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ActionKeyword_OnLoaded(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
tbOldActionKeyword.Text = string.Join(Query.ActionKeywordSeperater, _plugin.Metadata.ActionKeywords.ToArray());
|
||||||
|
tbAction.Focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BtnCancel_OnClick(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnDone_OnClick(object sender, RoutedEventArgs _)
|
||||||
|
{
|
||||||
|
var oldActionKeyword = _plugin.Metadata.ActionKeywords[0];
|
||||||
|
var newActionKeyword = tbAction.Text.Trim();
|
||||||
|
newActionKeyword = newActionKeyword.Length > 0 ? newActionKeyword : "*";
|
||||||
|
if (!PluginManager.ActionKeywordRegistered(newActionKeyword))
|
||||||
|
{
|
||||||
|
var id = _plugin.Metadata.ID;
|
||||||
|
PluginManager.ReplaceActionKeyword(id, oldActionKeyword, newActionKeyword);
|
||||||
|
MessageBox.Show(_translater.GetTranslation("success"));
|
||||||
|
Close();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
string msg = _translater.GetTranslation("newActionKeywordsHasBeenAssigned");
|
||||||
|
MessageBox.Show(msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
14
src/modules/launcher/PowerLauncher/App.xaml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<Application x:Class="PowerLauncher.App"
|
||||||
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
ShutdownMode="OnMainWindowClose"
|
||||||
|
Startup="OnStartup">
|
||||||
|
<Application.Resources>
|
||||||
|
<ResourceDictionary>
|
||||||
|
<ResourceDictionary.MergedDictionaries>
|
||||||
|
<ResourceDictionary Source="pack://application:,,,/Themes/Dark.xaml" />
|
||||||
|
<ResourceDictionary Source="pack://application:,,,/Languages/en.xaml" />
|
||||||
|
</ResourceDictionary.MergedDictionaries>
|
||||||
|
</ResourceDictionary>
|
||||||
|
</Application.Resources>
|
||||||
|
</Application>
|
||||||
141
src/modules/launcher/PowerLauncher/App.xaml.cs
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Timers;
|
||||||
|
using System.Windows;
|
||||||
|
using Wox;
|
||||||
|
using Wox.Core;
|
||||||
|
using Wox.Core.Plugin;
|
||||||
|
using Wox.Core.Resource;
|
||||||
|
using Wox.Helper;
|
||||||
|
using Wox.Infrastructure;
|
||||||
|
using Wox.Infrastructure.Http;
|
||||||
|
using Wox.Infrastructure.Image;
|
||||||
|
using Wox.Infrastructure.Logger;
|
||||||
|
using Wox.Infrastructure.UserSettings;
|
||||||
|
using Wox.ViewModel;
|
||||||
|
using Stopwatch = Wox.Infrastructure.Stopwatch;
|
||||||
|
|
||||||
|
namespace PowerLauncher
|
||||||
|
{
|
||||||
|
public partial class App : IDisposable, ISingleInstanceApp
|
||||||
|
{
|
||||||
|
public static PublicAPIInstance API { get; private set; }
|
||||||
|
private const string Unique = "Wox_Unique_Application_Mutex";
|
||||||
|
private static bool _disposed;
|
||||||
|
private Settings _settings;
|
||||||
|
private MainViewModel _mainVM;
|
||||||
|
private SettingWindowViewModel _settingsVM;
|
||||||
|
private readonly Alphabet _alphabet = new Alphabet();
|
||||||
|
private StringMatcher _stringMatcher;
|
||||||
|
|
||||||
|
[STAThread]
|
||||||
|
public static void Main()
|
||||||
|
{
|
||||||
|
if (SingleInstance<App>.InitializeAsFirstInstance(Unique))
|
||||||
|
{
|
||||||
|
using (var application = new App())
|
||||||
|
{
|
||||||
|
application.InitializeComponent();
|
||||||
|
application.Run();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnStartup(object sender, StartupEventArgs e)
|
||||||
|
{
|
||||||
|
Stopwatch.Normal("|App.OnStartup|Startup cost", () =>
|
||||||
|
{
|
||||||
|
Log.Info("|App.OnStartup|Begin Wox startup ----------------------------------------------------");
|
||||||
|
Log.Info($"|App.OnStartup|Runtime info:{ErrorReporting.RuntimeInfo()}");
|
||||||
|
RegisterAppDomainExceptions();
|
||||||
|
RegisterDispatcherUnhandledException();
|
||||||
|
|
||||||
|
ImageLoader.Initialize();
|
||||||
|
|
||||||
|
_settingsVM = new SettingWindowViewModel();
|
||||||
|
_settings = _settingsVM.Settings;
|
||||||
|
|
||||||
|
_alphabet.Initialize(_settings);
|
||||||
|
_stringMatcher = new StringMatcher(_alphabet);
|
||||||
|
StringMatcher.Instance = _stringMatcher;
|
||||||
|
_stringMatcher.UserSettingSearchPrecision = _settings.QuerySearchPrecision;
|
||||||
|
|
||||||
|
PluginManager.LoadPlugins(_settings.PluginSettings);
|
||||||
|
_mainVM = new MainViewModel(_settings);
|
||||||
|
var window = new MainWindow(_settings, _mainVM);
|
||||||
|
API = new PublicAPIInstance(_settingsVM, _mainVM, _alphabet);
|
||||||
|
PluginManager.InitializePlugins(API);
|
||||||
|
Log.Info($"|App.OnStartup|Dependencies Info:{ErrorReporting.DependenciesInfo()}");
|
||||||
|
|
||||||
|
Current.MainWindow = window;
|
||||||
|
Current.MainWindow.Title = Constant.Wox;
|
||||||
|
|
||||||
|
// happlebao todo temp fix for instance code logic
|
||||||
|
// load plugin before change language, because plugin language also needs be changed
|
||||||
|
InternationalizationManager.Instance.Settings = _settings;
|
||||||
|
InternationalizationManager.Instance.ChangeLanguage(_settings.Language);
|
||||||
|
// main windows needs initialized before theme change because of blur settigns
|
||||||
|
ThemeManager.Instance.Settings = _settings;
|
||||||
|
ThemeManager.Instance.ChangeTheme(_settings.Theme);
|
||||||
|
|
||||||
|
Http.Proxy = _settings.Proxy;
|
||||||
|
|
||||||
|
RegisterExitEvents();
|
||||||
|
|
||||||
|
|
||||||
|
_mainVM.MainWindowVisibility = _settings.HideOnStartup ? Visibility.Hidden : Visibility.Visible;
|
||||||
|
Log.Info("|App.OnStartup|End Wox startup ---------------------------------------------------- ");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//[Conditional("RELEASE")]
|
||||||
|
// check udpate every 5 hours
|
||||||
|
|
||||||
|
// check updates on startup
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RegisterExitEvents()
|
||||||
|
{
|
||||||
|
AppDomain.CurrentDomain.ProcessExit += (s, e) => Dispose();
|
||||||
|
Current.Exit += (s, e) => Dispose();
|
||||||
|
Current.SessionEnding += (s, e) => Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// let exception throw as normal is better for Debug
|
||||||
|
/// </summary>
|
||||||
|
[Conditional("RELEASE")]
|
||||||
|
private void RegisterDispatcherUnhandledException()
|
||||||
|
{
|
||||||
|
DispatcherUnhandledException += ErrorReporting.DispatcherUnhandledException;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// let exception throw as normal is better for Debug
|
||||||
|
/// </summary>
|
||||||
|
[Conditional("RELEASE")]
|
||||||
|
private static void RegisterAppDomainExceptions()
|
||||||
|
{
|
||||||
|
AppDomain.CurrentDomain.UnhandledException += ErrorReporting.UnhandledExceptionHandle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
// if sessionending is called, exit proverbially be called when log off / shutdown
|
||||||
|
// but if sessionending is not called, exit won't be called when log off / shutdown
|
||||||
|
if (!_disposed)
|
||||||
|
{
|
||||||
|
API.SaveAppAllSettings();
|
||||||
|
_disposed = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnSecondAppStarted()
|
||||||
|
{
|
||||||
|
Current.MainWindow.Visibility = Visibility.Visible;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
4
src/modules/launcher/PowerLauncher/FodyWeavers.xml
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
|
||||||
|
<PropertyChanged />
|
||||||
|
</Weavers>
|
||||||
64
src/modules/launcher/PowerLauncher/FodyWeavers.xsd
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||||
|
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. -->
|
||||||
|
<xs:element name="Weavers">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:all>
|
||||||
|
<xs:element name="PropertyChanged" minOccurs="0" maxOccurs="1">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:attribute name="InjectOnPropertyNameChanged" type="xs:boolean">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Used to control if the On_PropertyName_Changed feature is enabled.</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="EventInvokerNames" type="xs:string">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Used to change the name of the method that fires the notify event. This is a string that accepts multiple values in a comma separated form.</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="CheckForEquality" type="xs:boolean">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Used to control if equality checks should be inserted. If false, equality checking will be disabled for the project.</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="CheckForEqualityUsingBaseEquals" type="xs:boolean">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Used to control if equality checks should use the Equals method resolved from the base class.</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="UseStaticEqualsFromBase" type="xs:boolean">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Used to control if equality checks should use the static Equals method resolved from the base class.</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="SuppressWarnings" type="xs:boolean">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Used to turn off build warnings from this weaver.</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="SuppressOnPropertyNameChangedWarning" type="xs:boolean">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Used to turn off build warnings about mismatched On_PropertyName_Changed methods.</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:all>
|
||||||
|
<xs:attribute name="VerifyAssembly" type="xs:boolean">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="VerifyIgnoreCodes" type="xs:string">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
<xs:attribute name="GenerateXsd" type="xs:boolean">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:schema>
|
||||||
19
src/modules/launcher/PowerLauncher/HotkeyControl.xaml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<UserControl x:Class="Wox.HotkeyControl"
|
||||||
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
|
xmlns:input="clr-namespace:System.Windows.Input;assembly=PresentationCore"
|
||||||
|
mc:Ignorable="d"
|
||||||
|
Height="24"
|
||||||
|
d:DesignHeight="300" d:DesignWidth="300">
|
||||||
|
<Grid>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="150" />
|
||||||
|
<ColumnDefinition Width="120" />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<TextBox x:Name="tbHotkey" TabIndex="100" VerticalContentAlignment="Center" Grid.Column="0"
|
||||||
|
PreviewKeyDown="TbHotkey_OnPreviewKeyDown" input:InputMethod.IsInputMethodEnabled="False"/>
|
||||||
|
<TextBlock x:Name="tbMsg" Visibility="Hidden" Margin="5 0 0 0" VerticalAlignment="Center" Grid.Column="1" />
|
||||||
|
</Grid>
|
||||||
|
</UserControl>
|
||||||
117
src/modules/launcher/PowerLauncher/HotkeyControl.xaml.cs
Normal file
@@ -0,0 +1,117 @@
|
|||||||
|
using System;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows;
|
||||||
|
using System.Windows.Controls;
|
||||||
|
using System.Windows.Input;
|
||||||
|
using System.Windows.Media;
|
||||||
|
using NHotkey.Wpf;
|
||||||
|
using Wox.Core.Resource;
|
||||||
|
using Wox.Infrastructure.Hotkey;
|
||||||
|
using Wox.Plugin;
|
||||||
|
|
||||||
|
namespace Wox
|
||||||
|
{
|
||||||
|
public partial class HotkeyControl : UserControl
|
||||||
|
{
|
||||||
|
public HotkeyModel CurrentHotkey { get; private set; }
|
||||||
|
public bool CurrentHotkeyAvailable { get; private set; }
|
||||||
|
|
||||||
|
public event EventHandler HotkeyChanged;
|
||||||
|
|
||||||
|
protected virtual void OnHotkeyChanged()
|
||||||
|
{
|
||||||
|
EventHandler handler = HotkeyChanged;
|
||||||
|
if (handler != null) handler(this, EventArgs.Empty);
|
||||||
|
}
|
||||||
|
|
||||||
|
public HotkeyControl()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
void TbHotkey_OnPreviewKeyDown(object sender, KeyEventArgs e)
|
||||||
|
{
|
||||||
|
e.Handled = true;
|
||||||
|
tbMsg.Visibility = Visibility.Hidden;
|
||||||
|
|
||||||
|
//when alt is pressed, the real key should be e.SystemKey
|
||||||
|
Key key = (e.Key == Key.System ? e.SystemKey : e.Key);
|
||||||
|
|
||||||
|
SpecialKeyState specialKeyState = GlobalHotkey.Instance.CheckModifiers();
|
||||||
|
|
||||||
|
var hotkeyModel = new HotkeyModel(
|
||||||
|
specialKeyState.AltPressed,
|
||||||
|
specialKeyState.ShiftPressed,
|
||||||
|
specialKeyState.WinPressed,
|
||||||
|
specialKeyState.CtrlPressed,
|
||||||
|
key);
|
||||||
|
|
||||||
|
var hotkeyString = hotkeyModel.ToString();
|
||||||
|
|
||||||
|
if (hotkeyString == tbHotkey.Text)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Dispatcher.InvokeAsync(async () =>
|
||||||
|
{
|
||||||
|
await Task.Delay(500);
|
||||||
|
SetHotkey(hotkeyModel);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetHotkey(HotkeyModel keyModel, bool triggerValidate = true)
|
||||||
|
{
|
||||||
|
CurrentHotkey = keyModel;
|
||||||
|
|
||||||
|
tbHotkey.Text = CurrentHotkey.ToString();
|
||||||
|
tbHotkey.Select(tbHotkey.Text.Length, 0);
|
||||||
|
|
||||||
|
if (triggerValidate)
|
||||||
|
{
|
||||||
|
CurrentHotkeyAvailable = CheckHotkeyAvailability();
|
||||||
|
if (!CurrentHotkeyAvailable)
|
||||||
|
{
|
||||||
|
tbMsg.Foreground = new SolidColorBrush(Colors.Red);
|
||||||
|
tbMsg.Text = InternationalizationManager.Instance.GetTranslation("hotkeyUnavailable");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tbMsg.Foreground = new SolidColorBrush(Colors.Green);
|
||||||
|
tbMsg.Text = InternationalizationManager.Instance.GetTranslation("success");
|
||||||
|
}
|
||||||
|
tbMsg.Visibility = Visibility.Visible;
|
||||||
|
OnHotkeyChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetHotkey(string keyStr, bool triggerValidate = true)
|
||||||
|
{
|
||||||
|
SetHotkey(new HotkeyModel(keyStr), triggerValidate);
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool CheckHotkeyAvailability()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
HotkeyManager.Current.AddOrReplace("HotkeyAvailabilityTest", CurrentHotkey.CharKey, CurrentHotkey.ModifierKeys, (sender, e) => { });
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
HotkeyManager.Current.Remove("HotkeyAvailabilityTest");
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public new bool IsFocused
|
||||||
|
{
|
||||||
|
get { return tbHotkey.IsFocused; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
src/modules/launcher/PowerLauncher/Images/Browser.png
Normal file
|
After Width: | Height: | Size: 873 B |
BIN
src/modules/launcher/PowerLauncher/Images/EXE.png
Normal file
|
After Width: | Height: | Size: 774 B |
BIN
src/modules/launcher/PowerLauncher/Images/Link.png
Normal file
|
After Width: | Height: | Size: 796 B |
BIN
src/modules/launcher/PowerLauncher/Images/New Message.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
src/modules/launcher/PowerLauncher/Images/app.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
src/modules/launcher/PowerLauncher/Images/app_error.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
src/modules/launcher/PowerLauncher/Images/calculator.png
Normal file
|
After Width: | Height: | Size: 597 B |
BIN
src/modules/launcher/PowerLauncher/Images/cancel.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
src/modules/launcher/PowerLauncher/Images/close.png
Normal file
|
After Width: | Height: | Size: 530 B |
BIN
src/modules/launcher/PowerLauncher/Images/cmd.png
Normal file
|
After Width: | Height: | Size: 752 B |
BIN
src/modules/launcher/PowerLauncher/Images/color.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
src/modules/launcher/PowerLauncher/Images/copy.png
Normal file
|
After Width: | Height: | Size: 501 B |
BIN
src/modules/launcher/PowerLauncher/Images/down.png
Normal file
|
After Width: | Height: | Size: 506 B |
BIN
src/modules/launcher/PowerLauncher/Images/file.png
Normal file
|
After Width: | Height: | Size: 290 B |
BIN
src/modules/launcher/PowerLauncher/Images/find.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
src/modules/launcher/PowerLauncher/Images/folder.png
Normal file
|
After Width: | Height: | Size: 468 B |