Merge pull request #15 from PhoenixARC/github-desktop-eternalmodz/main

Major GUI Update
This commit is contained in:
Miku-666
2022-12-18 00:48:20 +01:00
committed by GitHub
21 changed files with 305 additions and 260 deletions

View File

@@ -9,8 +9,14 @@ jobs:
steps:
- uses: actions/checkout@v3
- name: Checkout submodules
run: |
git submodule update --init --recursive
- name: Setup MSBuild
uses: microsoft/setup-msbuild@v1.1
- name: Setup NuGet
uses: NuGet/setup-nuget@v1.0.6

2
.gitmodules vendored
View File

@@ -1,3 +1,3 @@
[submodule "CrEaTiiOn-Brotherhood-Official-C-Theme"]
path = CrEaTiiOn-Brotherhood-Official-C-Theme
url = https://github.com/EternalModz/CrEaTiiOn-Brotherhood-Official-C-Theme
url = https://github.com/EternalModz/CrEaTiiOn-Brotherhood-Official-C-Theme.git

View File

@@ -0,0 +1,21 @@
using System.ComponentModel;
using System.Windows.Forms;
using Dark.Net;
namespace PckStudio.Classes.ToolboxItems
{
public partial class ThemeForm : Form
{
public ThemeForm()
: base()
{
DarkNet.Instance.SetWindowThemeForms(this, Theme.Auto);
}
public ThemeForm(IContainer container)
: this()
{
container.Add(this);
}
}
}

View File

@@ -22,10 +22,11 @@ using PckStudio.Forms.Editor;
using PckStudio.Forms.Additional_Popups.Animation;
using PckStudio.Forms.Additional_Popups;
using PckStudio.Classes.Misc;
using PckStudio.Classes.ToolboxItems;
namespace PckStudio
{
public partial class MainForm : Form
public partial class MainForm : ThemeForm
{
string saveLocation = string.Empty;
PCKFile currentPCK = null;
@@ -300,7 +301,7 @@ namespace PckStudio
private void BuildMainTreeView()
{
// In case the Rename function was just used and the selected node name no longer matches the file name
string filepath = "";
string filepath = string.Empty;
if(treeViewMain.SelectedNode is TreeNode node && node.Tag is PCKFile.FileData file)
filepath = file.filepath;
treeViewMain.Nodes.Clear();
@@ -370,15 +371,10 @@ namespace PckStudio
private void UpdateRPC()
{
if (currentPCK == null)
{
RPC.SetPresence("An Open Source .PCK File Editor", "Program by PhoenixARC");
return;
};
if (TryGetLocFile(out LOCFile locfile) &&
locfile.HasLocEntry("IDS_DISPLAY_NAME") &&
locfile.Languages.Contains("en-EN"))
if (currentPCK is not null &&
TryGetLocFile(out LOCFile locfile) &&
locfile.HasLocEntry("IDS_DISPLAY_NAME") &&
locfile.Languages.Contains("en-EN"))
{
RPC.SetPresence($"Editing a Pack: {locfile.GetLocEntry("IDS_DISPLAY_NAME", "en-EN")}", "Program by PhoenixARC");
return;
@@ -826,18 +822,17 @@ namespace PckStudio
}
}
bool IsSubPCKNode(string nodePath)
bool IsSubPCKNode(string nodePath, string extention = ".pck")
{
// written by miku, implemented and modified by me - MNL
if (nodePath.EndsWith(extention)) return false;
string[] subpaths = nodePath.Split('/');
string[] conditions = subpaths.Select(s => Path.GetExtension(s) switch {
".pck" => "yes",
_ => "no",
}).ToArray();
var conditions = subpaths.Select(s => Path.GetExtension(s).Equals(extention));
bool isSubFile = conditions.Contains("yes") && !nodePath.EndsWith(".pck");
bool isSubFile = conditions.Contains(true);
Console.WriteLine(nodePath + " is " + (isSubFile ? "" : "not ") + "a Sub-PCK File");
Console.WriteLine($"{nodePath} is{(isSubFile ? "" : " not")} a Sub-PCK File");
return isSubFile;
}
@@ -864,19 +859,16 @@ namespace PckStudio
TreeNode GetSubPCK(TreeNode child)
{
TreeNode parent = child;
bool flag = false;
while (parent.Parent != null)
{
parent = parent.Parent;
Console.WriteLine(parent.Text);
flag = parent.Tag is PCKFile.FileData f && (f.filetype is PCKFile.FileData.FileType.TexturePackInfoFile || f.filetype is PCKFile.FileData.FileType.SkinDataFile);
if (flag) break;
if (parent.Tag is PCKFile.FileData f &&
(f.filetype is PCKFile.FileData.FileType.TexturePackInfoFile ||
f.filetype is PCKFile.FileData.FileType.SkinDataFile))
return parent;
}
if (!flag) return null;
else return parent;
return null;
}
void RebuildSubPCK(TreeNode childNode)
@@ -894,9 +886,8 @@ namespace PckStudio
foreach (TreeNode node in GetNodes(parent.Nodes))
{
if (node.Tag is PCKFile.FileData)
if (node.Tag is PCKFile.FileData node_file)
{
PCKFile.FileData node_file = (PCKFile.FileData)node.Tag;
PCKFile.FileData new_file = new PCKFile.FileData(node_file.filepath, node_file.filetype);
foreach (var prop in node_file.properties) new_file.properties.Add(prop);
new_file.SetData(node_file.data);
@@ -904,12 +895,15 @@ namespace PckStudio
}
}
MemoryStream ms = new MemoryStream();
// Bool to add the XMLVersion property
bool isSkinsPCK = parent_file.filetype is PCKFile.FileData.FileType.SkinDataFile;
using (MemoryStream ms = new MemoryStream())
{
PCKFileWriter.Write(ms, newPCKFile, LittleEndianCheckBox.Checked, isSkinsPCK);
parent_file.SetData(ms.ToArray());
parent.Tag = parent_file;
}
BuildMainTreeView();
}
@@ -934,61 +928,70 @@ namespace PckStudio
private void treeMeta_DoubleClick(object sender, EventArgs e)
{
if (treeMeta.SelectedNode == null || !(treeMeta.SelectedNode.Tag is ValueTuple<string, string>) ||
treeViewMain.SelectedNode == null || !(treeViewMain.SelectedNode.Tag is PCKFile.FileData))
return;
PCKFile.FileData file = (PCKFile.FileData)treeViewMain.SelectedNode.Tag;
var property = (ValueTuple<string, string>)treeMeta.SelectedNode.Tag;
int i = file.properties.IndexOf(property);
if (property.Item1 == "ANIM" && i != -1 && file.filetype == PCKFile.FileData.FileType.SkinFile)
if (treeMeta.SelectedNode is TreeNode subnode && subnode.Tag is ValueTuple<string, string> property &&
treeViewMain.SelectedNode is TreeNode node && node.Tag is PCKFile.FileData file)
{
using ANIMEditor diag = new ANIMEditor(property.Item2);
try
int i = file.properties.IndexOf(property);
if (i != -1)
{
if (diag.ShowDialog(this) == DialogResult.OK && diag.saved)
switch (property.Item1)
{
file.properties[i] = new ValueTuple<string, string>("ANIM", diag.outANIM);
if (IsSubPCKNode(treeViewMain.SelectedNode.FullPath)) RebuildSubPCK(treeViewMain.SelectedNode);
ReloadMetaTreeView();
saved = false;
case "ANIM" when file.filetype == PCKFile.FileData.FileType.SkinFile:
try
{
using ANIMEditor diag = new ANIMEditor(property.Item2);
if (diag.ShowDialog(this) == DialogResult.OK && diag.saved)
{
file.properties[i] = ("ANIM", diag.outANIM);
if (IsSubPCKNode(treeViewMain.SelectedNode.FullPath))
RebuildSubPCK(treeViewMain.SelectedNode);
ReloadMetaTreeView();
saved = false;
}
return;
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
MessageBox.Show("Failed to parse ANIM value, aborting to normal functionality. Please make sure the value only includes hexadecimal characters (0-9,A-F) and has no more than 8 characters. It can have an optional prefix of \"0x\".");
}
break;
case "BOX" when file.filetype == PCKFile.FileData.FileType.SkinFile:
try
{
using BoxEditor diag = new BoxEditor(property.Item2, IsSubPCKNode(treeViewMain.SelectedNode.FullPath));
if (diag.ShowDialog(this) == DialogResult.OK)
{
file.properties[i] = ("BOX", diag.Result);
if (IsSubPCKNode(treeViewMain.SelectedNode.FullPath))
RebuildSubPCK(treeViewMain.SelectedNode);
ReloadMetaTreeView();
saved = false;
}
return;
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
MessageBox.Show("Failed to parse BOX value, aborting to normal functionality.");
}
break;
default:
break;
}
return;
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
MessageBox.Show("Failed to parse ANIM value, aborting to normal functionality. Please make sure the value only includes hexadecimal characters (0-9,A-F) and has no more than 8 characters. It can have an optional prefix of \"0x\".");
}
}
else if (property.Item1 == "BOX" && i != -1 && file.filetype == PCKFile.FileData.FileType.SkinFile)
{
try
{
using BoxEditor diag = new BoxEditor(property.Item2, IsSubPCKNode(treeViewMain.SelectedNode.FullPath));
if (diag.ShowDialog(this) == DialogResult.OK)
using AddMeta add = new AddMeta(property.Item1, property.Item2);
if (add.ShowDialog() == DialogResult.OK && i != -1)
{
file.properties[i] = new ValueTuple<string, string>("BOX", diag.Result);
file.properties[i] = new ValueTuple<string, string>(add.PropertyName, add.PropertyValue);
if (IsSubPCKNode(treeViewMain.SelectedNode.FullPath))
RebuildSubPCK(treeViewMain.SelectedNode);
ReloadMetaTreeView();
saved = false;
}
return;
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
MessageBox.Show("Failed to parse BOX value, aborting to normal functionality.");
}
}
using AddMeta add = new AddMeta(property.Item1, property.Item2);
if (add.ShowDialog() == DialogResult.OK && i != -1)
{
file.properties[i] = new ValueTuple<string, string>(add.PropertyName, add.PropertyValue);
if (IsSubPCKNode(treeViewMain.SelectedNode.FullPath))
RebuildSubPCK(treeViewMain.SelectedNode);
ReloadMetaTreeView();
saved = false;
}
}
@@ -997,7 +1000,8 @@ namespace PckStudio
TreeNode node = treeViewMain.SelectedNode;
PCKFile.FileData mfO = node.Tag as PCKFile.FileData;
PCKFile.FileData mf = new PCKFile.FileData("", mfO.filetype); // Creates new minefile template
// Creates new empty file entry
PCKFile.FileData mf = new PCKFile.FileData(string.Empty, mfO.filetype);
mf.SetData(mfO.data); // adds file data to minefile
string dirName = Path.GetDirectoryName(mfO.filepath).Replace("\\", "/");
@@ -1051,14 +1055,14 @@ namespace PckStudio
private void ReloadMetaTreeView()
{
treeMeta.Nodes.Clear();
if (treeViewMain.SelectedNode is TreeNode t &&
t.Tag is PCKFile.FileData file)
file.properties.ForEach(p =>
if (treeViewMain.SelectedNode is TreeNode node &&
node.Tag is PCKFile.FileData file)
{
TreeNode node = new TreeNode(p.Item1);
node.Tag = p;
treeMeta.Nodes.Add(node);
});
foreach (var property in file.properties)
{
treeMeta.Nodes.Add(CreateNode(property.Item1, property));
}
}
}
private void addEntryToolStripMenuItem_Click_1(object sender, EventArgs e)
@@ -1224,7 +1228,7 @@ namespace PckStudio
}
currentPCK.Files.Add(zeroFile);
currentPCK.Files.Add(loc);
if(createSkinsPCK) CreateSkinsPCKToolStripMenuItem1_Click(null, null);
if(createSkinsPCK) CreateSkinsPCKToolStripMenuItem1_Click(null, EventArgs.Empty);
}
private void InitializeTexturePack(int packId, int packVersion, string packName, string res, bool createSkinsPCK = false)
@@ -1236,27 +1240,27 @@ namespace PckStudio
PCKFile infoPCK = new PCKFile(3);
var ms = new MemoryStream();
var ms2 = new MemoryStream();
var ms3 = new MemoryStream();
using (var ms = new MemoryStream())
{
var icon = new PCKFile.FileData("icon.png", PCKFile.FileData.FileType.TextureFile);
Resources.TexturePackIcon.Save(ms, ImageFormat.Png);
icon.SetData(ms.ToArray());
infoPCK.Files.Add(icon);
}
using (var ms = new MemoryStream())
{
var comparison = new PCKFile.FileData("comparison.png", PCKFile.FileData.FileType.TextureFile);
Resources.Comparison.Save(ms, ImageFormat.Png);
comparison.SetData(ms.ToArray());
var icon = new PCKFile.FileData("icon.png", PCKFile.FileData.FileType.TextureFile);
Resources.TexturePackIcon.Save(ms2, ImageFormat.Png);
icon.SetData(ms2.ToArray());
infoPCK.Files.Add(icon);
infoPCK.Files.Add(comparison);
}
PCKFileWriter.Write(ms3, infoPCK, LittleEndianCheckBox.Checked);
texturepackInfo.SetData(ms3.ToArray());
ms.Dispose();
ms2.Dispose();
ms3.Dispose();
using (var ms = new MemoryStream())
{
PCKFileWriter.Write(ms, infoPCK, LittleEndianCheckBox.Checked);
texturepackInfo.SetData(ms.ToArray());
}
currentPCK.Files.Add(texturepackInfo);
}
@@ -2149,21 +2153,20 @@ namespace PckStudio
private void CreateSkinsPCKToolStripMenuItem1_Click(object sender, EventArgs e)
{
PCKFile.FileData NewSkinsPCKFile;
if (currentPCK.TryGetFile("Skins.pck", PCKFile.FileData.FileType.SkinDataFile, out NewSkinsPCKFile))
if (currentPCK.TryGetFile("Skins.pck", PCKFile.FileData.FileType.SkinDataFile, out _))
{
MessageBox.Show("A Skins.pck file already exists in this PCK and a new one cannot be created.", "Operation aborted");
return;
}
NewSkinsPCKFile = new PCKFile.FileData("Skins.pck", PCKFile.FileData.FileType.SkinDataFile);
PCKFile.FileData newSkinsPCKFile = new PCKFile.FileData("Skins.pck", PCKFile.FileData.FileType.SkinDataFile);
using (var stream = new MemoryStream())
{
PCKFileWriter.Write(stream, new PCKFile(3), LittleEndianCheckBox.Checked, true);
NewSkinsPCKFile.SetData(stream.ToArray());
newSkinsPCKFile.SetData(stream.ToArray());
}
currentPCK.Files.Add(NewSkinsPCKFile);
currentPCK.Files.Add(newSkinsPCKFile);
BuildMainTreeView();
@@ -2179,8 +2182,7 @@ namespace PckStudio
if (treeViewMain.SelectedNode is TreeNode t &&
t.Tag is PCKFile.FileData file)
{
List<string> props = new List<string>();
file.properties.ForEach(l => props.Add(l.property + " " + l.value));
var props = file.properties.Select(l => l.property + " " + l.value);
using (var input = new TextPrompt(props.ToArray()))
{
if (input.ShowDialog(this) == DialogResult.OK)

View File

@@ -146,29 +146,6 @@
<Compile Include="Classes\FileTypes\COLFile.cs" />
<Compile Include="Classes\FileTypes\CSM.cs" />
<Compile Include="Classes\FileTypes\GRFFile.cs" />
<Compile Include="Classes\FileTypses\COL\ColorBox.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Classes\FileTypses\COL\ColorBox.designer.cs">
<DependentUpon>ColorBox.cs</DependentUpon>
</Compile>
<Compile Include="Classes\FileTypses\COL\ColorUtil.cs" />
<Compile Include="Classes\FileTypses\COL\DrawStyles.cs" />
<Compile Include="Classes\FileTypses\COL\NumericTextBox.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Classes\FileTypses\COL\TwoColorPanel.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Classes\FileTypses\COL\TwoColorPanel.designer.cs">
<DependentUpon>TwoColorPanel.cs</DependentUpon>
</Compile>
<Compile Include="Classes\FileTypses\COL\VerticalColorSlider.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Classes\FileTypses\COL\VerticalColorSlider.designer.cs">
<DependentUpon>VerticalColorSlider.cs</DependentUpon>
</Compile>
<Compile Include="Classes\IO\ARC\ARCFileWriter.cs" />
<Compile Include="Classes\IO\ARC\ARCFileReader.cs" />
<Compile Include="Classes\IO\Behaviour\BehavioursReader.cs" />
@@ -183,6 +160,9 @@
<Compile Include="Classes\IO\Sounds\SoundIO.cs" />
<Compile Include="Classes\IO\Sounds\Sounds.cs" />
<Compile Include="Classes\Models\DefaultModels\Steve64x64Model.cs" />
<Compile Include="Classes\ToolboxItems\ThemeForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Classes\Utils\3DS\3DSUtil.cs" />
<Compile Include="Classes\Utils\ARC\ARCUtil.cs" />
<Compile Include="Classes\Utils\SkinANIM.cs" />
@@ -229,16 +209,45 @@
<Compile Include="Classes\Networking\Update.cs" />
<Compile Include="Classes\Utils\GRF\CRC32.cs" />
<Compile Include="Classes\Utils\RLE.cs" />
<Compile Include="Forms\Additional-Popups\AboutThisProgram.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\Additional-Popups\AboutThisProgram.Designer.cs">
<DependentUpon>AboutThisProgram.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Additional-Popups\ChangeLogForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\Additional-Popups\ChangeLogForm.Designer.cs">
<DependentUpon>ChangeLogForm.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Additional-Popups\LOC\AddLanguage.cs">
<Compile Include="Forms\Additional-Popups\Col\ColorBox.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Forms\Additional-Popups\Col\ColorBox.designer.cs">
<DependentUpon>ColorBox.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Additional-Popups\Col\ColorUtil.cs" />
<Compile Include="Forms\Additional-Popups\Col\DrawStyles.cs" />
<Compile Include="Forms\Additional-Popups\Col\NumericTextBox.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Forms\Additional-Popups\Col\TwoColorPanel.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Forms\Additional-Popups\Col\TwoColorPanel.designer.cs">
<DependentUpon>TwoColorPanel.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Additional-Popups\Col\VerticalColorSlider.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Forms\Additional-Popups\Col\VerticalColorSlider.designer.cs">
<DependentUpon>VerticalColorSlider.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Additional-Popups\Loc\AddLanguage.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\Additional-Popups\LOC\AddLanguage.Designer.cs">
<Compile Include="Forms\Additional-Popups\Loc\AddLanguage.Designer.cs">
<DependentUpon>AddLanguage.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Additional-Popups\CreateTexturePack.cs">
@@ -289,29 +298,29 @@
<Compile Include="Forms\Additional-Popups\Animation\SetBulkSpeed.Designer.cs">
<DependentUpon>SetBulkSpeed.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Additional-Popups\Audio\CreditsEditor.cs">
<Compile Include="Forms\Additional-Popups\Audio\creditsEditor.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\Additional-Popups\Audio\CreditsEditor.Designer.cs">
<DependentUpon>CreditsEditor.cs</DependentUpon>
<Compile Include="Forms\Additional-Popups\Audio\creditsEditor.Designer.cs">
<DependentUpon>creditsEditor.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Additional-Popups\Audio\AddCategory.cs">
<Compile Include="Forms\Additional-Popups\Audio\addCategory.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\Additional-Popups\Audio\AddCategory.Designer.cs">
<DependentUpon>AddCategory.cs</DependentUpon>
<Compile Include="Forms\Additional-Popups\Audio\addCategory.Designer.cs">
<DependentUpon>addCategory.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Skins-And-Textures\AddMeta.cs">
<Compile Include="Forms\Skins-And-Textures\addMeta.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\Skins-And-Textures\AddMeta.Designer.cs">
<DependentUpon>AddMeta.cs</DependentUpon>
<Compile Include="Forms\Skins-And-Textures\addMeta.Designer.cs">
<DependentUpon>addMeta.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Skins-And-Textures\AddNewSkin.cs">
<Compile Include="Forms\Skins-And-Textures\addNewSkin.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\Skins-And-Textures\AddNewSkin.Designer.cs">
<DependentUpon>AddNewSkin.cs</DependentUpon>
<Compile Include="Forms\Skins-And-Textures\addNewSkin.Designer.cs">
<DependentUpon>addNewSkin.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Additional-Popups\AddPCKPassword.cs">
<SubType>Form</SubType>
@@ -331,19 +340,25 @@
<Compile Include="Forms\Editor\GRFEditor.Designer.cs">
<DependentUpon>GRFEditor.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Additional-Popups\GRF\AddParameter.cs">
<Compile Include="Forms\Additional-Popups\Grf\AddParameter.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\Additional-Popups\GRF\AddParameter.Designer.cs">
<Compile Include="Forms\Additional-Popups\Grf\AddParameter.Designer.cs">
<DependentUpon>AddParameter.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Additional-Popups\Audio\PleaseWait.cs">
<Compile Include="Forms\Additional-Popups\Audio\pleaseWait.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\Additional-Popups\Audio\PleaseWait.Designer.cs">
<DependentUpon>PleaseWait.cs</DependentUpon>
<Compile Include="Forms\Additional-Popups\Audio\pleaseWait.Designer.cs">
<DependentUpon>pleaseWait.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Utilities\AnimationUtil.cs" />
<Compile Include="Forms\Utilities\Preferences.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\Utilities\Preferences.Designer.cs">
<DependentUpon>Preferences.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Utilities\Skins\BoxEditor.cs">
<SubType>Form</SubType>
</Compile>
@@ -356,11 +371,17 @@
<Compile Include="Forms\Utilities\Skins\ANIMEditor.Designer.cs">
<DependentUpon>ANIMEditor.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Skins-And-Textures\GenerateModel.cs">
<Compile Include="MainForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\Skins-And-Textures\GenerateModel.Designer.cs">
<DependentUpon>GenerateModel.cs</DependentUpon>
<Compile Include="MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Skins-And-Textures\generateModel.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\Skins-And-Textures\generateModel.Designer.cs">
<DependentUpon>generateModel.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Skins-And-Textures\SkinPreview.cs">
<SubType>Form</SubType>
@@ -386,23 +407,23 @@
<Compile Include="Forms\Editor\AudioEditor.Designer.cs">
<DependentUpon>AudioEditor.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Utilities\InstallPS3.cs">
<Compile Include="Forms\Utilities\installPS3.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\Utilities\InstallPS3.Designer.cs">
<DependentUpon>InstallPS3.cs</DependentUpon>
<Compile Include="Forms\Utilities\installPS3.Designer.cs">
<DependentUpon>installPS3.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Utilities\InstallVita.cs">
<Compile Include="Forms\Utilities\installVita.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\Utilities\InstallVita.Designer.cs">
<DependentUpon>InstallVita.cs</DependentUpon>
<Compile Include="Forms\Utilities\installVita.Designer.cs">
<DependentUpon>installVita.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Utilities\InstallWiiU.cs">
<Compile Include="Forms\Utilities\installWiiU.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\Utilities\InstallWiiU.Designer.cs">
<DependentUpon>InstallWiiU.cs</DependentUpon>
<Compile Include="Forms\Utilities\installWiiU.Designer.cs">
<DependentUpon>installWiiU.cs</DependentUpon>
</Compile>
<Compile Include="Classes\Utils\ListUtils.cs" />
<Compile Include="Forms\Utilities\PCK Manager.cs">
@@ -411,23 +432,23 @@
<Compile Include="Forms\Utilities\PCK Manager.Designer.cs">
<DependentUpon>PCK Manager.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Utilities\PCKCenter.cs">
<Compile Include="Forms\Utilities\pckCenter.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\Utilities\PCKCenter.Designer.cs">
<DependentUpon>PCKCenter.cs</DependentUpon>
<Compile Include="Forms\Utilities\pckCenter.Designer.cs">
<DependentUpon>pckCenter.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Utilities\PCKCenterBeta.cs">
<Compile Include="Forms\Utilities\PckCenterBeta.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\Utilities\PCKCenterBeta.Designer.cs">
<DependentUpon>PCKCenterBeta.cs</DependentUpon>
<Compile Include="Forms\Utilities\PckCenterBeta.Designer.cs">
<DependentUpon>PckCenterBeta.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Utilities\PCKCenterOpen.cs">
<Compile Include="Forms\Utilities\pckCenterOpen.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\Utilities\PCKCenterOpen.Designer.cs">
<DependentUpon>PCKCenterOpen.cs</DependentUpon>
<Compile Include="Forms\Utilities\pckCenterOpen.Designer.cs">
<DependentUpon>pckCenterOpen.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Additional-Popups\LockPrompt.cs">
<SubType>Form</SubType>
@@ -435,12 +456,6 @@
<Compile Include="Forms\Additional-Popups\LockPrompt.Designer.cs">
<DependentUpon>LockPrompt.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Utilities\Preferences.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\Utilities\Preferences.Designer.cs">
<DependentUpon>Preferences.cs</DependentUpon>
</Compile>
<Compile Include="Forms\Utilities\TextureConverterUtility.cs">
<SubType>Form</SubType>
</Compile>
@@ -457,32 +472,23 @@
<Compile Include="Forms\Additional-Popups\MetaList.Designer.cs">
<DependentUpon>MetaList.cs</DependentUpon>
</Compile>
<Compile Include="MainForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="MainForm.designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Forms\Additional-Popups\AboutThisProgram.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\Additional-Popups\AboutThisProgram.Designer.cs">
<DependentUpon>AboutThisProgram.cs</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Classes\Utils\3DS\TextureCodec.cs" />
<Compile Include="Classes\Utils\3DS\TextureUtils.cs" />
<EmbeddedResource Include="Classes\FileTypses\COL\ColorBox.resx">
<DependentUpon>ColorBox.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Classes\FileTypses\COL\VerticalColorSlider.resx">
<DependentUpon>VerticalColorSlider.cs</DependentUpon>
<EmbeddedResource Include="Forms\Additional-Popups\AboutThisProgram.resx">
<DependentUpon>AboutThisProgram.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Additional-Popups\ChangeLogForm.resx">
<DependentUpon>ChangeLogForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Additional-Popups\LOC\AddLanguage.resx">
<EmbeddedResource Include="Forms\Additional-Popups\Col\ColorBox.resx">
<DependentUpon>ColorBox.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Additional-Popups\Col\VerticalColorSlider.resx">
<DependentUpon>VerticalColorSlider.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Additional-Popups\Loc\AddLanguage.resx">
<DependentUpon>AddLanguage.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Additional-Popups\CreateTexturePack.resx">
@@ -518,24 +524,24 @@
<EmbeddedResource Include="Forms\Additional-Popups\Animation\SetBulkSpeed.resx">
<DependentUpon>SetBulkSpeed.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Additional-Popups\Audio\CreditsEditor.resx">
<DependentUpon>CreditsEditor.cs</DependentUpon>
<EmbeddedResource Include="Forms\Additional-Popups\Audio\creditsEditor.resx">
<DependentUpon>creditsEditor.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Additional-Popups\Audio\AddCategory.resx">
<DependentUpon>AddCategory.cs</DependentUpon>
<EmbeddedResource Include="Forms\Additional-Popups\Audio\addCategory.resx">
<DependentUpon>addCategory.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Skins-And-Textures\AddMeta.ja.resx">
<DependentUpon>AddMeta.cs</DependentUpon>
<EmbeddedResource Include="Forms\Skins-And-Textures\addMeta.ja.resx">
<DependentUpon>addMeta.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Skins-And-Textures\AddMeta.resx">
<DependentUpon>AddMeta.cs</DependentUpon>
<EmbeddedResource Include="Forms\Skins-And-Textures\addMeta.resx">
<DependentUpon>addMeta.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Skins-And-Textures\AddNewSkin.ja.resx">
<DependentUpon>AddNewSkin.cs</DependentUpon>
<EmbeddedResource Include="Forms\Skins-And-Textures\addNewSkin.ja.resx">
<DependentUpon>addNewSkin.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Skins-And-Textures\AddNewSkin.resx">
<DependentUpon>AddNewSkin.cs</DependentUpon>
<EmbeddedResource Include="Forms\Skins-And-Textures\addNewSkin.resx">
<DependentUpon>addNewSkin.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Additional-Popups\AddPCKPassword.resx">
@@ -551,11 +557,17 @@
<EmbeddedResource Include="Forms\Editor\GRFEditor.resx">
<DependentUpon>GRFEditor.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Additional-Popups\GRF\AddParameter.resx">
<EmbeddedResource Include="Forms\Additional-Popups\Grf\AddParameter.resx">
<DependentUpon>AddParameter.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Additional-Popups\Audio\PleaseWait.resx">
<DependentUpon>PleaseWait.cs</DependentUpon>
<EmbeddedResource Include="Forms\Additional-Popups\Audio\pleaseWait.resx">
<DependentUpon>pleaseWait.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Utilities\Preferences.ja.resx">
<DependentUpon>Preferences.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Utilities\Preferences.resx">
<DependentUpon>Preferences.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Utilities\Skins\BoxEditor.resx">
<DependentUpon>BoxEditor.cs</DependentUpon>
@@ -563,11 +575,19 @@
<EmbeddedResource Include="Forms\Utilities\Skins\ANIMEditor.resx">
<DependentUpon>ANIMEditor.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Skins-And-Textures\GenerateModel.ja.resx">
<DependentUpon>GenerateModel.cs</DependentUpon>
<EmbeddedResource Include="MainForm.ja.resx">
<DependentUpon>MainForm.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Skins-And-Textures\GenerateModel.resx">
<DependentUpon>GenerateModel.cs</DependentUpon>
<EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Skins-And-Textures\generateModel.ja.resx">
<DependentUpon>generateModel.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Skins-And-Textures\generateModel.resx">
<DependentUpon>generateModel.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Skins-And-Textures\SkinPreview.resx">
<DependentUpon>SkinPreview.cs</DependentUpon>
@@ -582,17 +602,17 @@
<DependentUpon>AudioEditor.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Utilities\InstallPS3.resx">
<DependentUpon>InstallPS3.cs</DependentUpon>
<EmbeddedResource Include="Forms\Utilities\installPS3.resx">
<DependentUpon>installPS3.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Utilities\InstallVita.resx">
<DependentUpon>InstallVita.cs</DependentUpon>
<EmbeddedResource Include="Forms\Utilities\installVita.resx">
<DependentUpon>installVita.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Utilities\InstallWiiU.ja.resx">
<DependentUpon>InstallWiiU.cs</DependentUpon>
<EmbeddedResource Include="Forms\Utilities\installWiiU.ja.resx">
<DependentUpon>installWiiU.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Utilities\InstallWiiU.resx">
<DependentUpon>InstallWiiU.cs</DependentUpon>
<EmbeddedResource Include="Forms\Utilities\installWiiU.resx">
<DependentUpon>installWiiU.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Additional-Popups\MetaList.ja.resx">
<DependentUpon>MetaList.cs</DependentUpon>
@@ -603,20 +623,20 @@
<EmbeddedResource Include="Forms\Utilities\PCK Manager.resx">
<DependentUpon>PCK Manager.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Utilities\PCKCenter.ja.resx">
<DependentUpon>PCKCenter.cs</DependentUpon>
<EmbeddedResource Include="Forms\Utilities\pckCenter.ja.resx">
<DependentUpon>pckCenter.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Utilities\PCKCenter.resx">
<DependentUpon>PCKCenter.cs</DependentUpon>
<EmbeddedResource Include="Forms\Utilities\pckCenter.resx">
<DependentUpon>pckCenter.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Utilities\PCKCenterBeta.resx">
<DependentUpon>PCKCenterBeta.cs</DependentUpon>
<EmbeddedResource Include="Forms\Utilities\PckCenterBeta.resx">
<DependentUpon>PckCenterBeta.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Utilities\PCKCenterOpen.ja.resx">
<DependentUpon>PCKCenterOpen.cs</DependentUpon>
<EmbeddedResource Include="Forms\Utilities\pckCenterOpen.ja.resx">
<DependentUpon>pckCenterOpen.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Utilities\PCKCenterOpen.resx">
<DependentUpon>PCKCenterOpen.cs</DependentUpon>
<EmbeddedResource Include="Forms\Utilities\pckCenterOpen.resx">
<DependentUpon>pckCenterOpen.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Additional-Popups\LockPrompt.ja.resx">
<DependentUpon>LockPrompt.cs</DependentUpon>
@@ -624,27 +644,12 @@
<EmbeddedResource Include="Forms\Additional-Popups\LockPrompt.resx">
<DependentUpon>LockPrompt.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Utilities\Preferences.ja.resx">
<DependentUpon>Preferences.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Utilities\Preferences.resx">
<DependentUpon>Preferences.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Utilities\TextureConverterUtility.resx">
<DependentUpon>TextureConverterUtility.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Additional-Popups\MetaList.resx">
<DependentUpon>MetaList.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\Additional-Popups\AboutThisProgram.resx">
<DependentUpon>AboutThisProgram.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="MainForm.ja.resx">
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>PublicResXFileCodeGenerator</Generator>
<SubType>Designer</SubType>
@@ -671,9 +676,6 @@
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\pckClosed.png" />
<None Include="Resources\pckOpen.png" />
<None Include="Resources\pckDrop.png" />
<None Include="Resources\TexturePackIcon.png" />
<None Include="Resources\apps.zip" />
<None Include="Resources\binka\binkawin.asi" />
@@ -696,6 +698,7 @@
<None Include="Resources\power3.png" />
<None Include="Resources\power.png" />
<None Include="Resources\youtube_PNG15.png" />
<None Include="Resources\pckClosed.png" />
<None Include="Resources\pckClosed.bmp" />
<None Include="Resources\wii-u-games-tool.png" />
<None Include="Resources\turn-off %281%291.png" />
@@ -713,6 +716,8 @@
<None Include="Resources\ps3.png" />
<None Include="Resources\wiiu.png" />
<None Include="Resources\Splash.png" />
<None Include="Resources\pckOpen.png" />
<None Include="Resources\pckDrop.png" />
<None Include="Resources\pckCenterHeader.png" />
<None Include="Resources\binka\binka_encode.exe" />
<None Include="Resources\binka\mss32.dll" />
@@ -730,7 +735,6 @@
<None Include="Resources\AddTexture.png" />
<None Include="Resources\iconImageList\BEHAVIOURS ICON.png" />
<None Include="Resources\Comparison.png" />
<None Include="Resources\OpenDrop.png" />
<Content Include="Resources\PCK-Studio_Logo.ico" />
<None Include="Resources\bg1.png" />
<Content Include="Resources\NoImageFound.png" />
@@ -741,9 +745,6 @@
<IncludeAssets>compile; runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="DarkNet">
<Version>2.0.1</Version>
</PackageReference>
<PackageReference Include="DiscordRichPresence">
<Version>1.0.175</Version>
</PackageReference>
@@ -768,6 +769,9 @@
<PackageReference Include="System.ValueTuple">
<Version>4.5.0</Version>
</PackageReference>
<PackageReference Include="DarkNet">
<Version>2.0.1</Version>
</PackageReference>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.6.1">

View File

@@ -25,9 +25,7 @@ namespace PckStudio
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
DarkNet.Instance.SetCurrentProcessTheme(Theme.Auto);
Form mainForm = new MainForm();
DarkNet.Instance.SetWindowThemeForms(mainForm, Theme.Auto);
MainForm mainForm = new MainForm();
Application.Run(mainForm);
}

View File

@@ -12,7 +12,7 @@ namespace PckStudio.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.4.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));

View File

@@ -3,9 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.1.32414.318
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PCKStudio", "PCK-Studio\PCKStudio.csproj", "{0ACAAEDE-93F5-4B5D-B8D7-A0C43359C0D6}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PckStudio", "PCK-Studio\PckStudio.csproj", "{0ACAAEDE-93F5-4B5D-B8D7-A0C43359C0D6}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Submodules", "Submodules", "{CA7092AE-BF12-4D57-AE25-85E7E6149BE0}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CrEaTiiOn-Brotherhood-Official-C-Theme", "CrEaTiiOn-Brotherhood-Official-C-Theme", "{7DB3F605-FB30-45C8-9D21-AE2FF3A0344D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Net Framework v4.8", "CrEaTiiOn-Brotherhood-Official-C-Theme\Net_Framework_v4.8\Net Framework v4.8.csproj", "{C3D7B16C-C047-4BAA-884F-7A2308619C33}"
EndProject
@@ -17,6 +17,9 @@ Global
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
ReleasePortable|Any CPU = ReleasePortable|Any CPU
ReleasePortable|x64 = ReleasePortable|x64
ReleasePortable|x86 = ReleasePortable|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{0ACAAEDE-93F5-4B5D-B8D7-A0C43359C0D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -31,6 +34,12 @@ Global
{0ACAAEDE-93F5-4B5D-B8D7-A0C43359C0D6}.Release|x64.Build.0 = Release|Any CPU
{0ACAAEDE-93F5-4B5D-B8D7-A0C43359C0D6}.Release|x86.ActiveCfg = Release|Any CPU
{0ACAAEDE-93F5-4B5D-B8D7-A0C43359C0D6}.Release|x86.Build.0 = Release|Any CPU
{0ACAAEDE-93F5-4B5D-B8D7-A0C43359C0D6}.ReleasePortable|Any CPU.ActiveCfg = ReleasePortable|Any CPU
{0ACAAEDE-93F5-4B5D-B8D7-A0C43359C0D6}.ReleasePortable|Any CPU.Build.0 = ReleasePortable|Any CPU
{0ACAAEDE-93F5-4B5D-B8D7-A0C43359C0D6}.ReleasePortable|x64.ActiveCfg = ReleasePortable|Any CPU
{0ACAAEDE-93F5-4B5D-B8D7-A0C43359C0D6}.ReleasePortable|x64.Build.0 = ReleasePortable|Any CPU
{0ACAAEDE-93F5-4B5D-B8D7-A0C43359C0D6}.ReleasePortable|x86.ActiveCfg = ReleasePortable|Any CPU
{0ACAAEDE-93F5-4B5D-B8D7-A0C43359C0D6}.ReleasePortable|x86.Build.0 = ReleasePortable|Any CPU
{C3D7B16C-C047-4BAA-884F-7A2308619C33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C3D7B16C-C047-4BAA-884F-7A2308619C33}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C3D7B16C-C047-4BAA-884F-7A2308619C33}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -43,12 +52,18 @@ Global
{C3D7B16C-C047-4BAA-884F-7A2308619C33}.Release|x64.Build.0 = Release|Any CPU
{C3D7B16C-C047-4BAA-884F-7A2308619C33}.Release|x86.ActiveCfg = Release|Any CPU
{C3D7B16C-C047-4BAA-884F-7A2308619C33}.Release|x86.Build.0 = Release|Any CPU
{C3D7B16C-C047-4BAA-884F-7A2308619C33}.ReleasePortable|Any CPU.ActiveCfg = Release|Any CPU
{C3D7B16C-C047-4BAA-884F-7A2308619C33}.ReleasePortable|Any CPU.Build.0 = Release|Any CPU
{C3D7B16C-C047-4BAA-884F-7A2308619C33}.ReleasePortable|x64.ActiveCfg = Release|Any CPU
{C3D7B16C-C047-4BAA-884F-7A2308619C33}.ReleasePortable|x64.Build.0 = Release|Any CPU
{C3D7B16C-C047-4BAA-884F-7A2308619C33}.ReleasePortable|x86.ActiveCfg = Release|Any CPU
{C3D7B16C-C047-4BAA-884F-7A2308619C33}.ReleasePortable|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{C3D7B16C-C047-4BAA-884F-7A2308619C33} = {CA7092AE-BF12-4D57-AE25-85E7E6149BE0}
{C3D7B16C-C047-4BAA-884F-7A2308619C33} = {7DB3F605-FB30-45C8-9D21-AE2FF3A0344D}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {9A3BF1FB-950F-401E-9F58-EA7BBADCE6F2}

Submodule SFGraphics deleted from ec1c5f0741