├── .github
└── FUNDING.yml
├── .gitignore
├── Installer
├── Images
│ ├── LargeTile.scale-100.png
│ ├── LargeTile.scale-125.png
│ ├── LargeTile.scale-150.png
│ ├── LargeTile.scale-200.png
│ ├── LargeTile.scale-400.png
│ ├── SmallTile.scale-100.png
│ ├── SmallTile.scale-125.png
│ ├── SmallTile.scale-150.png
│ ├── SmallTile.scale-200.png
│ ├── SmallTile.scale-400.png
│ ├── SplashScreen.scale-100.png
│ ├── SplashScreen.scale-125.png
│ ├── SplashScreen.scale-150.png
│ ├── SplashScreen.scale-200.png
│ ├── SplashScreen.scale-400.png
│ ├── Square150x150Logo.scale-100.png
│ ├── Square150x150Logo.scale-125.png
│ ├── Square150x150Logo.scale-150.png
│ ├── Square150x150Logo.scale-200.png
│ ├── Square150x150Logo.scale-400.png
│ ├── Square44x44Logo.altform-lightunplated_targetsize-16.png
│ ├── Square44x44Logo.altform-lightunplated_targetsize-24.png
│ ├── Square44x44Logo.altform-lightunplated_targetsize-256.png
│ ├── Square44x44Logo.altform-lightunplated_targetsize-32.png
│ ├── Square44x44Logo.altform-lightunplated_targetsize-48.png
│ ├── Square44x44Logo.altform-unplated_targetsize-16.png
│ ├── Square44x44Logo.altform-unplated_targetsize-256.png
│ ├── Square44x44Logo.altform-unplated_targetsize-32.png
│ ├── Square44x44Logo.altform-unplated_targetsize-48.png
│ ├── Square44x44Logo.scale-100.png
│ ├── Square44x44Logo.scale-125.png
│ ├── Square44x44Logo.scale-150.png
│ ├── Square44x44Logo.scale-200.png
│ ├── Square44x44Logo.scale-400.png
│ ├── Square44x44Logo.targetsize-16.png
│ ├── Square44x44Logo.targetsize-24.png
│ ├── Square44x44Logo.targetsize-24_altform-unplated.png
│ ├── Square44x44Logo.targetsize-256.png
│ ├── Square44x44Logo.targetsize-32.png
│ ├── Square44x44Logo.targetsize-48.png
│ ├── StoreLogo.scale-100.png
│ ├── StoreLogo.scale-125.png
│ ├── StoreLogo.scale-150.png
│ ├── StoreLogo.scale-200.png
│ ├── StoreLogo.scale-400.png
│ ├── Wide310x150Logo.scale-100.png
│ ├── Wide310x150Logo.scale-125.png
│ ├── Wide310x150Logo.scale-150.png
│ ├── Wide310x150Logo.scale-200.png
│ └── Wide310x150Logo.scale-400.png
├── Installer.wapproj
└── Package.appxmanifest
├── LICENSE
├── PRIVACY.md
├── README.md
├── Snatch.sln
└── Snatch
├── App.config
├── App.xaml
├── App.xaml.cs
├── Controls
├── EmptyListView.xaml
├── EmptyListView.xaml.cs
├── Header.xaml
├── Header.xaml.cs
├── Onboarding.xaml
├── Onboarding.xaml.cs
├── ShortcutList.xaml
├── ShortcutList.xaml.cs
├── SupportSection.xaml
└── SupportSection.xaml.cs
├── Extensions
├── CustomCommand.cs
├── DbClient.cs
├── DelegateCommand.cs
├── DragBehavior.cs
├── HyperlinkExtension.cs
├── NativeApi.cs
├── ProcessWatcher.cs
├── SettingsBinding.cs
└── Utils.cs
├── Models
└── Entry.cs
├── Properties
├── AssemblyInfo.cs
├── Resources.Designer.cs
├── Resources.resx
├── Settings.Designer.cs
├── Settings.settings
└── launchSettings.json
├── Resources
├── TrayResources.xaml
├── app-icon.ico
├── kasper-64.png
├── kasper.jpg
├── kiwi-bird-duotone.xaml
└── tray-icon.ico
├── Snatch.csproj
├── Snatch.db
├── ViewModels
├── MainViewModel.cs
├── OnboardingViewModel.cs
└── TrayViewModel.cs
├── Windows
├── MainWindow.xaml
└── MainWindow.xaml.cs
└── packages.config
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | custom: https://buymeacoff.ee/idered
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 | ##
4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
5 |
6 | # User-specific files
7 | *.rsuser
8 | *.suo
9 | *.user
10 | *.userosscache
11 | *.sln.docstates
12 |
13 | # User-specific files (MonoDevelop/Xamarin Studio)
14 | *.userprefs
15 |
16 | # Mono auto generated files
17 | mono_crash.*
18 |
19 | # Build results
20 | [Dd]ebug/
21 | [Dd]ebugPublic/
22 | [Rr]elease/
23 | [Rr]eleases/
24 | x64/
25 | x86/
26 | [Ww][Ii][Nn]32/
27 | [Aa][Rr][Mm]/
28 | [Aa][Rr][Mm]64/
29 | bld/
30 | [Bb]in/
31 | [Oo]bj/
32 | [Ll]og/
33 | [Ll]ogs/
34 |
35 | # Visual Studio 2015/2017 cache/options directory
36 | .vs/
37 | # Uncomment if you have tasks that create the project's static files in wwwroot
38 | #wwwroot/
39 |
40 | # Visual Studio 2017 auto generated files
41 | Generated\ Files/
42 |
43 | # MSTest test Results
44 | [Tt]est[Rr]esult*/
45 | [Bb]uild[Ll]og.*
46 |
47 | # NUnit
48 | *.VisualState.xml
49 | TestResult.xml
50 | nunit-*.xml
51 |
52 | # Build Results of an ATL Project
53 | [Dd]ebugPS/
54 | [Rr]eleasePS/
55 | dlldata.c
56 |
57 | # Benchmark Results
58 | BenchmarkDotNet.Artifacts/
59 |
60 | # .NET Core
61 | project.lock.json
62 | project.fragment.lock.json
63 | artifacts/
64 |
65 | # ASP.NET Scaffolding
66 | ScaffoldingReadMe.txt
67 |
68 | # StyleCop
69 | StyleCopReport.xml
70 |
71 | # Files built by Visual Studio
72 | *_i.c
73 | *_p.c
74 | *_h.h
75 | *.ilk
76 | *.meta
77 | *.obj
78 | *.iobj
79 | *.pch
80 | *.pdb
81 | *.ipdb
82 | *.pgc
83 | *.pgd
84 | *.rsp
85 | *.sbr
86 | *.tlb
87 | *.tli
88 | *.tlh
89 | *.tmp
90 | *.tmp_proj
91 | *_wpftmp.csproj
92 | *.log
93 | *.vspscc
94 | *.vssscc
95 | .builds
96 | *.pidb
97 | *.svclog
98 | *.scc
99 |
100 | # Chutzpah Test files
101 | _Chutzpah*
102 |
103 | # Visual C++ cache files
104 | ipch/
105 | *.aps
106 | *.ncb
107 | *.opendb
108 | *.opensdf
109 | *.sdf
110 | *.cachefile
111 | *.VC.db
112 | *.VC.VC.opendb
113 |
114 | # Visual Studio profiler
115 | *.psess
116 | *.vsp
117 | *.vspx
118 | *.sap
119 |
120 | # Visual Studio Trace Files
121 | *.e2e
122 |
123 | # TFS 2012 Local Workspace
124 | $tf/
125 |
126 | # Guidance Automation Toolkit
127 | *.gpState
128 |
129 | # ReSharper is a .NET coding add-in
130 | _ReSharper*/
131 | *.[Rr]e[Ss]harper
132 | *.DotSettings.user
133 |
134 | # TeamCity is a build add-in
135 | _TeamCity*
136 |
137 | # DotCover is a Code Coverage Tool
138 | *.dotCover
139 |
140 | # AxoCover is a Code Coverage Tool
141 | .axoCover/*
142 | !.axoCover/settings.json
143 |
144 | # Coverlet is a free, cross platform Code Coverage Tool
145 | coverage*.json
146 | coverage*.xml
147 | coverage*.info
148 |
149 | # Visual Studio code coverage results
150 | *.coverage
151 | *.coveragexml
152 |
153 | # NCrunch
154 | _NCrunch_*
155 | .*crunch*.local.xml
156 | nCrunchTemp_*
157 |
158 | # MightyMoose
159 | *.mm.*
160 | AutoTest.Net/
161 |
162 | # Web workbench (sass)
163 | .sass-cache/
164 |
165 | # Installshield output folder
166 | [Ee]xpress/
167 |
168 | # DocProject is a documentation generator add-in
169 | DocProject/buildhelp/
170 | DocProject/Help/*.HxT
171 | DocProject/Help/*.HxC
172 | DocProject/Help/*.hhc
173 | DocProject/Help/*.hhk
174 | DocProject/Help/*.hhp
175 | DocProject/Help/Html2
176 | DocProject/Help/html
177 |
178 | # Click-Once directory
179 | publish/
180 |
181 | # Publish Web Output
182 | *.[Pp]ublish.xml
183 | *.azurePubxml
184 | # Note: Comment the next line if you want to checkin your web deploy settings,
185 | # but database connection strings (with potential passwords) will be unencrypted
186 | *.pubxml
187 | *.publishproj
188 |
189 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
190 | # checkin your Azure Web App publish settings, but sensitive information contained
191 | # in these scripts will be unencrypted
192 | PublishScripts/
193 |
194 | # NuGet Packages
195 | *.nupkg
196 | # NuGet Symbol Packages
197 | *.snupkg
198 | # The packages folder can be ignored because of Package Restore
199 | **/[Pp]ackages/*
200 | # except build/, which is used as an MSBuild target.
201 | !**/[Pp]ackages/build/
202 | # Uncomment if necessary however generally it will be regenerated when needed
203 | #!**/[Pp]ackages/repositories.config
204 | # NuGet v3's project.json files produces more ignorable files
205 | *.nuget.props
206 | *.nuget.targets
207 |
208 | # Microsoft Azure Build Output
209 | csx/
210 | *.build.csdef
211 |
212 | # Microsoft Azure Emulator
213 | ecf/
214 | rcf/
215 |
216 | # Windows Store app package directories and files
217 | AppPackages/
218 | BundleArtifacts/
219 | Package.StoreAssociation.xml
220 | _pkginfo.txt
221 | *.appx
222 | *.appxbundle
223 | *.appxupload
224 |
225 | # Visual Studio cache files
226 | # files ending in .cache can be ignored
227 | *.[Cc]ache
228 | # but keep track of directories ending in .cache
229 | !?*.[Cc]ache/
230 |
231 | # Others
232 | ClientBin/
233 | ~$*
234 | *~
235 | *.dbmdl
236 | *.dbproj.schemaview
237 | *.jfm
238 | *.pfx
239 | *.publishsettings
240 | orleans.codegen.cs
241 |
242 | # Including strong name files can present a security risk
243 | # (https://github.com/github/gitignore/pull/2483#issue-259490424)
244 | #*.snk
245 |
246 | # Since there are multiple workflows, uncomment next line to ignore bower_components
247 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
248 | #bower_components/
249 |
250 | # RIA/Silverlight projects
251 | Generated_Code/
252 |
253 | # Backup & report files from converting an old project file
254 | # to a newer Visual Studio version. Backup files are not needed,
255 | # because we have git ;-)
256 | _UpgradeReport_Files/
257 | Backup*/
258 | UpgradeLog*.XML
259 | UpgradeLog*.htm
260 | ServiceFabricBackup/
261 | *.rptproj.bak
262 |
263 | # SQL Server files
264 | *.mdf
265 | *.ldf
266 | *.ndf
267 |
268 | # Business Intelligence projects
269 | *.rdl.data
270 | *.bim.layout
271 | *.bim_*.settings
272 | *.rptproj.rsuser
273 | *- [Bb]ackup.rdl
274 | *- [Bb]ackup ([0-9]).rdl
275 | *- [Bb]ackup ([0-9][0-9]).rdl
276 |
277 | # Microsoft Fakes
278 | FakesAssemblies/
279 |
280 | # GhostDoc plugin setting file
281 | *.GhostDoc.xml
282 |
283 | # Node.js Tools for Visual Studio
284 | .ntvs_analysis.dat
285 | node_modules/
286 |
287 | # Visual Studio 6 build log
288 | *.plg
289 |
290 | # Visual Studio 6 workspace options file
291 | *.opt
292 |
293 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
294 | *.vbw
295 |
296 | # Visual Studio LightSwitch build output
297 | **/*.HTMLClient/GeneratedArtifacts
298 | **/*.DesktopClient/GeneratedArtifacts
299 | **/*.DesktopClient/ModelManifest.xml
300 | **/*.Server/GeneratedArtifacts
301 | **/*.Server/ModelManifest.xml
302 | _Pvt_Extensions
303 |
304 | # Paket dependency manager
305 | .paket/paket.exe
306 | paket-files/
307 |
308 | # FAKE - F# Make
309 | .fake/
310 |
311 | # CodeRush personal settings
312 | .cr/personal
313 |
314 | # Python Tools for Visual Studio (PTVS)
315 | __pycache__/
316 | *.pyc
317 |
318 | # Cake - Uncomment if you are using it
319 | # tools/**
320 | # !tools/packages.config
321 |
322 | # Tabs Studio
323 | *.tss
324 |
325 | # Telerik's JustMock configuration file
326 | *.jmconfig
327 |
328 | # BizTalk build output
329 | *.btp.cs
330 | *.btm.cs
331 | *.odx.cs
332 | *.xsd.cs
333 |
334 | # OpenCover UI analysis results
335 | OpenCover/
336 |
337 | # Azure Stream Analytics local run output
338 | ASALocalRun/
339 |
340 | # MSBuild Binary and Structured Log
341 | *.binlog
342 |
343 | # NVidia Nsight GPU debugger configuration file
344 | *.nvuser
345 |
346 | # MFractors (Xamarin productivity tool) working folder
347 | .mfractor/
348 |
349 | # Local History for Visual Studio
350 | .localhistory/
351 |
352 | # BeatPulse healthcheck temp database
353 | healthchecksdb
354 |
355 | # Backup folder for Package Reference Convert tool in Visual Studio 2017
356 | MigrationBackup/
357 |
358 | # Ionide (cross platform F# VS Code tools) working folder
359 | .ionide/
360 |
361 | # Fody - auto-generated XML schema
362 | FodyWeavers.xsd
363 |
--------------------------------------------------------------------------------
/Installer/Images/LargeTile.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/LargeTile.scale-100.png
--------------------------------------------------------------------------------
/Installer/Images/LargeTile.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/LargeTile.scale-125.png
--------------------------------------------------------------------------------
/Installer/Images/LargeTile.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/LargeTile.scale-150.png
--------------------------------------------------------------------------------
/Installer/Images/LargeTile.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/LargeTile.scale-200.png
--------------------------------------------------------------------------------
/Installer/Images/LargeTile.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/LargeTile.scale-400.png
--------------------------------------------------------------------------------
/Installer/Images/SmallTile.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/SmallTile.scale-100.png
--------------------------------------------------------------------------------
/Installer/Images/SmallTile.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/SmallTile.scale-125.png
--------------------------------------------------------------------------------
/Installer/Images/SmallTile.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/SmallTile.scale-150.png
--------------------------------------------------------------------------------
/Installer/Images/SmallTile.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/SmallTile.scale-200.png
--------------------------------------------------------------------------------
/Installer/Images/SmallTile.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/SmallTile.scale-400.png
--------------------------------------------------------------------------------
/Installer/Images/SplashScreen.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/SplashScreen.scale-100.png
--------------------------------------------------------------------------------
/Installer/Images/SplashScreen.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/SplashScreen.scale-125.png
--------------------------------------------------------------------------------
/Installer/Images/SplashScreen.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/SplashScreen.scale-150.png
--------------------------------------------------------------------------------
/Installer/Images/SplashScreen.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/SplashScreen.scale-200.png
--------------------------------------------------------------------------------
/Installer/Images/SplashScreen.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/SplashScreen.scale-400.png
--------------------------------------------------------------------------------
/Installer/Images/Square150x150Logo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Square150x150Logo.scale-100.png
--------------------------------------------------------------------------------
/Installer/Images/Square150x150Logo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Square150x150Logo.scale-125.png
--------------------------------------------------------------------------------
/Installer/Images/Square150x150Logo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Square150x150Logo.scale-150.png
--------------------------------------------------------------------------------
/Installer/Images/Square150x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Square150x150Logo.scale-200.png
--------------------------------------------------------------------------------
/Installer/Images/Square150x150Logo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Square150x150Logo.scale-400.png
--------------------------------------------------------------------------------
/Installer/Images/Square44x44Logo.altform-lightunplated_targetsize-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Square44x44Logo.altform-lightunplated_targetsize-16.png
--------------------------------------------------------------------------------
/Installer/Images/Square44x44Logo.altform-lightunplated_targetsize-24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Square44x44Logo.altform-lightunplated_targetsize-24.png
--------------------------------------------------------------------------------
/Installer/Images/Square44x44Logo.altform-lightunplated_targetsize-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Square44x44Logo.altform-lightunplated_targetsize-256.png
--------------------------------------------------------------------------------
/Installer/Images/Square44x44Logo.altform-lightunplated_targetsize-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Square44x44Logo.altform-lightunplated_targetsize-32.png
--------------------------------------------------------------------------------
/Installer/Images/Square44x44Logo.altform-lightunplated_targetsize-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Square44x44Logo.altform-lightunplated_targetsize-48.png
--------------------------------------------------------------------------------
/Installer/Images/Square44x44Logo.altform-unplated_targetsize-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Square44x44Logo.altform-unplated_targetsize-16.png
--------------------------------------------------------------------------------
/Installer/Images/Square44x44Logo.altform-unplated_targetsize-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Square44x44Logo.altform-unplated_targetsize-256.png
--------------------------------------------------------------------------------
/Installer/Images/Square44x44Logo.altform-unplated_targetsize-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Square44x44Logo.altform-unplated_targetsize-32.png
--------------------------------------------------------------------------------
/Installer/Images/Square44x44Logo.altform-unplated_targetsize-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Square44x44Logo.altform-unplated_targetsize-48.png
--------------------------------------------------------------------------------
/Installer/Images/Square44x44Logo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Square44x44Logo.scale-100.png
--------------------------------------------------------------------------------
/Installer/Images/Square44x44Logo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Square44x44Logo.scale-125.png
--------------------------------------------------------------------------------
/Installer/Images/Square44x44Logo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Square44x44Logo.scale-150.png
--------------------------------------------------------------------------------
/Installer/Images/Square44x44Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Square44x44Logo.scale-200.png
--------------------------------------------------------------------------------
/Installer/Images/Square44x44Logo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Square44x44Logo.scale-400.png
--------------------------------------------------------------------------------
/Installer/Images/Square44x44Logo.targetsize-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Square44x44Logo.targetsize-16.png
--------------------------------------------------------------------------------
/Installer/Images/Square44x44Logo.targetsize-24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Square44x44Logo.targetsize-24.png
--------------------------------------------------------------------------------
/Installer/Images/Square44x44Logo.targetsize-24_altform-unplated.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Square44x44Logo.targetsize-24_altform-unplated.png
--------------------------------------------------------------------------------
/Installer/Images/Square44x44Logo.targetsize-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Square44x44Logo.targetsize-256.png
--------------------------------------------------------------------------------
/Installer/Images/Square44x44Logo.targetsize-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Square44x44Logo.targetsize-32.png
--------------------------------------------------------------------------------
/Installer/Images/Square44x44Logo.targetsize-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Square44x44Logo.targetsize-48.png
--------------------------------------------------------------------------------
/Installer/Images/StoreLogo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/StoreLogo.scale-100.png
--------------------------------------------------------------------------------
/Installer/Images/StoreLogo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/StoreLogo.scale-125.png
--------------------------------------------------------------------------------
/Installer/Images/StoreLogo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/StoreLogo.scale-150.png
--------------------------------------------------------------------------------
/Installer/Images/StoreLogo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/StoreLogo.scale-200.png
--------------------------------------------------------------------------------
/Installer/Images/StoreLogo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/StoreLogo.scale-400.png
--------------------------------------------------------------------------------
/Installer/Images/Wide310x150Logo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Wide310x150Logo.scale-100.png
--------------------------------------------------------------------------------
/Installer/Images/Wide310x150Logo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Wide310x150Logo.scale-125.png
--------------------------------------------------------------------------------
/Installer/Images/Wide310x150Logo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Wide310x150Logo.scale-150.png
--------------------------------------------------------------------------------
/Installer/Images/Wide310x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Wide310x150Logo.scale-200.png
--------------------------------------------------------------------------------
/Installer/Images/Wide310x150Logo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Idered/snatch/8b991d675db6876ebf0304c0589d6fbe7fcc445b/Installer/Images/Wide310x150Logo.scale-400.png
--------------------------------------------------------------------------------
/Installer/Installer.wapproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 15.0
5 |
6 |
7 |
8 | Debug
9 | x86
10 |
11 |
12 | Release
13 | x86
14 |
15 |
16 | Debug
17 | x64
18 |
19 |
20 | Release
21 | x64
22 |
23 |
24 | Debug
25 | ARM
26 |
27 |
28 | Release
29 | ARM
30 |
31 |
32 | Debug
33 | ARM64
34 |
35 |
36 | Release
37 | ARM64
38 |
39 |
40 | Debug
41 | AnyCPU
42 |
43 |
44 | Release
45 | AnyCPU
46 |
47 |
48 |
49 | $(MSBuildExtensionsPath)\Microsoft\DesktopBridge\
50 |
51 |
52 |
53 | 7944eb10-b04e-44ca-a86d-6795ae222a9c
54 | 10.0.19041.0
55 | 10.0.17763.0
56 | en-US
57 | True
58 | ..\Snatch\Snatch.csproj
59 | 0240416728BAEBDB8BEEA24248A44151BEFEF91E
60 | False
61 | SHA256
62 | True
63 | True
64 | x86|x64
65 | 0
66 |
67 |
68 | Always
69 |
70 |
71 | Always
72 |
73 |
74 | Always
75 |
76 |
77 | Always
78 |
79 |
80 | Always
81 |
82 |
83 | Always
84 |
85 |
86 | Always
87 |
88 |
89 | Always
90 |
91 |
92 | Always
93 |
94 |
95 | Always
96 |
97 |
98 |
99 | Designer
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
--------------------------------------------------------------------------------
/Installer/Package.appxmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
14 |
15 |
16 | Snatch - Clipboard manager
17 | Kasper Mikiewicz
18 | Images\StoreLogo.png
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
34 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Kasper Mikiewicz
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/PRIVACY.md:
--------------------------------------------------------------------------------
1 | # Privacy
2 |
3 | Snatch will never copy, sell, track, upload or observe your data in any way. You always retain complete ownership of your data and in no way will this application ever do anything with your data other than to copy it to and from your personal clipboard.
4 |
5 | Data is stored in `X:\Users\USERNAME\AppData\Local\Snatch` directory.
6 |
7 |
8 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Snatch - Clipboard manager for Windows
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | ---
16 |
17 | You can download Snatch from [Microsoft Store](https://www.microsoft.com/store/apps/9P53HFV0H21X). I hope you will enjoy it!
18 |
19 | Btw you can follow me on Twitter for updates or code tips
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/Snatch.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.30503.244
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Snatch", "Snatch\Snatch.csproj", "{2F943BD5-49D7-40C5-9486-57A7F0E7AB32}"
7 | EndProject
8 | Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "Installer", "Installer\Installer.wapproj", "{7944EB10-B04E-44CA-A86D-6795AE222A9C}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|x64 = Debug|x64
13 | Debug|x86 = Debug|x86
14 | Release|x64 = Release|x64
15 | Release|x86 = Release|x86
16 | EndGlobalSection
17 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
18 | {2F943BD5-49D7-40C5-9486-57A7F0E7AB32}.Debug|x64.ActiveCfg = Debug|x64
19 | {2F943BD5-49D7-40C5-9486-57A7F0E7AB32}.Debug|x64.Build.0 = Debug|x64
20 | {2F943BD5-49D7-40C5-9486-57A7F0E7AB32}.Debug|x86.ActiveCfg = Debug|x86
21 | {2F943BD5-49D7-40C5-9486-57A7F0E7AB32}.Debug|x86.Build.0 = Debug|x86
22 | {2F943BD5-49D7-40C5-9486-57A7F0E7AB32}.Release|x64.ActiveCfg = Release|x64
23 | {2F943BD5-49D7-40C5-9486-57A7F0E7AB32}.Release|x64.Build.0 = Release|x64
24 | {2F943BD5-49D7-40C5-9486-57A7F0E7AB32}.Release|x86.ActiveCfg = Release|x86
25 | {2F943BD5-49D7-40C5-9486-57A7F0E7AB32}.Release|x86.Build.0 = Release|x86
26 | {7944EB10-B04E-44CA-A86D-6795AE222A9C}.Debug|x64.ActiveCfg = Debug|x64
27 | {7944EB10-B04E-44CA-A86D-6795AE222A9C}.Debug|x64.Build.0 = Debug|x64
28 | {7944EB10-B04E-44CA-A86D-6795AE222A9C}.Debug|x64.Deploy.0 = Debug|x64
29 | {7944EB10-B04E-44CA-A86D-6795AE222A9C}.Debug|x86.ActiveCfg = Debug|x86
30 | {7944EB10-B04E-44CA-A86D-6795AE222A9C}.Debug|x86.Build.0 = Debug|x86
31 | {7944EB10-B04E-44CA-A86D-6795AE222A9C}.Debug|x86.Deploy.0 = Debug|x86
32 | {7944EB10-B04E-44CA-A86D-6795AE222A9C}.Release|x64.ActiveCfg = Release|x64
33 | {7944EB10-B04E-44CA-A86D-6795AE222A9C}.Release|x64.Build.0 = Release|x64
34 | {7944EB10-B04E-44CA-A86D-6795AE222A9C}.Release|x64.Deploy.0 = Release|x64
35 | {7944EB10-B04E-44CA-A86D-6795AE222A9C}.Release|x86.ActiveCfg = Release|x86
36 | {7944EB10-B04E-44CA-A86D-6795AE222A9C}.Release|x86.Build.0 = Release|x86
37 | {7944EB10-B04E-44CA-A86D-6795AE222A9C}.Release|x86.Deploy.0 = Release|x86
38 | EndGlobalSection
39 | GlobalSection(SolutionProperties) = preSolution
40 | HideSolutionNode = FALSE
41 | EndGlobalSection
42 | GlobalSection(ExtensibilityGlobals) = postSolution
43 | SolutionGuid = {C5C589BD-6286-42EC-99D1-1B59DEBAC234}
44 | EndGlobalSection
45 | EndGlobal
46 |
--------------------------------------------------------------------------------
/Snatch/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/Snatch/App.xaml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
132 |
133 |
134 |
135 |
139 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
168 |
183 |
184 |
185 |
186 |
202 |
203 |
204 |
205 |
206 |
--------------------------------------------------------------------------------
/Snatch/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using Hardcodet.Wpf.TaskbarNotification;
3 |
4 | namespace Snatch
5 | {
6 | public partial class App : Application
7 | {
8 | private TaskbarIcon trayIcon;
9 |
10 | private App()
11 | {
12 | Deactivated += Application_Deactivated;
13 | }
14 |
15 | protected override void OnStartup(StartupEventArgs e)
16 | {
17 | base.OnStartup(e);
18 |
19 | trayIcon = (TaskbarIcon)FindResource("TrayIcon");
20 | }
21 |
22 | protected override void OnExit(ExitEventArgs e)
23 | {
24 | trayIcon.Dispose();
25 | base.OnExit(e);
26 | }
27 |
28 | private void Application_Deactivated(object sender, System.EventArgs e)
29 | {
30 | Application.Current.MainWindow.Visibility = Visibility.Hidden;
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/Snatch/Controls/EmptyListView.xaml:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
18 |
19 |
47 |
48 |
49 |
50 |
51 |
57 | It's empty here,
58 |
59 |
60 |
66 | copy something to get started.
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
120 |
121 |
122 |
123 |
--------------------------------------------------------------------------------
/Snatch/Controls/EmptyListView.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Controls;
2 |
3 | namespace Snatch.Controls
4 | {
5 | public partial class EmptyListView : UserControl
6 | {
7 | public EmptyListView()
8 | {
9 | InitializeComponent();
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Snatch/Controls/Header.xaml:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 |
15 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
68 | Snatch
69 |
70 |
71 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/Snatch/Controls/Header.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace Snatch.Controls
17 | {
18 | public partial class Header : UserControl
19 | {
20 | public Header()
21 | {
22 | InitializeComponent();
23 | Application.Current.MainWindow.Activated += HandleWindowActivated;
24 | }
25 |
26 | private void HandleWindowActivated(object sender, EventArgs e)
27 | {
28 | QueryInput.Focus();
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/Snatch/Controls/Onboarding.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
13 |
14 |
23 |
24 |
33 |
34 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
55 | Snatch Quickstart
56 |
57 |
61 | To summon Snatch, press the following shortcut:
62 |
63 |
67 |
68 | Ctrl
69 |
70 |
78 |
79 |
80 |
81 | Shift
82 |
83 |
91 |
92 |
93 |
94 | V
95 |
96 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
116 | Good, remember that shortcut
117 |
118 |
123 | You can use it anywhere to show or hide Snatch. Press it again to hide this tutorial.
124 |
125 |
129 |
130 | Ctrl
131 |
132 |
135 |
136 |
137 |
138 | Shift
139 |
140 |
143 |
144 |
145 |
146 | V
147 |
148 |
151 |
152 |
153 |
154 |
162 |
163 |
164 |
165 |
166 |
--------------------------------------------------------------------------------
/Snatch/Controls/Onboarding.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.ComponentModel;
2 | using System.Windows.Controls;
3 | using System.Windows.Input;
4 |
5 | namespace Snatch.Controls
6 | {
7 | public partial class Onboarding : UserControl
8 | {
9 | public Onboarding()
10 | {
11 | InitializeComponent();
12 | }
13 |
14 | private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
15 | {
16 | Snatch.Properties.Settings.Default.OnboardingStep = 0;
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/Snatch/Controls/ShortcutList.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
39 |
40 |
41 |
42 |
50 |
51 |
52 |
56 | Essential Keyboard Shortcuts
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
71 | Clear
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 | Ctrl
82 |
83 |
84 |
88 |
89 | Shift
90 |
91 |
92 |
96 |
97 | L
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
115 | Pin/Unpin
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 | Ctrl
125 |
126 |
127 |
131 |
132 | P
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
149 | Quit
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 | Ctrl
159 |
160 |
161 |
165 |
166 | Q
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
183 | Pin/Unpin all
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 | Ctrl
194 |
195 |
196 |
200 |
201 | Shift
202 |
203 |
204 |
208 |
209 | P
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
226 | Remove entry
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 | Ctrl
236 |
237 |
238 |
242 |
243 | Del
244 |
245 |
246 |
247 |
248 |
249 |
250 |
251 |
252 |
253 |
254 |
255 |
256 |
260 | Toggle help
261 |
262 |
263 |
264 |
265 |
266 |
267 |
268 |
269 | Ctrl
270 |
271 |
272 |
276 |
277 | /
278 |
279 |
280 |
281 |
282 |
283 |
284 |
285 |
286 |
287 |
288 |
289 |
290 |
294 | Toggle Snatch
295 |
296 |
297 |
298 |
299 |
300 |
301 |
302 |
303 |
304 | Ctrl
305 |
306 |
307 |
311 |
312 | Shift
313 |
314 |
315 |
319 |
320 | V
321 |
322 |
323 |
324 |
325 |
326 |
327 |
328 |
331 |
332 |
333 |
334 |
335 |
336 |
337 |
338 |
339 |
340 |
341 |
342 |
343 |
344 |
345 |
346 |
347 |
348 |
--------------------------------------------------------------------------------
/Snatch/Controls/ShortcutList.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace Snatch.Controls
17 | {
18 | ///
19 | /// Interaction logic for ShortcutList.xaml
20 | ///
21 | public partial class ShortcutList : UserControl
22 | {
23 | public ShortcutList()
24 | {
25 | InitializeComponent();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/Snatch/Controls/SupportSection.xaml:
--------------------------------------------------------------------------------
1 |
10 |
11 |
19 |
20 |
28 |
29 |
30 |
31 |
37 |
42 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
58 | Hi there,
59 |
60 |
65 | I hope that you find Snatch useful. If you would like to support my work, you can buy me a coffee or share a tweet. Thanks!
66 |
67 |
68 |
69 |
73 |
77 |
78 |
82 |
90 | Buy a coffee
91 |
92 |
93 |
94 |
95 |
103 |
104 |
105 |
106 |
110 |
111 |
115 |
123 | Share a tweet
124 |
125 |
126 |
127 |
128 |
136 |
137 |
138 |
139 |
140 |
146 | Dismiss
147 |
148 |
155 |
156 |
157 |
158 |
159 |
160 |
--------------------------------------------------------------------------------
/Snatch/Controls/SupportSection.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Controls;
2 | using System.Windows.Input;
3 | using Snatch.Properties;
4 |
5 | namespace Snatch.Controls
6 | {
7 | public partial class SupportSection : UserControl
8 | {
9 | public SupportSection()
10 | {
11 | InitializeComponent();
12 | }
13 |
14 | private void HideDonationSection(object sender, MouseButtonEventArgs e)
15 | {
16 | Settings.Default.ShowDonateInfo = false;
17 | Settings.Default.HasClosedDonateInfo = true;
18 | Settings.Default.Save();
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Snatch/Extensions/CustomCommand.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Input;
3 |
4 | namespace Snatch
5 | {
6 | public class CustomCommand : ICommand
7 | {
8 | public event EventHandler