41 Commits
Author SHA1 Message Date
Stone-Red-Code 0b0f208098 Merge remote-tracking branch 'origin/main' 2021-09-23 20:31:10 +02:00
Stone-Red-Code ac49916308 Merge branch 'develop' 2021-09-23 20:31:01 +02:00
Stone-Red-Code 83f5b28d5c - Improved logging format 2021-09-23 20:30:28 +02:00
Stone-Red-Code d8a895b240 - Improved logging functionality
- Improved code formatting
2021-09-23 08:46:11 +02:00
Stone-Red-Code ef27ace78b - Add RenderQuality enum to the Plugin API
- Add `RenderQuality` property to the `Plugin` class
- Set the render quality of the plugin image
2021-09-16 19:20:07 +02:00
Stone-Red-Code 0f6e8437fd - Add null check for plugin result
- Minor code changes
2021-09-16 17:11:41 +02:00
Stone-Red-Code 5bc35cf92b - Removed font mono space check. 2021-09-15 19:49:47 +02:00
Stone-Red-Code 2df2ef3b11 - Update version number 2021-09-15 19:37:06 +02:00
Stone-Red-Code 603a78935b - Show version number in window title
- Add `PluginName` property to `IPluginData`
- Add `PluginPath` property to `IPluginData`
2021-09-15 18:22:20 +02:00
Stone-Red-Code 40d1232e33 - Run update plugins method in another task 2021-09-15 16:47:13 +02:00
Stone-Red-Code 1cde9442ef - Send windows to back when minimizing 2021-09-14 21:42:30 +02:00
Stone-Red-Code 90ee56be94 Merge remote-tracking branch 'origin/develop' into develop 2021-09-14 21:28:03 +02:00
Stone-Red-Code aed4b7de64 - Automatically send windows to back
- Fix auto updater
2021-09-14 21:27:08 +02:00
Stone_Red 101b516ca8 Update updateInfo.json 2021-09-14 19:05:54 +02:00
Stone_Red c551dafeed Update updateInfo.json 2021-09-14 19:05:14 +02:00
Stone-Red-Code 7d2f68a66a - Add GitHub and Download plugins button
- Add auto updater
- Disable calender
2021-09-14 19:03:36 +02:00
Stone_Red efd75b0a42 Create README.md 2021-09-14 16:04:33 +02:00
Stone_Red 74bff47ce3 Update README.md 2021-09-14 16:04:19 +02:00
Stone-Red-Code 6e4757adea - Exception handling for plugin events
- Revert: Execute `OnValueChanged` event in task
2021-09-14 14:07:08 +02:00
Stone-Red-Code e00c873bd5 - Remove unnecessary code
- Execute `OnValueChanged` event in task
2021-09-13 19:49:05 +02:00
Stone-Red-Code d70e6229cc - Remove unnecessary code
- Improve startup performance
2021-09-12 13:24:46 +02:00
Stone-Red-Code f94f24297e - Add OnMouseWheel event 2021-09-11 17:13:02 +02:00
Stone-Red-Code 36e09acd0e - Add MouseButton enum to plugin API to determine which mouse button was pressed
- Add some missing documentation
2021-09-11 14:24:27 +02:00
Stone-Red-Code 24ca987ab0 Merge branch 'develop' 2021-09-10 16:59:07 +02:00
Stone-Red-Code 535062e8c4 Fixed a small problem with the translation and the installer. 2021-09-10 16:57:31 +02:00
Stone_Red 69774b86a3 Delete credentials.json 2021-09-10 14:38:58 +02:00
Stone-Red-Code e9cf43d968 Proper handling and logging of errors during the execution of a plugin 2021-08-25 19:20:45 +02:00
Stone-Red-Code 8df53ef190 Add check so that only one instance can be open at a time 2021-08-25 19:08:26 +02:00
Stone-Red-Code ae490367ee Actually implement the Start method correctly 2021-08-22 12:50:28 +02:00
Stone-Red-Code 3268a66d64 Add Start method. 2021-08-21 23:05:32 +02:00
Stone-Red-Code 24437371ec Check if the value of UpdateInterval is valid 2021-08-21 22:22:29 +02:00
Stone-Red-Code 8e31735032 UpdateInterval can now be changed while the plugin is running and updated the Icon. 2021-08-21 22:09:42 +02:00
Stone_Red c38ea293d1 Add issue templates 2021-08-21 21:52:19 +02:00
Stone_Red ea0b79573a Update README.md 2021-08-21 16:06:55 +02:00
Stone_Red 2b4583ce5d Update README.md 2021-08-21 16:00:56 +02:00
Stone_Red 870b84a631 Update README.md 2021-08-21 16:00:42 +02:00
Stone_Red b23571c0f7 Update README.md 2021-08-20 20:27:43 +02:00
Stone-Red-Code d4c4b4e1ed Merge branch 'main' into develop 2021-08-18 18:44:15 +02:00
Stone-Red-Code 41e4e03d2f Fixed .gitignore 2021-08-18 18:43:06 +02:00
Stone-Red-Code 9db60da702 Revert "Fix not working .gitignore"
This reverts commit 86f07f4bf3.
2021-08-18 18:39:53 +02:00
Stone-Red-Code 86f07f4bf3 Fix not working .gitignore 2021-08-18 18:14:52 +02:00
331 changed files with 1033 additions and 13901 deletions
+27
View File
@@ -0,0 +1,27 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Additional context**
Add any other context about the problem here.
+20
View File
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
-1
View File
@@ -3,7 +3,6 @@
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
src/
bin/
obj/
+6 -3
View File
@@ -4,14 +4,17 @@
> You can add useful elements to your desktop like a clock, a audio visualizer or even your own plugins!
- [Releases](https://github.com/Stone-Red-Code/DesktopMagic/releases)
- [Download Plugins](https://github.com/Stone-Red-Code/DesktopMagic-Plugins)
- [Plugin Documentation](https://github.com/Stone-Red-Code/DesktopMagic/wiki)
- [Licence](https://github.com/Stone-Red-Code/DesktopMagic/blob/main/LICENSE)
## Usage
1. Download one of the [releases](https://github.com/Stone-Red-Code/DesktopMagic/releases)
2. Execute the `DesktopMagic-Installer.exe` file
3. (Optional) Put a shortcut to the `DesktopMagic.exe` file in the install directory into the `shell:startup` directory
1. Download one of the [releases](https://github.com/Stone-Red-Code/DesktopMagic/releases).
1. Follow one of the steps below.
1. Execute the `DesktopMagic-Installer.exe` file.
1. Unzip the `DesktopMagic-Standalone.zip` file and execute the `DesktopMagic.exe` file.
1. (Optional) Put a shortcut to the `DesktopMagic.exe` file in the install directory into the `shell:startup` directory.
## Preview
Binary file not shown.
Binary file not shown.
+2 -35
View File
@@ -2,7 +2,7 @@
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "DesktopMagic"
#define MyAppVersion "0.0.2.1"
#define MyAppVersion "0.0.3.0"
#define MyAppPublisher "Stone_Red"
#define MyAppExeName "DesktopMagic.exe"
@@ -36,40 +36,7 @@ Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 6.1; Check: not IsAdminInstallMode
[Files]
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Stone_Red-C-Sharp-Utilities.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.deps.json"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.pdb"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.runtimeconfig.dev.json"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.runtimeconfig.json"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagicPluginAPI.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagicPluginAPI.pdb"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.Auth.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.Auth.PlatformServices.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.Calendar.v3.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.Core.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Hardcodet.NotifyIcon.Wpf.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\MaterialDesignColors.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\MaterialDesignThemes.Wpf.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.Asio.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.Core.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.Midi.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.Wasapi.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.WinForms.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.WinMM.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Newtonsoft.Json.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\System.Drawing.Common.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\System.Management.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.AvalonDock.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.AvalonDock.Themes.Aero.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.AvalonDock.Themes.Metro.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.AvalonDock.Themes.VS2010.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.Toolkit.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\runtimes\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "..\DesktopMagic\bin\Release\net5.0-windows\publish\DesktopMagic.exe"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
@@ -1,23 +0,0 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v5.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v5.0": {
"DesktopMagic.Installer/1.0.0": {
"runtime": {
"DesktopMagic.Installer.dll": {}
}
}
}
},
"libraries": {
"DesktopMagic.Installer/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}
@@ -1,82 +0,0 @@
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "DesktopMagic"
#define MyAppVersion "0.0.2.0"
#define MyAppPublisher "Stone_Red"
#define MyAppExeName "DesktopMagic.exe"
[Setup]
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{61FE5CE9-47C3-4255-A1F4-5BCF4ACA0876}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
DefaultDirName={autopf}\{#MyAppName}
DisableProgramGroupPage=yes
; The [Icons] "quicklaunchicon" entry uses {userappdata} but its [Tasks] entry has a proper IsAdminInstallMode Check.
UsedUserAreasWarning=no
; Remove the following line to run in administrative install mode (install for all users.)
PrivilegesRequired=lowest
PrivilegesRequiredOverridesAllowed=dialog
OutputBaseFilename=DesktopMagic-Installer
OutputDir=.
Compression=lzma
SolidCompression=yes
WizardStyle=modern
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "german"; MessagesFile: "compiler:Languages\German.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 6.1; Check: not IsAdminInstallMode
[Files]
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Stone_Red-C-Sharp-Utilities.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.deps.json"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.pdb"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.runtimeconfig.dev.json"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.runtimeconfig.json"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagicPluginAPI.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagicPluginAPI.pdb"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.Auth.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.Auth.PlatformServices.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.Calendar.v3.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.Core.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Hardcodet.NotifyIcon.Wpf.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\MaterialDesignColors.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\MaterialDesignThemes.Wpf.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.Asio.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.Core.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.Midi.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.Wasapi.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.WinForms.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.WinMM.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Newtonsoft.Json.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\System.Drawing.Common.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\System.Management.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.AvalonDock.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.AvalonDock.Themes.Aero.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.AvalonDock.Themes.Metro.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.AvalonDock.Themes.VS2010.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.Toolkit.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\runtimes\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon
[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
@@ -1,23 +0,0 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v5.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v5.0": {
"DesktopMagic.Installer/1.0.0": {
"runtime": {
"DesktopMagic.Installer.dll": {}
}
}
}
},
"libraries": {
"DesktopMagic.Installer/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}
@@ -1,82 +0,0 @@
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "DesktopMagic"
#define MyAppVersion "0.0.2.1"
#define MyAppPublisher "Stone_Red"
#define MyAppExeName "DesktopMagic.exe"
[Setup]
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{61FE5CE9-47C3-4255-A1F4-5BCF4ACA0876}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
DefaultDirName={autopf}\{#MyAppName}
DisableProgramGroupPage=yes
; The [Icons] "quicklaunchicon" entry uses {userappdata} but its [Tasks] entry has a proper IsAdminInstallMode Check.
UsedUserAreasWarning=no
; Remove the following line to run in administrative install mode (install for all users.)
PrivilegesRequired=lowest
PrivilegesRequiredOverridesAllowed=dialog
OutputBaseFilename=DesktopMagic-Installer
OutputDir=.
Compression=lzma
SolidCompression=yes
WizardStyle=modern
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "german"; MessagesFile: "compiler:Languages\German.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 6.1; Check: not IsAdminInstallMode
[Files]
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Stone_Red-C-Sharp-Utilities.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.deps.json"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.pdb"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.runtimeconfig.dev.json"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagic.runtimeconfig.json"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagicPluginAPI.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\DesktopMagicPluginAPI.pdb"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.Auth.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.Auth.PlatformServices.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.Calendar.v3.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.Core.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Google.Apis.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Hardcodet.NotifyIcon.Wpf.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\MaterialDesignColors.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\MaterialDesignThemes.Wpf.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.Asio.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.Core.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.Midi.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.Wasapi.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.WinForms.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\NAudio.WinMM.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Newtonsoft.Json.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\System.Drawing.Common.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\System.Management.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.AvalonDock.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.AvalonDock.Themes.Aero.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.AvalonDock.Themes.Metro.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.AvalonDock.Themes.VS2010.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\Xceed.Wpf.Toolkit.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\DesktopMagic\bin\Release\net5.0-windows\runtimes\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon
[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
@@ -1,67 +0,0 @@
{
"format": 1,
"restore": {
"C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagic.Installer\\DesktopMagic.Installer.csproj": {}
},
"projects": {
"C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagic.Installer\\DesktopMagic.Installer.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagic.Installer\\DesktopMagic.Installer.csproj",
"projectName": "DesktopMagic.Installer",
"projectPath": "C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagic.Installer\\DesktopMagic.Installer.csproj",
"packagesPath": "C:\\Users\\David\\.nuget\\packages\\",
"outputPath": "C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagic.Installer\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\David\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net5.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"C:\\Users\\David\\AppData\\Roaming\\Cosmos User Kit\\packages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net5.0": {
"targetAlias": "net5.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net5.0": {
"targetAlias": "net5.0",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\5.0.400\\RuntimeIdentifierGraph.json"
}
}
}
}
}
@@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\David\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.11.0</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\David\.nuget\packages\" />
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
</ItemGroup>
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
</Project>
@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
</Project>
@@ -1,23 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Dieser Code wurde von einem Tool generiert.
// Laufzeitversion:4.0.30319.42000
//
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
// der Code erneut generiert wird.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("DesktopMagic.Installer")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("DesktopMagic.Installer")]
[assembly: System.Reflection.AssemblyTitleAttribute("DesktopMagic.Installer")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Von der MSBuild WriteCodeFragment-Klasse generiert.
@@ -1 +0,0 @@
cd6667c25d7a4534637b1fde3b018e93109dbcda
@@ -1,10 +0,0 @@
is_global = true
build_property.TargetFramework = net5.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.PublishSingleFile =
build_property.IncludeAllContentForSelfExtract =
build_property._SupportedPlatformList = Android,iOS,Linux,macOS,Windows
build_property.RootNamespace = DesktopMagic.Installer
build_property.ProjectDir = C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagic.Installer\
@@ -1 +0,0 @@
3de46dc0a7a50425c2c2e0f6ae9305c5c446a680
@@ -1,13 +0,0 @@
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagic.Installer\bin\Release\net5.0\Installer.iss
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagic.Installer\bin\Release\net5.0\DesktopMagic.Installer.deps.json
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagic.Installer\bin\Release\net5.0\DesktopMagic.Installer.dll
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagic.Installer\bin\Release\net5.0\ref\DesktopMagic.Installer.dll
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagic.Installer\bin\Release\net5.0\DesktopMagic.Installer.pdb
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagic.Installer\obj\Release\net5.0\DesktopMagic.Installer.GeneratedMSBuildEditorConfig.editorconfig
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagic.Installer\obj\Release\net5.0\DesktopMagic.Installer.AssemblyInfoInputs.cache
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagic.Installer\obj\Release\net5.0\DesktopMagic.Installer.AssemblyInfo.cs
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagic.Installer\obj\Release\net5.0\DesktopMagic.Installer.csproj.CoreCompileInputs.cache
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagic.Installer\obj\Release\net5.0\DesktopMagic.Installer.dll
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagic.Installer\obj\Release\net5.0\ref\DesktopMagic.Installer.dll
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagic.Installer\obj\Release\net5.0\DesktopMagic.Installer.pdb
C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagic.Installer\obj\Release\net5.0\DesktopMagic.Installer.csproj.AssemblyReference.cache
@@ -1,73 +0,0 @@
{
"version": 3,
"targets": {
"net5.0": {}
},
"libraries": {},
"projectFileDependencyGroups": {
"net5.0": []
},
"packageFolders": {
"C:\\Users\\David\\.nuget\\packages\\": {},
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {}
},
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagic.Installer\\DesktopMagic.Installer.csproj",
"projectName": "DesktopMagic.Installer",
"projectPath": "C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagic.Installer\\DesktopMagic.Installer.csproj",
"packagesPath": "C:\\Users\\David\\.nuget\\packages\\",
"outputPath": "C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagic.Installer\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\David\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net5.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"C:\\Users\\David\\AppData\\Roaming\\Cosmos User Kit\\packages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net5.0": {
"targetAlias": "net5.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net5.0": {
"targetAlias": "net5.0",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\5.0.400\\RuntimeIdentifierGraph.json"
}
}
}
}
@@ -1,8 +0,0 @@
{
"version": 2,
"dgSpecHash": "S2SSTiH9oDfmVBwTIyHj2/TbaJJ3f/T7hIDEaZd4bVbTBDEHTye5g0XRPRjrJt4DCgBJQJi4G11CGKAOt1g8ag==",
"success": true,
"projectFilePath": "C:\\Users\\David\\Programmieren\\DesktopMagic\\src\\DesktopMagic.Installer\\DesktopMagic.Installer.csproj",
"expectedPackageFiles": [],
"logs": []
}
-8
View File
@@ -4,9 +4,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00
VisualStudioVersion = 16.0.31205.134
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DesktopMagic", "DesktopMagic\DesktopMagic.csproj", "{B56B4CCC-CF92-4C05-9DEA-57666D81889A}"
ProjectSection(ProjectDependencies) = postProject
{A06BD685-7F92-4799-846B-3EC38345108E} = {A06BD685-7F92-4799-846B-3EC38345108E}
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DesktopMagicPluginAPI", "DesktopMagicPluginAPI\DesktopMagicPluginAPI.csproj", "{9D193A10-3E8E-447F-89F1-4B316C2EE37D}"
EndProject
@@ -14,11 +11,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DesktopMagicPlugin.Test", "
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DesktopMagic.Installer", "DesktopMagic.Installer\DesktopMagic.Installer.csproj", "{A06BD685-7F92-4799-846B-3EC38345108E}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{10A138D6-41F0-4DBB-BC39-D93467B4D982}"
ProjectSection(SolutionItems) = preProject
.editorconfig = .editorconfig
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
+120 -1
View File
@@ -1,4 +1,10 @@
using System.Windows;
using AlwaysUpToDate;
using Stone_Red_Utilities.Logging;
using System;
using System.Threading;
using System.Windows;
namespace DesktopMagic
{
@@ -7,5 +13,118 @@ namespace DesktopMagic
/// </summary>
public partial class App : Application
{
private readonly string logFilePath;
private readonly Mutex _mutex;
#if DEBUG
private readonly Updater updater = new Updater(TimeSpan.FromDays(1), "https://raw.githubusercontent.com/Stone-Red-Code/DesktopMagic/develop/update/updateInfo.json");
#else
private readonly Updater updater = new Updater(TimeSpan.FromHours(1), "https://raw.githubusercontent.com/Stone-Red-Code/DesktopMagic/main/update/updateInfo.json");
#endif
public const string AppName = "Desktop Magic";
public static string ApplicationDataPath { get; } = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\" + AppName;
public static Logger Logger { get; } = new Logger();
public App()
{
logFilePath = ApplicationDataPath + "\\Log.log";
Setup();
// Try to grab mutex
_mutex = new Mutex(true, $"Stone_Red{AppName}", out bool createdNew);
//check if creating new was succesfull
if (!createdNew)
{
Logger.Log("Shutting down because other instance already running.", "Setup");
//Shutdown Aplication
Current.Shutdown();
}
else
{
Exit += CloseMutexHandler;
updater.ProgressChanged += Updater_ProgressChanged;
updater.OnException += Updater_OnException;
updater.NoUpdateAvailible += Updater_NoUpdateAvailible;
updater.UpdateAvailible += Updater_UpdateAvailible;
updater.Start();
}
}
private void Updater_UpdateAvailible(string version, string additionalInformation)
{
updater.Update();
}
private void Updater_NoUpdateAvailible()
{
Logger.Log("No update avalible.", "Updater");
}
private void Updater_OnException(Exception exception)
{
Logger.Log(exception.ToString(), "Updater");
}
private void Updater_ProgressChanged(long? totalFileSize, long totalBytesDownloaded, double? progressPercentage)
{
Logger.Log($"{progressPercentage}% {totalBytesDownloaded}/{totalFileSize}", "Updater");
}
protected void CloseMutexHandler(object sender, EventArgs e)
{
_mutex?.Close();
}
private void Setup()
{
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
Logger.Config = new LogConfig()
{
FatalConfig = new OutputConfig()
{
Color = ConsoleColor.DarkRed,
LogTarget = LogTarget.DebugConsole | LogTarget.File,
FilePath = logFilePath
},
ErrorConfig = new OutputConfig()
{
Color = ConsoleColor.Red,
LogTarget = LogTarget.DebugConsole | LogTarget.File,
FilePath = logFilePath
},
WarnConfig = new OutputConfig()
{
Color = ConsoleColor.Yellow,
LogTarget = LogTarget.DebugConsole | LogTarget.File,
FilePath = logFilePath
},
InfoConfig = new OutputConfig()
{
Color = ConsoleColor.White,
LogTarget = LogTarget.Console | LogTarget.File,
FilePath = logFilePath
},
DebugConfig = new OutputConfig()
{
Color = ConsoleColor.Gray,
LogTarget = LogTarget.DebugConsole,
},
FormatConfig = new FormatConfig()
{
DebugConsoleFormat = $"> {{{LogFormatType.DateTime}:hh:mm:ss}} | {{{LogFormatType.LogSeverity},-5}} | {{{LogFormatType.Message}}}\n> at {{{LogFormatType.LineNumber},3}} | {{{LogFormatType.FilePath}}}"
}
};
Logger.ClearLogFile(LogSeverity.Info);
Logger.Log("Log setup complete.", "Setup");
}
private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
Exception exception = (Exception)e.ExceptionObject;
Logger.Log(exception + (e.IsTerminating ? "\t Process terminating!" : ""), exception.Source, LogSeverity.Fatal);
}
}
}
+12 -17
View File
@@ -3,8 +3,10 @@ using Google.Apis.Calendar.v3;
using Google.Apis.Calendar.v3.Data;
using Google.Apis.Services;
using Google.Apis.Util.Store;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Threading;
@@ -14,21 +16,22 @@ namespace DesktopMagic
{
private static string[] Scopes = { CalendarService.Scope.CalendarReadonly };
private static string ApplicationName = "Google Calendar API .NET " + MainWindow.AppName;
private static string ApplicationName = "Google Calendar API .NET " + App.AppName;
[Obsolete]
public (List<string>, List<string>) GetEvents()
{
List<string> upcomingEventNames = new List<string>();
List<string> upcomingEventTimes = new List<string>();
UserCredential credential;
Console.WriteLine("1");
if (!File.Exists("credentials.json"))
return (new(), new());
using (var stream =
new FileStream("credentials.json", FileMode.Open, FileAccess.Read))
{
Console.WriteLine("2");
return (new(), new());
}
using (FileStream stream = new FileStream("credentials.json", FileMode.Open, FileAccess.Read))
{
// The file token.json stores the user's access and refresh tokens, and is created
// automatically when the authorization flow completes for the first time.
string credPath = "token.json";
@@ -38,19 +41,16 @@ namespace DesktopMagic
"user",
CancellationToken.None,
new FileDataStore(credPath, true)).Result;
Console.WriteLine("Credential file saved to: " + credPath);
Debug.WriteLine("Credential file saved to: " + credPath);
}
Console.WriteLine("3");
// Create Google Calendar API service.
var service = new CalendarService(new BaseClientService.Initializer()
CalendarService service = new CalendarService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
Console.WriteLine("4");
// Define parameters of request.
EventsResource.ListRequest request = service.Events.List("primary");
request.TimeMin = DateTime.Now;
@@ -59,14 +59,11 @@ namespace DesktopMagic
request.MaxResults = 10;
request.OrderBy = EventsResource.ListRequest.OrderByEnum.StartTime;
Console.WriteLine("5");
// List events.
Events events = request.Execute();
Console.WriteLine("6");
Console.WriteLine("Upcoming events:");
if (events.Items != null && events.Items.Count > 0)
{
foreach (var eventItem in events.Items)
foreach (Event eventItem in events.Items)
{
if (upcomingEventNames.Count < 10)
{
@@ -80,8 +77,6 @@ namespace DesktopMagic
}
}
}
Console.WriteLine("7");
return (upcomingEventNames, upcomingEventTimes);
}
}
+17 -15
View File
@@ -1,4 +1,5 @@
using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
@@ -33,7 +34,7 @@ namespace DesktopMagic
w.WindowStyle = WindowStyle.ToolWindow;
w.ShowInTaskbar = false;
w.Show();
this.Owner = w;
Owner = w;
w.Hide();
Timer t = new Timer();
@@ -43,14 +44,15 @@ namespace DesktopMagic
Timer valueTimer = new Timer();
valueTimer.Interval = 600000;
valueTimer.Elapsed += ValueTimer_Elapsed; ;
valueTimer.Elapsed += ValueTimer_Elapsed;
;
valueTimer.Start();
key = Registry.CurrentUser.CreateSubKey(@"Software\" + MainWindow.AppName);
this.Top = double.Parse(key.GetValue("CalendarWindowTop", 100).ToString());
this.Left = double.Parse(key.GetValue("CalendarWindowLeft", 100).ToString());
this.Height = double.Parse(key.GetValue("CalendarWindowHeight", 200).ToString());
this.Width = double.Parse(key.GetValue("CalendarWindowWidth", 500).ToString());
key = Registry.CurrentUser.CreateSubKey(@"Software\" + App.AppName);
Top = double.Parse(key.GetValue("CalendarWindowTop", 100).ToString());
Left = double.Parse(key.GetValue("CalendarWindowLeft", 100).ToString());
Height = double.Parse(key.GetValue("CalendarWindowHeight", 200).ToString());
Width = double.Parse(key.GetValue("CalendarWindowWidth", 500).ToString());
//this.IsEnabled = false;
Task.Run(() =>
@@ -68,7 +70,7 @@ namespace DesktopMagic
base.OnSourceInitialized(e);
//Set the window style to noactivate.
var helper = new WindowInteropHelper(this);
WindowInteropHelper helper = new WindowInteropHelper(this);
WindowPos.SetWindowLong(helper.Handle, WindowPos.GWL_EXSTYLE,
WindowPos.GetWindowLong(helper.Handle, WindowPos.GWL_EXSTYLE) | WindowPos.WS_EX_NOACTIVATE);
}
@@ -92,12 +94,12 @@ namespace DesktopMagic
if (MainWindow.EditMode)
{
panel.Visibility = Visibility.Visible;
new WindowPos().SetIsLocked(this, false);
WindowPos.SetIsLocked(this, false);
}
else
{
panel.Visibility = Visibility.Collapsed;
new WindowPos().SetIsLocked(this, true);
WindowPos.SetIsLocked(this, true);
}
if (MainWindow.GlobalFont != oldFont || MainWindow.GlobalColor != oldColor)
{
@@ -143,15 +145,15 @@ namespace DesktopMagic
private void Window_LocationChanged(object sender, EventArgs e)
{
key.SetValue("CalendarWindowTop", this.Top);
key.SetValue("CalendarWindowLeft", this.Left);
key.SetValue("CalendarWindowTop", Top);
key.SetValue("CalendarWindowLeft", Left);
}
private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
{
key.SetValue("CalendarWindowHeight", this.Height);
key.SetValue("CalendarWindowWidth", this.Width);
tileBar.CaptionHeight = this.ActualHeight - 10;
key.SetValue("CalendarWindowHeight", Height);
key.SetValue("CalendarWindowWidth", Width);
tileBar.CaptionHeight = ActualHeight - 10;
}
}
}
+20 -17
View File
@@ -1,4 +1,5 @@
using Microsoft.Win32;
using System;
using System.Diagnostics;
using System.Timers;
@@ -31,7 +32,7 @@ namespace DesktopMagic
ShowInTaskbar = false
};
w.Show();
this.Owner = w;
Owner = w;
w.Hide();
cpuCounter.CategoryName = "Processor";
@@ -45,15 +46,16 @@ namespace DesktopMagic
Timer valueTimer = new Timer();
valueTimer.Interval = 1000;
valueTimer.Elapsed += ValueTimer_Elapsed; ;
valueTimer.Elapsed += ValueTimer_Elapsed;
;
valueTimer.Start();
key = Registry.CurrentUser.CreateSubKey(@"Software\" + MainWindow.AppName);
this.Top = double.Parse(key.GetValue("CpuUsageWindowTop", 100).ToString());
this.Left = double.Parse(key.GetValue("CpuUsageWindowLeft", 100).ToString());
this.Height = double.Parse(key.GetValue("CpuUsageWindowHeight", 200).ToString());
this.Width = double.Parse(key.GetValue("CpuUsageWindowWidth", 500).ToString());
this.IsEnabled = false;
key = Registry.CurrentUser.CreateSubKey(@"Software\" + App.AppName);
Top = double.Parse(key.GetValue("CpuUsageWindowTop", 100).ToString());
Left = double.Parse(key.GetValue("CpuUsageWindowLeft", 100).ToString());
Height = double.Parse(key.GetValue("CpuUsageWindowHeight", 200).ToString());
Width = double.Parse(key.GetValue("CpuUsageWindowWidth", 500).ToString());
IsEnabled = false;
}
protected override void OnSourceInitialized(EventArgs e)
@@ -61,7 +63,7 @@ namespace DesktopMagic
base.OnSourceInitialized(e);
//Set the window style to noactivate.
var helper = new WindowInteropHelper(this);
WindowInteropHelper helper = new WindowInteropHelper(this);
WindowPos.SetWindowLong(helper.Handle, WindowPos.GWL_EXSTYLE,
WindowPos.GetWindowLong(helper.Handle, WindowPos.GWL_EXSTYLE) | WindowPos.WS_EX_NOACTIVATE);
}
@@ -73,12 +75,12 @@ namespace DesktopMagic
if (MainWindow.EditMode)
{
panel.Visibility = Visibility.Visible;
new WindowPos().SetIsLocked(this, false);
WindowPos.SetIsLocked(this, false);
}
else
{
panel.Visibility = Visibility.Collapsed;
new WindowPos().SetIsLocked(this, true);
WindowPos.SetIsLocked(this, true);
}
textBlock.FontFamily = new FontFamily(MainWindow.GlobalFont);
@@ -88,9 +90,10 @@ namespace DesktopMagic
private void ValueTimer_Elapsed(object sender, ElapsedEventArgs e)
{
string cpuUsage = GetCpuUsage();
Dispatcher.Invoke(() =>
{
textBlock.Text = GetCpuUsage();
textBlock.Text = cpuUsage;
});
}
@@ -101,15 +104,15 @@ namespace DesktopMagic
private void Window_LocationChanged(object sender, EventArgs e)
{
key.SetValue("CpuUsageWindowTop", this.Top);
key.SetValue("CpuUsageWindowLeft", this.Left);
key.SetValue("CpuUsageWindowTop", Top);
key.SetValue("CpuUsageWindowLeft", Left);
}
private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
{
key.SetValue("CpuUsageWindowHeight", this.Height);
key.SetValue("CpuUsageWindowWidth", this.Width);
tileBar.CaptionHeight = this.ActualHeight - 10;
key.SetValue("CpuUsageWindowHeight", Height);
key.SetValue("CpuUsageWindowWidth", Width);
tileBar.CaptionHeight = ActualHeight - 10;
}
}
}
+16 -15
View File
@@ -1,4 +1,5 @@
using Microsoft.Win32;
using System;
using System.Timers;
using System.Windows;
@@ -27,7 +28,7 @@ namespace DesktopMagic
w.WindowStyle = WindowStyle.ToolWindow;
w.ShowInTaskbar = false;
w.Show();
this.Owner = w;
Owner = w;
w.Hide();
Timer t = new Timer();
@@ -35,12 +36,12 @@ namespace DesktopMagic
t.Elapsed += T_Elapsed;
t.Start();
key = Registry.CurrentUser.CreateSubKey(@"Software\" + MainWindow.AppName);
this.Top = double.Parse(key.GetValue("DateWindowTop", 100).ToString());
this.Left = double.Parse(key.GetValue("DateWindowLeft", 100).ToString());
this.Height = double.Parse(key.GetValue("DateWindowHeight", 200).ToString());
this.Width = double.Parse(key.GetValue("DateWindowWidth", 500).ToString());
this.IsEnabled = false;
key = Registry.CurrentUser.CreateSubKey(@"Software\" + App.AppName);
Top = double.Parse(key.GetValue("DateWindowTop", 100).ToString());
Left = double.Parse(key.GetValue("DateWindowLeft", 100).ToString());
Height = double.Parse(key.GetValue("DateWindowHeight", 200).ToString());
Width = double.Parse(key.GetValue("DateWindowWidth", 500).ToString());
IsEnabled = false;
}
protected override void OnSourceInitialized(EventArgs e)
@@ -48,7 +49,7 @@ namespace DesktopMagic
base.OnSourceInitialized(e);
//Set the window style to noactivate.
var helper = new WindowInteropHelper(this);
WindowInteropHelper helper = new WindowInteropHelper(this);
WindowPos.SetWindowLong(helper.Handle, WindowPos.GWL_EXSTYLE,
WindowPos.GetWindowLong(helper.Handle, WindowPos.GWL_EXSTYLE) | WindowPos.WS_EX_NOACTIVATE);
}
@@ -60,12 +61,12 @@ namespace DesktopMagic
if (MainWindow.EditMode)
{
panel.Visibility = Visibility.Visible;
new WindowPos().SetIsLocked(this, false);
WindowPos.SetIsLocked(this, false);
}
else
{
panel.Visibility = Visibility.Collapsed;
new WindowPos().SetIsLocked(this, true);
WindowPos.SetIsLocked(this, true);
}
textBlock.FontFamily = new FontFamily(MainWindow.GlobalFont);
textBlock.Foreground = MainWindow.GlobalColor;
@@ -75,15 +76,15 @@ namespace DesktopMagic
private void Window_LocationChanged(object sender, EventArgs e)
{
key.SetValue("DateWindowTop", this.Top);
key.SetValue("DateWindowLeft", this.Left);
key.SetValue("DateWindowTop", Top);
key.SetValue("DateWindowLeft", Left);
}
private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
{
key.SetValue("DateWindowHeight", this.Height);
key.SetValue("DateWindowWidth", this.Width);
tileBar.CaptionHeight = this.ActualHeight - 10;
key.SetValue("DateWindowHeight", Height);
key.SetValue("DateWindowWidth", Width);
tileBar.CaptionHeight = ActualHeight - 10;
}
}
}
+21 -5
View File
@@ -7,20 +7,31 @@
<RootNamespace>DesktopMagic</RootNamespace>
<ApplicationIcon>icon.ico</ApplicationIcon>
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
<Authors>Stone_Red</Authors>
<Version>0.0.3.0</Version>
<PackageProjectUrl>https://github.com/Stone-Red-Code/DesktopMagic</PackageProjectUrl>
<RepositoryUrl>https://github.com/Stone-Red-Code/DesktopMagic</RepositoryUrl>
<AssemblyVersion>0.0.3.0</AssemblyVersion>
<FileVersion>0.0.3.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DefineConstants>DEBUG;TRACE</DefineConstants>
</PropertyGroup>
<ItemGroup>
<None Remove="icon.ico" />
<None Remove="icons8_volunteering_26_85L_icon.ico" />
<None Remove="icon_Dark.ico" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="AlwaysUpToDate" Version="1.0.0.4" />
<PackageReference Include="Extended.Wpf.Toolkit" Version="4.1.0" />
<PackageReference Include="Google.Apis.Calendar.v3" Version="1.51.0.2312" />
<PackageReference Include="Hardcodet.NotifyIcon.Wpf" Version="1.1.0" />
<PackageReference Include="Google.Apis.Calendar.v3" Version="1.55.0.2410" />
<PackageReference Include="MaterialDesignThemes" Version="4.0.0" />
<PackageReference Include="NAudio" Version="2.0.0" />
<PackageReference Include="Stone_Red-C-Sharp-Utilities" Version="1.0.2.1" />
<PackageReference Include="NAudio" Version="2.0.1" />
<PackageReference Include="Stone_Red-C-Sharp-Utilities" Version="1.0.3.1" />
<PackageReference Include="System.Management" Version="5.0.0" />
</ItemGroup>
@@ -29,6 +40,11 @@
</ItemGroup>
<ItemGroup>
<Resource Include="icon.ico" />
<Resource Include="icon_Dark.ico">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Resource>
<Resource Include="icon.ico">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Resource>
</ItemGroup>
</Project>
-43
View File
@@ -1,43 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_LastSelectedProfileId>C:\Users\David\Programmieren\DesktopMagic\src\DesktopMagic\Properties\PublishProfiles\FolderProfile.pubxml</_LastSelectedProfileId>
</PropertyGroup>
<ItemGroup>
<ApplicationDefinition Update="App.xaml">
<SubType>Designer</SubType>
</ApplicationDefinition>
</ItemGroup>
<ItemGroup>
<Page Update="CalendarWindow.xaml">
<SubType>Designer</SubType>
</Page>
<Page Update="CpuUsageWindow.xaml">
<SubType>Designer</SubType>
</Page>
<Page Update="DateWindow.xaml">
<SubType>Designer</SubType>
</Page>
<Page Update="InputDialog.xaml">
<SubType>Designer</SubType>
</Page>
<Page Update="MainWindow.xaml">
<SubType>Designer</SubType>
</Page>
<Page Update="Plugin\PluginWindow.xaml">
<SubType>Designer</SubType>
</Page>
<Page Update="MusicVisualizerWindow.xaml">
<SubType>Designer</SubType>
</Page>
<Page Update="Resources\StringResources.de.xaml">
<SubType>Designer</SubType>
</Page>
<Page Update="Resources\StringResources.en.xaml">
<SubType>Designer</SubType>
</Page>
<Page Update="TimeWindow.xaml">
<SubType>Designer</SubType>
</Page>
</ItemGroup>
</Project>
+1
View File
@@ -6,3 +6,4 @@
using System.Diagnostics.CodeAnalysis;
[assembly: SuppressMessage("Performance", "CA1822:Member als statisch markieren", Justification = "<Ausstehend>", Scope = "member", Target = "~M:DesktopMagic.PluginWindow.LoadOptions(System.Object)")]
[assembly: SuppressMessage("Style", "IDE0090:Use 'new(...)'", Justification = "<Pending>", Scope = "member", Target = "~M:DesktopMagic.MainWindow.GithubButton_Click(System.Object,System.Windows.RoutedEventArgs)")]
+10 -5
View File
@@ -9,9 +9,9 @@
Background="{DynamicResource MaterialDesignPaper}"
FontFamily="{DynamicResource MaterialDesignFont}"
Height="520"
Width="550"
Width="570"
MinHeight="520"
MinWidth="500"
MinWidth="570"
WindowState="Minimized"
StateChanged="Window_StateChanged"
Loaded="Window_Loaded">
@@ -38,14 +38,14 @@
<CheckBox x:Name="TimeCb" Content="{DynamicResource time}" Click="CheckBox_Click" Style="{StaticResource MaterialDesignDarkCheckBox}" />
<CheckBox x:Name="DateCb" Content="{DynamicResource date}" Click="CheckBox_Click" Style="{StaticResource MaterialDesignDarkCheckBox}" />
<CheckBox x:Name="CpuUsageCb" Content="{DynamicResource cpuUsage}" Click="CheckBox_Click" Style="{StaticResource MaterialDesignDarkCheckBox}" />
<CheckBox x:Name="CalendarCb" Content="{DynamicResource googleCalendar}" Click="CheckBox_Click" Style="{StaticResource MaterialDesignDarkCheckBox}" />
<CheckBox x:Name="CalendarCb" Content="{DynamicResource googleCalendar}" Click="CheckBox_Click" Style="{StaticResource MaterialDesignDarkCheckBox}" Visibility="Collapsed"/> <!--Currently disabled because it's not working-->
<CheckBox x:Name="MusicVisualizerCb" Content="{DynamicResource musicVisualizer}" HorizontalAlignment="Left" VerticalAlignment="Top" Click="CheckBox_Click" Style="{StaticResource MaterialDesignDarkCheckBox}" />
</StackPanel>
</ScrollViewer>
</DockPanel>
<DockPanel Grid.Column="1" Margin="2.5,0,0,0">
<ComboBox x:Name="optionsComboBox" DockPanel.Dock="Top" Height="24" SelectedIndex="0" DisplayMemberPath="Item1" SelectionChanged="OptionsComboBox_SelectionChanged" Background="#FFECECEC" />
<ComboBox x:Name="optionsComboBox" DockPanel.Dock="Top" Height="24" SelectedIndex="0" DisplayMemberPath="Item1" SelectionChanged="OptionsComboBox_SelectionChanged" Background="#FFECECEC" Padding="4" VerticalAlignment="Center"/>
<ScrollViewer Background="#FFBBBBBB">
<Grid>
<StackPanel x:Name="optionsPanel" Margin="3,3,3,0" HorizontalAlignment="Stretch" Visibility="Collapsed" >
@@ -104,15 +104,20 @@
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Rectangle Fill="#FFC5C5C5" Stroke="#FFC5C5C5" Grid.ColumnSpan="2" />
<Rectangle Fill="#FFC5C5C5" Stroke="#FFC5C5C5" Grid.ColumnSpan="3" />
<StackPanel Margin="{StaticResource DefaultMargin}" VerticalAlignment="Bottom">
<ComboBox x:Name="layoutsComboBox" HorizontalAlignment="Left" Margin="0,0,0,5" Width="170" Height="20" SelectionChanged="LayoutsComboBox_SelectionChanged" />
<Button x:Name="newLayoutButton" Content="{DynamicResource newLayout}" Margin="0,0,0,5" HorizontalAlignment="Left" VerticalAlignment="Bottom" Width="170" Click="NewLayoutButton_Click" FontWeight="Regular" />
<Button x:Name="removeLayoutButton" Content="{DynamicResource deleteLayout}" HorizontalAlignment="Left" VerticalAlignment="Bottom" Width="170" Click="RemoveLayoutButton_Click" FontWeight="Regular" />
</StackPanel>
<StackPanel Grid.Column="1" Margin="{StaticResource DefaultMargin}" VerticalAlignment="Bottom">
<Button x:Name="downloadPluginsButton" Content="{DynamicResource downloadPlugins}" Margin="0,0,0,5" HorizontalAlignment="Center" Width="170" Click="DownloadPluginsButton_Click" FontWeight="Regular" Cursor="Hand" />
<Button x:Name="githubButton" Content="GitHub" HorizontalAlignment="Center" Width="170" Click="GithubButton_Click" FontWeight="Regular" Cursor="Hand" />
</StackPanel>
<StackPanel Grid.Column="2" Margin="{StaticResource DefaultMargin}" VerticalAlignment="Bottom">
<Button x:Name="updatePluginsButton" Content="{DynamicResource updatePlugins}" Margin="0,0,0,5" HorizontalAlignment="Right" Width="170" Click="UpdatePluginsButton_Click" FontWeight="Regular" />
<Button x:Name="openPluginsFolderButton" Content="{DynamicResource openPluginsFolder}" HorizontalAlignment="Right" Width="170" Click="OpenPluginsFolderButton_Click" FontWeight="Regular" />
</StackPanel>
+142 -102
View File
@@ -1,15 +1,16 @@
using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Text.Json;
using Stone_Red_Utilities.Logging;
namespace DesktopMagic
{
@@ -44,17 +45,11 @@ namespace DesktopMagic
#endregion Plugins settings
public const string AppName = "Desktop Magic";
public static Logger Logger { get; private set; }
public static List<Window> Windows { get; protected set; } = new List<Window>();
public static List<string> WindowNames { get; protected set; } = new List<string>();
private readonly RegistryKey key;
private readonly System.Windows.Forms.NotifyIcon notifyIcon = new();
private readonly string applicationDataPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\" + AppName;
private readonly string logFilePath;
private bool loaded = false;
private bool blockWindowsClosing = true;
@@ -63,24 +58,23 @@ namespace DesktopMagic
{
try
{
logFilePath = applicationDataPath + "\\Log.txt";
Logger = new Logger(LogTarget.File, logFilePath, "{<dateTime>:HH:mm:ss} | {<level>,-7} | {<source>,-15} | {<lineNumber>,-4} | {<memberName>,10} | {<message>}");
key = Registry.CurrentUser.CreateSubKey(@"Software\" + AppName);
key = Registry.CurrentUser.CreateSubKey(@"Software\" + App.AppName);
Stream iconStream = Application.GetResourceStream(new Uri("pack://application:,,,/DesktopMagic;component/icon.ico")).Stream;
notifyIcon.Click += TaskbarIcon_TrayLeftClick;
notifyIcon.Visible = true;
notifyIcon.Text = AppName;
notifyIcon.Text = App.AppName;
notifyIcon.Icon = new System.Drawing.Icon(iconStream);
notifyIcon.ContextMenuStrip = new System.Windows.Forms.ContextMenuStrip();
InitializeComponent();
SetLanguageDictionary();
this.Title = AppName;
Title = $"{App.AppName} - {Assembly.GetExecutingAssembly().GetName().Version}";
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
_ = MessageBox.Show(ex.ToString());
}
}
@@ -90,39 +84,37 @@ namespace DesktopMagic
{
try
{
Logger.ClearLogFile();
if (!Directory.Exists(applicationDataPath))
if (!Directory.Exists(App.ApplicationDataPath))
{
_ = Directory.CreateDirectory(applicationDataPath);
_ = Directory.CreateDirectory(App.ApplicationDataPath);
}
Logger.Log("Created ApplicationData Folder", "Main");
App.Logger.Log("Created ApplicationData Folder", "Main");
if (!Directory.Exists(applicationDataPath + "\\Plugins"))
if (!Directory.Exists(App.ApplicationDataPath + "\\Plugins"))
{
_ = Directory.CreateDirectory(applicationDataPath + "\\Plugins");
_ = Directory.CreateDirectory(App.ApplicationDataPath + "\\Plugins");
}
Logger.Log("Created Plugins Folder", "Main");
App.Logger.Log("Created Plugins Folder", "Main");
if (!File.Exists(applicationDataPath + "\\layouts.save"))
if (!File.Exists(App.ApplicationDataPath + "\\layouts.save"))
{
File.WriteAllText(applicationDataPath + "\\layouts.save", ";" + (string)FindResource("default"));
File.WriteAllText(App.ApplicationDataPath + "\\layouts.save", ";" + (string)FindResource("default"));
}
Logger.Log("Created layouts.save file", "Main");
App.Logger.Log("Created layouts.save file", "Main");
_ = optionsComboBox.Items.Add(new Tuple<string, int>((string)FindResource("musicVisualizer"), 0));
//Write To Log File and Load Elements
Logger.Log("Loading Plugin names", "Main");
App.Logger.Log("Loading Plugin names", "Main");
LoadPlugins();
Logger.Log("Loading Layout names", "Main");
App.Logger.Log("Loading Layout names", "Main");
LoadLayoutNames();
Logger.Log("Loading Layout", "Main");
App.Logger.Log("Loading Layout", "Main");
LoadLayout();
loaded = true;
Logger.Log("Window Loaded", "Main");
App.Logger.Log("Window Loaded", "Main");
}
catch (Exception ex)
{
@@ -132,7 +124,7 @@ namespace DesktopMagic
private void LoadPlugins()
{
string PluginsPath = applicationDataPath + "\\Plugins";
string PluginsPath = App.ApplicationDataPath + "\\Plugins";
foreach (string fileName in Directory.GetFiles(PluginsPath, "*.dll"))
{
@@ -205,11 +197,26 @@ namespace DesktopMagic
switch (checkBox.Name)
{
case "TimeCb": window = new TimeWindow(); break;
case "DateCb": window = new DateWindow(); break;
case "CpuUsageCb": window = new CpuUsageWindow(); break;
case "CalendarCb": window = new CalendarWindow(); break;
case "MusicVisualizerCb": window = new MusicVisualizerWindow(); break;
case "TimeCb":
window = new TimeWindow();
break;
case "DateCb":
window = new DateWindow();
break;
case "CpuUsageCb":
window = new CpuUsageWindow();
break;
case "CalendarCb":
window = new CalendarWindow();
break;
case "MusicVisualizerCb":
window = new MusicVisualizerWindow();
break;
default:
if (checkBox.Name.Contains("_PluginCb_"))
{
@@ -261,6 +268,7 @@ namespace DesktopMagic
window.ShowInTaskbar = false;
window.Show();
window.ContentRendered += PluginWindow_ContentRendered;
window.Closing += DisplayWindow_Closing;
Windows.Add(window);
WindowNames.Add(window.Title);
@@ -281,6 +289,12 @@ namespace DesktopMagic
SaveLayout();
}
private void PluginWindow_ContentRendered(object sender, EventArgs e)
{
WindowPos.SendWpfWindowBack(sender as Window);
WindowPos.SendWpfWindowBack(sender as Window);
}
private void DisplayWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
e.Cancel = blockWindowsClosing;
@@ -288,14 +302,14 @@ namespace DesktopMagic
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
MessageBoxResult msbRes = MessageBox.Show((string)FindResource("wantToCloseProgram"), AppName, MessageBoxButton.YesNo);
MessageBoxResult msbRes = MessageBox.Show((string)FindResource("wantToCloseProgram"), App.AppName, MessageBoxButton.YesNo);
e.Cancel = msbRes != MessageBoxResult.Yes;
}
private void Window_Closed(object sender, EventArgs e)
{
this.Visibility = Visibility.Collapsed;
this.UpdateLayout();
Visibility = Visibility.Collapsed;
UpdateLayout();
foreach (Window window in Windows)
{
window.Hide();
@@ -305,12 +319,17 @@ namespace DesktopMagic
private void Window_StateChanged(object sender, EventArgs e)
{
if (this.WindowState == WindowState.Minimized)
if (WindowState == WindowState.Minimized)
{
EditCheckBox.IsChecked = false;
EditCheckBox_Click(null, null);
this.ShowInTaskbar = false;
this.Visibility = Visibility.Collapsed;
ShowInTaskbar = false;
Visibility = Visibility.Collapsed;
foreach (Window item in Windows)
{
WindowPos.SendWpfWindowBack(item);
WindowPos.SendWpfWindowBack(item);
}
}
}
@@ -472,7 +491,6 @@ namespace DesktopMagic
Dispatcher.Invoke(() =>
{
label.Text = eLabel.Value;
Option_ValueChanged();
});
};
}
@@ -489,15 +507,21 @@ namespace DesktopMagic
HorizontalAlignment = HorizontalAlignment.Stretch
};
button.Click += (_s, _e) =>
{
try
{
eButton.Click();
}
catch (Exception ex)
{
DisplayException(ex.Message);
}
};
eButton.OnValueChanged += () =>
{
Dispatcher.Invoke(() =>
{
button.Content = eButton.Value;
Option_ValueChanged();
});
};
@@ -513,15 +537,21 @@ namespace DesktopMagic
HorizontalAlignment = HorizontalAlignment.Stretch
};
checkBox.Click += (_s, _e) =>
{
try
{
eCheckBox.Value = checkBox.IsChecked.GetValueOrDefault();
}
catch (Exception ex)
{
DisplayException(ex.Message);
}
};
eCheckBox.OnValueChanged += () =>
{
Dispatcher.Invoke(() =>
{
checkBox.IsChecked = eCheckBox.Value;
Option_ValueChanged();
});
};
@@ -537,15 +567,21 @@ namespace DesktopMagic
HorizontalAlignment = HorizontalAlignment.Stretch
};
textBox.TextChanged += (_s, _e) =>
{
try
{
eTextBox.Value = textBox.Text;
}
catch (Exception ex)
{
DisplayException(ex.Message);
}
};
eTextBox.OnValueChanged += () =>
{
Dispatcher.Invoke(() =>
{
textBox.Text = eTextBox.Value;
Option_ValueChanged();
});
};
_ = stackPanel.Children.Add(textBox);
@@ -561,15 +597,21 @@ namespace DesktopMagic
HorizontalAlignment = HorizontalAlignment.Stretch
};
integerUpDown.ValueChanged += (_s, _e) =>
{
try
{
eIntegerUpDown.Value = integerUpDown.Value.GetValueOrDefault();
}
catch (Exception ex)
{
DisplayException(ex.Message);
}
};
eIntegerUpDown.OnValueChanged += () =>
{
Dispatcher.Invoke(() =>
{
integerUpDown.Value = eIntegerUpDown.Value;
Option_ValueChanged();
});
};
_ = stackPanel.Children.Add(integerUpDown);
@@ -587,15 +629,21 @@ namespace DesktopMagic
HorizontalAlignment = HorizontalAlignment.Stretch
};
slider.ValueChanged += (_s, _e) =>
{
try
{
eSlider.Value = slider.Value;
}
catch (Exception ex)
{
DisplayException(ex.Message);
}
};
eSlider.OnValueChanged += () =>
{
Dispatcher.Invoke(() =>
{
slider.Value = eSlider.Value;
Option_ValueChanged();
});
};
@@ -605,18 +653,14 @@ namespace DesktopMagic
}
}
private void Option_ValueChanged()
private void DisplayException(string message)
{
//Plugin settings save currenty disabled. Not sure if I want to add it back in the future.
/*
string pluginName = ((Tuple<string, int>)optionsComboBox.SelectedItem).Item1.ToString();
App.Logger.Log(message, "PluginInput");
_ = MessageBox.Show("File execution error:\n" + message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
int index = WindowNames.IndexOf(((Tuple<string, int>)optionsComboBox.SelectedItem).Item1.ToString());
if (PluginsSettings.ContainsKey(pluginName))
{
string jsonSettings = JsonSerializer.Serialize(PluginsSettings[pluginName]);
File.WriteAllText($"{applicationDataPath}\\Plugins\\{pluginName}\\{pluginName}.save", jsonSettings);
}
*/
PluginWindow window = Windows[index] as PluginWindow;
window?.Exit();
}
#endregion options
@@ -624,31 +668,7 @@ namespace DesktopMagic
private void TextBlock_Loaded(object sender, RoutedEventArgs e)
{
int index = 0;
char[] chars = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
foreach (FontFamily ff in Fonts.SystemFontFamilies)
{
double charWidth = -1;
bool monospace = true;
textBlock.FontFamily = ff;
foreach (char c in chars)
{
textBlock.Text = "";
for (int i = 0; i < 100; i++)
{
textBlock.Text += c.ToString();
}
textBlock.UpdateLayout();
if (charWidth != textBlock.ActualWidth && charWidth != -1)
{
monospace = false;
break;
}
charWidth = textBlock.ActualWidth;
}
if (monospace)
{
ComboBoxItem comboBoxItem = new()
{
@@ -663,7 +683,6 @@ namespace DesktopMagic
}
index++;
}
}
if (fontComboBox.SelectedIndex == -1)
{
fontComboBox.SelectedIndex = 0;
@@ -748,7 +767,7 @@ namespace DesktopMagic
key.SetValue("SelectedLayout", layoutsComboBox.SelectedIndex);
string[] lines = File.ReadAllLines(applicationDataPath + "\\layouts.save");
string[] lines = File.ReadAllLines(App.ApplicationDataPath + "\\layouts.save");
string[] data = lines[layoutsComboBox.SelectedIndex].Split(';');
foreach (string dat in data)
{
@@ -772,7 +791,7 @@ namespace DesktopMagic
private void NewLayoutButton_Click(object sender, RoutedEventArgs e)
{
InputDialog inputDialog = new("Layoutnamen eingeben:");
InputDialog inputDialog = new((string)FindResource("enterLayoutName"));
if (inputDialog.ShowDialog() == true)
{
string content = "";
@@ -785,7 +804,7 @@ namespace DesktopMagic
}
content += inputDialog.ResponseText + "\n";
File.AppendAllText(applicationDataPath + "\\layouts.save", content);
File.AppendAllText(App.ApplicationDataPath + "\\layouts.save", content);
key.SetValue("SelectedLayout", -1);
LoadLayoutNames();
layoutsComboBox.SelectedIndex = layoutsComboBox.Items.Count - 1;
@@ -799,9 +818,9 @@ namespace DesktopMagic
return;
}
List<string> lines = File.ReadAllLines(applicationDataPath + "\\layouts.save").ToList();
List<string> lines = File.ReadAllLines(App.ApplicationDataPath + "\\layouts.save").ToList();
lines.RemoveAt(layoutsComboBox.SelectedIndex);
File.WriteAllLines(applicationDataPath + "\\layouts.save", lines);
File.WriteAllLines(App.ApplicationDataPath + "\\layouts.save", lines);
LoadLayoutNames();
layoutsComboBox.SelectedIndex = 0;
}
@@ -810,9 +829,9 @@ namespace DesktopMagic
{
_ = Task.Run(() =>
{
lock (applicationDataPath)
lock (App.ApplicationDataPath)
{
List<string> lines = File.ReadAllLines(applicationDataPath + "\\layouts.save").ToList();
List<string> lines = File.ReadAllLines(App.ApplicationDataPath + "\\layouts.save").ToList();
string content = "";
foreach (string valueName in key.GetValueNames())
{
@@ -826,7 +845,7 @@ namespace DesktopMagic
content += layoutsComboBox.SelectedItem.ToString();
lines[layoutsComboBox.SelectedIndex] = content;
});
File.WriteAllLines(applicationDataPath + "\\layouts.save", lines);
File.WriteAllLines(App.ApplicationDataPath + "\\layouts.save", lines);
}
});
}
@@ -834,7 +853,7 @@ namespace DesktopMagic
private void LoadLayoutNames()
{
layoutsComboBox.Items.Clear();
string[] lines = File.ReadAllLines(applicationDataPath + "\\layouts.save");
string[] lines = File.ReadAllLines(App.ApplicationDataPath + "\\layouts.save");
foreach (string line in lines)
{
@@ -894,14 +913,14 @@ namespace DesktopMagic
}
catch (Exception ex)
{
Logger.Log(ex.ToString(), "Main");
App.Logger.Log(ex.ToString(), "Main");
MessageBox.Show(ex.ToString());
}
}
}
catch (Exception ex)
{
Logger.Log(ex.ToString(), "Main");
App.Logger.Log(ex.ToString(), "Main");
_ = MessageBox.Show(ex.ToString());
}
@@ -922,18 +941,21 @@ namespace DesktopMagic
private void UpdatePluginsButton_Click(object sender, RoutedEventArgs e)
{
LoadPlugins();
foreach (Window window in Windows)
Task.Run(() =>
{
foreach (Window window in Windows.ToArray())
{
if (window.GetType() == typeof(PluginWindow))
{
((PluginWindow)window).UpdatePluginWindow();
}
}
});
}
private void OpenPluginsFolderButton_Click(object sender, RoutedEventArgs e)
{
_ = System.Diagnostics.Process.Start("explorer.exe", applicationDataPath + "\\Plugins");
_ = Process.Start("explorer.exe", App.ApplicationDataPath + "\\Plugins");
}
private void ScrollViewer_PreviewMouseWheel(object sender, System.Windows.Input.MouseWheelEventArgs e)
@@ -947,19 +969,19 @@ namespace DesktopMagic
{
for (int i = 0; i < 10; i++)
{
this.ShowInTaskbar = true;
this.Visibility = Visibility.Visible;
ShowInTaskbar = true;
Visibility = Visibility.Visible;
SystemCommands.RestoreWindow(this);
this.Topmost = true;
this.Activate();
this.Topmost = false;
Topmost = true;
Activate();
Topmost = false;
}
}
private void SetLanguageDictionary()
{
ResourceDictionary dict = new ResourceDictionary();
string currentCulture = Thread.CurrentThread.CurrentCulture.ToString();
string currentCulture = Thread.CurrentThread.CurrentUICulture.ToString();
if (currentCulture.Contains("de"))
{
@@ -969,7 +991,25 @@ namespace DesktopMagic
{
dict.Source = new Uri("..\\Resources\\StringResources.en.xaml", UriKind.Relative);
}
this.Resources.MergedDictionaries.Add(dict);
Resources.MergedDictionaries.Add(dict);
}
private void GithubButton_Click(object sender, RoutedEventArgs e)
{
string uri = "https://github.com/Stone-Red-Code/DesktopMagic";
ProcessStartInfo psi = new ProcessStartInfo();
psi.UseShellExecute = true;
psi.FileName = uri;
_ = Process.Start(psi);
}
private void DownloadPluginsButton_Click(object sender, RoutedEventArgs e)
{
string uri = "https://github.com/Stone-Red-Code/DesktopMagic-Plugins";
ProcessStartInfo psi = new ProcessStartInfo();
psi.UseShellExecute = true;
psi.FileName = uri;
_ = Process.Start(psi);
}
}
}
+35 -17
View File
@@ -1,5 +1,7 @@
using Microsoft.Win32;
using NAudio.Wave;
using System;
using System.Collections.Generic;
using System.Diagnostics;
@@ -42,7 +44,7 @@ namespace DesktopMagic
};
w.Show();
this.Owner = w;
Owner = w;
w.Hide();
sampleAggregator.FftCalculated += new EventHandler<FftEventArgs>(FftCalculated);
@@ -58,17 +60,17 @@ namespace DesktopMagic
t.Elapsed += T_Elapsed;
t.Start();
key = Registry.CurrentUser.CreateSubKey(@"Software\" + MainWindow.AppName);
key = Registry.CurrentUser.CreateSubKey(@"Software\" + App.AppName);
this.Top = double.Parse(key.GetValue("MusicVisualizerWindowTop", 100).ToString());
Top = double.Parse(key.GetValue("MusicVisualizerWindowTop", 100).ToString());
this.Left = double.Parse(key.GetValue("MusicVisualizerWindowLeft", 100).ToString());
Left = double.Parse(key.GetValue("MusicVisualizerWindowLeft", 100).ToString());
this.Height = double.Parse(key.GetValue("MusicVisualizerWindowHeight", 200).ToString());
Height = double.Parse(key.GetValue("MusicVisualizerWindowHeight", 200).ToString());
this.Width = double.Parse(key.GetValue("MusicVisualizerWindowWidth", 500).ToString());
Width = double.Parse(key.GetValue("MusicVisualizerWindowWidth", 500).ToString());
this.IsEnabled = false;
IsEnabled = false;
}
protected override void OnSourceInitialized(EventArgs e)
@@ -76,7 +78,7 @@ namespace DesktopMagic
base.OnSourceInitialized(e);
//Set the window style to noactivate.
var helper = new WindowInteropHelper(this);
WindowInteropHelper helper = new WindowInteropHelper(this);
WindowPos.SetWindowLong(helper.Handle, WindowPos.GWL_EXSTYLE,
WindowPos.GetWindowLong(helper.Handle, WindowPos.GWL_EXSTYLE) | WindowPos.WS_EX_NOACTIVATE);
}
@@ -88,14 +90,14 @@ namespace DesktopMagic
if (MainWindow.EditMode)
{
panel.Visibility = Visibility.Visible;
new WindowPos().SetIsLocked(this, false);
WindowPos.SetIsLocked(this, false);
}
else
{
panel.Visibility = Visibility.Collapsed;
new WindowPos().SetIsLocked(this, true);
WindowPos.SetIsLocked(this, true);
}
if (!this.IsLoaded)
if (!IsLoaded)
{
calculate = false;
}
@@ -126,7 +128,10 @@ namespace DesktopMagic
private void FftCalculated(object sender, FftEventArgs e)
{
if (!calculate) return;
if (!calculate)
{
return;
}
List<double> fft = new List<double>();
for (int i = 0; i < e.Result.Length / 2 - 70; i++)
@@ -193,8 +198,10 @@ namespace DesktopMagic
for (int j = 0; j < flattenValue; j++)
{
if (i + j < scaledFft.Count)
{
temp += scaledFft[i + j];
}
}
scaledFft[i] = temp / flattenValue;
}
}
@@ -207,8 +214,10 @@ namespace DesktopMagic
for (int j = 0; j < flattenValue; j++)
{
if (i - j >= 0)
{
temp += scaledFft[i - j];
}
}
scaledFft[i] = temp / flattenValue;
}
}
@@ -224,10 +233,14 @@ namespace DesktopMagic
int offset = 0;
if (!MainWindow.MirrorMode && MainWindow.SpectrumMode != 1)
{
scaledFft.Insert(0, 0);
}
if (!MainWindow.LineMode)
{
offset = 1;
}
using (Graphics gr = Graphics.FromImage(bm))
{
@@ -256,8 +269,13 @@ namespace DesktopMagic
}
break;
case 2: points[pointIndex + 1] = new PointF(2 * pointIndex, value); break;
default: points[pointIndex + 1] = new PointF(2 * pointIndex, bm.Height - value - 1 + offset); break;
case 2:
points[pointIndex + 1] = new PointF(2 * pointIndex, value);
break;
default:
points[pointIndex + 1] = new PointF(2 * pointIndex, bm.Height - value - 1 + offset);
break;
}
if (MainWindow.MirrorMode || MainWindow.SpectrumMode == 1)
@@ -364,9 +382,9 @@ namespace DesktopMagic
private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
{
key.SetValue("MusicVisualizerWindowHeight", this.Height);
key.SetValue("MusicVisualizerWindowWidth", this.Width);
tileBar.CaptionHeight = this.ActualHeight - 10;
key.SetValue("MusicVisualizerWindowHeight", Height);
key.SetValue("MusicVisualizerWindowWidth", Width);
tileBar.CaptionHeight = ActualHeight - 10;
}
}
}
+5 -4
View File
@@ -20,9 +20,10 @@ namespace DesktopMagic
public Point WindowPosition => new Point((int)window.Left, (int)window.Top);
public void UpdateWindow()
{
window.UpdatePluginWindow();
}
public string PluginName => window.PluginName;
public string PluginPath => window.PluginFolderPath;
public void UpdateWindow() => window.UpdatePluginWindow();
}
}
+1 -2
View File
@@ -13,12 +13,11 @@
SizeChanged="Window_SizeChanged"
Closing="Window_Closing"
ContentRendered="Window_ContentRendered"
x:Name="window">
<Grid>
<Rectangle x:Name="panel" Fill="#4CBAFFEF" Stroke="White" Margin="0,0,0,0" Visibility="Collapsed" />
<Viewbox StretchDirection="Both" Stretch="Uniform">
<Image x:Name="image" HorizontalAlignment="Left" Margin="0,0,0,0" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5" Stretch="Uniform" MouseDown="Window_MouseDown" MouseMove="Window_MouseMove" />
<Image x:Name="image" HorizontalAlignment="Left" RenderOptions.EdgeMode="Aliased" Margin="0,0,0,0" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5" Stretch="Uniform" MouseDown="Window_MouseDown" MouseMove="Window_MouseMove" MouseWheel="Window_MouseWheel"/>
</Viewbox>
</Grid>
<WindowChrome.WindowChrome>
+135 -90
View File
@@ -1,9 +1,11 @@
using DesktopMagicPluginAPI;
using DesktopMagicPluginAPI.Drawing;
using DesktopMagicPluginAPI.Inputs;
using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
@@ -13,6 +15,7 @@ using System.Threading;
using System.Timers;
using System.Windows;
using System.Windows.Interop;
using System.Windows.Media;
using System.Windows.Media.Imaging;
namespace DesktopMagic
@@ -28,8 +31,8 @@ namespace DesktopMagic
private System.Timers.Timer valueTimer;
private Plugin pluginClassInstance;
private readonly string pluginName = "";
private string pluginFolderPath = "";
public string PluginName { get; private set; }
public string PluginFolderPath { get; private set; }
private bool stop = false;
public event Action PluginLoaded;
@@ -51,7 +54,7 @@ namespace DesktopMagic
ShowInTaskbar = false
};
w.Show();
this.Owner = w;
Owner = w;
w.Hide();
System.Timers.Timer t = new System.Timers.Timer();
@@ -59,13 +62,13 @@ namespace DesktopMagic
t.Elapsed += Elapsed;
t.Start();
this.pluginName = pluginName;
PluginName = pluginName;
key = Registry.CurrentUser.CreateSubKey(@"Software\" + MainWindow.AppName);
this.Top = double.Parse(key.GetValue(pluginName + "WindowTop", 100).ToString());
this.Left = double.Parse(key.GetValue(pluginName + "WindowLeft", 100).ToString());
this.Height = double.Parse(key.GetValue(pluginName + "WindowHeight", 200).ToString());
this.Width = double.Parse(key.GetValue(pluginName + "WindowWidth", 500).ToString());
key = Registry.CurrentUser.CreateSubKey(@"Software\" + App.AppName);
Top = double.Parse(key.GetValue(pluginName + "WindowTop", 100).ToString());
Left = double.Parse(key.GetValue(pluginName + "WindowLeft", 100).ToString());
Height = double.Parse(key.GetValue(pluginName + "WindowHeight", 200).ToString());
Width = double.Parse(key.GetValue(pluginName + "WindowWidth", 500).ToString());
}
protected override void OnSourceInitialized(EventArgs e)
@@ -87,7 +90,10 @@ namespace DesktopMagic
pluginThread.Start();
}
public void UpdatePluginWindow() => ValueTimer_Elapsed(valueTimer, null);
public void UpdatePluginWindow()
{
ValueTimer_Elapsed(valueTimer, null);
}
private void Elapsed(object sender, ElapsedEventArgs e)
{
@@ -96,16 +102,16 @@ namespace DesktopMagic
if (MainWindow.EditMode)
{
panel.Visibility = Visibility.Visible;
new WindowPos().SetIsLocked(this, false);
tileBar.CaptionHeight = tileBar.CaptionHeight = this.ActualHeight - 10 < 0 ? 0 : this.ActualHeight - 10;
this.ResizeMode = ResizeMode.CanResize;
WindowPos.SetIsLocked(this, false);
tileBar.CaptionHeight = tileBar.CaptionHeight = ActualHeight - 10 < 0 ? 0 : ActualHeight - 10;
ResizeMode = ResizeMode.CanResize;
}
else
{
panel.Visibility = Visibility.Collapsed;
new WindowPos().SetIsLocked(this, true);
WindowPos.SetIsLocked(this, true);
tileBar.CaptionHeight = 0;
this.ResizeMode = ResizeMode.NoResize;
ResizeMode = ResizeMode.NoResize;
}
if (stop)
{
@@ -116,63 +122,38 @@ namespace DesktopMagic
private void LoadPlugin()
{
string sourceText;
string PluginPath;
PluginFolderPath = $"{Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)}\\{App.AppName}\\Plugins\\{PluginName}";
pluginFolderPath = $"{Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)}\\{MainWindow.AppName}\\Plugins\\{pluginName}";
if (File.Exists($"{pluginFolderPath}\\{pluginName}.dll"))
if (!File.Exists($"{PluginFolderPath}\\{PluginName}.dll"))
{
PluginPath = $"{pluginFolderPath}\\{pluginName}.dll";
}
else
{
MessageBox.Show("File does not exist!", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
_ = MessageBox.Show("File does not exist!", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
Exit();
return;
}
try
{
sourceText = File.ReadAllText(PluginPath);
ExecuteSource();
}
catch (Exception ex)
{
MainWindow.Logger.Log(ex.ToString(), "Plugin");
MessageBox.Show("File could not be read:\n" + ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
Exit();
return;
}
try
{
ExecuteSource(sourceText);
}
catch (Exception ex)
{
MainWindow.Logger.Log(ex.ToString(), "Plugin");
MessageBox.Show("File execution error:\n" + ex, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
App.Logger.Log(ex.ToString(), "Plugin");
_ = MessageBox.Show("File execution error:\n" + ex, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
Exit();
return;
}
PluginLoaded?.Invoke();
}
private void ExecuteSource(string sourceText)
private void ExecuteSource()
{
byte[] assemblyBytes = File.ReadAllBytes($"{pluginFolderPath}\\{pluginName}.dll");
byte[] assemblyBytes = File.ReadAllBytes($"{PluginFolderPath}\\{PluginName}.dll");
Assembly dll = Assembly.Load(assemblyBytes);
Type instanceType = dll.GetTypes().FirstOrDefault(type => type.GetTypeInfo().BaseType == typeof(Plugin));
foreach (var item in dll.GetTypes())
{
Debug.WriteLine(item.Name);
Debug.WriteLine(typeof(Plugin).Name);
}
if (instanceType is null)
{
MessageBox.Show($"The \"Plugin\" class could not be found! It has to inherit from \"{typeof(Plugin).FullName}\"", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
_ = MessageBox.Show($"The \"Plugin\" class could not be found! It has to inherit from \"{typeof(Plugin).FullName}\"", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
Exit();
return;
}
@@ -185,14 +166,7 @@ namespace DesktopMagic
}
else
{
MessageBox.Show($"The \"Plugin\" class has to inherit from \"{typeof(Plugin).FullName}\"", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
Exit();
return;
}
if (instanceType.Namespace == nameof(DesktopMagic))
{
MessageBox.Show("NO!", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
_ = MessageBox.Show($"The \"Plugin\" class has to inherit from \"{typeof(Plugin).FullName}\"", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
Exit();
return;
}
@@ -203,6 +177,7 @@ namespace DesktopMagic
valueTimer.Interval = 1000;
valueTimer.Elapsed += ValueTimer_Elapsed;
pluginClassInstance.Start();
UpdatePluginWindow();
if (pluginClassInstance.UpdateInterval > 0)
@@ -214,8 +189,9 @@ namespace DesktopMagic
private void LoadOptions(object instance)
{
Debug.WriteLine(instance.GetType().FullName);
FieldInfo[] props = instance.GetType().GetFields(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.GetField);
try
{
FieldInfo[] props = instance.GetType().GetFields(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.GetField);
List<SettingElement> settingElements = new List<SettingElement>();
foreach (FieldInfo prop in props)
@@ -235,30 +211,69 @@ namespace DesktopMagic
}
settingElements = settingElements.OrderBy(x => x.OrderIndex).ToList();
if (MainWindow.PluginsSettings.ContainsKey(pluginName))
if (MainWindow.PluginsSettings.ContainsKey(PluginName))
{
MainWindow.PluginsSettings[pluginName] = settingElements;
MainWindow.PluginsSettings[PluginName] = settingElements;
}
else
{
MainWindow.PluginsSettings.Add(pluginName, settingElements);
MainWindow.PluginsSettings.Add(PluginName, settingElements);
}
}
catch (Exception ex)
{
stop = true;
App.Logger.Log(ex.ToString(), "Plugin");
_ = MessageBox.Show("File execution error:\n" + ex, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
Exit();
return;
}
}
private void ValueTimer_Elapsed(object sender, ElapsedEventArgs e)
{
//Set Arguments
SolidBrush newBrush = (SolidBrush)MainWindow.GlobalSystemColor;
Color color = newBrush.Color;
string font = MainWindow.GlobalFont;
try
{
if (!stop)
{
Bitmap result = pluginClassInstance.Main();
if (pluginClassInstance.UpdateInterval > 0)
{
valueTimer.Interval = pluginClassInstance.UpdateInterval;
}
else
{
valueTimer.Stop();
}
if (result is not null)
{
BitmapScalingMode renderOptions = pluginClassInstance.RenderQuality switch
{
RenderQuality.High => BitmapScalingMode.HighQuality,
RenderQuality.Low => BitmapScalingMode.LowQuality,
RenderQuality.Performance => BitmapScalingMode.NearestNeighbor,
_ => BitmapScalingMode.Unspecified
};
//Update Image
Dispatcher.Invoke(() =>
{
RenderOptions.SetBitmapScalingMode(image, renderOptions);
image.Source = BitmapToImageSource(result);
});
}
}
}
catch (Exception ex)
{
stop = true;
App.Logger.Log(ex.ToString(), "Plugin");
_ = MessageBox.Show("File execution error:\n" + ex, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
Exit();
return;
}
if (stop)
{
@@ -282,8 +297,9 @@ namespace DesktopMagic
return bitmapSource;
}
private void Exit()
public void Exit()
{
stop = true;
Dispatcher.Invoke(() =>
{
OnExit?.Invoke();
@@ -294,15 +310,15 @@ namespace DesktopMagic
private void Window_LocationChanged(object sender, EventArgs e)
{
key.SetValue(pluginName + "WindowTop", this.Top);
key.SetValue(pluginName + "WindowLeft", this.Left);
key.SetValue(PluginName + "WindowTop", Top);
key.SetValue(PluginName + "WindowLeft", Left);
}
private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
{
key.SetValue(pluginName + "WindowHeight", this.Height);
key.SetValue(pluginName + "WindowWidth", this.Width);
tileBar.CaptionHeight = this.ActualHeight - 10;
key.SetValue(PluginName + "WindowHeight", Height);
key.SetValue(PluginName + "WindowWidth", Width);
tileBar.CaptionHeight = ActualHeight - 10;
}
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
@@ -312,28 +328,57 @@ namespace DesktopMagic
private void Window_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
Clicked(new System.Drawing.Point((int)e.GetPosition(this).X, (int)e.GetPosition(this).Y));
ImageSource imageSource = image.Source;
BitmapSource bitmapImage = (BitmapSource)imageSource;
double pixelMousePositionX = e.GetPosition(image).X * bitmapImage.PixelWidth / image.ActualHeight;
double pixelMousePositionY = e.GetPosition(image).Y * bitmapImage.PixelHeight / image.ActualHeight;
MouseButton mouseButton;
switch (e.ChangedButton)
{
case System.Windows.Input.MouseButton.Left:
mouseButton = MouseButton.Left;
break;
case System.Windows.Input.MouseButton.Middle:
mouseButton = MouseButton.Middle;
break;
case System.Windows.Input.MouseButton.Right:
mouseButton = MouseButton.Right;
break;
default:
return;
};
System.Drawing.Point point = new System.Drawing.Point((int)pixelMousePositionX, (int)pixelMousePositionY);
pluginClassInstance.OnMouseClick(point, mouseButton);
}
private void Window_MouseMove(object sender, System.Windows.Input.MouseEventArgs e)
{
Moved(new System.Drawing.Point((int)e.GetPosition(this).X, (int)e.GetPosition(this).Y));
ImageSource imageSource = image.Source;
BitmapSource bitmapImage = (BitmapSource)imageSource;
double pixelMousePositionX = e.GetPosition(image).X * bitmapImage.PixelWidth / image.ActualHeight;
double pixelMousePositionY = e.GetPosition(image).Y * bitmapImage.PixelHeight / image.ActualHeight;
System.Drawing.Point point = new System.Drawing.Point((int)pixelMousePositionX, (int)pixelMousePositionY);
pluginClassInstance.OnMouseMove(point);
}
private void Window_MouseWheel(object sender, System.Windows.Input.MouseWheelEventArgs e)
{
ImageSource imageSource = image.Source;
BitmapSource bitmapImage = (BitmapSource)imageSource;
double pixelMousePositionX = e.GetPosition(image).X * bitmapImage.PixelWidth / image.ActualHeight;
double pixelMousePositionY = e.GetPosition(image).Y * bitmapImage.PixelHeight / image.ActualHeight;
System.Drawing.Point point = new System.Drawing.Point((int)pixelMousePositionX, (int)pixelMousePositionY);
pluginClassInstance.OnMouseWheel(point, e.Delta);
}
#endregion Window Events
#region Plugin Methods
private void Clicked(System.Drawing.Point positon)
{
pluginClassInstance.OnMouseClick(positon);
}
private void Moved(System.Drawing.Point positon)
{
pluginClassInstance.OnMouseMove(positon);
}
#endregion Plugin Methods
}
}
@@ -7,6 +7,7 @@
<system:String x:Key="mirrorPlugine">Spiegeln</system:String>
<system:String x:Key="updatePlugins">Plugins Neu Laden</system:String>
<system:String x:Key="openPluginsFolder">Plugins Ordner Öffnen</system:String>
<system:String x:Key="downloadPlugins">Plugins Herunterladen</system:String>
<system:String x:Key="color">Farbe:</system:String>
<system:String x:Key="default">Standard</system:String>
<system:String x:Key="wantToCloseProgram">Wollen sie das Programm wirklich schließen?</system:String>
@@ -23,6 +24,7 @@
<system:String x:Key="deleteLayout">Layout Löschen</system:String>
<system:String x:Key="ok">Ok</system:String>
<system:String x:Key="cancel">Abbrechen</system:String>
<system:String x:Key="enterLayoutName">Layoutnamen eingeben:</system:String>
<col:ArrayList x:Key="musicVisualizerOptionsComboboxItems">
<system:String>Unten</system:String>
<system:String>Mitte</system:String>
@@ -7,6 +7,7 @@
<system:String x:Key="mirrorPlugine">Mirror</system:String>
<system:String x:Key="updatePlugins">Reload Plugins</system:String>
<system:String x:Key="openPluginsFolder">Open Plugins Folder</system:String>
<system:String x:Key="downloadPlugins">Download Plugins</system:String>
<system:String x:Key="color">Color:</system:String>
<system:String x:Key="default">Default</system:String>
<system:String x:Key="wantToCloseProgram">Do you really want to close the program?</system:String>
@@ -23,6 +24,7 @@
<system:String x:Key="deleteLayout">Delete Layout</system:String>
<system:String x:Key="ok">Ok</system:String>
<system:String x:Key="cancel">Cancel</system:String>
<system:String x:Key="enterLayoutName">Enter layout name</system:String>
<col:ArrayList x:Key="musicVisualizerOptionsComboboxItems">
<system:String>Bottom</system:String>
<system:String>Middle</system:String>
+16 -15
View File
@@ -1,4 +1,5 @@
using Microsoft.Win32;
using System;
using System.Timers;
using System.Windows;
@@ -27,7 +28,7 @@ namespace DesktopMagic
w.WindowStyle = WindowStyle.ToolWindow;
w.ShowInTaskbar = false;
w.Show();
this.Owner = w;
Owner = w;
w.Hide();
Timer t = new Timer();
@@ -35,12 +36,12 @@ namespace DesktopMagic
t.Elapsed += T_Elapsed;
t.Start();
key = Registry.CurrentUser.CreateSubKey(@"Software\" + MainWindow.AppName);
this.Top = double.Parse(key.GetValue("TimeWindowTop", 100).ToString());
this.Left = double.Parse(key.GetValue("TimeWindowLeft", 100).ToString());
this.Height = double.Parse(key.GetValue("TimeWindowHeight", 200).ToString());
this.Width = double.Parse(key.GetValue("TimeWindowWidth", 500).ToString());
this.IsEnabled = false;
key = Registry.CurrentUser.CreateSubKey(@"Software\" + App.AppName);
Top = double.Parse(key.GetValue("TimeWindowTop", 100).ToString());
Left = double.Parse(key.GetValue("TimeWindowLeft", 100).ToString());
Height = double.Parse(key.GetValue("TimeWindowHeight", 200).ToString());
Width = double.Parse(key.GetValue("TimeWindowWidth", 500).ToString());
IsEnabled = false;
}
protected override void OnSourceInitialized(EventArgs e)
@@ -48,7 +49,7 @@ namespace DesktopMagic
base.OnSourceInitialized(e);
//Set the window style to noactivate.
var helper = new WindowInteropHelper(this);
WindowInteropHelper helper = new WindowInteropHelper(this);
WindowPos.SetWindowLong(helper.Handle, WindowPos.GWL_EXSTYLE,
WindowPos.GetWindowLong(helper.Handle, WindowPos.GWL_EXSTYLE) | WindowPos.WS_EX_NOACTIVATE);
}
@@ -60,12 +61,12 @@ namespace DesktopMagic
if (MainWindow.EditMode)
{
panel.Visibility = Visibility.Visible;
new WindowPos().SetIsLocked(this, false);
WindowPos.SetIsLocked(this, false);
}
else
{
panel.Visibility = Visibility.Collapsed;
new WindowPos().SetIsLocked(this, true);
WindowPos.SetIsLocked(this, true);
}
textBlock.FontFamily = new FontFamily(MainWindow.GlobalFont);
@@ -77,15 +78,15 @@ namespace DesktopMagic
private void Window_LocationChanged(object sender, EventArgs e)
{
key.SetValue("TimeWindowTop", this.Top);
key.SetValue("TimeWindowLeft", this.Left);
key.SetValue("TimeWindowTop", Top);
key.SetValue("TimeWindowLeft", Left);
}
private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
{
key.SetValue("TimeWindowHeight", this.Height);
key.SetValue("TimeWindowWidth", this.Width);
tileBar.CaptionHeight = this.ActualHeight - 10;
key.SetValue("TimeWindowHeight", Height);
key.SetValue("TimeWindowWidth", Width);
tileBar.CaptionHeight = ActualHeight - 10;
}
}
}
+2 -2
View File
@@ -40,7 +40,7 @@ namespace DesktopMagic
[DllImport("user32.dll")]
private static extern int GetWindowRect(IntPtr hwnd, out Rectangle rect);
public void SendWpfWindowBack(Window window)
public static void SendWpfWindowBack(Window window)
{
var hWnd = new WindowInteropHelper(window).Handle;
SetWindowPos(hWnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOSIZE1 | SWP_NOMOVE1);
@@ -51,7 +51,7 @@ namespace DesktopMagic
return (bool)obj.GetValue(IsLockedProperty);
}
public void SetIsLocked(DependencyObject obj, bool value)
public static void SetIsLocked(DependencyObject obj, bool value)
{
obj.SetValue(IsLockedProperty, value);
}
@@ -1,523 +0,0 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v5.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v5.0": {
"DesktopMagic/1.0.0": {
"dependencies": {
"DesktopMagicPluginAPI": "0.0.0.1",
"Extended.Wpf.Toolkit": "4.1.0",
"Google.Apis.Calendar.v3": "1.51.0.2312",
"Hardcodet.NotifyIcon.Wpf": "1.1.0",
"MaterialDesignThemes": "4.0.0",
"NAudio": "2.0.0",
"Stone_Red-C-Sharp-Utilities": "1.0.2.1",
"System.Management": "5.0.0"
},
"runtime": {
"DesktopMagic.dll": {}
}
},
"Extended.Wpf.Toolkit/4.1.0": {
"runtime": {
"lib/net40/Xceed.Wpf.AvalonDock.Themes.Aero.dll": {
"assemblyVersion": "4.1.0.0",
"fileVersion": "4.1.0.0"
},
"lib/net40/Xceed.Wpf.AvalonDock.Themes.Metro.dll": {
"assemblyVersion": "4.1.0.0",
"fileVersion": "4.1.0.0"
},
"lib/net40/Xceed.Wpf.AvalonDock.Themes.VS2010.dll": {
"assemblyVersion": "4.1.0.0",
"fileVersion": "4.1.0.0"
},
"lib/net40/Xceed.Wpf.AvalonDock.dll": {
"assemblyVersion": "4.1.0.0",
"fileVersion": "4.1.0.0"
},
"lib/net40/Xceed.Wpf.Toolkit.dll": {
"assemblyVersion": "4.1.0.0",
"fileVersion": "4.1.0.0"
}
},
"resources": {
"lib/net40/cs-CZ/Xceed.Wpf.AvalonDock.resources.dll": {
"locale": "cs-CZ"
},
"lib/net40/de/Xceed.Wpf.AvalonDock.resources.dll": {
"locale": "de"
},
"lib/net40/es/Xceed.Wpf.AvalonDock.resources.dll": {
"locale": "es"
},
"lib/net40/fr/Xceed.Wpf.AvalonDock.resources.dll": {
"locale": "fr"
},
"lib/net40/hu/Xceed.Wpf.AvalonDock.resources.dll": {
"locale": "hu"
},
"lib/net40/it/Xceed.Wpf.AvalonDock.resources.dll": {
"locale": "it"
},
"lib/net40/ja-JP/Xceed.Wpf.AvalonDock.resources.dll": {
"locale": "ja-JP"
},
"lib/net40/pt-BR/Xceed.Wpf.AvalonDock.resources.dll": {
"locale": "pt-BR"
},
"lib/net40/ro/Xceed.Wpf.AvalonDock.resources.dll": {
"locale": "ro"
},
"lib/net40/ru/Xceed.Wpf.AvalonDock.resources.dll": {
"locale": "ru"
},
"lib/net40/sv/Xceed.Wpf.AvalonDock.resources.dll": {
"locale": "sv"
},
"lib/net40/zh-Hans/Xceed.Wpf.AvalonDock.resources.dll": {
"locale": "zh-Hans"
}
}
},
"Google.Apis/1.51.0": {
"dependencies": {
"Google.Apis.Core": "1.51.0"
},
"runtime": {
"lib/netstandard2.0/Google.Apis.dll": {
"assemblyVersion": "1.51.0.0",
"fileVersion": "1.51.0.0"
}
}
},
"Google.Apis.Auth/1.51.0": {
"dependencies": {
"Google.Apis": "1.51.0",
"Google.Apis.Core": "1.51.0"
},
"runtime": {
"lib/netstandard2.0/Google.Apis.Auth.PlatformServices.dll": {
"assemblyVersion": "1.51.0.0",
"fileVersion": "1.51.0.0"
},
"lib/netstandard2.0/Google.Apis.Auth.dll": {
"assemblyVersion": "1.51.0.0",
"fileVersion": "1.51.0.0"
}
}
},
"Google.Apis.Calendar.v3/1.51.0.2312": {
"dependencies": {
"Google.Apis": "1.51.0",
"Google.Apis.Auth": "1.51.0"
},
"runtime": {
"lib/netstandard2.0/Google.Apis.Calendar.v3.dll": {
"assemblyVersion": "1.51.0.2312",
"fileVersion": "1.51.0.2312"
}
}
},
"Google.Apis.Core/1.51.0": {
"dependencies": {
"Newtonsoft.Json": "12.0.3"
},
"runtime": {
"lib/netstandard2.0/Google.Apis.Core.dll": {
"assemblyVersion": "1.51.0.0",
"fileVersion": "1.51.0.0"
}
}
},
"Hardcodet.NotifyIcon.Wpf/1.1.0": {
"runtime": {
"lib/net5.0-windows7.0/Hardcodet.NotifyIcon.Wpf.dll": {
"assemblyVersion": "1.1.0.0",
"fileVersion": "1.1.0.17"
}
}
},
"MaterialDesignColors/2.0.0": {
"runtime": {
"lib/netcoreapp3.1/MaterialDesignColors.dll": {
"assemblyVersion": "2.0.0.2422",
"fileVersion": "2.0.0.2422"
}
}
},
"MaterialDesignThemes/4.0.0": {
"dependencies": {
"MaterialDesignColors": "2.0.0"
},
"runtime": {
"lib/netcoreapp3.1/MaterialDesignThemes.Wpf.dll": {
"assemblyVersion": "4.0.0.2422",
"fileVersion": "4.0.0.2422"
}
}
},
"Microsoft.NETCore.Platforms/5.0.0": {},
"Microsoft.Win32.Registry/5.0.0": {
"dependencies": {
"System.Security.AccessControl": "5.0.0",
"System.Security.Principal.Windows": "5.0.0"
}
},
"Microsoft.Win32.SystemEvents/5.0.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "5.0.0"
}
},
"NAudio/2.0.0": {
"dependencies": {
"NAudio.Asio": "2.0.0",
"NAudio.Core": "2.0.0",
"NAudio.Midi": "2.0.0",
"NAudio.Wasapi": "2.0.0",
"NAudio.WinForms": "2.0.0",
"NAudio.WinMM": "2.0.0"
},
"runtime": {
"lib/netstandard2.0/NAudio.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.0.0.0"
}
}
},
"NAudio.Asio/2.0.0": {
"dependencies": {
"Microsoft.Win32.Registry": "5.0.0",
"NAudio.Core": "2.0.0"
},
"runtime": {
"lib/netstandard2.0/NAudio.Asio.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.0.0.0"
}
}
},
"NAudio.Core/2.0.0": {
"runtime": {
"lib/netstandard2.0/NAudio.Core.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.0.0.0"
}
}
},
"NAudio.Midi/2.0.0": {
"dependencies": {
"NAudio.Core": "2.0.0"
},
"runtime": {
"lib/netstandard2.0/NAudio.Midi.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.0.0.0"
}
}
},
"NAudio.Wasapi/2.0.0": {
"dependencies": {
"NAudio.Core": "2.0.0"
},
"runtime": {
"lib/netstandard2.0/NAudio.Wasapi.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.0.0.0"
}
}
},
"NAudio.WinForms/2.0.0": {
"dependencies": {
"NAudio.WinMM": "2.0.0"
},
"runtime": {
"lib/netcoreapp3.1/NAudio.WinForms.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.0.0.0"
}
}
},
"NAudio.WinMM/2.0.0": {
"dependencies": {
"Microsoft.Win32.Registry": "5.0.0",
"NAudio.Core": "2.0.0"
},
"runtime": {
"lib/netstandard2.0/NAudio.WinMM.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.0.0.0"
}
}
},
"Newtonsoft.Json/12.0.3": {
"runtime": {
"lib/netstandard2.0/Newtonsoft.Json.dll": {
"assemblyVersion": "12.0.0.0",
"fileVersion": "12.0.3.23909"
}
}
},
"Stone_Red-C-Sharp-Utilities/1.0.2.1": {
"runtime": {
"lib/netstandard2.1/Stone_Red-C-Sharp-Utilities.dll": {
"assemblyVersion": "1.0.2.1",
"fileVersion": "1.0.2.1"
}
}
},
"System.CodeDom/5.0.0": {},
"System.Drawing.Common/5.0.2": {
"dependencies": {
"Microsoft.Win32.SystemEvents": "5.0.0"
},
"runtime": {
"lib/netcoreapp3.0/System.Drawing.Common.dll": {
"assemblyVersion": "5.0.0.2",
"fileVersion": "5.0.421.11614"
}
},
"runtimeTargets": {
"runtimes/unix/lib/netcoreapp3.0/System.Drawing.Common.dll": {
"rid": "unix",
"assetType": "runtime",
"assemblyVersion": "5.0.0.2",
"fileVersion": "5.0.421.11614"
},
"runtimes/win/lib/netcoreapp3.0/System.Drawing.Common.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "5.0.0.2",
"fileVersion": "5.0.421.11614"
}
}
},
"System.Management/5.0.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "5.0.0",
"Microsoft.Win32.Registry": "5.0.0",
"System.CodeDom": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/System.Management.dll": {
"assemblyVersion": "4.0.0.0",
"fileVersion": "5.0.20.51904"
}
},
"runtimeTargets": {
"runtimes/win/lib/netcoreapp2.0/System.Management.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "4.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"System.Security.AccessControl/5.0.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "5.0.0",
"System.Security.Principal.Windows": "5.0.0"
}
},
"System.Security.Principal.Windows/5.0.0": {},
"DesktopMagicPluginAPI/0.0.0.1": {
"dependencies": {
"System.Drawing.Common": "5.0.2"
},
"runtime": {
"DesktopMagicPluginAPI.dll": {}
}
}
}
},
"libraries": {
"DesktopMagic/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Extended.Wpf.Toolkit/4.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-wXyuHE2ut8OIDUgi1dfyX1qVDQClc4ARmM9yfB0MAshudfaWhtXedWR34zSCIN2gu7CPzE3+u9iLvBv5uBxROg==",
"path": "extended.wpf.toolkit/4.1.0",
"hashPath": "extended.wpf.toolkit.4.1.0.nupkg.sha512"
},
"Google.Apis/1.51.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-4QL7S1PnDN/VumfzrLOGw8tiFLYRL/oPVQkCuIVltAh/gSPWxLu7UFZeum4S3B/ry7794Wigg53jclLlYX/haQ==",
"path": "google.apis/1.51.0",
"hashPath": "google.apis.1.51.0.nupkg.sha512"
},
"Google.Apis.Auth/1.51.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-rwyLkiXev6esCRXq+srUcEb8zWylNg7eyE9zO8GxiQplrn1+Jhn8WlwhyJ/xXM83Mrd7Fi0p/UpnOo+m8NBI2g==",
"path": "google.apis.auth/1.51.0",
"hashPath": "google.apis.auth.1.51.0.nupkg.sha512"
},
"Google.Apis.Calendar.v3/1.51.0.2312": {
"type": "package",
"serviceable": true,
"sha512": "sha512-8iskPPgvvZ3VtGhWIjeP9R5ouQasGMUj66Z5G5VHLfriKIVm+MTqyC6XGYTxjeJhXYU6yRQLnNk8f6fAFYxb2A==",
"path": "google.apis.calendar.v3/1.51.0.2312",
"hashPath": "google.apis.calendar.v3.1.51.0.2312.nupkg.sha512"
},
"Google.Apis.Core/1.51.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-2HBwN81SB5DBI/TKbJr6y6u2I5sBlLxUHYUkc26Y4FSFachdDlWISZZreO0AVKdJrHsbmKDhHdqkRjkLSGeiNw==",
"path": "google.apis.core/1.51.0",
"hashPath": "google.apis.core.1.51.0.nupkg.sha512"
},
"Hardcodet.NotifyIcon.Wpf/1.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-FFEkdRSidMrbMfQVwhCzq6KtSyR1qQojqtiUrkCyjnOOuMf7W3TNQkzFnBBxYxFe7uLk5mz7M38wFh1qdWyfvg==",
"path": "hardcodet.notifyicon.wpf/1.1.0",
"hashPath": "hardcodet.notifyicon.wpf.1.1.0.nupkg.sha512"
},
"MaterialDesignColors/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-+JoghC3QRK0u9Wul1To1ORjcfTbFTVzFPjJ02H7VREOdNzIIn427e8G9gP9hXu9pm1r2OneLnoCG/lTma5cG2w==",
"path": "materialdesigncolors/2.0.0",
"hashPath": "materialdesigncolors.2.0.0.nupkg.sha512"
},
"MaterialDesignThemes/4.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-+n5oWHuRiYL/gUw2XfQHCRZqHtU8KbrdurgU0IcO98Zsyhw4BvggodfXY8veRtbjjmM9EJ/sG2yKBrgPOGX4JQ==",
"path": "materialdesignthemes/4.0.0",
"hashPath": "materialdesignthemes.4.0.0.nupkg.sha512"
},
"Microsoft.NETCore.Platforms/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==",
"path": "microsoft.netcore.platforms/5.0.0",
"hashPath": "microsoft.netcore.platforms.5.0.0.nupkg.sha512"
},
"Microsoft.Win32.Registry/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==",
"path": "microsoft.win32.registry/5.0.0",
"hashPath": "microsoft.win32.registry.5.0.0.nupkg.sha512"
},
"Microsoft.Win32.SystemEvents/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Bh6blKG8VAKvXiLe2L+sEsn62nc1Ij34MrNxepD2OCrS5cpCwQa9MeLyhVQPQ/R4Wlzwuy6wMK8hLb11QPDRsQ==",
"path": "microsoft.win32.systemevents/5.0.0",
"hashPath": "microsoft.win32.systemevents.5.0.0.nupkg.sha512"
},
"NAudio/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ZjQfWM3jBTpdHWApsbBP3Mb3ZvXZ2eK6MWED9YeuXwbR+Kfz5M5lHdLTVADAqOHyBDqSnvwFsQCAWWRfuGeG3w==",
"path": "naudio/2.0.0",
"hashPath": "naudio.2.0.0.nupkg.sha512"
},
"NAudio.Asio/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-/Pd51zAS2L3+MK/dJ5VrInz6ggHUie9j1qCXysXL3Vj53p9A2RxjpIZafuyba2ZdeMKaOMOHXdtkUqFdKqVMQg==",
"path": "naudio.asio/2.0.0",
"hashPath": "naudio.asio.2.0.0.nupkg.sha512"
},
"NAudio.Core/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-knmGOIYbzn9ZGkFcVs5d3zEYvi50jVriyEirVtAHjkcDoo2ziK32bZb7KkFARLD4lhCGkqp6uT0+0fc4JIfQcw==",
"path": "naudio.core/2.0.0",
"hashPath": "naudio.core.2.0.0.nupkg.sha512"
},
"NAudio.Midi/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-25/wjDvc/SX8jHb/+F6+lzz7FRFiSujl9N6qq1KcFqfBFS6K1KtdclaZz+01B9PErwQUoraGCdruhiad6tYBvQ==",
"path": "naudio.midi/2.0.0",
"hashPath": "naudio.midi.2.0.0.nupkg.sha512"
},
"NAudio.Wasapi/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-7ES+jfZyOooBp86gql9BZ/OjKFmGfLaSLCtJagtCYiRGxfauHp4hXyeuwxS2mPLBxBGxBo9oGThN6y3QY+/w/w==",
"path": "naudio.wasapi/2.0.0",
"hashPath": "naudio.wasapi.2.0.0.nupkg.sha512"
},
"NAudio.WinForms/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-j65uncDKEhTh4z1IejmtnNhPBA4y6V9zEGnsLA3mm3JzX2e3flmL5UMadQUdx83UlmtF/8t5ichcmUhSGhrQHg==",
"path": "naudio.winforms/2.0.0",
"hashPath": "naudio.winforms.2.0.0.nupkg.sha512"
},
"NAudio.WinMM/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Q1trk5d9cdSRJSK/PXceUgpwIH7FivxkiE4nzmk0rl3qSM4ViHcpc2Fe/W1VUz2dHtGwOqOwpgSch7LHv7F48A==",
"path": "naudio.winmm/2.0.0",
"hashPath": "naudio.winmm.2.0.0.nupkg.sha512"
},
"Newtonsoft.Json/12.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-6mgjfnRB4jKMlzHSl+VD+oUc1IebOZabkbyWj2RiTgWwYPPuaK1H97G1sHqGwPlS5npiF5Q0OrxN1wni2n5QWg==",
"path": "newtonsoft.json/12.0.3",
"hashPath": "newtonsoft.json.12.0.3.nupkg.sha512"
},
"Stone_Red-C-Sharp-Utilities/1.0.2.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-QzwH0QvsDiBvCJTFroZBhN/pMEIiz0C8TNkQci+pxCbnjfTtVkxAYsgmlshCl5oHFJh7VYDLcGAULcMBARSb+w==",
"path": "stone_red-c-sharp-utilities/1.0.2.1",
"hashPath": "stone_red-c-sharp-utilities.1.0.2.1.nupkg.sha512"
},
"System.CodeDom/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-JPJArwA1kdj8qDAkY2XGjSWoYnqiM7q/3yRNkt6n28Mnn95MuEGkZXUbPBf7qc3IjwrGY5ttQon7yqHZyQJmOQ==",
"path": "system.codedom/5.0.0",
"hashPath": "system.codedom.5.0.0.nupkg.sha512"
},
"System.Drawing.Common/5.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-rvr/M1WPf24ljpvvrVd74+NdjRUJu1bBkspkZcnzSZnmAUQWSvanlQ0k/hVHk+cHufZbZfu7vOh/vYc0q5Uu/A==",
"path": "system.drawing.common/5.0.2",
"hashPath": "system.drawing.common.5.0.2.nupkg.sha512"
},
"System.Management/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-MF1CHaRcC+MLFdnDthv4/bKWBZnlnSpkGqa87pKukQefgEdwtb9zFW6zs0GjPp73qtpYYg4q6PEKbzJbxCpKfw==",
"path": "system.management/5.0.0",
"hashPath": "system.management.5.0.0.nupkg.sha512"
},
"System.Security.AccessControl/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==",
"path": "system.security.accesscontrol/5.0.0",
"hashPath": "system.security.accesscontrol.5.0.0.nupkg.sha512"
},
"System.Security.Principal.Windows/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==",
"path": "system.security.principal.windows/5.0.0",
"hashPath": "system.security.principal.windows.5.0.0.nupkg.sha512"
},
"DesktopMagicPluginAPI/0.0.0.1": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}
@@ -1,9 +0,0 @@
{
"runtimeOptions": {
"additionalProbingPaths": [
"C:\\Users\\David\\.dotnet\\store\\|arch|\\|tfm|",
"C:\\Users\\David\\.nuget\\packages",
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
]
}
}
@@ -1,9 +0,0 @@
{
"runtimeOptions": {
"tfm": "net5.0",
"framework": {
"name": "Microsoft.WindowsDesktop.App",
"version": "5.0.0"
}
}
}
Binary file not shown.
@@ -1,523 +0,0 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v5.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v5.0": {
"DesktopMagic/1.0.0": {
"dependencies": {
"DesktopMagicPluginAPI": "0.0.0.2",
"Extended.Wpf.Toolkit": "4.1.0",
"Google.Apis.Calendar.v3": "1.51.0.2312",
"Hardcodet.NotifyIcon.Wpf": "1.1.0",
"MaterialDesignThemes": "4.0.0",
"NAudio": "2.0.0",
"Stone_Red-C-Sharp-Utilities": "1.0.2.1",
"System.Management": "5.0.0"
},
"runtime": {
"DesktopMagic.dll": {}
}
},
"Extended.Wpf.Toolkit/4.1.0": {
"runtime": {
"lib/net40/Xceed.Wpf.AvalonDock.Themes.Aero.dll": {
"assemblyVersion": "4.1.0.0",
"fileVersion": "4.1.0.0"
},
"lib/net40/Xceed.Wpf.AvalonDock.Themes.Metro.dll": {
"assemblyVersion": "4.1.0.0",
"fileVersion": "4.1.0.0"
},
"lib/net40/Xceed.Wpf.AvalonDock.Themes.VS2010.dll": {
"assemblyVersion": "4.1.0.0",
"fileVersion": "4.1.0.0"
},
"lib/net40/Xceed.Wpf.AvalonDock.dll": {
"assemblyVersion": "4.1.0.0",
"fileVersion": "4.1.0.0"
},
"lib/net40/Xceed.Wpf.Toolkit.dll": {
"assemblyVersion": "4.1.0.0",
"fileVersion": "4.1.0.0"
}
},
"resources": {
"lib/net40/cs-CZ/Xceed.Wpf.AvalonDock.resources.dll": {
"locale": "cs-CZ"
},
"lib/net40/de/Xceed.Wpf.AvalonDock.resources.dll": {
"locale": "de"
},
"lib/net40/es/Xceed.Wpf.AvalonDock.resources.dll": {
"locale": "es"
},
"lib/net40/fr/Xceed.Wpf.AvalonDock.resources.dll": {
"locale": "fr"
},
"lib/net40/hu/Xceed.Wpf.AvalonDock.resources.dll": {
"locale": "hu"
},
"lib/net40/it/Xceed.Wpf.AvalonDock.resources.dll": {
"locale": "it"
},
"lib/net40/ja-JP/Xceed.Wpf.AvalonDock.resources.dll": {
"locale": "ja-JP"
},
"lib/net40/pt-BR/Xceed.Wpf.AvalonDock.resources.dll": {
"locale": "pt-BR"
},
"lib/net40/ro/Xceed.Wpf.AvalonDock.resources.dll": {
"locale": "ro"
},
"lib/net40/ru/Xceed.Wpf.AvalonDock.resources.dll": {
"locale": "ru"
},
"lib/net40/sv/Xceed.Wpf.AvalonDock.resources.dll": {
"locale": "sv"
},
"lib/net40/zh-Hans/Xceed.Wpf.AvalonDock.resources.dll": {
"locale": "zh-Hans"
}
}
},
"Google.Apis/1.51.0": {
"dependencies": {
"Google.Apis.Core": "1.51.0"
},
"runtime": {
"lib/netstandard2.0/Google.Apis.dll": {
"assemblyVersion": "1.51.0.0",
"fileVersion": "1.51.0.0"
}
}
},
"Google.Apis.Auth/1.51.0": {
"dependencies": {
"Google.Apis": "1.51.0",
"Google.Apis.Core": "1.51.0"
},
"runtime": {
"lib/netstandard2.0/Google.Apis.Auth.PlatformServices.dll": {
"assemblyVersion": "1.51.0.0",
"fileVersion": "1.51.0.0"
},
"lib/netstandard2.0/Google.Apis.Auth.dll": {
"assemblyVersion": "1.51.0.0",
"fileVersion": "1.51.0.0"
}
}
},
"Google.Apis.Calendar.v3/1.51.0.2312": {
"dependencies": {
"Google.Apis": "1.51.0",
"Google.Apis.Auth": "1.51.0"
},
"runtime": {
"lib/netstandard2.0/Google.Apis.Calendar.v3.dll": {
"assemblyVersion": "1.51.0.2312",
"fileVersion": "1.51.0.2312"
}
}
},
"Google.Apis.Core/1.51.0": {
"dependencies": {
"Newtonsoft.Json": "12.0.3"
},
"runtime": {
"lib/netstandard2.0/Google.Apis.Core.dll": {
"assemblyVersion": "1.51.0.0",
"fileVersion": "1.51.0.0"
}
}
},
"Hardcodet.NotifyIcon.Wpf/1.1.0": {
"runtime": {
"lib/net5.0-windows7.0/Hardcodet.NotifyIcon.Wpf.dll": {
"assemblyVersion": "1.1.0.0",
"fileVersion": "1.1.0.17"
}
}
},
"MaterialDesignColors/2.0.0": {
"runtime": {
"lib/netcoreapp3.1/MaterialDesignColors.dll": {
"assemblyVersion": "2.0.0.2422",
"fileVersion": "2.0.0.2422"
}
}
},
"MaterialDesignThemes/4.0.0": {
"dependencies": {
"MaterialDesignColors": "2.0.0"
},
"runtime": {
"lib/netcoreapp3.1/MaterialDesignThemes.Wpf.dll": {
"assemblyVersion": "4.0.0.2422",
"fileVersion": "4.0.0.2422"
}
}
},
"Microsoft.NETCore.Platforms/5.0.0": {},
"Microsoft.Win32.Registry/5.0.0": {
"dependencies": {
"System.Security.AccessControl": "5.0.0",
"System.Security.Principal.Windows": "5.0.0"
}
},
"Microsoft.Win32.SystemEvents/5.0.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "5.0.0"
}
},
"NAudio/2.0.0": {
"dependencies": {
"NAudio.Asio": "2.0.0",
"NAudio.Core": "2.0.0",
"NAudio.Midi": "2.0.0",
"NAudio.Wasapi": "2.0.0",
"NAudio.WinForms": "2.0.0",
"NAudio.WinMM": "2.0.0"
},
"runtime": {
"lib/netstandard2.0/NAudio.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.0.0.0"
}
}
},
"NAudio.Asio/2.0.0": {
"dependencies": {
"Microsoft.Win32.Registry": "5.0.0",
"NAudio.Core": "2.0.0"
},
"runtime": {
"lib/netstandard2.0/NAudio.Asio.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.0.0.0"
}
}
},
"NAudio.Core/2.0.0": {
"runtime": {
"lib/netstandard2.0/NAudio.Core.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.0.0.0"
}
}
},
"NAudio.Midi/2.0.0": {
"dependencies": {
"NAudio.Core": "2.0.0"
},
"runtime": {
"lib/netstandard2.0/NAudio.Midi.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.0.0.0"
}
}
},
"NAudio.Wasapi/2.0.0": {
"dependencies": {
"NAudio.Core": "2.0.0"
},
"runtime": {
"lib/netstandard2.0/NAudio.Wasapi.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.0.0.0"
}
}
},
"NAudio.WinForms/2.0.0": {
"dependencies": {
"NAudio.WinMM": "2.0.0"
},
"runtime": {
"lib/netcoreapp3.1/NAudio.WinForms.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.0.0.0"
}
}
},
"NAudio.WinMM/2.0.0": {
"dependencies": {
"Microsoft.Win32.Registry": "5.0.0",
"NAudio.Core": "2.0.0"
},
"runtime": {
"lib/netstandard2.0/NAudio.WinMM.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.0.0.0"
}
}
},
"Newtonsoft.Json/12.0.3": {
"runtime": {
"lib/netstandard2.0/Newtonsoft.Json.dll": {
"assemblyVersion": "12.0.0.0",
"fileVersion": "12.0.3.23909"
}
}
},
"Stone_Red-C-Sharp-Utilities/1.0.2.1": {
"runtime": {
"lib/netstandard2.1/Stone_Red-C-Sharp-Utilities.dll": {
"assemblyVersion": "1.0.2.1",
"fileVersion": "1.0.2.1"
}
}
},
"System.CodeDom/5.0.0": {},
"System.Drawing.Common/5.0.2": {
"dependencies": {
"Microsoft.Win32.SystemEvents": "5.0.0"
},
"runtime": {
"lib/netcoreapp3.0/System.Drawing.Common.dll": {
"assemblyVersion": "5.0.0.2",
"fileVersion": "5.0.421.11614"
}
},
"runtimeTargets": {
"runtimes/unix/lib/netcoreapp3.0/System.Drawing.Common.dll": {
"rid": "unix",
"assetType": "runtime",
"assemblyVersion": "5.0.0.2",
"fileVersion": "5.0.421.11614"
},
"runtimes/win/lib/netcoreapp3.0/System.Drawing.Common.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "5.0.0.2",
"fileVersion": "5.0.421.11614"
}
}
},
"System.Management/5.0.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "5.0.0",
"Microsoft.Win32.Registry": "5.0.0",
"System.CodeDom": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/System.Management.dll": {
"assemblyVersion": "4.0.0.0",
"fileVersion": "5.0.20.51904"
}
},
"runtimeTargets": {
"runtimes/win/lib/netcoreapp2.0/System.Management.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "4.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"System.Security.AccessControl/5.0.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "5.0.0",
"System.Security.Principal.Windows": "5.0.0"
}
},
"System.Security.Principal.Windows/5.0.0": {},
"DesktopMagicPluginAPI/0.0.0.2": {
"dependencies": {
"System.Drawing.Common": "5.0.2"
},
"runtime": {
"DesktopMagicPluginAPI.dll": {}
}
}
}
},
"libraries": {
"DesktopMagic/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Extended.Wpf.Toolkit/4.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-wXyuHE2ut8OIDUgi1dfyX1qVDQClc4ARmM9yfB0MAshudfaWhtXedWR34zSCIN2gu7CPzE3+u9iLvBv5uBxROg==",
"path": "extended.wpf.toolkit/4.1.0",
"hashPath": "extended.wpf.toolkit.4.1.0.nupkg.sha512"
},
"Google.Apis/1.51.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-4QL7S1PnDN/VumfzrLOGw8tiFLYRL/oPVQkCuIVltAh/gSPWxLu7UFZeum4S3B/ry7794Wigg53jclLlYX/haQ==",
"path": "google.apis/1.51.0",
"hashPath": "google.apis.1.51.0.nupkg.sha512"
},
"Google.Apis.Auth/1.51.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-rwyLkiXev6esCRXq+srUcEb8zWylNg7eyE9zO8GxiQplrn1+Jhn8WlwhyJ/xXM83Mrd7Fi0p/UpnOo+m8NBI2g==",
"path": "google.apis.auth/1.51.0",
"hashPath": "google.apis.auth.1.51.0.nupkg.sha512"
},
"Google.Apis.Calendar.v3/1.51.0.2312": {
"type": "package",
"serviceable": true,
"sha512": "sha512-8iskPPgvvZ3VtGhWIjeP9R5ouQasGMUj66Z5G5VHLfriKIVm+MTqyC6XGYTxjeJhXYU6yRQLnNk8f6fAFYxb2A==",
"path": "google.apis.calendar.v3/1.51.0.2312",
"hashPath": "google.apis.calendar.v3.1.51.0.2312.nupkg.sha512"
},
"Google.Apis.Core/1.51.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-2HBwN81SB5DBI/TKbJr6y6u2I5sBlLxUHYUkc26Y4FSFachdDlWISZZreO0AVKdJrHsbmKDhHdqkRjkLSGeiNw==",
"path": "google.apis.core/1.51.0",
"hashPath": "google.apis.core.1.51.0.nupkg.sha512"
},
"Hardcodet.NotifyIcon.Wpf/1.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-FFEkdRSidMrbMfQVwhCzq6KtSyR1qQojqtiUrkCyjnOOuMf7W3TNQkzFnBBxYxFe7uLk5mz7M38wFh1qdWyfvg==",
"path": "hardcodet.notifyicon.wpf/1.1.0",
"hashPath": "hardcodet.notifyicon.wpf.1.1.0.nupkg.sha512"
},
"MaterialDesignColors/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-+JoghC3QRK0u9Wul1To1ORjcfTbFTVzFPjJ02H7VREOdNzIIn427e8G9gP9hXu9pm1r2OneLnoCG/lTma5cG2w==",
"path": "materialdesigncolors/2.0.0",
"hashPath": "materialdesigncolors.2.0.0.nupkg.sha512"
},
"MaterialDesignThemes/4.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-+n5oWHuRiYL/gUw2XfQHCRZqHtU8KbrdurgU0IcO98Zsyhw4BvggodfXY8veRtbjjmM9EJ/sG2yKBrgPOGX4JQ==",
"path": "materialdesignthemes/4.0.0",
"hashPath": "materialdesignthemes.4.0.0.nupkg.sha512"
},
"Microsoft.NETCore.Platforms/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==",
"path": "microsoft.netcore.platforms/5.0.0",
"hashPath": "microsoft.netcore.platforms.5.0.0.nupkg.sha512"
},
"Microsoft.Win32.Registry/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==",
"path": "microsoft.win32.registry/5.0.0",
"hashPath": "microsoft.win32.registry.5.0.0.nupkg.sha512"
},
"Microsoft.Win32.SystemEvents/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Bh6blKG8VAKvXiLe2L+sEsn62nc1Ij34MrNxepD2OCrS5cpCwQa9MeLyhVQPQ/R4Wlzwuy6wMK8hLb11QPDRsQ==",
"path": "microsoft.win32.systemevents/5.0.0",
"hashPath": "microsoft.win32.systemevents.5.0.0.nupkg.sha512"
},
"NAudio/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ZjQfWM3jBTpdHWApsbBP3Mb3ZvXZ2eK6MWED9YeuXwbR+Kfz5M5lHdLTVADAqOHyBDqSnvwFsQCAWWRfuGeG3w==",
"path": "naudio/2.0.0",
"hashPath": "naudio.2.0.0.nupkg.sha512"
},
"NAudio.Asio/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-/Pd51zAS2L3+MK/dJ5VrInz6ggHUie9j1qCXysXL3Vj53p9A2RxjpIZafuyba2ZdeMKaOMOHXdtkUqFdKqVMQg==",
"path": "naudio.asio/2.0.0",
"hashPath": "naudio.asio.2.0.0.nupkg.sha512"
},
"NAudio.Core/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-knmGOIYbzn9ZGkFcVs5d3zEYvi50jVriyEirVtAHjkcDoo2ziK32bZb7KkFARLD4lhCGkqp6uT0+0fc4JIfQcw==",
"path": "naudio.core/2.0.0",
"hashPath": "naudio.core.2.0.0.nupkg.sha512"
},
"NAudio.Midi/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-25/wjDvc/SX8jHb/+F6+lzz7FRFiSujl9N6qq1KcFqfBFS6K1KtdclaZz+01B9PErwQUoraGCdruhiad6tYBvQ==",
"path": "naudio.midi/2.0.0",
"hashPath": "naudio.midi.2.0.0.nupkg.sha512"
},
"NAudio.Wasapi/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-7ES+jfZyOooBp86gql9BZ/OjKFmGfLaSLCtJagtCYiRGxfauHp4hXyeuwxS2mPLBxBGxBo9oGThN6y3QY+/w/w==",
"path": "naudio.wasapi/2.0.0",
"hashPath": "naudio.wasapi.2.0.0.nupkg.sha512"
},
"NAudio.WinForms/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-j65uncDKEhTh4z1IejmtnNhPBA4y6V9zEGnsLA3mm3JzX2e3flmL5UMadQUdx83UlmtF/8t5ichcmUhSGhrQHg==",
"path": "naudio.winforms/2.0.0",
"hashPath": "naudio.winforms.2.0.0.nupkg.sha512"
},
"NAudio.WinMM/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Q1trk5d9cdSRJSK/PXceUgpwIH7FivxkiE4nzmk0rl3qSM4ViHcpc2Fe/W1VUz2dHtGwOqOwpgSch7LHv7F48A==",
"path": "naudio.winmm/2.0.0",
"hashPath": "naudio.winmm.2.0.0.nupkg.sha512"
},
"Newtonsoft.Json/12.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-6mgjfnRB4jKMlzHSl+VD+oUc1IebOZabkbyWj2RiTgWwYPPuaK1H97G1sHqGwPlS5npiF5Q0OrxN1wni2n5QWg==",
"path": "newtonsoft.json/12.0.3",
"hashPath": "newtonsoft.json.12.0.3.nupkg.sha512"
},
"Stone_Red-C-Sharp-Utilities/1.0.2.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-QzwH0QvsDiBvCJTFroZBhN/pMEIiz0C8TNkQci+pxCbnjfTtVkxAYsgmlshCl5oHFJh7VYDLcGAULcMBARSb+w==",
"path": "stone_red-c-sharp-utilities/1.0.2.1",
"hashPath": "stone_red-c-sharp-utilities.1.0.2.1.nupkg.sha512"
},
"System.CodeDom/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-JPJArwA1kdj8qDAkY2XGjSWoYnqiM7q/3yRNkt6n28Mnn95MuEGkZXUbPBf7qc3IjwrGY5ttQon7yqHZyQJmOQ==",
"path": "system.codedom/5.0.0",
"hashPath": "system.codedom.5.0.0.nupkg.sha512"
},
"System.Drawing.Common/5.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-rvr/M1WPf24ljpvvrVd74+NdjRUJu1bBkspkZcnzSZnmAUQWSvanlQ0k/hVHk+cHufZbZfu7vOh/vYc0q5Uu/A==",
"path": "system.drawing.common/5.0.2",
"hashPath": "system.drawing.common.5.0.2.nupkg.sha512"
},
"System.Management/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-MF1CHaRcC+MLFdnDthv4/bKWBZnlnSpkGqa87pKukQefgEdwtb9zFW6zs0GjPp73qtpYYg4q6PEKbzJbxCpKfw==",
"path": "system.management/5.0.0",
"hashPath": "system.management.5.0.0.nupkg.sha512"
},
"System.Security.AccessControl/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==",
"path": "system.security.accesscontrol/5.0.0",
"hashPath": "system.security.accesscontrol.5.0.0.nupkg.sha512"
},
"System.Security.Principal.Windows/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==",
"path": "system.security.principal.windows/5.0.0",
"hashPath": "system.security.principal.windows.5.0.0.nupkg.sha512"
},
"DesktopMagicPluginAPI/0.0.0.2": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}

Some files were not shown because too many files have changed in this diff Show More