Compare commits

...

54 Commits
v1.2 ... master

Author SHA1 Message Date
J. Fronny 0104269e56 Update .gitlab-ci.yml 2020-08-31 19:17:31 +00:00
J. Fronny 4656302c07 Update .gitlab-ci.yml 2020-08-31 19:16:09 +00:00
J. Fronny febe7ff9cb Update .gitlab-ci.yml 2020-08-31 18:59:37 +00:00
J. Fronny 91a621132c Add LICENSE 2020-06-27 16:23:59 +00:00
J. Fronny 98b2a7938a Merge branch 'dependabot/nuget/CC-Functions.Misc-1.1.7474.36199' into 'master'
Bump CC-Functions.Misc from 1.1.7468.32091 to 1.1.7474.36199

See merge request JFronny/cashew!21
2020-06-23 12:09:36 +00:00
J. Fronny fd4d54542d Merge branch 'renovate/configure' into 'master'
Configure Renovate

See merge request JFronny/cashew!22
2020-06-23 12:09:18 +00:00
Renovate Bot dc91d38fa8
Add renovate.json 2020-06-23 08:47:41 +00:00
J. Fronny 94f0bb2f49 Delete main.yml 2020-06-21 05:49:52 +00:00
J. Fronny 6047843eea Update README.md 2020-06-21 05:49:40 +00:00
J. Fronny 8096bbc794 Update .gitlab-ci.yml 2020-06-21 05:43:03 +00:00
J. Fronny 546b9a1566 Update .gitlab-ci.yml 2020-06-21 05:36:41 +00:00
J. Fronny 15d1731367 Update .gitlab-ci.yml 2020-06-21 05:30:54 +00:00
J. Fronny dc4aa44284 Update .gitlab-ci.yml 2020-06-21 05:16:27 +00:00
J. Fronny f75badb5a0 Update .gitlab-ci.yml 2020-06-21 05:11:47 +00:00
J. Fronny 1a4baabbaf Update .gitlab-ci.yml 2020-06-21 04:52:43 +00:00
J. Fronny 05b53dacc5 Update .gitlab-ci.yml 2020-06-21 04:44:10 +00:00
J. Fronny 7b24e90260 Update .gitlab-ci.yml 2020-06-21 04:37:07 +00:00
J. Fronny 66532a0eb8 Update .gitlab-ci.yml 2020-06-21 04:33:14 +00:00
J. Fronny 4b102cba5a Update .gitlab-ci.yml 2020-06-21 04:29:03 +00:00
J. Fronny 992a8e5860 Add .gitlab-ci.yml 2020-06-21 04:21:26 +00:00
J. Fronny 3fdcdab463 Bump CC-Functions.Misc from 1.1.7468.32091 to 1.1.7474.36199
Bumps [CC-Functions.Misc](https://github.com/JFronny/CC-Functions) from 1.1.7468.32091 to 1.1.7474.36199.
- [Release notes](https://github.com/JFronny/CC-Functions/releases)
- [Commits](https://github.com/JFronny/CC-Functions/commits)
2020-06-19 14:08:04 +00:00
dependabot-preview[bot] 739033ba1f Bump CC-Functions.Misc from 1.1.7450.31626 to 1.1.7468.32091
Bumps [CC-Functions.Misc](https://github.com/JFronny/CC-Functions) from 1.1.7450.31626 to 1.1.7468.32091.
- [Release notes](https://github.com/JFronny/CC-Functions/releases)
- [Commits](https://github.com/JFronny/CC-Functions/compare/1.1.7450.31626...1.1.7468.32091)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-15 10:25:12 +02:00
JFronny c8748c27d7 Updates from Refactor 2020-05-25 20:19:31 +02:00
dependabot-preview[bot] 3606c0d536 Bump CC-Functions.Misc from 1.1.7409.23118 to 1.1.7448.24408
Bumps [CC-Functions.Misc](https://github.com/JFronny/CC-Functions) from 1.1.7409.23118 to 1.1.7448.24408.
- [Release notes](https://github.com/JFronny/CC-Functions/releases)
- [Commits](https://github.com/JFronny/CC-Functions/compare/1.1.7409.23118...1.1.7448.24408)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-24 14:17:24 +02:00
dependabot-preview[bot] a8f4bd49b8 Bump IronPython from 2.7.9 to 2.7.10
Bumps [IronPython](https://github.com/IronLanguages/ironpython2) from 2.7.9 to 2.7.10.
- [Release notes](https://github.com/IronLanguages/ironpython2/releases)
- [Commits](https://github.com/IronLanguages/ironpython2/compare/ipy-2.7.9...ipy-2.7.10)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-28 13:34:22 +02:00
dependabot-preview[bot] 96d5c3ab74 Bump CC-Functions.Misc from 1.1.7399.26972 to 1.1.7409.23118
Bumps [CC-Functions.Misc](https://github.com/JFronny/CC-Functions) from 1.1.7399.26972 to 1.1.7409.23118.
- [Release notes](https://github.com/JFronny/CC-Functions/releases)
- [Commits](https://github.com/JFronny/CC-Functions/compare/1.1.7399.26972...1.1.7409.23118)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-28 13:33:47 +02:00
J. Fronny 3fd91ec0f0
Fix possibility of decrementing versions 2020-04-07 21:12:08 +02:00
CreepyCrafter24 f6975f68b1 Add a quick message to the console after startup 2020-04-07 21:06:36 +02:00
J. Fronny 92de5aa2d3
Hard-code some more data 2020-04-07 20:59:42 +02:00
J. Fronny 2caf0c5162
remove debug echos 2020-04-07 20:55:40 +02:00
J. Fronny 3117693fa9
wörk nöw? 2020-04-07 20:53:42 +02:00
J. Fronny e362452b20
Clean up a bit... 2020-04-07 20:48:36 +02:00
J. Fronny 9773f653ff
wy doe 2020-04-07 20:41:25 +02:00
J. Fronny 830c193a56
Debug echos 2020-04-07 20:39:09 +02:00
J. Fronny ec84ca2750
Maybe fix version 2020-04-07 20:36:43 +02:00
J. Fronny c0be5b5b18
plz wörk 2020-04-07 19:13:23 +02:00
J. Fronny f1e47912fe
net461 2020-04-07 19:05:28 +02:00
J. Fronny 12cce831cd
I no understand 2020-04-07 19:01:53 +02:00
J. Fronny fa82fb910e
Use MSBuild 2020-04-07 19:00:01 +02:00
J. Fronny 6aa861bfb8
Add build-action 2020-04-07 18:56:47 +02:00
CreepyCrafter24 2e87113422 Fix HTML Menu 2020-04-07 18:54:22 +02:00
CreepyCrafter24 32959736a0 Looks much worse but at least it works 2020-04-07 18:44:06 +02:00
dependabot-preview[bot] fefe139107 Bump CC-Functions.Misc from 1.1.7397.24614 to 1.1.7399.26972
Bumps [CC-Functions.Misc](https://github.com/JFronny/CC-Functions) from 1.1.7397.24614 to 1.1.7399.26972.
- [Release notes](https://github.com/JFronny/CC-Functions/releases)
- [Commits](https://github.com/JFronny/CC-Functions/compare/1.1.7397.24614...1.1.7399.26972)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-06 18:45:39 +02:00
dependabot-preview[bot] d243fe53d4 Bump CC-Functions.Misc from 1.1.7396.23808 to 1.1.7397.24614
Bumps [CC-Functions.Misc](https://github.com/JFronny/CC-Functions) from 1.1.7396.23808 to 1.1.7397.24614.
- [Release notes](https://github.com/JFronny/CC-Functions/releases)
- [Commits](https://github.com/JFronny/CC-Functions/compare/1.1.7396.23808...1.1.7397.24614)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-04 15:47:48 +02:00
dependabot-preview[bot] 9269773ede Bump CC-Functions.Misc from 1.0.2 to 1.1.7396.23808
Bumps [CC-Functions.Misc](https://github.com/JFronny/CC-Functions) from 1.0.2 to 1.1.7396.23808.
- [Release notes](https://github.com/JFronny/CC-Functions/releases)
- [Commits](https://github.com/JFronny/CC-Functions/commits/1.1.7396.23808)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-02 15:54:29 +02:00
dependabot-preview[bot] caaede750c Bump System.Runtime.CompilerServices.Unsafe from 4.6.0 to 4.7.1
Bumps [System.Runtime.CompilerServices.Unsafe](https://github.com/dotnet/corefx) from 4.6.0 to 4.7.1.
- [Release notes](https://github.com/dotnet/corefx/releases)
- [Commits](https://github.com/dotnet/corefx/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-02 15:54:02 +02:00
dependabot-preview[bot] d814e53738 Bump System.Memory from 4.5.3 to 4.5.4
Bumps [System.Memory](https://github.com/dotnet/corefx) from 4.5.3 to 4.5.4.
- [Release notes](https://github.com/dotnet/corefx/releases)
- [Commits](https://github.com/dotnet/corefx/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-02 15:53:46 +02:00
dependabot-preview[bot] 756f71443d Bump System.Buffers from 4.5.0 to 4.5.1
Bumps [System.Buffers](https://github.com/dotnet/corefx) from 4.5.0 to 4.5.1.
- [Release notes](https://github.com/dotnet/corefx/releases)
- [Commits](https://github.com/dotnet/corefx/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-02 15:53:30 +02:00
dependabot-preview[bot] 7b798cb86e Bump Mono.Cecil from 0.11.1 to 0.11.2
Bumps [Mono.Cecil](https://github.com/jbevain/cecil) from 0.11.1 to 0.11.2.
- [Release notes](https://github.com/jbevain/cecil/releases)
- [Commits](https://github.com/jbevain/cecil/compare/0.11.1...0.11.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-02 15:50:14 +02:00
dependabot-preview[bot] f8926c1f51 Bump System.Collections.Immutable from 1.6.0 to 1.7.0
Bumps [System.Collections.Immutable](https://github.com/dotnet/corefx) from 1.6.0 to 1.7.0.
- [Release notes](https://github.com/dotnet/corefx/releases)
- [Commits](https://github.com/dotnet/corefx/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-02 15:48:14 +02:00
dependabot-preview[bot] 3a63b81dc0 Bump System.Reflection.Metadata from 1.7.0 to 1.8.0
Bumps [System.Reflection.Metadata](https://github.com/dotnet/corefx) from 1.7.0 to 1.8.0.
- [Release notes](https://github.com/dotnet/corefx/releases)
- [Commits](https://github.com/dotnet/corefx/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-02 15:48:00 +02:00
J. Fronny 709edd4659
Update README.md 2020-03-24 16:01:44 +01:00
CreepyCrafter24 8a4824a5d3 Dunno 2019-12-21 13:20:04 +01:00
CreepyCrafter24 97c4f62677 Very minor improvements 2019-12-19 22:00:48 +01:00
24 changed files with 1407 additions and 906 deletions

48
.gitlab-ci.yml Normal file
View File

@ -0,0 +1,48 @@
.shared_windows_runners:
tags:
- windows
uptool:
extends:
- .shared_windows_runners
stage: deploy
script: |
mkdir i
cd i
$(new-object System.Net.WebClient).DownloadFile("https://gitlab.com/JFronny/UpTool2/-/jobs/artifacts/master/raw/Installer-generic.zip?job=uptool", "$($(pwd).Path)\Install.zip")
& "C:\Program Files\7-Zip\7z.exe" x .\Install.zip
.\Installer.exe --basic i -p
cd ..
rm -R i
$Env:Path="$Env:Path;$Env:APPDATA\UpTool2\Install"
uptool --basic add-repo DevTools https://gitlab.com/JFronny/UpTool2/-/snippets/2010392/raw
uptool --basic update
uptool --basic install "UpTool2 package tools"
$Env:Path="$Env:Path;$Env:APPDATA\UpTool2\Apps\0e35d154-d0d3-45e0-b080-62f521263a44\app"
dotnet restore
mkdir .\build
& "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\MSBuild.exe" -noLogo -verbosity:m -p:Configuration=Release
cp .\cashew\bin\Release\net461\* .\build\
cp .\build\package.zip .\
$file = Get-Item $(Resolve-Path .\build\*.exe).Path
[timespan]$span = [System.DateTime]::Now - [datetime]'01/01/2000'
[System.XML.XMLDocument]$xml=New-Object System.XML.XMLDocument
[System.XML.XMLElement]$app=$xml.CreateElement("app")
$xml.appendChild($app)
$app.appendChild($xml.CreateElement("Name")).InnerText = "Cashew"
$app.appendChild($xml.CreateElement("Description")).InnerText = "A basic GUI for multiple common programming languages including c# and HTML"
$app.appendChild($xml.CreateElement("Version")).InnerText = "1.0." + $span.Days.ToString() + "." + [math]::Round(($span.Seconds + ($span.Minutes + $span.Hours * 60) * 60) / 2).ToString()
$app.appendChild($xml.CreateElement("ID")).InnerText = "63d64672-3ca3-4760-96a3-443b262d326f"
$app.appendChild($xml.CreateElement("File")).InnerText = $CI_PROJECT_URL + "/-/jobs/" + $CI_JOB_ID + "/artifacts/raw/package.zip"
$app.appendChild($xml.CreateElement("Hash")).InnerText = $(Get-FileHash .\package.zip).Hash
$app.appendChild($xml.CreateElement("MainFile")).InnerText = "cashew.exe"
$app.appendChild($xml.CreateElement("Icon")).InnerText = "https://gitlab.com/JFronny/cashew/-/raw/master/cashew/Cashew-64.ico"
echo NULL > app.xml
$xml.save($(gi .\app.xml).Fullname)
artifacts:
paths:
- package.zip
- app.xml
only:
- master

0
.idea/.gitignore vendored Normal file
View File

21
LICENSE Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2020 J. Fronny
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -1,40 +0,0 @@
using System;
using System.IO;
using System.IO.Compression;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
//Variables
string TargetDir = args[0];
string TargetFileName = args[1];
if (TargetDir.EndsWith("\\"))
TargetDir = TargetDir.Remove(TargetDir.Length - 1);
//Copy Data dir
if (File.Exists(TargetDir + ".zip"))
File.Delete(TargetDir + ".zip");
if (File.Exists(TargetDir + @"\package.zip"))
File.Delete(TargetDir + @"\package.zip");
if (Directory.Exists(TargetDir + @"\package"))
Directory.Delete(TargetDir + @"\package", true);
ZipFile.CreateFromDirectory(TargetDir, TargetDir + ".zip");
Directory.CreateDirectory(TargetDir + @"\package\Data");
ZipFile.ExtractToDirectory(TargetDir + ".zip", TargetDir + @"\package\Data");
File.Delete(TargetDir + ".zip");
//Remove useless Files
Directory.GetFiles(TargetDir + @"\package\Data")
.Where(s => new string[] { ".xml", ".pdb" }.Contains(Path.GetExtension(s)))
.ToList().ForEach(s => File.Delete(s));
//Add package scripts
string programName = Path.GetFileNameWithoutExtension(TargetFileName);
File.WriteAllText(TargetDir + @"\package\Install.bat",
"@echo off\r\necho INSTALL\r\npowershell \"$s=(New-Object -COM WScript.Shell).CreateShortcut('%appdata%\\Microsoft\\Windows\\Start Menu\\Programs\\" + programName + ".lnk');$s.TargetPath='%cd%\\" + programName + ".exe';$s.Save()\"\r\ntimeout /t 1");
File.WriteAllText(TargetDir + @"\package\Remove.bat",
"@echo off\r\necho REMOVE\r\ndel \"%appdata%\\Microsoft\\Windows\\Start Menu\\Programs\\" + programName + ".lnk\"\r\ntaskkill /f /im \"" + programName + ".exe\"\r\ntimeout /t 1");
//Package up result
ZipFile.CreateFromDirectory(TargetDir + @"\package", TargetDir + @"\package.zip");
Directory.Delete(TargetDir + @"\package", true);
}
}

View File

@ -1,2 +1,2 @@
# cashew
A basic GUI for multiple common programming languages including c# and HTML
A basic GUI for multiple common programming languages including c# and HTML [![UpTool2](https://img.shields.io/badge/Get%20it-on%20UpTool2-blue)](https://jfronny.gitlab.io/home/uptool)

View File

@ -7,7 +7,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "cashew", "cashew\cashew.csp
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{B438CEFA-611B-4DD2-B1CE-EE62976A6BDE}"
ProjectSection(SolutionItems) = preProject
PostBuild.cs = PostBuild.cs
README.md = README.md
EndProjectSection
EndProject

View File

@ -1,42 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Humanizer" publicKeyToken="979442b78dfc278e" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.7.0.0" newVersion="2.7.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Mono.Cecil" publicKeyToken="50cebf1cceb9d05e" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-0.10.1.0" newVersion="0.10.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.2.4.0" newVersion="1.2.4.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Reflection.Metadata" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.4.4.0" newVersion="1.4.4.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

File diff suppressed because it is too large Load Diff

View File

@ -1,15 +1,4 @@
using CC_Functions.Misc;
using ICSharpCode.Decompiler;
using ICSharpCode.Decompiler.CSharp;
using ICSharpCode.TextEditor;
using ICSharpCode.TextEditor.Document;
using IronPython.Hosting;
using MetroFramework;
using MetroFramework.Forms;
using MetroFramework.Interfaces;
using Microsoft.CSharp;
using Microsoft.Scripting.Hosting;
using System;
using System;
using System.CodeDom.Compiler;
using System.Collections.Generic;
using System.Drawing;
@ -21,7 +10,17 @@ using System.Runtime.Serialization.Formatters.Binary;
using System.Threading;
using System.Windows.Forms;
using System.Xml.Linq;
using ThreadState = System.Threading.ThreadState;
using CC_Functions.Misc;
using ICSharpCode.Decompiler;
using ICSharpCode.Decompiler.CSharp;
using ICSharpCode.TextEditor.Document;
using IronPython.Hosting;
using MetroFramework;
using MetroFramework.Forms;
using MetroFramework.Interfaces;
using Microsoft.CSharp;
using Microsoft.Scripting.Hosting;
using MetroMessageBox = cashew.MessageBox.MetroMessageBox;
#pragma warning disable IDE1006
@ -29,13 +28,27 @@ namespace cashew
{
public partial class MainForm : MetroForm
{
private void MainForm_FormClosed(object sender, FormClosedEventArgs e)
{
if (Directory.Exists(Path.Combine(Path.GetTempPath(), "Cashew")))
Directory.Delete(Path.Combine(Path.GetTempPath(), "Cashew"), true);
}
#region General
private readonly ThreadState[] runningStates = new ThreadState[] { ThreadState.Background, ThreadState.Running, ThreadState.StopRequested, ThreadState.WaitSleepJoin };
private readonly IMetroControl[] metroControls;
private readonly Control[] normalControls;
private readonly ToolStripMenuItem[] menuItems;
private string[] cseditcodel;
private string[] cseditrefl;
private readonly ThreadState[] _runningStates =
{ThreadState.Background, ThreadState.Running, ThreadState.StopRequested, ThreadState.WaitSleepJoin};
private readonly IMetroControl[] _metroControls;
private readonly Control[] _normalControls;
private readonly ToolStripMenuItem[] _menuItems;
private string[] _cseditcodel = new string[0];
private string[] _cseditrefl =
{
"Microsoft.CSharp.dll", "System.dll", "System.Core.dll", "System.Data.dll",
"System.Data.DataSetExtensions.dll", "System.Net.Http.dll", "System.Xml.dll", "System.Xml.Linq.dll"
};
public MainForm()
{
@ -43,21 +56,49 @@ namespace cashew
{
splash.Show();
InitializeComponent();
metroControls = new IMetroControl[] { nmtext, languageTabControl, cstab, infotab, nightmodeToggle, cseditopen, cseditrun, cseditsave, csediterrorpanel, csediterrors, cseditref, infoPanel, htmltab, htmltitle, htmlOptionsTile, htmlOptionsMenu, htmlRefreshTile, htmlLoad, htmlSave, htmlLoadIndicator, htmlUpdateToggle, htmlLiveLabel, livehider, nightmodehide, pythontab,
pythonSave, pythonRun, pythonOpen};
normalControls = new Control[] { htmlSep, htmldisplay, cseditCode, pythonCode, htmlText };
menuItems = new ToolStripMenuItem[] { hTMLToolStripMenuItem, javaScriptToolStripMenuItem, cSSToolStripMenuItem, pHPToolStripMenuItem, hTMLStructureSetupToolStripMenuItem, javaStructureSetupToolStripMenuItem, cSSStructureSetupToolStripMenuItem, pHPStructureSetupToolStripMenuItem, linkToolStripMenuItem, imageToolStripMenuItem, textToolStripMenuItem, tableToolStripMenuItem,
listsToolStripMenuItem, functionToolStripMenuItem, textToolStripMenuItem1, alertBoxToolStripMenuItem, timeoutToolStripMenuItem, randomNumberToolStripMenuItem, cSSCustomizeTagToolStripMenuItem, cSSCustomTagPropertiesToolStripMenuItem, textToolStripMenuItem3, headingsToolStripMenuItem, boldbToolStripMenuItem, underlineuToolStripMenuItem, italiciToolStripMenuItem,
deleteddelToolStripMenuItem, subscriptedSubToolStripMenuItem, superscriptedsupToolStripMenuItem, tableFormatSetupToolStripMenuItem, tableHeadingthToolStripMenuItem, newHorizontalItemtdToolStripMenuItem, newRowtrToolStripMenuItem, orderedListSetupolToolStripMenuItem, unorderedListSetupulToolStripMenuItem, listItemliToolStripMenuItem, heading1h1ToolStripMenuItem,
heading2h2ToolStripMenuItem, heading3h3ToolStripMenuItem, heading4h4ToolStripMenuItem, heading5h5ToolStripMenuItem, heading6h6ToolStripMenuItem, textToolStripMenuItem2, backgroundToolStripMenuItem, backgroundRepeatToolStripMenuItem, backgroundPositionToolStripMenuItem, backgroundImageToolStripMenuItem, backgroundColorToolStripMenuItem, backgroundAttachmentToolStripMenuItem,
fontToolStripMenuItem, sizeToolStripMenuItem, weightToolStripMenuItem, colorToolStripMenuItem, directionToolStripMenuItem, lineHeightToolStripMenuItem, alignToolStripMenuItem, letterSpacingToolStripMenuItem, decorationToolStripMenuItem, indentToolStripMenuItem, shadowToolStripMenuItem, transformToolStripMenuItem, wordspacingToolStripMenuItem, centercenterToolStripMenuItem,
paragraphpToolStripMenuItem};
cseditrefl = new string[1] { "System.Windows.Forms.dll" };
_metroControls = new IMetroControl[]
{
nmtext, languageTabControl, cstab, infotab, nightmodeToggle, cseditopen, cseditrun, cseditsave,
csediterrorpanel, csediterrors, cseditref, infoPanel, htmltab, htmltitle,
htmlOptionsTile, /*htmlOptionsMenu, */htmlRefreshTile, htmlLoad, htmlSave, htmlLoadIndicator,
htmlUpdateToggle, htmlLiveLabel, livehider, nightmodehide, pythontab,
pythonSave, pythonRun, pythonOpen
};
_normalControls = new Control[] {htmlSep, htmldisplay, cseditCode, pythonCode, htmlText};
_menuItems = new[]
{
hTMLToolStripMenuItem, javaScriptToolStripMenuItem, cSSToolStripMenuItem, pHPToolStripMenuItem,
hTMLStructureSetupToolStripMenuItem, javaStructureSetupToolStripMenuItem,
cSSStructureSetupToolStripMenuItem, pHPStructureSetupToolStripMenuItem, linkToolStripMenuItem,
imageToolStripMenuItem, textToolStripMenuItem, tableToolStripMenuItem,
listsToolStripMenuItem, functionToolStripMenuItem, textToolStripMenuItem1,
alertBoxToolStripMenuItem, timeoutToolStripMenuItem, randomNumberToolStripMenuItem,
cSSCustomizeTagToolStripMenuItem, cSSCustomTagPropertiesToolStripMenuItem, textToolStripMenuItem3,
headingsToolStripMenuItem, boldbToolStripMenuItem, underlineuToolStripMenuItem,
italiciToolStripMenuItem,
deleteddelToolStripMenuItem, subscriptedSubToolStripMenuItem, superscriptedsupToolStripMenuItem,
tableFormatSetupToolStripMenuItem, tableHeadingthToolStripMenuItem,
newHorizontalItemtdToolStripMenuItem, newRowtrToolStripMenuItem,
orderedListSetupolToolStripMenuItem, unorderedListSetupulToolStripMenuItem,
listItemliToolStripMenuItem, heading1h1ToolStripMenuItem,
heading2h2ToolStripMenuItem, heading3h3ToolStripMenuItem, heading4h4ToolStripMenuItem,
heading5h5ToolStripMenuItem, heading6h6ToolStripMenuItem, textToolStripMenuItem2,
backgroundToolStripMenuItem, backgroundRepeatToolStripMenuItem, backgroundPositionToolStripMenuItem,
backgroundImageToolStripMenuItem, backgroundColorToolStripMenuItem,
backgroundAttachmentToolStripMenuItem,
fontToolStripMenuItem, sizeToolStripMenuItem, weightToolStripMenuItem, colorToolStripMenuItem,
directionToolStripMenuItem, lineHeightToolStripMenuItem, alignToolStripMenuItem,
letterSpacingToolStripMenuItem, decorationToolStripMenuItem, indentToolStripMenuItem,
shadowToolStripMenuItem, transformToolStripMenuItem, wordspacingToolStripMenuItem,
centercenterToolStripMenuItem,
paragraphpToolStripMenuItem
};
htmldisplay.DocumentText = htmlText.Text;
metroToggle1_CheckedChanged(this, new EventArgs());
languageTabControl.SelectedTab = infotab;
splash.Hide();
}
cseditCode.SetHighlighting("C#");
pythonCode.SetHighlighting("Python");
htmlText.SetHighlighting("HTML");
@ -65,10 +106,12 @@ namespace cashew
Directory.Delete(Path.Combine(Path.GetTempPath(), "Cashew"), true);
using (MemoryStream ms = new MemoryStream(Resources.IronPythonBCL))
using (ZipArchive ar = new ZipArchive(ms))
{
ar.ExtractToDirectory(Path.Combine(Path.GetTempPath(), "Cashew\\Python"));
}
infoPanel.Text = "This Program uses:" + string.Join("", XDocument.Parse(Resources.packages).Element("packages").Elements("package").Select(s => "\r\n- " + s.Attribute("id").Value + " " + s.Attribute("version").Value).OrderBy(s => s));
infoPanel.Text = infoPanel.Text.Replace("[PACKAGELIST]", string.Join("\r\n",
XDocument.Parse(Resources.packages).Element("Project").Elements("ItemGroup")
.SelectMany(s => s.Elements("PackageReference"))
.Select(s => $"- {s.Attribute("Include").Value} {s.Attribute("Version").Value}").OrderBy(s => s)));
}
private void MAIN_Load(object sender, EventArgs e) => BringToFront();
@ -85,12 +128,14 @@ namespace cashew
Theme = MetroThemeStyle.Light;
Style = MetroColorStyle.Blue;
}
foreach (IMetroControl c in metroControls)
foreach (IMetroControl c in _metroControls)
{
c.Style = Style;
c.Theme = Theme;
}
foreach (Control c in normalControls)
foreach (Control c in _normalControls)
{
if (Theme == MetroThemeStyle.Dark)
{
@ -103,7 +148,8 @@ namespace cashew
c.ForeColor = Color.White;
}
}
foreach (ToolStripMenuItem t in menuItems)
foreach (ToolStripMenuItem t in _menuItems)
{
if (Theme == MetroThemeStyle.Dark)
{
@ -116,13 +162,16 @@ namespace cashew
t.ForeColor = Color.FromArgb(45, 137, 239);
}
}
Refresh();
}
private void buttonFix_Tick(object sender, EventArgs e)
{
pythonRun.Text = pythonScript != null && runningStates.Contains(pythonScript.ThreadState) ? "Stop" : "Run";
cseditrun.Text = csScript != null && runningStates.Contains(csScript.ThreadState) ? "Stop" : "Run";
pythonRun.Text = _pythonScript != null && _runningStates.Contains(_pythonScript.ThreadState)
? "Stop"
: "Run";
cseditrun.Text = _csScript != null && _runningStates.Contains(_csScript.ThreadState) ? "Stop" : "Run";
htmlOptionsTile.Enabled = htmlText.ActiveTextAreaControl.TextArea.SelectionManager.HasSomethingSelected;
}
@ -130,168 +179,162 @@ namespace cashew
#region CS
Thread csScript;
private void metroLabel2_Click(object sender, EventArgs e) => MetroMessageBox.Show(this, csediterrors.Text, "Errors", MessageBoxButtons.OK, MessageBoxIcon.Error);
private Thread _csScript;
private void metroPanel1_Click(object sender, EventArgs e) => MetroMessageBox.Show(this, csediterrors.Text, "Errors", MessageBoxButtons.OK, MessageBoxIcon.Error);
private void metroLabel2_Click(object sender, EventArgs e) => MetroMessageBox.Show(this, csediterrors.Text,
"Errors", MessageBoxButtons.OK, MessageBoxIcon.Error);
private void metroPanel1_Click(object sender, EventArgs e) => MetroMessageBox.Show(this, csediterrors.Text,
"Errors", MessageBoxButtons.OK, MessageBoxIcon.Error);
private void cseditsave_Click(object sender, EventArgs e)
{
if (csSaveFileDialog.ShowDialog() == DialogResult.OK)
if (csSaveFileDialog.ShowDialog() != DialogResult.OK) return;
try
{
try
if (csSaveFileDialog.FilterIndex == 1)
{
if (csSaveFileDialog.FilterIndex == 1)
{
if (cseditref.Text == "Code")
{
cseditrefl = cseditCode.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None);
}
else
{
cseditcodel = cseditCode.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None);
}
Stream s = File.OpenWrite(csSaveFileDialog.FileName);
new BinaryFormatter().Serialize(s, new string[][] { cseditcodel, cseditrefl });
s.Dispose();
}
if (cseditref.Text == "Code")
_cseditrefl = cseditCode.Text.Split(new[] {"\r\n"}, StringSplitOptions.None);
else
{
File.Copy(compileCS(false).PathToAssembly, csSaveFileDialog.FileName);
}
_cseditcodel = cseditCode.Text.Split(new[] {"\r\n"}, StringSplitOptions.None);
Stream s = File.OpenWrite(csSaveFileDialog.FileName);
new BinaryFormatter().Serialize(s, new[] {_cseditcodel, _cseditrefl});
s.Dispose();
}
catch (Exception e1)
else
{
MetroMessageBox.Show(this, e1.Message, "Failed to Save", MessageBoxButtons.OK, MessageBoxIcon.Error);
CompileCs(false, csSaveFileDialog.FilterIndex == 2, csSaveFileDialog.FileName);
//File.Copy(compileCS(false, csSaveFileDialog.FilterIndex == 2).PathToAssembly, csSaveFileDialog.FileName, true);
}
}
catch (Exception e1)
{
MetroMessageBox.Show(this, e1.Message, "Failed to Save", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void cseditrun_Click(object sender, EventArgs e)
{
if ((csScript != null) && runningStates.Contains(csScript.ThreadState))
{
csScript.Abort();
}
if (_csScript != null && _runningStates.Contains(_csScript.ThreadState))
_csScript.Abort();
else
{
try
{
CompilerResults results = compileCS();
CompilerResults results = CompileCs();
cseditrun.Text = "Stop";
csScript = new Thread(() =>
_csScript = new Thread(() =>
{
try
{
_ = results.CompiledAssembly.EntryPoint.Invoke(null, null);
}
catch
{
try
{
_ = results.CompiledAssembly.EntryPoint.Invoke(null, null);
_ = results.CompiledAssembly.EntryPoint.Invoke(null, new object[] {new string[0]});
}
catch (Exception e1)
{
if (!e1.tryCast(out ThreadAbortException ex))
Invoke((MethodInvoker)delegate ()
if (!e1.TryCast(out ThreadAbortException ex))
Invoke((MethodInvoker) delegate
{
MetroMessageBox.Show(this, e1.Message, "Execution Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
MetroMessageBox.Show(this, e1.Message, "Execution Failed",
MessageBoxButtons.OK, MessageBoxIcon.Error);
});
}
});
csScript.Start();
}
});
_csScript.Start();
csediterrors.Text = "Ready";
}
catch (Exception e1)
{
csediterrors.Text = e1.Message;
}
}
}
private CompilerResults compileCS(bool memory = true)
private CompilerResults CompileCs(bool memory = true, bool library = false, string of = "")
{
csediterrors.Text = "";
if (cseditref.Text == "Code")
{
cseditrefl = cseditCode.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None);
}
_cseditrefl = cseditCode.Text.Split(new[] {"\r\n"}, StringSplitOptions.None);
else
{
cseditcodel = cseditCode.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None);
}
_cseditcodel = cseditCode.Text.Split(new[] {"\r\n"}, StringSplitOptions.None);
CompilerParameters parameters = new CompilerParameters
{
GenerateInMemory = memory,
GenerateExecutable = true,
GenerateExecutable = !library
};
parameters.ReferencedAssemblies.AddRange(cseditrefl);
parameters.OutputAssembly = memory ? parameters.OutputAssembly : of;
parameters.ReferencedAssemblies.AddRange(_cseditrefl);
CompilerResults results;
using (CSharpCodeProvider provider = new CSharpCodeProvider())
{
results = provider.CompileAssemblyFromSource(parameters, string.Join("\r\n", cseditcodel));
if (results.Errors.HasErrors)
{
IEnumerable<CompilerError> err = results.Errors.OfType<CompilerError>();
/*err.ToList().ForEach(s =>
results = provider.CompileAssemblyFromSource(parameters, string.Join("\r\n", _cseditcodel));
if (!results.Errors.HasErrors) return results;
IEnumerable<CompilerError> err = results.Errors.OfType<CompilerError>();
/*err.ToList().ForEach(s =>
{
TextMarker marker = new TextMarker(0, 5, TextMarkerType.WaveLine, Color.Red);
cseditCode.Document.MarkerStrategy.AddMarker(marker);
});
cseditCode.Update();*/
throw new InvalidOperationException(string.Join("\r\n\r\n",
err.Select(s => "Error in line " + s.Line.ToString() + ": " + s.ErrorNumber + " - " + s.ErrorText).ToArray()));
}
throw new InvalidOperationException(string.Join("\r\n\r\n",
err.Select(s => "Error in line " + s.Line + ": " + s.ErrorNumber + " - " + s.ErrorText).ToArray()));
}
return results;
}
private void cseditopen_Click(object sender, EventArgs e)
{
if (csOpenFileDialog.ShowDialog() == DialogResult.OK)
if (csOpenFileDialog.ShowDialog() != DialogResult.OK) return;
try
{
try
if (csOpenFileDialog.FilterIndex == 1)
{
if (csOpenFileDialog.FilterIndex == 1)
{
Stream s = File.OpenRead(csOpenFileDialog.FileName);
string[][] tmp = (string[][])new BinaryFormatter().Deserialize(s);
s.Dispose();
cseditcodel = tmp[0];
cseditrefl = tmp[1];
if (cseditref.Text == "References")
cseditCode.Text = string.Join("\r\n", cseditcodel);
else
cseditCode.Text = string.Join("\r\n", cseditrefl);
}
else
{
CSharpDecompiler decompiler = new CSharpDecompiler(csOpenFileDialog.FileName, new DecompilerSettings());
cseditcodel = decompiler.DecompileWholeModuleAsString().Split(new string[] { "\r\n" }, StringSplitOptions.None);
cseditrefl = Assembly.LoadFrom(csOpenFileDialog.FileName)
.GetReferencedAssemblies().Where(s => !new string[] { "mscorlib" }.Contains(s.Name))
.Select(s => string.IsNullOrWhiteSpace(s.CodeBase) ? (s.Name + ".dll") : s.CodeBase).ToArray();
if (cseditref.Text == "References")
cseditCode.Text = string.Join("\r\n", cseditcodel);
else
cseditCode.Text = string.Join("\r\n", cseditrefl);
}
Stream s = File.OpenRead(csOpenFileDialog.FileName);
string[][] tmp = (string[][]) new BinaryFormatter().Deserialize(s);
s.Dispose();
_cseditcodel = tmp[0];
_cseditrefl = tmp[1];
cseditCode.Text = string.Join("\r\n", cseditref.Text == "References" ? _cseditcodel : _cseditrefl);
}
catch (Exception e1)
else
{
MetroMessageBox.Show(this, e1.ToString(), "Failed to Load", MessageBoxButtons.OK, MessageBoxIcon.Error);
CSharpDecompiler decompiler =
new CSharpDecompiler(csOpenFileDialog.FileName, new DecompilerSettings());
_cseditcodel = decompiler.DecompileWholeModuleAsString()
.Split(new[] {"\r\n"}, StringSplitOptions.None);
_cseditrefl = Assembly.LoadFrom(csOpenFileDialog.FileName).GetReferencedAssemblies()
.Where(s => !new[] {"mscorlib"}.Contains(s.Name))
.Select(s => string.IsNullOrWhiteSpace(s.CodeBase) ? s.Name + ".dll" : s.CodeBase).ToArray();
cseditCode.Text = string.Join("\r\n", cseditref.Text == "References" ? _cseditcodel : _cseditrefl);
}
}
catch (Exception e1)
{
Console.WriteLine(e1.ToString());
MetroMessageBox.Show(this, e1.ToString(), "Failed to Load", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void cseditref_Click(object sender, EventArgs e)
{
if (cseditref.Text == "References")
{
cseditcodel = cseditCode.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None);
cseditCode.Text = string.Join("\r\n", cseditrefl);
_cseditcodel = cseditCode.Text.Split(new[] {"\r\n"}, StringSplitOptions.None);
cseditCode.Text = string.Join("\r\n", _cseditrefl);
cseditCode.Refresh();
cseditref.Text = "Code";
}
else
{
cseditrefl = cseditCode.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None);
cseditCode.Text = string.Join("\r\n", cseditcodel);
_cseditrefl = cseditCode.Text.Split(new[] {"\r\n"}, StringSplitOptions.None);
cseditCode.Text = string.Join("\r\n", _cseditcodel);
cseditCode.Refresh();
cseditref.Text = "References";
}
@ -301,10 +344,10 @@ namespace cashew
#region HTML
private Point sels = Point.Empty;
private Point sele = Point.Empty;
private bool htmlHasSelection = false;
private bool UpdateHTML = true;
private Point _sels = Point.Empty;
private Point _sele = Point.Empty;
private bool _htmlHasSelection;
private bool _updateHtml = true;
private void htmldisplay_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
@ -312,17 +355,16 @@ namespace cashew
htmltitle.Text = htmldisplay.DocumentTitle;
}
private void metroToggle2_CheckedChanged(object sender, EventArgs e) => UpdateHTML = htmlUpdateToggle.Checked;
private void metroToggle2_CheckedChanged(object sender, EventArgs e) => _updateHtml = htmlUpdateToggle.Checked;
private void htmldisplay_Navigating(object sender, WebBrowserNavigatingEventArgs e) => htmlLoadIndicator.Visible = true;
private void htmldisplay_Navigating(object sender, WebBrowserNavigatingEventArgs e) =>
htmlLoadIndicator.Visible = true;
private void HtmlText_TextChanged_1(object sender, EventArgs e)
{
if (UpdateHTML)
{
htmldisplay.DocumentText = htmlText.Text;
htmltitle.Text = htmldisplay.DocumentTitle;
}
if (!_updateHtml) return;
htmldisplay.DocumentText = htmlText.Text;
htmltitle.Text = htmldisplay.DocumentTitle;
}
private void htmlRefreshTile_Click(object sender, EventArgs e)
@ -331,251 +373,264 @@ namespace cashew
htmltitle.Text = htmldisplay.DocumentTitle;
}
private void htmlOptionsTile_Click(object sender, EventArgs e) => htmlOptionsMenu.Show(htmlOptionsTile.Location);
private void htmlOptionsTile_Click(object sender, EventArgs e) =>
htmlOptionsMenu.Show(htmlOptionsTile.Location);
private void htmlOptionsTile_MouseEnter(object sender, EventArgs e)
{
htmlHasSelection = htmlText.ActiveTextAreaControl.TextArea.SelectionManager.HasSomethingSelected;
if (htmlHasSelection)
{
ISelection sel = htmlText.ActiveTextAreaControl.SelectionManager.SelectionCollection[0];
sels.Y = sel.StartPosition.Line;
sels.X = sel.StartPosition.Column;
sele.Y = sel.EndPosition.Line;
sele.X = sel.EndPosition.Column;
}
_htmlHasSelection = htmlText.ActiveTextAreaControl.TextArea.SelectionManager.HasSomethingSelected;
if (!_htmlHasSelection) return;
ISelection sel = htmlText.ActiveTextAreaControl.SelectionManager.SelectionCollection[0];
_sels.Y = sel.StartPosition.Line;
_sels.X = sel.StartPosition.Column;
_sele.Y = sel.EndPosition.Line;
_sele.X = sel.EndPosition.Column;
}
private void addToHTMLBox(string inFront, string atEnd)
private void AddToHtmlBox(string inFront, string atEnd)
{
if (htmlHasSelection)
{
List<string> temp = htmlText.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None).ToList();
temp[sele.Y] = temp[sele.Y].Insert(sele.X, atEnd);
temp[sels.Y] = temp[sels.Y].Insert(sels.X, inFront);
htmlText.Text = string.Join("\r\n", temp.ToArray());
}
if (!_htmlHasSelection) return;
List<string> temp = htmlText.Text.Split(new[] {"\r\n"}, StringSplitOptions.None).ToList();
temp[_sele.Y] = temp[_sele.Y].Insert(_sele.X, atEnd);
temp[_sels.Y] = temp[_sels.Y].Insert(_sels.X, inFront);
htmlText.Text = string.Join("\r\n", temp.ToArray());
}
private void htmlSave_Click(object sender, EventArgs e)
{
if (htmlSaveFileDialog.ShowDialog() == DialogResult.OK)
if (htmlSaveFileDialog.ShowDialog() != DialogResult.OK) return;
try
{
try
{
File.WriteAllText(htmlSaveFileDialog.FileName, htmlText.Text);
}
catch (Exception e1)
{
MetroMessageBox.Show(this, e1.Message, "Saving Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
File.WriteAllText(htmlSaveFileDialog.FileName, htmlText.Text);
}
catch (Exception e1)
{
MetroMessageBox.Show(this, e1.Message, "Saving Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void htmlLoad_Click(object sender, EventArgs e)
{
if (htmlOpenFileDialog.ShowDialog() == DialogResult.OK)
if (htmlOpenFileDialog.ShowDialog() != DialogResult.OK) return;
try
{
try
{
htmlText.Text = File.ReadAllText(htmlOpenFileDialog.FileName);
}
catch (Exception e1)
{
MetroMessageBox.Show(this, e1.Message, "Loading Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
htmlText.Text = File.ReadAllText(htmlOpenFileDialog.FileName);
}
catch (Exception e1)
{
MetroMessageBox.Show(this, e1.Message, "Loading Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
#region Menu-HTML
private void hTMLStructureSetupToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("<html>\r\n<head>\r\n<title>Title</title>\r\n</head>\r\n<body>\r\n", "\r\n</body>\r\n</html>");
private void hTMLStructureSetupToolStripMenuItem_Click(object sender, EventArgs e) =>
AddToHtmlBox("<html>\r\n<head>\r\n<title>Title</title>\r\n</head>\r\n<body>\r\n", "\r\n</body>\r\n</html>");
private void linkToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("<a href='http://www.example.com'>", "</a>");
private void linkToolStripMenuItem_Click(object sender, EventArgs e) =>
AddToHtmlBox("<a href='http://www.example.com'>", "</a>");
private void imageToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("<img scr='", "' alt='Alternative Text'");
private void imageToolStripMenuItem_Click(object sender, EventArgs e) =>
AddToHtmlBox("<img scr='", "' alt='Alternative Text'");
private void centercenterToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("<center>", "</center>");
private void centercenterToolStripMenuItem_Click(object sender, EventArgs e) =>
AddToHtmlBox("<center>", "</center>");
private void heading1h1ToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("<h1>", "</h1>");
private void heading1h1ToolStripMenuItem_Click(object sender, EventArgs e) => AddToHtmlBox("<h1>", "</h1>");
private void heading2h2ToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("<h2>", "</h2>");
private void heading2h2ToolStripMenuItem_Click(object sender, EventArgs e) => AddToHtmlBox("<h2>", "</h2>");
private void heading3h3ToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("<h3>", "</h3>");
private void heading3h3ToolStripMenuItem_Click(object sender, EventArgs e) => AddToHtmlBox("<h3>", "</h3>");
private void heading4h4ToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("<h4>", "</h4>");
private void heading4h4ToolStripMenuItem_Click(object sender, EventArgs e) => AddToHtmlBox("<h4>", "</h4>");
private void heading5h5ToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("<h5>", "</h5>");
private void heading5h5ToolStripMenuItem_Click(object sender, EventArgs e) => AddToHtmlBox("<h5>", "</h5>");
private void heading6h6ToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("<h6>", "</h6>");
private void heading6h6ToolStripMenuItem_Click(object sender, EventArgs e) => AddToHtmlBox("<h6>", "</h6>");
private void paragraphpToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("<p>", "</p>");
private void paragraphpToolStripMenuItem_Click(object sender, EventArgs e) => AddToHtmlBox("<p>", "</p>");
private void boldbToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("<b>", "</b>");
private void boldbToolStripMenuItem_Click(object sender, EventArgs e) => AddToHtmlBox("<b>", "</b>");
private void underlineuToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("<u>", "</u>");
private void underlineuToolStripMenuItem_Click(object sender, EventArgs e) => AddToHtmlBox("<u>", "</u>");
private void italiciToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("<i>", "</i>");
private void italiciToolStripMenuItem_Click(object sender, EventArgs e) => AddToHtmlBox("<i>", "</i>");
private void deleteddelToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("<del>", "</del>");
private void deleteddelToolStripMenuItem_Click(object sender, EventArgs e) => AddToHtmlBox("<del>", "</del>");
private void subscriptedSubToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("<sub>", "</sub>");
private void subscriptedSubToolStripMenuItem_Click(object sender, EventArgs e) =>
AddToHtmlBox("<sub>", "</sub>");
private void superscriptedsupToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("<sup>", "</sup>");
private void superscriptedsupToolStripMenuItem_Click(object sender, EventArgs e) =>
AddToHtmlBox("<sup>", "</sup>");
private void tableFormatSetupToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("<table border='1'>\r\n", "\r\n</table>");
private void tableFormatSetupToolStripMenuItem_Click(object sender, EventArgs e) =>
AddToHtmlBox("<table border='1'>\r\n", "\r\n</table>");
private void tableHeadingthToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("<th>", "</th>");
private void tableHeadingthToolStripMenuItem_Click(object sender, EventArgs e) => AddToHtmlBox("<th>", "</th>");
private void newRowtrToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("<tr>", "");
private void newRowtrToolStripMenuItem_Click(object sender, EventArgs e) => AddToHtmlBox("<tr>", "");
private void newHorizontalItemtdToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("<td>", "</td>");
private void newHorizontalItemtdToolStripMenuItem_Click(object sender, EventArgs e) =>
AddToHtmlBox("<td>", "</td>");
private void orderedListSetupolToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("<ol>\r\n", "\r\n</ol>");
private void orderedListSetupolToolStripMenuItem_Click(object sender, EventArgs e) =>
AddToHtmlBox("<ol>\r\n", "\r\n</ol>");
private void unorderedListSetupulToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("<ul>\r\n", "</ul>\r\n");
private void unorderedListSetupulToolStripMenuItem_Click(object sender, EventArgs e) =>
AddToHtmlBox("<ul>\r\n", "</ul>\r\n");
private void listItemliToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("<li>", "</li>");
private void listItemliToolStripMenuItem_Click(object sender, EventArgs e) => AddToHtmlBox("<li>", "</li>");
#endregion Menu-HTML
#region Menu-Java
private void javaStructureSetupToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("<script type = 'text/javascript'>\r\n", "\r\n</script>");
private void javaStructureSetupToolStripMenuItem_Click(object sender, EventArgs e) =>
AddToHtmlBox("<script type = 'text/javascript'>\r\n", "\r\n</script>");
private void functionToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("function ", "()\r\n{\r\n\r\n}");
private void functionToolStripMenuItem_Click(object sender, EventArgs e) =>
AddToHtmlBox("function ", "()\r\n{\r\n\r\n}");
private void textToolStripMenuItem1_Click(object sender, EventArgs e) => addToHTMLBox("document.write('", "')");
private void textToolStripMenuItem1_Click(object sender, EventArgs e) => AddToHtmlBox("document.write('", "')");
private void alertBoxToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("alert('", "')");
private void alertBoxToolStripMenuItem_Click(object sender, EventArgs e) => AddToHtmlBox("alert('", "')");
private void timeoutToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("setTimeout('", "',TIME HERE)");
private void timeoutToolStripMenuItem_Click(object sender, EventArgs e) =>
AddToHtmlBox("setTimeout('", "',TIME HERE)");
private void randomNumberToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("Math.floor(Math.random()*MAXIMUM HERE)+MINIMUM HERE", "");
private void randomNumberToolStripMenuItem_Click(object sender, EventArgs e) =>
AddToHtmlBox("Math.floor(Math.random()*MAXIMUM HERE)+MINIMUM HERE", "");
#endregion Menu-Java
#region Menu-CSS
private void cSSStructureSetupToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("<style type='text/css'>\r\n", "\r\n</style>");
private void cSSStructureSetupToolStripMenuItem_Click(object sender, EventArgs e) =>
AddToHtmlBox("<style type='text/css'>\r\n", "\r\n</style>");
private void cSSCustomizeTagToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("", "\r\n{\r\n\r\n}");
private void cSSCustomizeTagToolStripMenuItem_Click(object sender, EventArgs e) =>
AddToHtmlBox("", "\r\n{\r\n\r\n}");
private void backgroundAttachmentToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("background-attachment:", ";");
private void backgroundAttachmentToolStripMenuItem_Click(object sender, EventArgs e) =>
AddToHtmlBox("background-attachment:", ";");
private void backgroundColorToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("background-color:", ";");
private void backgroundColorToolStripMenuItem_Click(object sender, EventArgs e) =>
AddToHtmlBox("background-color:", ";");
private void backgroundImageToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("background-image:url('", "');");
private void backgroundImageToolStripMenuItem_Click(object sender, EventArgs e) =>
AddToHtmlBox("background-image:url('", "');");
private void backgroundPositionToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("background-position:", ";");
private void backgroundPositionToolStripMenuItem_Click(object sender, EventArgs e) =>
AddToHtmlBox("background-position:", ";");
private void backgroundRepeatToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("background-repeat:", ";");
private void backgroundRepeatToolStripMenuItem_Click(object sender, EventArgs e) =>
AddToHtmlBox("background-repeat:", ";");
private void fontToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("font-family:'", "';");
private void fontToolStripMenuItem_Click(object sender, EventArgs e) => AddToHtmlBox("font-family:'", "';");
private void sizeToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("font-size:", ";");
private void sizeToolStripMenuItem_Click(object sender, EventArgs e) => AddToHtmlBox("font-size:", ";");
private void weightToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("font-weight:", ";");
private void weightToolStripMenuItem_Click(object sender, EventArgs e) => AddToHtmlBox("font-weight:", ";");
private void colorToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("color:", ";");
private void colorToolStripMenuItem_Click(object sender, EventArgs e) => AddToHtmlBox("color:", ";");
private void directionToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("direction:", ";");
private void directionToolStripMenuItem_Click(object sender, EventArgs e) => AddToHtmlBox("direction:", ";");
private void lineHeightToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("line-height:", ";");
private void lineHeightToolStripMenuItem_Click(object sender, EventArgs e) => AddToHtmlBox("line-height:", ";");
private void letterSpacingToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("letter-spacing:", ";");
private void letterSpacingToolStripMenuItem_Click(object sender, EventArgs e) =>
AddToHtmlBox("letter-spacing:", ";");
private void alignToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("text-align:", ";");
private void alignToolStripMenuItem_Click(object sender, EventArgs e) => AddToHtmlBox("text-align:", ";");
private void decorationToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("text-decoration:", ";");
private void decorationToolStripMenuItem_Click(object sender, EventArgs e) =>
AddToHtmlBox("text-decoration:", ";");
private void indentToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("text-indent:", ";");
private void indentToolStripMenuItem_Click(object sender, EventArgs e) => AddToHtmlBox("text-indent:", ";");
private void shadowToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("text-shadow: COLOR_HERE X_IN_PX Y_IN_PX RADIUS_IN_PX;", "");
private void shadowToolStripMenuItem_Click(object sender, EventArgs e) =>
AddToHtmlBox("text-shadow: COLOR_HERE X_IN_PX Y_IN_PX RADIUS_IN_PX;", "");
private void transformToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("text-transform:", ";");
private void transformToolStripMenuItem_Click(object sender, EventArgs e) =>
AddToHtmlBox("text-transform:", ";");
private void wordspacingToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("word-spacing:", ";");
private void wordspacingToolStripMenuItem_Click(object sender, EventArgs e) =>
AddToHtmlBox("word-spacing:", ";");
#endregion Menu-CSS
#region Menu-PHP
private void pHPStructureSetupToolStripMenuItem_Click(object sender, EventArgs e) => addToHTMLBox("<?php\r\n", "\r\n?>");
private void pHPStructureSetupToolStripMenuItem_Click(object sender, EventArgs e) =>
AddToHtmlBox("<?php\r\n", "\r\n?>");
private void textToolStripMenuItem3_Click(object sender, EventArgs e) => addToHTMLBox("echo '", "';");
private void textToolStripMenuItem3_Click(object sender, EventArgs e) => AddToHtmlBox("echo '", "';");
#endregion Menu-PHP
#endregion HTML
#region Python
Thread pythonScript;
private Thread _pythonScript;
private void pythonOpen_Click(object sender, EventArgs e)
{
if (pythonOpenFileDialog.ShowDialog() == DialogResult.OK)
if (pythonOpenFileDialog.ShowDialog() != DialogResult.OK) return;
try
{
try
{
pythonCode.Text = File.ReadAllText(pythonOpenFileDialog.FileName);
}
catch (Exception e1)
{
MetroMessageBox.Show(this, e1.Message, "Loading Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
pythonCode.Text = File.ReadAllText(pythonOpenFileDialog.FileName);
}
catch (Exception e1)
{
MetroMessageBox.Show(this, e1.Message, "Loading Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void pythonSave_Click(object sender, EventArgs e)
{
if (pythonSaveFileDialog.ShowDialog() == DialogResult.OK)
if (pythonSaveFileDialog.ShowDialog() != DialogResult.OK) return;
try
{
try
{
File.WriteAllText(pythonSaveFileDialog.FileName, pythonCode.Text);
}
catch (Exception e1)
{
MetroMessageBox.Show(this, e1.Message, "Saving Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
File.WriteAllText(pythonSaveFileDialog.FileName, pythonCode.Text);
}
catch (Exception e1)
{
MetroMessageBox.Show(this, e1.Message, "Saving Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void pythonRun_Click(object sender, EventArgs e)
{
if ((pythonScript != null) && runningStates.Contains(pythonScript.ThreadState))
if (_pythonScript != null && _runningStates.Contains(_pythonScript.ThreadState))
{
pythonScript.Abort();
_pythonScript.Abort();
}
else
{
pythonScript = new Thread(() =>
_pythonScript = new Thread(() =>
{
ScriptEngine engine = Python.CreateEngine();
engine.SetSearchPaths(new string[] { Path.Combine(Path.GetTempPath(), "Cashew\\Python") });
engine.SetSearchPaths(new[] {Path.Combine(Path.GetTempPath(), "Cashew\\Python")});
try
{
engine.Execute(pythonCode.Text);
}
catch (Exception e1)
{
if (!e1.tryCast(out ThreadAbortException ex))
Invoke((MethodInvoker)delegate ()
if (!e1.TryCast(out ThreadAbortException _))
Invoke((MethodInvoker) delegate
{
MetroMessageBox.Show(this, e1.Message, "Execution Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
MetroMessageBox.Show(this, e1.Message, "Execution Failed", MessageBoxButtons.OK,
MessageBoxIcon.Error);
});
}
});
pythonScript.Start();
_pythonScript.Start();
}
}
#endregion Python
private void MainForm_FormClosed(object sender, FormClosedEventArgs e)
{
if (Directory.Exists(Path.Combine(Path.GetTempPath(), "Cashew")))
Directory.Delete(Path.Combine(Path.GetTempPath(), "Cashew"), true);
}
}
}

View File

@ -119,19 +119,27 @@
</resheader>
<data name="cseditCode.Text" xml:space="preserve">
<value>using System;
using System.Windows.Forms;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Project
namespace Program
{
public class Program
class Program
{
public static void Main()
static void Main(string[] args)
{
MessageBox.Show("Hello, world!");
Console.WriteLine("Hello, world");
}
}
}
</value>
}</value>
</data>
<data name="infoPanel.Text" xml:space="preserve">
<value>NOTE: DO NOT CLOSE THE CONSOLE! DOING SO WILL CRASH CASHEW
NOTE: The output of programs written in Cashew will be printed to the native console, no new window will open up.
This Program uses:
[PACKAGELIST]</value>
</data>
<metadata name="csSaveFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>

View File

@ -0,0 +1,134 @@
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
using MetroFramework.Components;
using MetroFramework.Drawing;
using MetroFramework.Interfaces;
namespace MetroFramework.Controls
{
public class MetroContextMenu : ContextMenuStrip, IMetroControl
{
private MetroColorStyle metroStyle;
private MetroStyleManager metroStyleManager;
private MetroThemeStyle metroTheme;
public MetroContextMenu(IContainer Container)
{
Container?.Add(this);
}
[DefaultValue(false)]
[Category("Metro Appearance")]
public bool UseCustomBackColor { get; set; }
[DefaultValue(false)]
[Category("Metro Appearance")]
public bool UseCustomForeColor { get; set; }
[DefaultValue(false)]
[Category("Metro Appearance")]
public bool UseStyleColors { get; set; }
[Category("Metro Behaviour")]
[Browsable(false)]
[DefaultValue(false)]
public bool UseSelectable
{
get => GetStyle(ControlStyles.Selectable);
set => SetStyle(ControlStyles.Selectable, value);
}
[Category("Metro Appearance")]
[DefaultValue(MetroColorStyle.Blue)]
public MetroColorStyle Style
{
get
{
if (DesignMode || metroStyle != MetroColorStyle.Blue)
return metroStyle;
if (StyleManager != null && metroStyle == MetroColorStyle.Blue)
return StyleManager.Style;
return StyleManager == null && metroStyle == MetroColorStyle.Blue ? MetroColorStyle.Blue : metroStyle;
}
set => metroStyle = value;
}
[Category("Metro Appearance")]
[DefaultValue(MetroThemeStyle.Light)]
public MetroThemeStyle Theme
{
get
{
if (DesignMode || metroTheme != MetroThemeStyle.Light)
return metroTheme;
if (StyleManager != null && metroTheme == MetroThemeStyle.Light)
return StyleManager.Theme;
return StyleManager == null && metroTheme == MetroThemeStyle.Light ? MetroThemeStyle.Light : metroTheme;
}
set => metroTheme = value;
}
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[Browsable(false)]
public MetroStyleManager StyleManager
{
get => metroStyleManager;
set
{
metroStyleManager = value;
settheme();
}
}
private void settheme()
{
BackColor = MetroPaint.BackColor.Form(Theme);
ForeColor = MetroPaint.ForeColor.Button.Normal(Theme);
Renderer = new MetroCTXRenderer(Theme, Style);
}
private class MetroCTXRenderer : ToolStripProfessionalRenderer
{
private readonly MetroThemeStyle _theme;
public MetroCTXRenderer(MetroThemeStyle Theme, MetroColorStyle Style)
: base(new contextcolors(Theme, Style)) =>
_theme = Theme;
protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e)
{
e.TextColor = MetroPaint.ForeColor.Button.Normal(_theme);
base.OnRenderItemText(e);
}
}
private class contextcolors : ProfessionalColorTable
{
private readonly MetroColorStyle _style = MetroColorStyle.Blue;
private readonly MetroThemeStyle _theme = MetroThemeStyle.Light;
public contextcolors(MetroThemeStyle Theme, MetroColorStyle Style)
{
_theme = Theme;
_style = Style;
}
public override Color MenuItemSelected => MetroPaint.GetStyleColor(_style);
public override Color MenuBorder => MetroPaint.BackColor.Form(_theme);
public override Color ToolStripBorder => MetroPaint.GetStyleColor(_style);
public override Color MenuItemBorder => MetroPaint.GetStyleColor(_style);
public override Color ToolStripDropDownBackground => MetroPaint.BackColor.Form(_theme);
public override Color ImageMarginGradientBegin => MetroPaint.BackColor.Form(_theme);
public override Color ImageMarginGradientMiddle => MetroPaint.BackColor.Form(_theme);
public override Color ImageMarginGradientEnd => MetroPaint.BackColor.Form(_theme);
}
}
}

View File

@ -0,0 +1,156 @@
using System;
using System.Drawing;
using System.Media;
using System.Threading;
using System.Windows.Forms;
namespace cashew.MessageBox
{
public static class MetroMessageBox
{
public static DialogResult Show(IWin32Window owner, string message) =>
Show(owner, message, "Notification", 211);
public static DialogResult Show(IWin32Window owner, string message, int height) =>
Show(owner, message, "Notification", height);
public static DialogResult Show(IWin32Window owner, string message, string title) =>
Show(owner, message, title, MessageBoxButtons.OK, 211);
public static DialogResult Show(
IWin32Window owner,
string message,
string title,
int height) =>
Show(owner, message, title, MessageBoxButtons.OK, height);
public static DialogResult Show(
IWin32Window owner,
string message,
string title,
MessageBoxButtons buttons) =>
Show(owner, message, title, buttons, MessageBoxIcon.None, 211);
public static DialogResult Show(
IWin32Window owner,
string message,
string title,
MessageBoxButtons buttons,
int height) =>
Show(owner, message, title, buttons, MessageBoxIcon.None, height);
public static DialogResult Show(
IWin32Window owner,
string message,
string title,
MessageBoxButtons buttons,
MessageBoxIcon icon) =>
Show(owner, message, title, buttons, icon, MessageBoxDefaultButton.Button1, 211);
public static DialogResult Show(
IWin32Window owner,
string message,
string title,
MessageBoxButtons buttons,
MessageBoxIcon icon,
int height) =>
Show(owner, message, title, buttons, icon, MessageBoxDefaultButton.Button1, height);
public static DialogResult Show(
IWin32Window owner,
string message,
string title,
MessageBoxButtons buttons,
MessageBoxIcon icon,
MessageBoxDefaultButton defaultbutton) =>
Show(owner, message, title, buttons, icon, defaultbutton, 211);
public static DialogResult Show(
IWin32Window owner,
string message,
string title,
MessageBoxButtons buttons,
MessageBoxIcon icon,
MessageBoxDefaultButton defaultbutton,
int height)
{
DialogResult dialogResult = DialogResult.None;
if (owner != null)
{
Form form = !(owner is Form) ? ((ContainerControl) owner).ParentForm : (Form) owner;
switch (icon)
{
case MessageBoxIcon.Hand:
SystemSounds.Hand.Play();
break;
case MessageBoxIcon.Question:
SystemSounds.Beep.Play();
break;
case MessageBoxIcon.Exclamation:
SystemSounds.Exclamation.Play();
break;
default:
SystemSounds.Asterisk.Play();
break;
}
MetroMessageBoxControl messageBoxControl = new MetroMessageBoxControl();
messageBoxControl.BackColor = form.BackColor;
messageBoxControl.Properties.Buttons = buttons;
messageBoxControl.Properties.DefaultButton = defaultbutton;
messageBoxControl.Properties.Icon = icon;
messageBoxControl.Properties.Message = message;
messageBoxControl.Properties.Title = title;
messageBoxControl.Padding = new Padding(0, 0, 0, 0);
messageBoxControl.ControlBox = false;
messageBoxControl.ShowInTaskbar = false;
messageBoxControl.TopMost = true;
messageBoxControl.Size = new Size(form.Size.Width, height);
messageBoxControl.Location = new Point(form.Location.X,
form.Location.Y + (form.Height - messageBoxControl.Height) / 2);
messageBoxControl.ArrangeApperance();
Convert.ToInt32(Math.Floor(messageBoxControl.Size.Height * 0.28));
int num = (int) messageBoxControl.ShowDialog();
messageBoxControl.BringToFront();
messageBoxControl.SetDefaultButton();
Action<MetroMessageBoxControl> action = ModalState;
IAsyncResult asyncResult = action.BeginInvoke(messageBoxControl, null, action);
bool flag = false;
try
{
while (!asyncResult.IsCompleted)
{
Thread.Sleep(1);
Application.DoEvents();
}
}
catch
{
flag = true;
if (!asyncResult.IsCompleted)
try
{
}
catch
{
}
}
if (!flag)
{
dialogResult = messageBoxControl.Result;
messageBoxControl.Dispose();
}
}
return dialogResult;
}
private static void ModalState(MetroMessageBoxControl control)
{
do
;
while (control.Visible);
}
}
}

View File

@ -0,0 +1,340 @@
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Windows.Forms;
using MetroFramework.Controls;
namespace cashew.MessageBox
{
public class MetroMessageBoxControl : Form
{
[DebuggerBrowsable(DebuggerBrowsableState.Never)]
private readonly Color _defaultColor = Color.FromArgb(57, 179, 215);
[DebuggerBrowsable(DebuggerBrowsableState.Never)]
private readonly Color _errorColor = Color.FromArgb(210, 50, 45);
[DebuggerBrowsable(DebuggerBrowsableState.Never)]
private readonly Color _question = Color.FromArgb(71, 164, 71);
[DebuggerBrowsable(DebuggerBrowsableState.Never)]
private readonly Color _warningColor = Color.FromArgb(237, 156, 40);
private Label _messageLabel;
private MetroButton _metroButton1;
private MetroButton _metroButton2;
private MetroButton _metroButton3;
private Panel _pnlBottom;
[DebuggerBrowsable(DebuggerBrowsableState.Never)]
private Color _success = Color.FromArgb(71, 164, 71);
private Label _titleLabel;
private TableLayoutPanel _tlpBody;
private IContainer components;
public MetroMessageBoxControl()
{
InitializeComponent();
Properties = new MetroMessageBoxProperties(this);
StylizeButton(_metroButton1);
StylizeButton(_metroButton2);
StylizeButton(_metroButton3);
_metroButton1.Click += button_Click;
_metroButton2.Click += button_Click;
_metroButton3.Click += button_Click;
}
public Panel Body { get; private set; }
public MetroMessageBoxProperties Properties { get; }
public DialogResult Result { get; private set; }
public void ArrangeApperance()
{
_titleLabel.Text = Properties.Title;
_messageLabel.Text = Properties.Message;
switch (Properties.Icon)
{
case MessageBoxIcon.Hand:
Body.BackColor = _errorColor;
break;
case MessageBoxIcon.Exclamation:
Body.BackColor = _warningColor;
break;
}
switch (Properties.Buttons)
{
case MessageBoxButtons.OK:
EnableButton(_metroButton1);
_metroButton1.Text = "Ok";
_metroButton1.Location = _metroButton3.Location;
_metroButton1.Tag = DialogResult.OK;
EnableButton(_metroButton2, false);
EnableButton(_metroButton3, false);
break;
case MessageBoxButtons.OKCancel:
EnableButton(_metroButton1);
_metroButton1.Text = "Ok";
_metroButton1.Location = _metroButton2.Location;
_metroButton1.Tag = DialogResult.OK;
EnableButton(_metroButton2);
_metroButton2.Text = "Cancel";
_metroButton2.Location = _metroButton3.Location;
_metroButton2.Tag = DialogResult.Cancel;
EnableButton(_metroButton3, false);
break;
case MessageBoxButtons.AbortRetryIgnore:
EnableButton(_metroButton1);
_metroButton1.Text = "Abort";
_metroButton1.Tag = DialogResult.Abort;
EnableButton(_metroButton2);
_metroButton2.Text = "Retry";
_metroButton2.Tag = DialogResult.Retry;
EnableButton(_metroButton3);
_metroButton3.Text = "Ignore";
_metroButton3.Tag = DialogResult.Ignore;
break;
case MessageBoxButtons.YesNoCancel:
EnableButton(_metroButton1);
_metroButton1.Text = "Yes";
_metroButton1.Tag = DialogResult.Yes;
EnableButton(_metroButton2);
_metroButton2.Text = "No";
_metroButton2.Tag = DialogResult.No;
EnableButton(_metroButton3);
_metroButton3.Text = "Cancel";
_metroButton3.Tag = DialogResult.Cancel;
break;
case MessageBoxButtons.YesNo:
EnableButton(_metroButton1);
_metroButton1.Text = "Yes";
_metroButton1.Location = _metroButton2.Location;
_metroButton1.Tag = DialogResult.Yes;
EnableButton(_metroButton2);
_metroButton2.Text = "No";
_metroButton2.Location = _metroButton3.Location;
_metroButton2.Tag = DialogResult.No;
EnableButton(_metroButton3, false);
break;
case MessageBoxButtons.RetryCancel:
EnableButton(_metroButton1);
_metroButton1.Text = "Retry";
_metroButton1.Location = _metroButton2.Location;
_metroButton1.Tag = DialogResult.Retry;
EnableButton(_metroButton2);
_metroButton2.Text = "Cancel";
_metroButton2.Location = _metroButton3.Location;
_metroButton2.Tag = DialogResult.Cancel;
EnableButton(_metroButton3, false);
break;
}
switch (Properties.Icon)
{
case MessageBoxIcon.Hand:
Body.BackColor = _errorColor;
break;
case MessageBoxIcon.Question:
Body.BackColor = _question;
break;
case MessageBoxIcon.Exclamation:
Body.BackColor = _warningColor;
break;
case MessageBoxIcon.Asterisk:
Body.BackColor = _defaultColor;
break;
default:
Body.BackColor = Color.DarkGray;
break;
}
}
private void EnableButton(MetroButton button)
{
EnableButton(button, true);
}
private void EnableButton(MetroButton button, bool enabled)
{
button.Enabled = enabled;
button.Visible = enabled;
}
public void SetDefaultButton()
{
switch (Properties.DefaultButton)
{
case MessageBoxDefaultButton.Button1:
if (_metroButton1 == null || !_metroButton1.Enabled)
break;
_metroButton1.Focus();
break;
case MessageBoxDefaultButton.Button2:
if (_metroButton2 == null || !_metroButton2.Enabled)
break;
_metroButton2.Focus();
break;
case MessageBoxDefaultButton.Button3:
if (_metroButton3 == null || !_metroButton3.Enabled)
break;
_metroButton3.Focus();
break;
}
}
private void button_MouseClick(object sender, MouseEventArgs e)
{
}
private void button_MouseEnter(object sender, EventArgs e)
{
StylizeButton((MetroButton) sender, true);
}
private void button_MouseLeave(object sender, EventArgs e)
{
StylizeButton((MetroButton) sender);
}
private void StylizeButton(MetroButton button)
{
StylizeButton(button, false);
}
private void StylizeButton(MetroButton button, bool hovered)
{
button.Cursor = Cursors.Hand;
button.MouseClick -= button_MouseClick;
button.MouseClick += button_MouseClick;
button.MouseEnter -= button_MouseEnter;
button.MouseEnter += button_MouseEnter;
button.MouseLeave -= button_MouseLeave;
button.MouseLeave += button_MouseLeave;
}
private void button_Click(object sender, EventArgs e)
{
MetroButton metroButton = (MetroButton) sender;
if (!metroButton.Enabled)
return;
Result = (DialogResult) metroButton.Tag;
Hide();
}
protected override void Dispose(bool disposing)
{
if (disposing && components != null)
components.Dispose();
base.Dispose(disposing);
}
private void InitializeComponent()
{
Body = new Panel();
_tlpBody = new TableLayoutPanel();
_messageLabel = new Label();
_titleLabel = new Label();
_metroButton1 = new MetroButton();
_metroButton3 = new MetroButton();
_metroButton2 = new MetroButton();
_pnlBottom = new Panel();
Body.SuspendLayout();
_tlpBody.SuspendLayout();
_pnlBottom.SuspendLayout();
SuspendLayout();
Body.BackColor = Color.DarkGray;
Body.Controls.Add(_tlpBody);
Body.Dock = DockStyle.Fill;
Body.Location = new Point(0, 0);
Body.Margin = new Padding(0);
Body.Name = "Body";
Body.Size = new Size(804, 211);
Body.TabIndex = 2;
_tlpBody.ColumnCount = 3;
_tlpBody.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 10f));
_tlpBody.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 80f));
_tlpBody.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 10f));
_tlpBody.Controls.Add(_messageLabel, 1, 2);
_tlpBody.Controls.Add(_titleLabel, 1, 1);
_tlpBody.Controls.Add(_pnlBottom, 1, 3);
_tlpBody.Dock = DockStyle.Fill;
_tlpBody.Location = new Point(0, 0);
_tlpBody.Name = "_tlpBody";
_tlpBody.RowCount = 4;
_tlpBody.RowStyles.Add(new RowStyle(SizeType.Absolute, 5f));
_tlpBody.RowStyles.Add(new RowStyle(SizeType.Absolute, 25f));
_tlpBody.RowStyles.Add(new RowStyle(SizeType.Percent, 100f));
_tlpBody.RowStyles.Add(new RowStyle(SizeType.Absolute, 40f));
_tlpBody.Size = new Size(804, 211);
_tlpBody.TabIndex = 6;
_messageLabel.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
_messageLabel.BackColor = Color.Transparent;
_messageLabel.ForeColor = Color.White;
_messageLabel.Location = new Point(83, 30);
_messageLabel.Margin = new Padding(3, 0, 0, 0);
_messageLabel.Name = "_messageLabel";
_messageLabel.Size = new Size(640, 141);
_messageLabel.TabIndex = 0;
_messageLabel.Text = "message here";
_titleLabel.AutoSize = true;
_titleLabel.BackColor = Color.Transparent;
_titleLabel.Font = new Font("Segoe UI Semibold", 14.25f, FontStyle.Bold, GraphicsUnit.Point, 0);
_titleLabel.ForeColor = Color.WhiteSmoke;
_titleLabel.Location = new Point(80, 5);
_titleLabel.Margin = new Padding(0);
_titleLabel.Name = "_titleLabel";
_titleLabel.Size = new Size(125, 25);
_titleLabel.TabIndex = 1;
_titleLabel.Text = "message title";
_metroButton1.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
_metroButton1.BackColor = Color.ForestGreen;
_metroButton1.Location = new Point(357, 1);
_metroButton1.Name = "_metroButton1";
_metroButton1.Size = new Size(90, 26);
_metroButton1.TabIndex = 3;
_metroButton1.Text = "button 1";
_metroButton3.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
_metroButton3.Location = new Point(553, 1);
_metroButton3.Name = "_metroButton3";
_metroButton3.Size = new Size(90, 26);
_metroButton3.TabIndex = 5;
_metroButton3.Text = "button 3";
_metroButton2.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
_metroButton2.Location = new Point(455, 1);
_metroButton2.Name = "_metroButton2";
_metroButton2.Size = new Size(90, 26);
_metroButton2.TabIndex = 4;
_metroButton2.Text = "button 2";
_pnlBottom.BackColor = Color.Transparent;
_pnlBottom.Controls.Add(_metroButton2);
_pnlBottom.Controls.Add(_metroButton1);
_pnlBottom.Controls.Add(_metroButton3);
_pnlBottom.Dock = DockStyle.Fill;
_pnlBottom.Location = new Point(80, 171);
_pnlBottom.Margin = new Padding(0);
_pnlBottom.Name = "_pnlBottom";
_pnlBottom.Size = new Size(643, 40);
_pnlBottom.TabIndex = 2;
AutoScaleDimensions = new SizeF(8f, 21f);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(804, 211);
ControlBox = false;
Controls.Add(Body);
Font = new Font("Segoe UI Light", 12f, FontStyle.Regular, GraphicsUnit.Point, 0);
FormBorderStyle = FormBorderStyle.None;
Margin = new Padding(4, 5, 4, 5);
Name = nameof(MetroMessageBoxControl);
StartPosition = FormStartPosition.Manual;
Body.ResumeLayout(false);
_tlpBody.ResumeLayout(false);
_tlpBody.PerformLayout();
_pnlBottom.ResumeLayout(false);
ResumeLayout(false);
}
}
}

View File

@ -0,0 +1,21 @@
using System.Windows.Forms;
namespace cashew.MessageBox
{
public class MetroMessageBoxProperties
{
public MetroMessageBoxProperties(MetroMessageBoxControl owner) => Owner = owner;
public MessageBoxButtons Buttons { get; set; }
public MessageBoxDefaultButton DefaultButton { get; set; }
public MessageBoxIcon Icon { get; set; }
public string Message { get; set; }
public MetroMessageBoxControl Owner { get; }
public string Title { get; set; }
}
}

View File

@ -10,6 +10,8 @@ namespace cashew
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Console.Title = "The Cashew Project - Native Shell (do not close)";
Console.WriteLine("Welcome to Cashew. Your programs output will be redirected here");
Application.Run(new MainForm());
}
}

View File

@ -1,35 +0,0 @@
using System.Reflection;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("cashew")]
[assembly: AssemblyDescription("A basic GUI for multiple common programming languages")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("CreepyCrafter24")]
[assembly: AssemblyProduct("cashew")]
[assembly: AssemblyCopyright("Copyright © 2018")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("1ac90e29-b37e-401c-9960-66bc66d4efbf")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@ -1,26 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace cashew.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.3.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}

View File

@ -1,7 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

View File

@ -8,10 +8,15 @@
// </auto-generated>
//------------------------------------------------------------------------------
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.Resources;
using System.Runtime.CompilerServices;
namespace cashew {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
@ -19,27 +24,27 @@ namespace cashew {
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[GeneratedCode("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
[DebuggerNonUserCode()]
[CompilerGenerated()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
private static CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
[EditorBrowsable(EditorBrowsableState.Advanced)]
internal static ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("cashew.Resources", typeof(Resources).Assembly);
if (ReferenceEquals(resourceMan, null)) {
ResourceManager temp = new ResourceManager("cashew.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
@ -50,8 +55,8 @@ namespace cashew {
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
[EditorBrowsable(EditorBrowsableState.Advanced)]
internal static CultureInfo Culture {
get {
return resourceCulture;
}

View File

@ -122,6 +122,6 @@
<value>IronPythonBCL.zip;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="packages" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>packages.config;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
<value>cashew.csproj;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
</root>

View File

@ -1,11 +1,14 @@
namespace cashew
using System.ComponentModel;
using System.Windows.Forms;
namespace cashew
{
partial class Splash
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
private IContainer components = null;
/// <summary>
/// Clean up any resources being used.
@ -65,6 +68,6 @@
#endregion
private System.Windows.Forms.Label label1;
private Label label1;
}
}

View File

@ -1,225 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{1AC90E29-B37E-401C-9960-66BC66D4EFBF}</ProjectGuid>
<TargetFramework>net461</TargetFramework>
<OutputType>Exe</OutputType>
<RootNamespace>cashew</RootNamespace>
<AssemblyName>cashew</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
<TargetFrameworkProfile />
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>none</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<UseWindowsForms>true</UseWindowsForms>
<Deterministic>false</Deterministic>
<AssemblyVersion>1.0.*</AssemblyVersion>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>Cashew-64.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup />
<PropertyGroup>
<StartupObject>
</StartupObject>
</PropertyGroup>
<ItemGroup>
<Reference Include="CC_Functions.Misc, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\CC-Functions.Misc.1.0.2\lib\CC_Functions.Misc.dll</HintPath>
</Reference>
<Reference Include="Humanizer, Version=2.7.0.0, Culture=neutral, PublicKeyToken=979442b78dfc278e, processorArchitecture=MSIL">
<HintPath>..\packages\Humanizer.Core.2.7.9\lib\netstandard2.0\Humanizer.dll</HintPath>
</Reference>
<Reference Include="ICSharpCode.Decompiler, Version=5.0.2.5153, Culture=neutral, PublicKeyToken=d4bfe873e7598c49, processorArchitecture=MSIL">
<HintPath>..\packages\ICSharpCode.Decompiler.5.0.2.5153\lib\netstandard2.0\ICSharpCode.Decompiler.dll</HintPath>
</Reference>
<Reference Include="ICSharpCode.NRefactory, Version=5.0.0.0, Culture=neutral, PublicKeyToken=d4bfe873e7598c49, processorArchitecture=MSIL">
<HintPath>..\packages\ICSharpCode.NRefactory.5.5.1\lib\Net40\ICSharpCode.NRefactory.dll</HintPath>
</Reference>
<Reference Include="ICSharpCode.NRefactory.Cecil, Version=5.0.0.0, Culture=neutral, PublicKeyToken=d4bfe873e7598c49, processorArchitecture=MSIL">
<HintPath>..\packages\ICSharpCode.NRefactory.5.5.1\lib\Net40\ICSharpCode.NRefactory.Cecil.dll</HintPath>
</Reference>
<Reference Include="ICSharpCode.NRefactory.CSharp, Version=5.0.0.0, Culture=neutral, PublicKeyToken=d4bfe873e7598c49, processorArchitecture=MSIL">
<HintPath>..\packages\ICSharpCode.NRefactory.5.5.1\lib\Net40\ICSharpCode.NRefactory.CSharp.dll</HintPath>
</Reference>
<Reference Include="ICSharpCode.NRefactory.Xml, Version=5.0.0.0, Culture=neutral, PublicKeyToken=d4bfe873e7598c49, processorArchitecture=MSIL">
<HintPath>..\packages\ICSharpCode.NRefactory.5.5.1\lib\Net40\ICSharpCode.NRefactory.Xml.dll</HintPath>
</Reference>
<Reference Include="ICSharpCode.TextEditor, Version=4.2.0.0, Culture=neutral, PublicKeyToken=4d61825e8dd49f1a, processorArchitecture=MSIL">
<HintPath>..\packages\ICSharpCode.TextEditor.Extended.4.2.4\lib\net45\ICSharpCode.TextEditor.dll</HintPath>
</Reference>
<Reference Include="IronPython, Version=2.7.9.0, Culture=neutral, PublicKeyToken=7f709c5b713576e1, processorArchitecture=MSIL">
<HintPath>..\packages\IronPython.2.7.9\lib\net45\IronPython.dll</HintPath>
</Reference>
<Reference Include="IronPython.Modules, Version=2.7.9.0, Culture=neutral, PublicKeyToken=7f709c5b713576e1, processorArchitecture=MSIL">
<HintPath>..\packages\IronPython.2.7.9\lib\net45\IronPython.Modules.dll</HintPath>
</Reference>
<Reference Include="IronPython.SQLite, Version=2.7.9.0, Culture=neutral, PublicKeyToken=7f709c5b713576e1, processorArchitecture=MSIL">
<HintPath>..\packages\IronPython.2.7.9\lib\net45\IronPython.SQLite.dll</HintPath>
</Reference>
<Reference Include="IronPython.Wpf, Version=2.7.9.0, Culture=neutral, PublicKeyToken=7f709c5b713576e1, processorArchitecture=MSIL">
<HintPath>..\packages\IronPython.2.7.9\lib\net45\IronPython.Wpf.dll</HintPath>
</Reference>
<Reference Include="MetroFramework, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a, processorArchitecture=MSIL">
<HintPath>..\packages\MetroModernUI.1.4.0.0\lib\net\MetroFramework.dll</HintPath>
</Reference>
<Reference Include="MetroFramework.Design, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a, processorArchitecture=MSIL">
<HintPath>..\packages\MetroModernUI.1.4.0.0\lib\net\MetroFramework.Design.dll</HintPath>
</Reference>
<Reference Include="MetroFramework.Fonts, Version=1.4.0.0, Culture=neutral, PublicKeyToken=5f91a84759bf584a, processorArchitecture=MSIL">
<HintPath>..\packages\MetroModernUI.1.4.0.0\lib\net\MetroFramework.Fonts.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Dynamic, Version=1.2.2.0, Culture=neutral, PublicKeyToken=7f709c5b713576e1, processorArchitecture=MSIL">
<HintPath>..\packages\DynamicLanguageRuntime.1.2.2\lib\net45\Microsoft.Dynamic.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Scripting, Version=1.2.2.0, Culture=neutral, PublicKeyToken=7f709c5b713576e1, processorArchitecture=MSIL">
<HintPath>..\packages\DynamicLanguageRuntime.1.2.2\lib\net45\Microsoft.Scripting.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Scripting.Metadata, Version=1.2.2.0, Culture=neutral, PublicKeyToken=7f709c5b713576e1, processorArchitecture=MSIL">
<HintPath>..\packages\DynamicLanguageRuntime.1.2.2\lib\net45\Microsoft.Scripting.Metadata.dll</HintPath>
</Reference>
<Reference Include="Mono.Cecil, Version=0.11.1.0, Culture=neutral, PublicKeyToken=50cebf1cceb9d05e, processorArchitecture=MSIL">
<HintPath>..\packages\Mono.Cecil.0.11.1\lib\net40\Mono.Cecil.dll</HintPath>
</Reference>
<Reference Include="Mono.Cecil.Mdb, Version=0.11.1.0, Culture=neutral, PublicKeyToken=50cebf1cceb9d05e, processorArchitecture=MSIL">
<HintPath>..\packages\Mono.Cecil.0.11.1\lib\net40\Mono.Cecil.Mdb.dll</HintPath>
</Reference>
<Reference Include="Mono.Cecil.Pdb, Version=0.11.1.0, Culture=neutral, PublicKeyToken=50cebf1cceb9d05e, processorArchitecture=MSIL">
<HintPath>..\packages\Mono.Cecil.0.11.1\lib\net40\Mono.Cecil.Pdb.dll</HintPath>
</Reference>
<Reference Include="Mono.Cecil.Rocks, Version=0.11.1.0, Culture=neutral, PublicKeyToken=50cebf1cceb9d05e, processorArchitecture=MSIL">
<HintPath>..\packages\Mono.Cecil.0.11.1\lib\net40\Mono.Cecil.Rocks.dll</HintPath>
</Reference>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.5.0\lib\netstandard2.0\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.Collections.Immutable, Version=1.2.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Collections.Immutable.1.6.0\lib\netstandard2.0\System.Collections.Immutable.dll</HintPath>
</Reference>
<Reference Include="System.Core" />
<Reference Include="System.IO.Compression">
<HintPath>..\..\T.O.F.U\Net_TOFU\bin\Release\System.IO.Compression.dll</HintPath>
</Reference>
<Reference Include="System.IO.Compression.FileSystem" />
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Reflection.Metadata, Version=1.4.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Reflection.Metadata.1.7.0\lib\netstandard2.0\System.Reflection.Metadata.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.5.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.6.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Xaml" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="UIAutomationProvider" />
<Reference Include="WindowsBase" />
<Reference Include="WindowsFormsIntegration" />
</ItemGroup>
<ItemGroup>
<Compile Include="MainForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Splash.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Splash.Designer.cs">
<DependentUpon>Splash.cs</DependentUpon>
</Compile>
<EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<SubType>Designer</SubType>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Include="Splash.resx">
<DependentUpon>Splash.cs</DependentUpon>
</EmbeddedResource>
<AdditionalFiles Include="IronPythonBCL.zip">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</AdditionalFiles>
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<Content Include="Cashew-64.ico" />
</ItemGroup>
<ItemGroup>
<COMReference Include="stdole">
<Guid>{00020430-0000-0000-C000-000000000046}</Guid>
<VersionMajor>2</VersionMajor>
<VersionMinor>0</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>primary</WrapperTool>
<Isolated>False</Isolated>
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>
<PackageReference Include="CC-Functions.Misc" Version="1.1.7474.36199" />
<PackageReference Include="ICSharpCode.Decompiler" Version="5.0.2.5153" />
<PackageReference Include="ICSharpCode.TextEditor.Extended" Version="4.2.4" />
<PackageReference Include="IronPython" Version="2.7.10" />
<PackageReference Include="ModernUI" Version="2.0.0" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>cd $(SolutionDir)
if $(ConfigurationName)==Release C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe PostBuild.cs /r:System.IO.Compression.FileSystem.dll &amp; PostBuild $(TargetDir) $(TargetFileName) &amp; del PostBuild.exe</PostBuildEvent>
<PostBuildEvent>
if exist "$(SolutionDir)Data\pkgtool.exe" ($(SolutionDir)Data\pkgtool.exe build --noLogo --binDir .) else if exist "%appdata%\UpTool2\Apps\0e35d154-d0d3-45e0-b080-62f521263a44\app\pkgtool.exe" ("%appdata%\UpTool2\Apps\0e35d154-d0d3-45e0-b080-62f521263a44\app\pkgtool.exe" build --noLogo --binDir .) else echo Cound not find Package build tools, skipping</PostBuildEvent>
</PropertyGroup>
</Project>

View File

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="CC-Functions.Misc" version="1.0.2" targetFramework="net461" />
<package id="DynamicLanguageRuntime" version="1.2.2" targetFramework="net461" />
<package id="Humanizer.Core" version="2.7.9" targetFramework="net472" />
<package id="ICSharpCode.Decompiler" version="5.0.2.5153" targetFramework="net472" />
<package id="ICSharpCode.NRefactory" version="5.5.1" targetFramework="net472" />
<package id="ICSharpCode.TextEditor.Extended" version="4.2.4" targetFramework="net472" />
<package id="IronPython" version="2.7.9" targetFramework="net461" />
<package id="MetroModernUI" version="1.4.0.0" targetFramework="net461" />
<package id="Mono.Cecil" version="0.11.1" targetFramework="net472" />
<package id="System.Buffers" version="4.5.0" targetFramework="net472" />
<package id="System.Collections.Immutable" version="1.6.0" targetFramework="net472" />
<package id="System.Memory" version="4.5.3" targetFramework="net472" />
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net472" />
<package id="System.Reflection.Metadata" version="1.7.0" targetFramework="net472" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.6.0" targetFramework="net472" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net461" />
</packages>

5
renovate.json Normal file
View File

@ -0,0 +1,5 @@
{
"extends": [
"config:base"
]
}