mirror of
https://github.com/KillzXGaming/Switch-Toolbox
synced 2024-11-10 07:04:36 +00:00
Improve PTCL color editing and add texture icon previewing.
This commit is contained in:
parent
b311e6d012
commit
2f8041bc93
64 changed files with 3306 additions and 141 deletions
Binary file not shown.
|
@ -32,7 +32,7 @@ namespace FirstPlugin
|
|||
if (reader.CheckSignature(4, "VFXB") ||
|
||||
reader.CheckSignature(4, "SPBD") ||
|
||||
reader.CheckSignature(4, "EFTF") ||
|
||||
reader.CheckSignature(4, "EFTB"))
|
||||
reader.CheckSignature(4, "EFTB"))
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
|
@ -51,7 +51,7 @@ namespace FirstPlugin
|
|||
public Header header;
|
||||
public PTCL_WiiU.Header headerU;
|
||||
public PTCL_3DS.Header header3DS;
|
||||
|
||||
|
||||
public byte[] data;
|
||||
|
||||
bool IsWiiU = false;
|
||||
|
@ -222,7 +222,11 @@ namespace FirstPlugin
|
|||
botwTex.Add((TEXR)((SectionBase)node).BinaryData);
|
||||
}
|
||||
|
||||
ptcl.header.BinaryTextureFile = bntx;
|
||||
if (bntx != null)
|
||||
{
|
||||
bntx.LoadIcons = true;
|
||||
ptcl.header.BinaryTextureFile = bntx;
|
||||
}
|
||||
|
||||
int index = 0;
|
||||
if (botwTex.Count > 0)
|
||||
|
@ -411,15 +415,15 @@ namespace FirstPlugin
|
|||
{
|
||||
get
|
||||
{
|
||||
/* if (BinaryData == null)
|
||||
return binaryDataBytes;
|
||||
else if (BinaryData is BFRES)
|
||||
return (((BFRES)BinaryData).Save());
|
||||
else if (BinaryData is BNTX)
|
||||
return (((BNTX)BinaryData).Save());
|
||||
else*/
|
||||
/* if (BinaryData == null)
|
||||
return binaryDataBytes;
|
||||
else if (BinaryData is BFRES)
|
||||
return (((BFRES)BinaryData).Save());
|
||||
else if (BinaryData is BNTX)
|
||||
return (((BNTX)BinaryData).Save());
|
||||
else*/
|
||||
|
||||
return binaryDataBytes;
|
||||
return binaryDataBytes;
|
||||
}
|
||||
set
|
||||
{
|
||||
|
@ -434,10 +438,10 @@ namespace FirstPlugin
|
|||
{
|
||||
if (BinaryData is Emitter || Signature == "EMTR")
|
||||
{
|
||||
EmitterEditor editor = (EmitterEditor)LibraryGUI.GetActiveContent(typeof(EmitterEditor));
|
||||
EmitterEditorNX editor = (EmitterEditorNX)LibraryGUI.GetActiveContent(typeof(EmitterEditorNX));
|
||||
if (editor == null)
|
||||
{
|
||||
editor = new EmitterEditor();
|
||||
editor = new EmitterEditorNX();
|
||||
LibraryGUI.LoadEditor(editor);
|
||||
}
|
||||
editor.Text = Text;
|
||||
|
@ -572,8 +576,11 @@ namespace FirstPlugin
|
|||
case "GRTF":
|
||||
if (section.BinaryDataOffset != NullOffset)
|
||||
{
|
||||
section.Text = "Textures";
|
||||
|
||||
reader.Seek(section.BinaryDataOffset + section.Position, SeekOrigin.Begin);
|
||||
BinaryData = new BNTX();
|
||||
((BNTX)BinaryData).LoadIcons = true;
|
||||
((BNTX)BinaryData).FileName = "textures.bntx";
|
||||
((BNTX)BinaryData).Load(new MemoryStream(reader.ReadBytes((int)section.SectionSize)));
|
||||
((BNTX)BinaryData).IFileInfo.InArchive = true;
|
||||
|
@ -589,7 +596,7 @@ namespace FirstPlugin
|
|||
break;
|
||||
case "GRSN":
|
||||
section.Text = "Shaders";
|
||||
|
||||
|
||||
if (section.BinaryDataOffset != NullOffset)
|
||||
{
|
||||
reader.Seek(section.BinaryDataOffset + section.Position, SeekOrigin.Begin);
|
||||
|
@ -603,10 +610,12 @@ namespace FirstPlugin
|
|||
reader.Seek(section.BinaryDataOffset + section.Position, SeekOrigin.Begin);
|
||||
BinaryData = reader.ReadBytes((int)section.SectionSize);
|
||||
}
|
||||
break;
|
||||
break;
|
||||
case "G3PR":
|
||||
if (section.BinaryDataOffset != NullOffset)
|
||||
{
|
||||
section.Text = "Models";
|
||||
|
||||
reader.Seek(section.BinaryDataOffset + section.Position, SeekOrigin.Begin);
|
||||
BinaryData = new BFRES();
|
||||
((BFRES)BinaryData).FileName = "model.bfres";
|
||||
|
@ -650,14 +659,14 @@ namespace FirstPlugin
|
|||
SaveHeader(writer, header, BinaryDataBytes, 4096);
|
||||
break;
|
||||
case "G3PR":
|
||||
// SaveHeader(writer, header, ((BFRES)BinaryData).Save(), 4096);
|
||||
SaveHeader(writer, header, BinaryDataBytes, 4096);
|
||||
// SaveHeader(writer, header, ((BFRES)BinaryData).Save(), 4096);
|
||||
SaveHeader(writer, header, BinaryDataBytes, 4096);
|
||||
break;
|
||||
case "GRTF":
|
||||
var mem = new System.IO.MemoryStream();
|
||||
((BNTX)BinaryData).Save(mem);
|
||||
SaveHeader(writer, header, mem.ToArray(), 4096);
|
||||
// SaveHeader(writer, header, BinaryDataBytes, 4096);
|
||||
// SaveHeader(writer, header, BinaryDataBytes, 4096);
|
||||
break;
|
||||
case "PRIM":
|
||||
SaveHeader(writer, header, BinaryDataBytes);
|
||||
|
@ -671,7 +680,7 @@ namespace FirstPlugin
|
|||
child.Write(writer, header);
|
||||
}
|
||||
|
||||
using (writer.TemporarySeek(_emitterPos + BinaryDataOffset +16 + 64, SeekOrigin.Begin))
|
||||
using (writer.TemporarySeek(_emitterPos + BinaryDataOffset + 16 + 64, SeekOrigin.Begin))
|
||||
{
|
||||
((Emitter)BinaryData).Write(writer, header);
|
||||
}
|
||||
|
@ -704,7 +713,7 @@ namespace FirstPlugin
|
|||
|
||||
public List<BinarySavedEntry> BinariesSaved = new List<BinarySavedEntry>();
|
||||
|
||||
private void SaveHeader(FileWriter writer,Header header, byte[] BinaryFile, int BinaryAlignment = 0)
|
||||
private void SaveHeader(FileWriter writer, Header header, byte[] BinaryFile, int BinaryAlignment = 0)
|
||||
{
|
||||
if (Signature != "PRIM")
|
||||
writer.Align(16);
|
||||
|
@ -777,7 +786,7 @@ namespace FirstPlugin
|
|||
{
|
||||
if (Signature != "PRIM")
|
||||
writer.Align(16);
|
||||
|
||||
|
||||
writer.WriteUint32Offset(_ofsNextPos, BasePosition);
|
||||
}
|
||||
}
|
||||
|
@ -874,7 +883,7 @@ namespace FirstPlugin
|
|||
|
||||
public void Replace(string FileName)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
public static GTXImporterSettings SetImporterSettings(string name)
|
||||
{
|
||||
|
@ -912,7 +921,7 @@ namespace FirstPlugin
|
|||
byte unk5 = reader.ReadByte();
|
||||
short unk6 = reader.ReadInt16();
|
||||
uint unk7 = reader.ReadUInt32();
|
||||
|
||||
|
||||
}
|
||||
|
||||
public override void SetImageData(Bitmap bitmap, int ArrayLevel)
|
||||
|
@ -1027,16 +1036,132 @@ namespace FirstPlugin
|
|||
{
|
||||
public List<STGenericTexture> DrawableTex = new List<STGenericTexture>();
|
||||
public List<SamplerInfo> Samplers = new List<SamplerInfo>();
|
||||
|
||||
public STColor ConstantColor0;
|
||||
public STColor ConstantColor1;
|
||||
|
||||
public STColor[] Color0Array = new STColor[8];
|
||||
public STColor[] Color1Array = new STColor[8];
|
||||
|
||||
public STColor[] Color0AlphaArray = new STColor[8];
|
||||
public STColor[] Color1AlphaArray = new STColor[8];
|
||||
|
||||
public STColor ConstantAlpha0
|
||||
{
|
||||
get
|
||||
{
|
||||
return new STColor()
|
||||
{
|
||||
R = ConstantColor0.A,
|
||||
G = ConstantColor0.A,
|
||||
B = ConstantColor0.A,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public STColor ConstantAlpha1
|
||||
{
|
||||
get
|
||||
{
|
||||
return new STColor()
|
||||
{
|
||||
R = ConstantColor1.A,
|
||||
G = ConstantColor1.A,
|
||||
B = ConstantColor1.A,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public enum ColorType
|
||||
{
|
||||
Constant,
|
||||
Random,
|
||||
Animated8Key,
|
||||
}
|
||||
|
||||
public ColorType Color0Type;
|
||||
public ColorType Alpha0Type;
|
||||
public ColorType Color1Type;
|
||||
public ColorType Alpha1Type;
|
||||
|
||||
private bool HasTime(STColor[] colors)
|
||||
{
|
||||
for (int i = 0; i < colors.Length; i++)
|
||||
if (colors[i].Time != 0) return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private void SetType(bool HasKeys, STColor[] colors, int type, bool isAlpha)
|
||||
{
|
||||
if (HasKeys)
|
||||
{
|
||||
if (HasTime(colors))
|
||||
SetType(type, isAlpha, ColorType.Animated8Key);
|
||||
else
|
||||
SetType(type, isAlpha, ColorType.Random);
|
||||
}
|
||||
else
|
||||
SetType(type, isAlpha, ColorType.Constant);
|
||||
}
|
||||
|
||||
private void SetType(int type, bool isAlpha, ColorType colorType)
|
||||
{
|
||||
if (type == 0)
|
||||
{
|
||||
if (!isAlpha)
|
||||
Color0Type = colorType;
|
||||
else
|
||||
Alpha0Type = colorType;
|
||||
}
|
||||
if (type == 1)
|
||||
{
|
||||
if (!isAlpha)
|
||||
Color1Type = colorType;
|
||||
else
|
||||
Alpha1Type = colorType;
|
||||
}
|
||||
}
|
||||
|
||||
public uint Color0KeyCount;
|
||||
public uint Alpha0KeyCount;
|
||||
public uint Color1KeyCount;
|
||||
public uint Alpha1KeyCount;
|
||||
|
||||
public void Read(FileReader reader, Header ptclHeader)
|
||||
{
|
||||
uint Position = (uint)reader.Position;
|
||||
uint Position = (uint)reader.Position;
|
||||
|
||||
Color0Array = new STColor[8];
|
||||
Color1Array = new STColor[8];
|
||||
Color0AlphaArray = new STColor[8];
|
||||
Color1AlphaArray = new STColor[8];
|
||||
ConstantColor0 = new STColor();
|
||||
ConstantColor1 = new STColor();
|
||||
|
||||
reader.ReadBytes(16); //Unknown padding
|
||||
Color0KeyCount = reader.ReadUInt32();
|
||||
Alpha0KeyCount = reader.ReadUInt32();
|
||||
Color1KeyCount = reader.ReadUInt32();
|
||||
Alpha1KeyCount = reader.ReadUInt32();
|
||||
uint scaleKeyCount = reader.ReadUInt32();
|
||||
|
||||
//Seek to the contant colors
|
||||
reader.Seek(Position + 2384, SeekOrigin.Begin);
|
||||
|
||||
ConstantColor0 = new STColor();
|
||||
ConstantColor0.R = reader.ReadSingle();
|
||||
ConstantColor0.G = reader.ReadSingle();
|
||||
ConstantColor0.B = reader.ReadSingle();
|
||||
ConstantColor0.A = reader.ReadSingle();
|
||||
|
||||
ConstantColor1 = new STColor();
|
||||
ConstantColor1.R = reader.ReadSingle();
|
||||
ConstantColor1.G = reader.ReadSingle();
|
||||
ConstantColor1.B = reader.ReadSingle();
|
||||
ConstantColor1.A = reader.ReadSingle();
|
||||
|
||||
//Seek to the random and animated color table
|
||||
reader.Seek(Position + 880, SeekOrigin.Begin);
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
|
@ -1044,37 +1169,42 @@ namespace FirstPlugin
|
|||
Color0Array[i].R = reader.ReadSingle();
|
||||
Color0Array[i].G = reader.ReadSingle();
|
||||
Color0Array[i].B = reader.ReadSingle();
|
||||
float time = reader.ReadSingle();
|
||||
Color0Array[i].Time = reader.ReadSingle();
|
||||
}
|
||||
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
Color0Array[i].A = reader.ReadSingle();
|
||||
float padding = reader.ReadSingle();
|
||||
float padding2 = reader.ReadSingle();
|
||||
float time = reader.ReadSingle();
|
||||
Color0AlphaArray[i] = new STColor();
|
||||
Color0AlphaArray[i].R = reader.ReadSingle();
|
||||
Color0AlphaArray[i].G = reader.ReadSingle();
|
||||
Color0AlphaArray[i].B = reader.ReadSingle();
|
||||
Color0AlphaArray[i].Time = reader.ReadSingle();
|
||||
}
|
||||
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
Color1Array[i] = new STColor();
|
||||
Color1Array[i].R = reader.ReadSingle();
|
||||
Color1Array[i].G = reader.ReadSingle();
|
||||
Color1Array[i].B = reader.ReadSingle();
|
||||
float time = reader.ReadSingle();
|
||||
Color1Array[i].Time = reader.ReadSingle();
|
||||
}
|
||||
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
Color1Array[i].A = reader.ReadSingle();
|
||||
float padding = reader.ReadSingle();
|
||||
float padding2 = reader.ReadSingle();
|
||||
float time = reader.ReadSingle();
|
||||
Color1AlphaArray[i] = new STColor();
|
||||
Color1AlphaArray[i].R = reader.ReadSingle();
|
||||
Color1AlphaArray[i].G = reader.ReadSingle();
|
||||
Color1AlphaArray[i].B = reader.ReadSingle();
|
||||
Color1AlphaArray[i].Time = reader.ReadSingle();
|
||||
|
||||
int alpha = Utils.FloatToIntClamp(Color1Array[i].A);
|
||||
}
|
||||
|
||||
if (ptclHeader.VFXVersion >= 22)
|
||||
reader.Seek(Position + 2464, SeekOrigin.Begin);
|
||||
else
|
||||
reader.Seek(Position + 2472, SeekOrigin.Begin);
|
||||
SetType(Color0KeyCount != 0, Color0Array, 0, false);
|
||||
SetType(Alpha0KeyCount != 0, Color0AlphaArray, 0, true);
|
||||
SetType(Color1KeyCount != 0, Color1Array, 1, false);
|
||||
SetType(Alpha1KeyCount != 0, Color1AlphaArray, 1, true);
|
||||
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
|
@ -1088,30 +1218,45 @@ namespace FirstPlugin
|
|||
{
|
||||
uint Position = (uint)writer.Position;
|
||||
|
||||
//Seek to the contant colors
|
||||
writer.Seek(Position + 2384, SeekOrigin.Begin);
|
||||
writer.Write(ConstantColor0.R);
|
||||
writer.Write(ConstantColor0.G);
|
||||
writer.Write(ConstantColor0.B);
|
||||
writer.Write(ConstantAlpha0.R);
|
||||
writer.Write(ConstantColor1.R);
|
||||
writer.Write(ConstantColor1.G);
|
||||
writer.Write(ConstantColor1.B);
|
||||
writer.Write(ConstantAlpha1.R);
|
||||
|
||||
writer.Seek(Position + 880, SeekOrigin.Begin);
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
writer.Write(Color0Array[i].R);
|
||||
writer.Write(Color0Array[i].G);
|
||||
writer.Write(Color0Array[i].B);
|
||||
writer.Seek(4, SeekOrigin.Current);
|
||||
writer.Write(Color0Array[i].Time);
|
||||
}
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
writer.Write(Color0Array[i].A);
|
||||
writer.Seek(12, SeekOrigin.Current);
|
||||
writer.Write(Color0AlphaArray[i].R);
|
||||
writer.Write(Color0AlphaArray[i].G);
|
||||
writer.Write(Color0AlphaArray[i].B);
|
||||
writer.Write(Color0AlphaArray[i].Time);
|
||||
}
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
writer.Write(Color1Array[i].R);
|
||||
writer.Write(Color1Array[i].G);
|
||||
writer.Write(Color1Array[i].B);
|
||||
writer.Seek(4, SeekOrigin.Current);
|
||||
writer.Write(Color1Array[i].Time);
|
||||
}
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
writer.Write(Color1Array[i].A);
|
||||
writer.Seek(12, SeekOrigin.Current);
|
||||
writer.Write(Color1AlphaArray[i].R);
|
||||
writer.Write(Color1AlphaArray[i].G);
|
||||
writer.Write(Color1AlphaArray[i].B);
|
||||
writer.Write(Color1AlphaArray[i].Time);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1181,9 +1326,9 @@ namespace FirstPlugin
|
|||
{
|
||||
uint Position = (uint)reader.Position; //Offsets are relative to this
|
||||
|
||||
TextureID = reader.ReadUInt64();
|
||||
TextureID = reader.ReadUInt64();
|
||||
uint NextDesriptorOffset = reader.ReadUInt32();
|
||||
uint StringLength = reader.ReadUInt32();
|
||||
uint StringLength = reader.ReadUInt32();
|
||||
TexName = reader.ReadString(BinaryStringFormat.ZeroTerminated);
|
||||
|
||||
Text = TexName + " " + TextureID.ToString("x");
|
||||
|
|
|
@ -21,8 +21,10 @@ using FirstPlugin.Forms;
|
|||
|
||||
namespace FirstPlugin
|
||||
{
|
||||
public class BNTX : TreeNodeFile, IFileFormat, IContextMenuNode
|
||||
public class BNTX : TreeNodeFile, IFileFormat, IContextMenuNode, ITextureIconLoader
|
||||
{
|
||||
public bool LoadIcons = false;
|
||||
|
||||
public FileType FileType { get; set; } = FileType.Image;
|
||||
|
||||
public bool CanSave { get; set; }
|
||||
|
@ -60,6 +62,9 @@ namespace FirstPlugin
|
|||
{
|
||||
get
|
||||
{
|
||||
if (!LoadIcons)
|
||||
return new List<STGenericTexture>();
|
||||
|
||||
List<STGenericTexture> textures = new List<STGenericTexture>();
|
||||
foreach (STGenericTexture node in Nodes)
|
||||
textures.Add(node);
|
||||
|
|
|
@ -394,6 +394,31 @@
|
|||
<Compile Include="GUI\BFRES\SmoothNormalsMultiMeshForm.Designer.cs">
|
||||
<DependentUpon>SmoothNormalsMultiMeshForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="GUI\Editors\PTCL\Color8KeySlider.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="GUI\Editors\PTCL\Color8KeySlider.Designer.cs">
|
||||
<DependentUpon>Color8KeySlider.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="GUI\Editors\PTCL\ColorConstantPanel.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="GUI\Editors\PTCL\ColorConstantPanel.Designer.cs">
|
||||
<DependentUpon>ColorConstantPanel.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="GUI\Editors\PTCL\IColorPanelCommon.cs" />
|
||||
<Compile Include="GUI\Editors\PTCL\ColorRandomPanel.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="GUI\Editors\PTCL\ColorRandomPanel.Designer.cs">
|
||||
<DependentUpon>ColorRandomPanel.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="GUI\Editors\PTCL\EmitterEditorNX.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="GUI\Editors\PTCL\EmitterEditorNX.Designer.cs">
|
||||
<DependentUpon>EmitterEditorNX.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="GUI\TextureUI\Importers\BNTX\BinaryTextureImporterList.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
|
@ -1217,6 +1242,18 @@
|
|||
<EmbeddedResource Include="GUI\Editors\MK8TrackEditor\MK8MapCameraEditor.resx">
|
||||
<DependentUpon>MK8MapCameraEditor.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="GUI\Editors\PTCL\Color8KeySlider.resx">
|
||||
<DependentUpon>Color8KeySlider.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="GUI\Editors\PTCL\ColorConstantPanel.resx">
|
||||
<DependentUpon>ColorConstantPanel.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="GUI\Editors\PTCL\ColorRandomPanel.resx">
|
||||
<DependentUpon>ColorRandomPanel.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="GUI\Editors\PTCL\EmitterEditorNX.resx">
|
||||
<DependentUpon>EmitterEditorNX.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="GUI\Editors\PTCL\EmitterEditor.resx">
|
||||
<DependentUpon>EmitterEditor.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
|
|
|
@ -125,7 +125,6 @@
|
|||
this.samplerCB.FormattingEnabled = true;
|
||||
this.samplerCB.Location = new System.Drawing.Point(66, 77);
|
||||
this.samplerCB.Name = "samplerCB";
|
||||
this.samplerCB.ReadOnly = true;
|
||||
this.samplerCB.Size = new System.Drawing.Size(206, 21);
|
||||
this.samplerCB.TabIndex = 4;
|
||||
//
|
||||
|
|
|
@ -144,7 +144,6 @@
|
|||
this.fontTypeCB.FormattingEnabled = true;
|
||||
this.fontTypeCB.Location = new System.Drawing.Point(87, 42);
|
||||
this.fontTypeCB.Name = "fontTypeCB";
|
||||
this.fontTypeCB.ReadOnly = true;
|
||||
this.fontTypeCB.Size = new System.Drawing.Size(108, 21);
|
||||
this.fontTypeCB.TabIndex = 17;
|
||||
//
|
||||
|
@ -156,7 +155,6 @@
|
|||
this.encodingTypeCB.FormattingEnabled = true;
|
||||
this.encodingTypeCB.Location = new System.Drawing.Point(87, 73);
|
||||
this.encodingTypeCB.Name = "encodingTypeCB";
|
||||
this.encodingTypeCB.ReadOnly = true;
|
||||
this.encodingTypeCB.Size = new System.Drawing.Size(108, 21);
|
||||
this.encodingTypeCB.TabIndex = 16;
|
||||
//
|
||||
|
@ -420,7 +418,6 @@
|
|||
this.characterCodeCB.FormattingEnabled = true;
|
||||
this.characterCodeCB.Location = new System.Drawing.Point(103, 27);
|
||||
this.characterCodeCB.Name = "characterCodeCB";
|
||||
this.characterCodeCB.ReadOnly = true;
|
||||
this.characterCodeCB.Size = new System.Drawing.Size(72, 39);
|
||||
this.characterCodeCB.TabIndex = 2;
|
||||
//
|
||||
|
@ -485,7 +482,6 @@
|
|||
this.imagesCB.FormattingEnabled = true;
|
||||
this.imagesCB.Location = new System.Drawing.Point(82, 6);
|
||||
this.imagesCB.Name = "imagesCB";
|
||||
this.imagesCB.ReadOnly = true;
|
||||
this.imagesCB.Size = new System.Drawing.Size(213, 21);
|
||||
this.imagesCB.TabIndex = 1;
|
||||
this.imagesCB.SelectedIndexChanged += new System.EventHandler(this.imagesCB_SelectedIndexChanged);
|
||||
|
|
|
@ -85,7 +85,6 @@
|
|||
this.boneListCB.FormattingEnabled = true;
|
||||
this.boneListCB.Location = new System.Drawing.Point(12, 56);
|
||||
this.boneListCB.Name = "boneListCB";
|
||||
this.boneListCB.ReadOnly = true;
|
||||
this.boneListCB.Size = new System.Drawing.Size(132, 21);
|
||||
this.boneListCB.TabIndex = 13;
|
||||
this.boneListCB.SelectedIndexChanged += new System.EventHandler(this.boneListCB_SelectedIndexChanged);
|
||||
|
|
|
@ -151,7 +151,6 @@
|
|||
this.comboBoxFormatPositions.FormattingEnabled = true;
|
||||
this.comboBoxFormatPositions.Location = new System.Drawing.Point(50, 37);
|
||||
this.comboBoxFormatPositions.Name = "comboBoxFormatPositions";
|
||||
this.comboBoxFormatPositions.ReadOnly = true;
|
||||
this.comboBoxFormatPositions.Size = new System.Drawing.Size(157, 21);
|
||||
this.comboBoxFormatPositions.TabIndex = 1;
|
||||
//
|
||||
|
@ -191,7 +190,6 @@
|
|||
this.comboBoxFormatNormals.FormattingEnabled = true;
|
||||
this.comboBoxFormatNormals.Location = new System.Drawing.Point(53, 34);
|
||||
this.comboBoxFormatNormals.Name = "comboBoxFormatNormals";
|
||||
this.comboBoxFormatNormals.ReadOnly = true;
|
||||
this.comboBoxFormatNormals.Size = new System.Drawing.Size(157, 21);
|
||||
this.comboBoxFormatNormals.TabIndex = 1;
|
||||
//
|
||||
|
@ -231,7 +229,6 @@
|
|||
this.comboBoxFormatUvs.FormattingEnabled = true;
|
||||
this.comboBoxFormatUvs.Location = new System.Drawing.Point(53, 26);
|
||||
this.comboBoxFormatUvs.Name = "comboBoxFormatUvs";
|
||||
this.comboBoxFormatUvs.ReadOnly = true;
|
||||
this.comboBoxFormatUvs.Size = new System.Drawing.Size(157, 21);
|
||||
this.comboBoxFormatUvs.TabIndex = 1;
|
||||
//
|
||||
|
@ -272,7 +269,6 @@
|
|||
this.comboBoxFormatVertexColors.FormattingEnabled = true;
|
||||
this.comboBoxFormatVertexColors.Location = new System.Drawing.Point(53, 33);
|
||||
this.comboBoxFormatVertexColors.Name = "comboBoxFormatVertexColors";
|
||||
this.comboBoxFormatVertexColors.ReadOnly = true;
|
||||
this.comboBoxFormatVertexColors.Size = new System.Drawing.Size(157, 21);
|
||||
this.comboBoxFormatVertexColors.TabIndex = 1;
|
||||
//
|
||||
|
@ -312,7 +308,6 @@
|
|||
this.comboBoxFormatTangents.FormattingEnabled = true;
|
||||
this.comboBoxFormatTangents.Location = new System.Drawing.Point(60, 37);
|
||||
this.comboBoxFormatTangents.Name = "comboBoxFormatTangents";
|
||||
this.comboBoxFormatTangents.ReadOnly = true;
|
||||
this.comboBoxFormatTangents.Size = new System.Drawing.Size(157, 21);
|
||||
this.comboBoxFormatTangents.TabIndex = 1;
|
||||
//
|
||||
|
@ -352,7 +347,6 @@
|
|||
this.comboBoxFormatBitans.FormattingEnabled = true;
|
||||
this.comboBoxFormatBitans.Location = new System.Drawing.Point(51, 34);
|
||||
this.comboBoxFormatBitans.Name = "comboBoxFormatBitans";
|
||||
this.comboBoxFormatBitans.ReadOnly = true;
|
||||
this.comboBoxFormatBitans.Size = new System.Drawing.Size(157, 21);
|
||||
this.comboBoxFormatBitans.TabIndex = 1;
|
||||
//
|
||||
|
@ -385,7 +379,6 @@
|
|||
this.comboBoxFormatIndices.FormattingEnabled = true;
|
||||
this.comboBoxFormatIndices.Location = new System.Drawing.Point(92, 60);
|
||||
this.comboBoxFormatIndices.Name = "comboBoxFormatIndices";
|
||||
this.comboBoxFormatIndices.ReadOnly = true;
|
||||
this.comboBoxFormatIndices.Size = new System.Drawing.Size(157, 21);
|
||||
this.comboBoxFormatIndices.TabIndex = 5;
|
||||
//
|
||||
|
@ -416,7 +409,6 @@
|
|||
this.comboBoxFormatWeights.FormattingEnabled = true;
|
||||
this.comboBoxFormatWeights.Location = new System.Drawing.Point(92, 30);
|
||||
this.comboBoxFormatWeights.Name = "comboBoxFormatWeights";
|
||||
this.comboBoxFormatWeights.ReadOnly = true;
|
||||
this.comboBoxFormatWeights.Size = new System.Drawing.Size(157, 21);
|
||||
this.comboBoxFormatWeights.TabIndex = 1;
|
||||
//
|
||||
|
@ -718,7 +710,6 @@
|
|||
this.comboBoxFormatFaces.FormattingEnabled = true;
|
||||
this.comboBoxFormatFaces.Location = new System.Drawing.Point(102, 7);
|
||||
this.comboBoxFormatFaces.Name = "comboBoxFormatFaces";
|
||||
this.comboBoxFormatFaces.ReadOnly = true;
|
||||
this.comboBoxFormatFaces.Size = new System.Drawing.Size(157, 21);
|
||||
this.comboBoxFormatFaces.TabIndex = 5;
|
||||
//
|
||||
|
|
|
@ -49,7 +49,6 @@
|
|||
this.scalingModeCN.FormattingEnabled = true;
|
||||
this.scalingModeCN.Location = new System.Drawing.Point(214, 33);
|
||||
this.scalingModeCN.Name = "scalingModeCN";
|
||||
this.scalingModeCN.ReadOnly = true;
|
||||
this.scalingModeCN.Size = new System.Drawing.Size(121, 21);
|
||||
this.scalingModeCN.TabIndex = 0;
|
||||
this.scalingModeCN.SelectedIndexChanged += new System.EventHandler(this.barSlider_ValueChanged);
|
||||
|
|
|
@ -64,7 +64,6 @@
|
|||
this.stComboBox1.FormattingEnabled = true;
|
||||
this.stComboBox1.Location = new System.Drawing.Point(212, 31);
|
||||
this.stComboBox1.Name = "stComboBox1";
|
||||
this.stComboBox1.ReadOnly = true;
|
||||
this.stComboBox1.Size = new System.Drawing.Size(121, 21);
|
||||
this.stComboBox1.TabIndex = 12;
|
||||
this.stComboBox1.SelectedIndexChanged += new System.EventHandler(this.stComboBox1_SelectedIndexChanged);
|
||||
|
|
|
@ -98,7 +98,6 @@
|
|||
this.materialCB.FormattingEnabled = true;
|
||||
this.materialCB.Location = new System.Drawing.Point(136, 6);
|
||||
this.materialCB.Name = "materialCB";
|
||||
this.materialCB.ReadOnly = true;
|
||||
this.materialCB.Size = new System.Drawing.Size(203, 21);
|
||||
this.materialCB.TabIndex = 18;
|
||||
this.materialCB.SelectedIndexChanged += new System.EventHandler(this.materialCB_SelectedIndexChanged);
|
||||
|
@ -111,7 +110,6 @@
|
|||
this.paramCB.FormattingEnabled = true;
|
||||
this.paramCB.Location = new System.Drawing.Point(136, 35);
|
||||
this.paramCB.Name = "paramCB";
|
||||
this.paramCB.ReadOnly = true;
|
||||
this.paramCB.Size = new System.Drawing.Size(203, 21);
|
||||
this.paramCB.TabIndex = 16;
|
||||
this.paramCB.SelectedIndexChanged += new System.EventHandler(this.paramCB_SelectedIndexChanged);
|
||||
|
|
|
@ -269,7 +269,6 @@
|
|||
"Quaternion"});
|
||||
this.lodDisplayCB.Location = new System.Drawing.Point(83, 89);
|
||||
this.lodDisplayCB.Name = "lodDisplayCB";
|
||||
this.lodDisplayCB.ReadOnly = true;
|
||||
this.lodDisplayCB.Size = new System.Drawing.Size(121, 21);
|
||||
this.lodDisplayCB.TabIndex = 38;
|
||||
this.lodDisplayCB.SelectedIndexChanged += new System.EventHandler(this.lodDisplayCB_SelectedIndexChanged);
|
||||
|
@ -404,7 +403,6 @@
|
|||
"Radians"});
|
||||
this.measureCB.Location = new System.Drawing.Point(305, 5);
|
||||
this.measureCB.Name = "measureCB";
|
||||
this.measureCB.ReadOnly = true;
|
||||
this.measureCB.Size = new System.Drawing.Size(121, 21);
|
||||
this.measureCB.TabIndex = 37;
|
||||
//
|
||||
|
@ -428,7 +426,6 @@
|
|||
"Quaternion"});
|
||||
this.rotModeCB.Location = new System.Drawing.Point(77, 5);
|
||||
this.rotModeCB.Name = "rotModeCB";
|
||||
this.rotModeCB.ReadOnly = true;
|
||||
this.rotModeCB.Size = new System.Drawing.Size(121, 21);
|
||||
this.rotModeCB.TabIndex = 35;
|
||||
this.rotModeCB.SelectedIndexChanged += new System.EventHandler(this.rotModeCB_SelectedIndexChanged);
|
||||
|
@ -868,7 +865,6 @@
|
|||
this.materialComboBox1.FormattingEnabled = true;
|
||||
this.materialComboBox1.Location = new System.Drawing.Point(77, 7);
|
||||
this.materialComboBox1.Name = "materialComboBox1";
|
||||
this.materialComboBox1.ReadOnly = true;
|
||||
this.materialComboBox1.Size = new System.Drawing.Size(227, 21);
|
||||
this.materialComboBox1.TabIndex = 0;
|
||||
this.materialComboBox1.SelectedIndexChanged += new System.EventHandler(this.materialComboBox1_SelectedIndexChanged);
|
||||
|
@ -933,7 +929,6 @@
|
|||
this.bonesCB.FormattingEnabled = true;
|
||||
this.bonesCB.Location = new System.Drawing.Point(77, 6);
|
||||
this.bonesCB.Name = "bonesCB";
|
||||
this.bonesCB.ReadOnly = true;
|
||||
this.bonesCB.Size = new System.Drawing.Size(227, 21);
|
||||
this.bonesCB.TabIndex = 16;
|
||||
this.bonesCB.SelectedIndexChanged += new System.EventHandler(this.bonesCB_SelectedIndexChanged);
|
||||
|
@ -1216,7 +1211,6 @@
|
|||
this.lodPrimativeTypeCB.FormattingEnabled = true;
|
||||
this.lodPrimativeTypeCB.Location = new System.Drawing.Point(101, 35);
|
||||
this.lodPrimativeTypeCB.Name = "lodPrimativeTypeCB";
|
||||
this.lodPrimativeTypeCB.ReadOnly = true;
|
||||
this.lodPrimativeTypeCB.Size = new System.Drawing.Size(137, 21);
|
||||
this.lodPrimativeTypeCB.TabIndex = 36;
|
||||
//
|
||||
|
@ -1230,7 +1224,6 @@
|
|||
this.lodFormatCB.FormattingEnabled = true;
|
||||
this.lodFormatCB.Location = new System.Drawing.Point(101, 5);
|
||||
this.lodFormatCB.Name = "lodFormatCB";
|
||||
this.lodFormatCB.ReadOnly = true;
|
||||
this.lodFormatCB.Size = new System.Drawing.Size(137, 21);
|
||||
this.lodFormatCB.TabIndex = 30;
|
||||
//
|
||||
|
|
|
@ -61,7 +61,6 @@
|
|||
this.sourceCB.FormattingEnabled = true;
|
||||
this.sourceCB.Location = new System.Drawing.Point(54, 31);
|
||||
this.sourceCB.Name = "sourceCB";
|
||||
this.sourceCB.ReadOnly = true;
|
||||
this.sourceCB.Size = new System.Drawing.Size(121, 21);
|
||||
this.sourceCB.TabIndex = 0;
|
||||
this.sourceCB.SelectedIndexChanged += new System.EventHandler(this.sourceCB_SelectedIndexChanged);
|
||||
|
@ -92,7 +91,6 @@
|
|||
this.destCB.FormattingEnabled = true;
|
||||
this.destCB.Location = new System.Drawing.Point(258, 31);
|
||||
this.destCB.Name = "destCB";
|
||||
this.destCB.ReadOnly = true;
|
||||
this.destCB.Size = new System.Drawing.Size(121, 21);
|
||||
this.destCB.TabIndex = 3;
|
||||
this.destCB.SelectedIndexChanged += new System.EventHandler(this.destCB_SelectedIndexChanged);
|
||||
|
|
|
@ -68,7 +68,6 @@
|
|||
this.formatCB.FormattingEnabled = true;
|
||||
this.formatCB.Location = new System.Drawing.Point(68, 68);
|
||||
this.formatCB.Name = "formatCB";
|
||||
this.formatCB.ReadOnly = true;
|
||||
this.formatCB.Size = new System.Drawing.Size(198, 21);
|
||||
this.formatCB.TabIndex = 0;
|
||||
this.formatCB.SelectedIndexChanged += new System.EventHandler(this.formatCB_SelectedIndexChanged);
|
||||
|
|
|
@ -61,7 +61,6 @@
|
|||
this.formatCB.FormattingEnabled = true;
|
||||
this.formatCB.Location = new System.Drawing.Point(64, 68);
|
||||
this.formatCB.Name = "formatCB";
|
||||
this.formatCB.ReadOnly = true;
|
||||
this.formatCB.Size = new System.Drawing.Size(198, 21);
|
||||
this.formatCB.TabIndex = 0;
|
||||
this.formatCB.SelectedIndexChanged += new System.EventHandler(this.formatCB_SelectedIndexChanged);
|
||||
|
|
|
@ -258,7 +258,6 @@
|
|||
this.rotModeCB.FormattingEnabled = true;
|
||||
this.rotModeCB.Location = new System.Drawing.Point(94, 5);
|
||||
this.rotModeCB.Name = "rotModeCB";
|
||||
this.rotModeCB.ReadOnly = true;
|
||||
this.rotModeCB.Size = new System.Drawing.Size(121, 21);
|
||||
this.rotModeCB.TabIndex = 35;
|
||||
this.rotModeCB.SelectedIndexChanged += new System.EventHandler(this.rotModeCB_SelectedIndexChanged);
|
||||
|
@ -692,7 +691,6 @@
|
|||
this.billboardModeCB.FormattingEnabled = true;
|
||||
this.billboardModeCB.Location = new System.Drawing.Point(93, 7);
|
||||
this.billboardModeCB.Name = "billboardModeCB";
|
||||
this.billboardModeCB.ReadOnly = true;
|
||||
this.billboardModeCB.Size = new System.Drawing.Size(144, 21);
|
||||
this.billboardModeCB.TabIndex = 0;
|
||||
this.billboardModeCB.SelectedIndexChanged += new System.EventHandler(this.billboardModeCB_SelectedIndexChanged);
|
||||
|
|
|
@ -88,7 +88,6 @@
|
|||
this.scalingModeCB.FormattingEnabled = true;
|
||||
this.scalingModeCB.Location = new System.Drawing.Point(114, 64);
|
||||
this.scalingModeCB.Name = "scalingModeCB";
|
||||
this.scalingModeCB.ReadOnly = true;
|
||||
this.scalingModeCB.Size = new System.Drawing.Size(172, 21);
|
||||
this.scalingModeCB.TabIndex = 4;
|
||||
this.scalingModeCB.SelectedIndexChanged += new System.EventHandler(this.ModeCB_SelectedIndexChanged);
|
||||
|
@ -110,7 +109,6 @@
|
|||
this.rotationModeCB.FormattingEnabled = true;
|
||||
this.rotationModeCB.Location = new System.Drawing.Point(114, 37);
|
||||
this.rotationModeCB.Name = "rotationModeCB";
|
||||
this.rotationModeCB.ReadOnly = true;
|
||||
this.rotationModeCB.Size = new System.Drawing.Size(172, 21);
|
||||
this.rotationModeCB.TabIndex = 2;
|
||||
this.rotationModeCB.SelectedIndexChanged += new System.EventHandler(this.ModeCB_SelectedIndexChanged);
|
||||
|
|
|
@ -125,7 +125,6 @@
|
|||
this.samplerCB.FormattingEnabled = true;
|
||||
this.samplerCB.Location = new System.Drawing.Point(66, 77);
|
||||
this.samplerCB.Name = "samplerCB";
|
||||
this.samplerCB.ReadOnly = true;
|
||||
this.samplerCB.Size = new System.Drawing.Size(206, 21);
|
||||
this.samplerCB.TabIndex = 4;
|
||||
//
|
||||
|
|
|
@ -381,7 +381,6 @@
|
|||
this.activeAnimCB.FormattingEnabled = true;
|
||||
this.activeAnimCB.Location = new System.Drawing.Point(233, 31);
|
||||
this.activeAnimCB.Name = "activeAnimCB";
|
||||
this.activeAnimCB.ReadOnly = true;
|
||||
this.activeAnimCB.Size = new System.Drawing.Size(220, 21);
|
||||
this.activeAnimCB.TabIndex = 7;
|
||||
this.activeAnimCB.SelectedIndexChanged += new System.EventHandler(this.activeAnimCB_SelectedIndexChanged);
|
||||
|
@ -410,7 +409,6 @@
|
|||
this.backgroundCB.FormattingEnabled = true;
|
||||
this.backgroundCB.Location = new System.Drawing.Point(233, 3);
|
||||
this.backgroundCB.Name = "backgroundCB";
|
||||
this.backgroundCB.ReadOnly = true;
|
||||
this.backgroundCB.Size = new System.Drawing.Size(144, 21);
|
||||
this.backgroundCB.TabIndex = 4;
|
||||
this.backgroundCB.SelectedIndexChanged += new System.EventHandler(this.backgroundCB_SelectedIndexChanged);
|
||||
|
|
|
@ -113,7 +113,6 @@
|
|||
"static"});
|
||||
this.stComboBox1.Location = new System.Drawing.Point(22, 56);
|
||||
this.stComboBox1.Name = "stComboBox1";
|
||||
this.stComboBox1.ReadOnly = true;
|
||||
this.stComboBox1.Size = new System.Drawing.Size(121, 21);
|
||||
this.stComboBox1.TabIndex = 17;
|
||||
//
|
||||
|
|
47
File_Format_Library/GUI/Editors/PTCL/Color8KeySlider.Designer.cs
generated
Normal file
47
File_Format_Library/GUI/Editors/PTCL/Color8KeySlider.Designer.cs
generated
Normal file
|
@ -0,0 +1,47 @@
|
|||
namespace FirstPlugin.Forms
|
||||
{
|
||||
partial class Color8KeySlider
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// Color8KeySlider
|
||||
//
|
||||
this.Size = new System.Drawing.Size(396, 42);
|
||||
this.Click += new System.EventHandler(this.Color8KeySlider_Click);
|
||||
this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Color8KeySlider_MouseDown);
|
||||
this.MouseHover += new System.EventHandler(this.Color8KeySlider_MouseHover);
|
||||
this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Color8KeySlider_MouseMove);
|
||||
this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.Color8KeySlider_MouseUp);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
253
File_Format_Library/GUI/Editors/PTCL/Color8KeySlider.cs
Normal file
253
File_Format_Library/GUI/Editors/PTCL/Color8KeySlider.cs
Normal file
|
@ -0,0 +1,253 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Drawing2D;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using Toolbox.Library.Forms;
|
||||
using Toolbox.Library;
|
||||
|
||||
namespace FirstPlugin.Forms
|
||||
{
|
||||
public partial class Color8KeySlider : STPanel, IColorPanelCommon
|
||||
{
|
||||
private int SelectedIndex = 0;
|
||||
public Color GetColor()
|
||||
{
|
||||
return Keys[SelectedIndex].Color;
|
||||
}
|
||||
|
||||
public float GetTime()
|
||||
{
|
||||
return Keys[SelectedIndex].STColor.Time;
|
||||
}
|
||||
|
||||
public void SetColor(Color color)
|
||||
{
|
||||
Keys[SelectedIndex].STColor.Color = color;
|
||||
this.Invalidate();
|
||||
}
|
||||
|
||||
public event EventHandler ColorSelected;
|
||||
|
||||
public void SelectPanel() {}
|
||||
public void DeselectPanel() {}
|
||||
|
||||
public Color8KeySlider()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
this.SetStyle(
|
||||
ControlStyles.AllPaintingInWmPaint |
|
||||
ControlStyles.UserPaint |
|
||||
ControlStyles.DoubleBuffer,
|
||||
true);
|
||||
|
||||
Paint += new PaintEventHandler(panel_Paint);
|
||||
BorderStyle = BorderStyle.FixedSingle;
|
||||
MouseHover += Color8KeySlider_MouseHover;
|
||||
MouseMove += Color8KeySlider_MouseMove;
|
||||
MouseDown += Color8KeySlider_MouseDown;
|
||||
MouseUp += Color8KeySlider_MouseUp;
|
||||
}
|
||||
|
||||
private List<KeyFrame> Keys = new List<KeyFrame>();
|
||||
|
||||
public void LoadColors(STColor[] keys, int keyCount)
|
||||
{
|
||||
Keys.Clear();
|
||||
for (int i = 0; i < keyCount; i++)
|
||||
Keys.Add(new KeyFrame(keys[i]));
|
||||
}
|
||||
|
||||
private void HitDetect()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private Point MouseCursor;
|
||||
private void panel_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
var p = sender as Panel;
|
||||
var g = e.Graphics;
|
||||
|
||||
Color firstColor = Color.White;
|
||||
Color lastColor = Color.White;
|
||||
if (Keys.Count > 0)
|
||||
{
|
||||
firstColor = Keys[0].Color;
|
||||
lastColor = Keys[Keys.Count - 1].Color;
|
||||
}
|
||||
|
||||
float keyMarigin = 10f;
|
||||
|
||||
RectangleF r = new RectangleF(ClientRectangle.X, ClientRectangle.Y + keyMarigin, ClientRectangle.Width, ClientRectangle.Height - keyMarigin);
|
||||
|
||||
//Start our gradient brush
|
||||
LinearGradientBrush br = new LinearGradientBrush(r, firstColor, lastColor, 0, true);
|
||||
|
||||
List<Color> colors = new List<Color>();
|
||||
List<float> frames = new List<float>();
|
||||
|
||||
frames.Add(0);
|
||||
colors.Add(firstColor);
|
||||
|
||||
for (int i = 0; i < Keys.Count; i++)
|
||||
{
|
||||
var currentKey = Keys[i];
|
||||
Color c2 = currentKey.Color;
|
||||
c2 = Color.FromArgb(c2.R, c2.G, c2.B);
|
||||
|
||||
float p2 = currentKey.STColor.Time;
|
||||
|
||||
colors.Add(c2);
|
||||
frames.Add(p2);
|
||||
}
|
||||
colors.Add(lastColor);
|
||||
frames.Add(1);
|
||||
|
||||
ColorBlend cb = new ColorBlend();
|
||||
cb.Positions = frames.ToArray(); ;
|
||||
cb.Colors = colors.ToArray();
|
||||
br.InterpolationColors = cb;
|
||||
|
||||
// paint gradient
|
||||
g.FillRectangle(br, r);
|
||||
|
||||
for (int i = 0; i < Keys.Count; i++)
|
||||
{
|
||||
//Create a box to reperesent a key frame
|
||||
int keyPos = (int)(ClientRectangle.Width * Keys[i].STColor.Time);
|
||||
if (i == Keys.Count - 1 && Keys[i].STColor.Time >= 0.09f)
|
||||
keyPos -= 8;
|
||||
|
||||
Rectangle keyBox = new Rectangle(keyPos, (int)r.Y, 7, (int)r.Height);
|
||||
Keys[i].DrawnRectangle = keyBox;
|
||||
|
||||
// paint keys
|
||||
Color cursorColor = Color.White;
|
||||
if (Keys[i].IsHit(MouseCursor.X, MouseCursor.Y) || Keys[i].IsSelected) {
|
||||
cursorColor = Color.Yellow;
|
||||
}
|
||||
|
||||
using (Pen pen = new Pen(Color.Black,1))
|
||||
g.DrawRectangle(pen, keyBox);
|
||||
|
||||
keyBox.Y += 1;
|
||||
keyBox.X += 1;
|
||||
|
||||
keyBox.Height -= 2;
|
||||
keyBox.Width -= 2;
|
||||
|
||||
using (Pen pen = new Pen(cursorColor, 1))
|
||||
g.DrawRectangle(pen, keyBox);
|
||||
|
||||
keyBox.Y += 1;
|
||||
keyBox.X += 1;
|
||||
|
||||
keyBox.Height -= 2;
|
||||
keyBox.Width -= 2;
|
||||
|
||||
using (Pen pen = new Pen(Color.Black, 1))
|
||||
g.DrawRectangle(pen, keyBox);
|
||||
|
||||
|
||||
//Draw key pointer at top
|
||||
|
||||
int keyTopPos = (int)(r.Y - 10);
|
||||
keyPos += keyBox.Width;
|
||||
Point[] triPoints = { new Point(keyPos - 5, keyTopPos), new Point(keyPos, keyTopPos + 10), new Point(keyPos + 5, keyTopPos) };
|
||||
e.Graphics.FillPolygon(new SolidBrush(cursorColor), triPoints);
|
||||
e.Graphics.DrawPolygon(new Pen(Color.Black,0.5f), triPoints);
|
||||
}
|
||||
|
||||
frames.Clear();
|
||||
colors.Clear();
|
||||
}
|
||||
|
||||
private bool IsSelected = false;
|
||||
private void Color8KeySlider_MouseDown(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.Button == MouseButtons.Left)
|
||||
{
|
||||
IsSelected = true;
|
||||
Color8KeySlider_MouseMove(sender, e);
|
||||
}
|
||||
}
|
||||
|
||||
private void Color8KeySlider_MouseUp(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.Button == MouseButtons.Left)
|
||||
{
|
||||
IsSelected = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void Color8KeySlider_MouseMove(object sender, MouseEventArgs e)
|
||||
{
|
||||
MouseCursor = e.Location;
|
||||
this.Invalidate();
|
||||
}
|
||||
|
||||
private void OnKeySelected()
|
||||
{
|
||||
this.Invalidate();
|
||||
|
||||
if (ColorSelected != null)
|
||||
ColorSelected(this, null);
|
||||
}
|
||||
|
||||
private void Color8KeySlider_MouseHover(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private class KeyFrame
|
||||
{
|
||||
public bool IsSelected = false;
|
||||
|
||||
public Color Color => STColor.Color;
|
||||
|
||||
public STColor STColor;
|
||||
|
||||
public Rectangle DrawnRectangle;
|
||||
|
||||
public KeyFrame(STColor color)
|
||||
{
|
||||
STColor = color;
|
||||
}
|
||||
|
||||
public bool IsHit(int X, int Y)
|
||||
{
|
||||
if (DrawnRectangle == null) return false;
|
||||
|
||||
if ((X > DrawnRectangle.X) && (X < DrawnRectangle.X + DrawnRectangle.Width) &&
|
||||
(Y > DrawnRectangle.Y) && (Y < DrawnRectangle.Y + DrawnRectangle.Height))
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private void Color8KeySlider_Click(object sender, EventArgs e) {
|
||||
for (int i = 0; i < Keys.Count; i++)
|
||||
Keys[i].IsSelected = false;
|
||||
|
||||
if (IsSelected)
|
||||
{
|
||||
for (int i = 0; i < Keys.Count; i++)
|
||||
{
|
||||
if (Keys[i].IsHit(MouseCursor.X, MouseCursor.Y))
|
||||
{
|
||||
Keys[i].IsSelected = true;
|
||||
SelectedIndex = i;
|
||||
OnKeySelected();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
123
File_Format_Library/GUI/Editors/PTCL/Color8KeySlider.resx
Normal file
123
File_Format_Library/GUI/Editors/PTCL/Color8KeySlider.resx
Normal file
|
@ -0,0 +1,123 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
</root>
|
58
File_Format_Library/GUI/Editors/PTCL/ColorConstantPanel.Designer.cs
generated
Normal file
58
File_Format_Library/GUI/Editors/PTCL/ColorConstantPanel.Designer.cs
generated
Normal file
|
@ -0,0 +1,58 @@
|
|||
namespace FirstPlugin.Forms
|
||||
{
|
||||
partial class ColorConstantPanel
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.color0PB = new System.Windows.Forms.Panel();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// color0PB
|
||||
//
|
||||
this.color0PB.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.color0PB.Location = new System.Drawing.Point(3, 4);
|
||||
this.color0PB.Name = "color0PB";
|
||||
this.color0PB.Size = new System.Drawing.Size(30, 30);
|
||||
this.color0PB.TabIndex = 1;
|
||||
this.color0PB.Click += new System.EventHandler(this.color0PB_Click);
|
||||
//
|
||||
// ColorConstantPanel
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.color0PB);
|
||||
this.Name = "ColorConstantPanel";
|
||||
this.Size = new System.Drawing.Size(291, 37);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Panel color0PB;
|
||||
}
|
||||
}
|
58
File_Format_Library/GUI/Editors/PTCL/ColorConstantPanel.cs
Normal file
58
File_Format_Library/GUI/Editors/PTCL/ColorConstantPanel.cs
Normal file
|
@ -0,0 +1,58 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using Toolbox.Library;
|
||||
|
||||
namespace FirstPlugin.Forms
|
||||
{
|
||||
public partial class ColorConstantPanel : UserControl, IColorPanelCommon
|
||||
{
|
||||
public ColorConstantPanel()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public Color GetColor()
|
||||
{
|
||||
return color0PB.BackColor;
|
||||
}
|
||||
|
||||
public void SetColor(Color color)
|
||||
{
|
||||
color0PB.BackColor = color;
|
||||
ActiveColor.Color = color;
|
||||
}
|
||||
|
||||
public void SelectPanel()
|
||||
{
|
||||
this.BorderStyle = BorderStyle.Fixed3D;
|
||||
}
|
||||
|
||||
public void DeselectPanel()
|
||||
{
|
||||
this.BorderStyle = BorderStyle.None;
|
||||
}
|
||||
|
||||
public event EventHandler ColorSelected;
|
||||
|
||||
private STColor ActiveColor;
|
||||
|
||||
public void LoadColor(STColor color)
|
||||
{
|
||||
ActiveColor = color;
|
||||
color0PB.BackColor = Color.FromArgb(ActiveColor.Color.R, ActiveColor.Color.G, ActiveColor.Color.B);
|
||||
}
|
||||
|
||||
private void color0PB_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (ColorSelected != null)
|
||||
ColorSelected(this, null);
|
||||
}
|
||||
}
|
||||
}
|
120
File_Format_Library/GUI/Editors/PTCL/ColorConstantPanel.resx
Normal file
120
File_Format_Library/GUI/Editors/PTCL/ColorConstantPanel.resx
Normal file
|
@ -0,0 +1,120 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
142
File_Format_Library/GUI/Editors/PTCL/ColorRandomPanel.Designer.cs
generated
Normal file
142
File_Format_Library/GUI/Editors/PTCL/ColorRandomPanel.Designer.cs
generated
Normal file
|
@ -0,0 +1,142 @@
|
|||
namespace FirstPlugin.Forms
|
||||
{
|
||||
partial class ColorRandomPanel
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.color0PB = new System.Windows.Forms.Panel();
|
||||
this.color1PB = new System.Windows.Forms.Panel();
|
||||
this.color3PB = new System.Windows.Forms.Panel();
|
||||
this.color2PB = new System.Windows.Forms.Panel();
|
||||
this.color7PB = new System.Windows.Forms.Panel();
|
||||
this.color6PB = new System.Windows.Forms.Panel();
|
||||
this.color5PB = new System.Windows.Forms.Panel();
|
||||
this.color4PB = new System.Windows.Forms.Panel();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// color0PB
|
||||
//
|
||||
this.color0PB.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.color0PB.Location = new System.Drawing.Point(3, 3);
|
||||
this.color0PB.Name = "color0PB";
|
||||
this.color0PB.Size = new System.Drawing.Size(30, 30);
|
||||
this.color0PB.TabIndex = 0;
|
||||
this.color0PB.Click += new System.EventHandler(this.colorPB_Click);
|
||||
//
|
||||
// color1PB
|
||||
//
|
||||
this.color1PB.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.color1PB.Location = new System.Drawing.Point(39, 3);
|
||||
this.color1PB.Name = "color1PB";
|
||||
this.color1PB.Size = new System.Drawing.Size(30, 30);
|
||||
this.color1PB.TabIndex = 1;
|
||||
this.color1PB.Click += new System.EventHandler(this.colorPB_Click);
|
||||
//
|
||||
// color3PB
|
||||
//
|
||||
this.color3PB.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.color3PB.Location = new System.Drawing.Point(111, 3);
|
||||
this.color3PB.Name = "color3PB";
|
||||
this.color3PB.Size = new System.Drawing.Size(30, 30);
|
||||
this.color3PB.TabIndex = 3;
|
||||
this.color3PB.Click += new System.EventHandler(this.colorPB_Click);
|
||||
//
|
||||
// color2PB
|
||||
//
|
||||
this.color2PB.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.color2PB.Location = new System.Drawing.Point(75, 3);
|
||||
this.color2PB.Name = "color2PB";
|
||||
this.color2PB.Size = new System.Drawing.Size(30, 30);
|
||||
this.color2PB.TabIndex = 2;
|
||||
this.color2PB.Click += new System.EventHandler(this.colorPB_Click);
|
||||
//
|
||||
// color7PB
|
||||
//
|
||||
this.color7PB.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.color7PB.Location = new System.Drawing.Point(256, 3);
|
||||
this.color7PB.Name = "color7PB";
|
||||
this.color7PB.Size = new System.Drawing.Size(30, 30);
|
||||
this.color7PB.TabIndex = 7;
|
||||
this.color7PB.Click += new System.EventHandler(this.colorPB_Click);
|
||||
//
|
||||
// color6PB
|
||||
//
|
||||
this.color6PB.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.color6PB.Location = new System.Drawing.Point(220, 3);
|
||||
this.color6PB.Name = "color6PB";
|
||||
this.color6PB.Size = new System.Drawing.Size(30, 30);
|
||||
this.color6PB.TabIndex = 6;
|
||||
this.color6PB.Click += new System.EventHandler(this.colorPB_Click);
|
||||
//
|
||||
// color5PB
|
||||
//
|
||||
this.color5PB.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.color5PB.Location = new System.Drawing.Point(184, 3);
|
||||
this.color5PB.Name = "color5PB";
|
||||
this.color5PB.Size = new System.Drawing.Size(30, 30);
|
||||
this.color5PB.TabIndex = 5;
|
||||
this.color5PB.Click += new System.EventHandler(this.colorPB_Click);
|
||||
//
|
||||
// color4PB
|
||||
//
|
||||
this.color4PB.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.color4PB.Location = new System.Drawing.Point(148, 3);
|
||||
this.color4PB.Name = "color4PB";
|
||||
this.color4PB.Size = new System.Drawing.Size(30, 30);
|
||||
this.color4PB.TabIndex = 4;
|
||||
this.color4PB.Click += new System.EventHandler(this.colorPB_Click);
|
||||
//
|
||||
// ColorRandomPanel
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.color7PB);
|
||||
this.Controls.Add(this.color6PB);
|
||||
this.Controls.Add(this.color3PB);
|
||||
this.Controls.Add(this.color5PB);
|
||||
this.Controls.Add(this.color2PB);
|
||||
this.Controls.Add(this.color4PB);
|
||||
this.Controls.Add(this.color1PB);
|
||||
this.Controls.Add(this.color0PB);
|
||||
this.Name = "ColorRandomPanel";
|
||||
this.Size = new System.Drawing.Size(291, 37);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Panel color0PB;
|
||||
private System.Windows.Forms.Panel color1PB;
|
||||
private System.Windows.Forms.Panel color3PB;
|
||||
private System.Windows.Forms.Panel color2PB;
|
||||
private System.Windows.Forms.Panel color7PB;
|
||||
private System.Windows.Forms.Panel color6PB;
|
||||
private System.Windows.Forms.Panel color5PB;
|
||||
private System.Windows.Forms.Panel color4PB;
|
||||
}
|
||||
}
|
88
File_Format_Library/GUI/Editors/PTCL/ColorRandomPanel.cs
Normal file
88
File_Format_Library/GUI/Editors/PTCL/ColorRandomPanel.cs
Normal file
|
@ -0,0 +1,88 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using Toolbox.Library;
|
||||
|
||||
namespace FirstPlugin.Forms
|
||||
{
|
||||
public partial class ColorRandomPanel : UserControl, IColorPanelCommon
|
||||
{
|
||||
public ColorRandomPanel()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private int SelectedIndex = 0;
|
||||
|
||||
public event EventHandler ColorSelected;
|
||||
|
||||
public Color GetColor()
|
||||
{
|
||||
var panel = GetColor(SelectedIndex);
|
||||
return panel.BackColor;
|
||||
}
|
||||
|
||||
public void SetColor(Color color)
|
||||
{
|
||||
var panel = GetColor(SelectedIndex);
|
||||
panel.BackColor = color;
|
||||
activeColors[SelectedIndex].Color = color;
|
||||
}
|
||||
|
||||
public void SelectPanel()
|
||||
{
|
||||
var panel = GetColor(SelectedIndex);
|
||||
panel.BorderStyle = BorderStyle.Fixed3D;
|
||||
}
|
||||
|
||||
public void DeselectPanel()
|
||||
{
|
||||
foreach (var panel in Controls)
|
||||
((Panel)panel).BorderStyle = BorderStyle.None;
|
||||
}
|
||||
|
||||
STColor[] activeColors;
|
||||
|
||||
public void LoadColors(STColor[] colors)
|
||||
{
|
||||
activeColors = colors;
|
||||
for (int i = 0; i < colors.Length; i++)
|
||||
{
|
||||
var panel = GetColor(i);
|
||||
Color c = colors[i].Color;
|
||||
panel.BackColor = Color.FromArgb(c.R, c.G, c.B);
|
||||
}
|
||||
}
|
||||
|
||||
public Panel GetColor(int index)
|
||||
{
|
||||
foreach (Control control in Controls)
|
||||
{
|
||||
if (control.Name == $"color{index}PB")
|
||||
return (Panel)control;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private void colorPB_Click(object sender, EventArgs e)
|
||||
{
|
||||
var panel = sender as Panel;
|
||||
if (panel == null) return;
|
||||
|
||||
for (int i =0; i < 8; i++)
|
||||
{
|
||||
if (panel.Name == $"color{i}PB")
|
||||
SelectedIndex = i;
|
||||
}
|
||||
|
||||
if (ColorSelected != null)
|
||||
ColorSelected(this, null);
|
||||
}
|
||||
}
|
||||
}
|
120
File_Format_Library/GUI/Editors/PTCL/ColorRandomPanel.resx
Normal file
120
File_Format_Library/GUI/Editors/PTCL/ColorRandomPanel.resx
Normal file
|
@ -0,0 +1,120 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
407
File_Format_Library/GUI/Editors/PTCL/EmitterEditorNX.Designer.cs
generated
Normal file
407
File_Format_Library/GUI/Editors/PTCL/EmitterEditorNX.Designer.cs
generated
Normal file
|
@ -0,0 +1,407 @@
|
|||
namespace FirstPlugin
|
||||
{
|
||||
partial class EmitterEditorNX
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(EmitterEditorNX));
|
||||
this.stLabel1 = new Toolbox.Library.Forms.STLabel();
|
||||
this.stLabel2 = new Toolbox.Library.Forms.STLabel();
|
||||
this.hexTB = new Toolbox.Library.Forms.STTextBox();
|
||||
this.stTabControl1 = new Toolbox.Library.Forms.STTabControl();
|
||||
this.tabPageColors = new System.Windows.Forms.TabPage();
|
||||
this.stPanel2 = new Toolbox.Library.Forms.STPanel();
|
||||
this.pictureBox4 = new System.Windows.Forms.PictureBox();
|
||||
this.timeTB = new Toolbox.Library.Forms.STTextBox();
|
||||
this.colorSelector1 = new Toolbox.Library.Forms.ColorSelector();
|
||||
this.stLabel5 = new Toolbox.Library.Forms.STLabel();
|
||||
this.stPanel6 = new Toolbox.Library.Forms.STPanel();
|
||||
this.stPanel5 = new Toolbox.Library.Forms.STPanel();
|
||||
this.stPanel4 = new Toolbox.Library.Forms.STPanel();
|
||||
this.stPanel3 = new Toolbox.Library.Forms.STPanel();
|
||||
this.alpha1TypeCB = new Toolbox.Library.Forms.STComboBox();
|
||||
this.alpha0TypeCB = new Toolbox.Library.Forms.STComboBox();
|
||||
this.stLabel3 = new Toolbox.Library.Forms.STLabel();
|
||||
this.stLabel4 = new Toolbox.Library.Forms.STLabel();
|
||||
this.color1TypeCB = new Toolbox.Library.Forms.STComboBox();
|
||||
this.color0TypeCB = new Toolbox.Library.Forms.STComboBox();
|
||||
this.tabPageTextures = new System.Windows.Forms.TabPage();
|
||||
this.stPanel1 = new Toolbox.Library.Forms.STPanel();
|
||||
this.TBTexture0 = new Toolbox.Library.Forms.STTextBox();
|
||||
this.TBTexture2 = new Toolbox.Library.Forms.STTextBox();
|
||||
this.pictureBox3 = new Toolbox.Library.Forms.PictureBoxCustom();
|
||||
this.TBTexture1 = new Toolbox.Library.Forms.STTextBox();
|
||||
this.pictureBox2 = new Toolbox.Library.Forms.PictureBoxCustom();
|
||||
this.pictureBox1 = new Toolbox.Library.Forms.PictureBoxCustom();
|
||||
this.stTabControl1.SuspendLayout();
|
||||
this.tabPageColors.SuspendLayout();
|
||||
this.stPanel2.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).BeginInit();
|
||||
this.tabPageTextures.SuspendLayout();
|
||||
this.stPanel1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// stLabel1
|
||||
//
|
||||
this.stLabel1.AutoSize = true;
|
||||
this.stLabel1.Location = new System.Drawing.Point(3, 18);
|
||||
this.stLabel1.Name = "stLabel1";
|
||||
this.stLabel1.Size = new System.Drawing.Size(40, 13);
|
||||
this.stLabel1.TabIndex = 0;
|
||||
this.stLabel1.Text = "Color 0";
|
||||
//
|
||||
// stLabel2
|
||||
//
|
||||
this.stLabel2.AutoSize = true;
|
||||
this.stLabel2.Location = new System.Drawing.Point(3, 86);
|
||||
this.stLabel2.Name = "stLabel2";
|
||||
this.stLabel2.Size = new System.Drawing.Size(40, 13);
|
||||
this.stLabel2.TabIndex = 2;
|
||||
this.stLabel2.Text = "Color 1";
|
||||
//
|
||||
// hexTB
|
||||
//
|
||||
this.hexTB.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.hexTB.Location = new System.Drawing.Point(316, 255);
|
||||
this.hexTB.Name = "hexTB";
|
||||
this.hexTB.Size = new System.Drawing.Size(153, 20);
|
||||
this.hexTB.TabIndex = 27;
|
||||
this.hexTB.TextChanged += new System.EventHandler(this.hexTB_TextChanged);
|
||||
//
|
||||
// stTabControl1
|
||||
//
|
||||
this.stTabControl1.Controls.Add(this.tabPageColors);
|
||||
this.stTabControl1.Controls.Add(this.tabPageTextures);
|
||||
this.stTabControl1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.stTabControl1.Location = new System.Drawing.Point(0, 0);
|
||||
this.stTabControl1.myBackColor = System.Drawing.Color.Empty;
|
||||
this.stTabControl1.Name = "stTabControl1";
|
||||
this.stTabControl1.SelectedIndex = 0;
|
||||
this.stTabControl1.Size = new System.Drawing.Size(555, 561);
|
||||
this.stTabControl1.TabIndex = 38;
|
||||
//
|
||||
// tabPageColors
|
||||
//
|
||||
this.tabPageColors.Controls.Add(this.stPanel2);
|
||||
this.tabPageColors.Location = new System.Drawing.Point(4, 25);
|
||||
this.tabPageColors.Name = "tabPageColors";
|
||||
this.tabPageColors.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabPageColors.Size = new System.Drawing.Size(547, 532);
|
||||
this.tabPageColors.TabIndex = 0;
|
||||
this.tabPageColors.Text = "Colors";
|
||||
this.tabPageColors.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// stPanel2
|
||||
//
|
||||
this.stPanel2.Controls.Add(this.pictureBox4);
|
||||
this.stPanel2.Controls.Add(this.timeTB);
|
||||
this.stPanel2.Controls.Add(this.colorSelector1);
|
||||
this.stPanel2.Controls.Add(this.stLabel5);
|
||||
this.stPanel2.Controls.Add(this.stPanel6);
|
||||
this.stPanel2.Controls.Add(this.stPanel5);
|
||||
this.stPanel2.Controls.Add(this.stPanel4);
|
||||
this.stPanel2.Controls.Add(this.stPanel3);
|
||||
this.stPanel2.Controls.Add(this.alpha1TypeCB);
|
||||
this.stPanel2.Controls.Add(this.alpha0TypeCB);
|
||||
this.stPanel2.Controls.Add(this.stLabel3);
|
||||
this.stPanel2.Controls.Add(this.stLabel4);
|
||||
this.stPanel2.Controls.Add(this.color1TypeCB);
|
||||
this.stPanel2.Controls.Add(this.color0TypeCB);
|
||||
this.stPanel2.Controls.Add(this.stLabel1);
|
||||
this.stPanel2.Controls.Add(this.stLabel2);
|
||||
this.stPanel2.Controls.Add(this.hexTB);
|
||||
this.stPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.stPanel2.Location = new System.Drawing.Point(3, 3);
|
||||
this.stPanel2.Name = "stPanel2";
|
||||
this.stPanel2.Size = new System.Drawing.Size(541, 526);
|
||||
this.stPanel2.TabIndex = 0;
|
||||
//
|
||||
// pictureBox4
|
||||
//
|
||||
this.pictureBox4.Location = new System.Drawing.Point(488, 235);
|
||||
this.pictureBox4.Name = "pictureBox4";
|
||||
this.pictureBox4.Size = new System.Drawing.Size(40, 40);
|
||||
this.pictureBox4.TabIndex = 45;
|
||||
this.pictureBox4.TabStop = false;
|
||||
//
|
||||
// timeTB
|
||||
//
|
||||
this.timeTB.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.timeTB.Location = new System.Drawing.Point(352, 18);
|
||||
this.timeTB.Name = "timeTB";
|
||||
this.timeTB.Size = new System.Drawing.Size(100, 20);
|
||||
this.timeTB.TabIndex = 0;
|
||||
//
|
||||
// colorSelector1
|
||||
//
|
||||
this.colorSelector1.Color = System.Drawing.Color.Empty;
|
||||
this.colorSelector1.Location = new System.Drawing.Point(316, 44);
|
||||
this.colorSelector1.MaximumSize = new System.Drawing.Size(212, 188);
|
||||
this.colorSelector1.MinimumSize = new System.Drawing.Size(212, 188);
|
||||
this.colorSelector1.Name = "colorSelector1";
|
||||
this.colorSelector1.Size = new System.Drawing.Size(212, 188);
|
||||
this.colorSelector1.TabIndex = 44;
|
||||
this.colorSelector1.ColorChanged += new System.EventHandler(this.colorSelector1_ColorChanged);
|
||||
//
|
||||
// stLabel5
|
||||
//
|
||||
this.stLabel5.AutoSize = true;
|
||||
this.stLabel5.Location = new System.Drawing.Point(313, 18);
|
||||
this.stLabel5.Name = "stLabel5";
|
||||
this.stLabel5.Size = new System.Drawing.Size(33, 13);
|
||||
this.stLabel5.TabIndex = 43;
|
||||
this.stLabel5.Text = "Time:";
|
||||
//
|
||||
// stPanel6
|
||||
//
|
||||
this.stPanel6.Location = new System.Drawing.Point(6, 242);
|
||||
this.stPanel6.Name = "stPanel6";
|
||||
this.stPanel6.Size = new System.Drawing.Size(304, 33);
|
||||
this.stPanel6.TabIndex = 41;
|
||||
//
|
||||
// stPanel5
|
||||
//
|
||||
this.stPanel5.Location = new System.Drawing.Point(6, 176);
|
||||
this.stPanel5.Name = "stPanel5";
|
||||
this.stPanel5.Size = new System.Drawing.Size(304, 33);
|
||||
this.stPanel5.TabIndex = 40;
|
||||
//
|
||||
// stPanel4
|
||||
//
|
||||
this.stPanel4.Location = new System.Drawing.Point(6, 110);
|
||||
this.stPanel4.Name = "stPanel4";
|
||||
this.stPanel4.Size = new System.Drawing.Size(304, 33);
|
||||
this.stPanel4.TabIndex = 39;
|
||||
//
|
||||
// stPanel3
|
||||
//
|
||||
this.stPanel3.Location = new System.Drawing.Point(6, 44);
|
||||
this.stPanel3.Name = "stPanel3";
|
||||
this.stPanel3.Size = new System.Drawing.Size(304, 33);
|
||||
this.stPanel3.TabIndex = 38;
|
||||
//
|
||||
// alpha1TypeCB
|
||||
//
|
||||
this.alpha1TypeCB.BorderColor = System.Drawing.Color.Empty;
|
||||
this.alpha1TypeCB.BorderStyle = System.Windows.Forms.ButtonBorderStyle.Solid;
|
||||
this.alpha1TypeCB.ButtonColor = System.Drawing.Color.Empty;
|
||||
this.alpha1TypeCB.FormattingEnabled = true;
|
||||
this.alpha1TypeCB.Location = new System.Drawing.Point(175, 215);
|
||||
this.alpha1TypeCB.Name = "alpha1TypeCB";
|
||||
this.alpha1TypeCB.Size = new System.Drawing.Size(135, 21);
|
||||
this.alpha1TypeCB.TabIndex = 37;
|
||||
//
|
||||
// alpha0TypeCB
|
||||
//
|
||||
this.alpha0TypeCB.BorderColor = System.Drawing.Color.Empty;
|
||||
this.alpha0TypeCB.BorderStyle = System.Windows.Forms.ButtonBorderStyle.Solid;
|
||||
this.alpha0TypeCB.ButtonColor = System.Drawing.Color.Empty;
|
||||
this.alpha0TypeCB.FormattingEnabled = true;
|
||||
this.alpha0TypeCB.Location = new System.Drawing.Point(175, 149);
|
||||
this.alpha0TypeCB.Name = "alpha0TypeCB";
|
||||
this.alpha0TypeCB.Size = new System.Drawing.Size(135, 21);
|
||||
this.alpha0TypeCB.TabIndex = 35;
|
||||
//
|
||||
// stLabel3
|
||||
//
|
||||
this.stLabel3.AutoSize = true;
|
||||
this.stLabel3.Location = new System.Drawing.Point(3, 150);
|
||||
this.stLabel3.Name = "stLabel3";
|
||||
this.stLabel3.Size = new System.Drawing.Size(43, 13);
|
||||
this.stLabel3.TabIndex = 32;
|
||||
this.stLabel3.Text = "Alpha 0";
|
||||
//
|
||||
// stLabel4
|
||||
//
|
||||
this.stLabel4.AutoSize = true;
|
||||
this.stLabel4.Location = new System.Drawing.Point(3, 218);
|
||||
this.stLabel4.Name = "stLabel4";
|
||||
this.stLabel4.Size = new System.Drawing.Size(43, 13);
|
||||
this.stLabel4.TabIndex = 33;
|
||||
this.stLabel4.Text = "Alpha 1";
|
||||
//
|
||||
// color1TypeCB
|
||||
//
|
||||
this.color1TypeCB.BorderColor = System.Drawing.Color.Empty;
|
||||
this.color1TypeCB.BorderStyle = System.Windows.Forms.ButtonBorderStyle.Solid;
|
||||
this.color1TypeCB.ButtonColor = System.Drawing.Color.Empty;
|
||||
this.color1TypeCB.FormattingEnabled = true;
|
||||
this.color1TypeCB.Location = new System.Drawing.Point(175, 83);
|
||||
this.color1TypeCB.Name = "color1TypeCB";
|
||||
this.color1TypeCB.Size = new System.Drawing.Size(135, 21);
|
||||
this.color1TypeCB.TabIndex = 31;
|
||||
//
|
||||
// color0TypeCB
|
||||
//
|
||||
this.color0TypeCB.BorderColor = System.Drawing.Color.Empty;
|
||||
this.color0TypeCB.BorderStyle = System.Windows.Forms.ButtonBorderStyle.Solid;
|
||||
this.color0TypeCB.ButtonColor = System.Drawing.Color.Empty;
|
||||
this.color0TypeCB.FormattingEnabled = true;
|
||||
this.color0TypeCB.Location = new System.Drawing.Point(175, 17);
|
||||
this.color0TypeCB.Name = "color0TypeCB";
|
||||
this.color0TypeCB.Size = new System.Drawing.Size(135, 21);
|
||||
this.color0TypeCB.TabIndex = 29;
|
||||
//
|
||||
// tabPageTextures
|
||||
//
|
||||
this.tabPageTextures.Controls.Add(this.stPanel1);
|
||||
this.tabPageTextures.Location = new System.Drawing.Point(4, 25);
|
||||
this.tabPageTextures.Name = "tabPageTextures";
|
||||
this.tabPageTextures.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabPageTextures.Size = new System.Drawing.Size(547, 532);
|
||||
this.tabPageTextures.TabIndex = 1;
|
||||
this.tabPageTextures.Text = "Textures";
|
||||
this.tabPageTextures.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// stPanel1
|
||||
//
|
||||
this.stPanel1.Controls.Add(this.TBTexture0);
|
||||
this.stPanel1.Controls.Add(this.TBTexture2);
|
||||
this.stPanel1.Controls.Add(this.pictureBox3);
|
||||
this.stPanel1.Controls.Add(this.TBTexture1);
|
||||
this.stPanel1.Controls.Add(this.pictureBox2);
|
||||
this.stPanel1.Controls.Add(this.pictureBox1);
|
||||
this.stPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.stPanel1.Location = new System.Drawing.Point(3, 3);
|
||||
this.stPanel1.Name = "stPanel1";
|
||||
this.stPanel1.Size = new System.Drawing.Size(541, 526);
|
||||
this.stPanel1.TabIndex = 41;
|
||||
//
|
||||
// TBTexture0
|
||||
//
|
||||
this.TBTexture0.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.TBTexture0.Location = new System.Drawing.Point(14, 15);
|
||||
this.TBTexture0.Name = "TBTexture0";
|
||||
this.TBTexture0.Size = new System.Drawing.Size(150, 20);
|
||||
this.TBTexture0.TabIndex = 38;
|
||||
//
|
||||
// TBTexture2
|
||||
//
|
||||
this.TBTexture2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.TBTexture2.Location = new System.Drawing.Point(14, 335);
|
||||
this.TBTexture2.Name = "TBTexture2";
|
||||
this.TBTexture2.Size = new System.Drawing.Size(150, 20);
|
||||
this.TBTexture2.TabIndex = 40;
|
||||
//
|
||||
// pictureBox3
|
||||
//
|
||||
this.pictureBox3.BackColor = System.Drawing.Color.Transparent;
|
||||
this.pictureBox3.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("pictureBox3.BackgroundImage")));
|
||||
this.pictureBox3.Location = new System.Drawing.Point(14, 361);
|
||||
this.pictureBox3.Name = "pictureBox3";
|
||||
this.pictureBox3.Size = new System.Drawing.Size(150, 134);
|
||||
this.pictureBox3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||
this.pictureBox3.TabIndex = 37;
|
||||
this.pictureBox3.TabStop = false;
|
||||
//
|
||||
// TBTexture1
|
||||
//
|
||||
this.TBTexture1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.TBTexture1.Location = new System.Drawing.Point(14, 166);
|
||||
this.TBTexture1.Name = "TBTexture1";
|
||||
this.TBTexture1.Size = new System.Drawing.Size(150, 20);
|
||||
this.TBTexture1.TabIndex = 39;
|
||||
//
|
||||
// pictureBox2
|
||||
//
|
||||
this.pictureBox2.BackColor = System.Drawing.Color.Transparent;
|
||||
this.pictureBox2.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("pictureBox2.BackgroundImage")));
|
||||
this.pictureBox2.Location = new System.Drawing.Point(14, 192);
|
||||
this.pictureBox2.Name = "pictureBox2";
|
||||
this.pictureBox2.Size = new System.Drawing.Size(150, 134);
|
||||
this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||
this.pictureBox2.TabIndex = 36;
|
||||
this.pictureBox2.TabStop = false;
|
||||
//
|
||||
// pictureBox1
|
||||
//
|
||||
this.pictureBox1.BackColor = System.Drawing.Color.Transparent;
|
||||
this.pictureBox1.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("pictureBox1.BackgroundImage")));
|
||||
this.pictureBox1.Location = new System.Drawing.Point(14, 41);
|
||||
this.pictureBox1.Name = "pictureBox1";
|
||||
this.pictureBox1.Size = new System.Drawing.Size(150, 120);
|
||||
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||
this.pictureBox1.TabIndex = 0;
|
||||
this.pictureBox1.TabStop = false;
|
||||
//
|
||||
// EmitterEditorNX
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.stTabControl1);
|
||||
this.Name = "EmitterEditorNX";
|
||||
this.Size = new System.Drawing.Size(555, 561);
|
||||
this.stTabControl1.ResumeLayout(false);
|
||||
this.tabPageColors.ResumeLayout(false);
|
||||
this.stPanel2.ResumeLayout(false);
|
||||
this.stPanel2.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).EndInit();
|
||||
this.tabPageTextures.ResumeLayout(false);
|
||||
this.stPanel1.ResumeLayout(false);
|
||||
this.stPanel1.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Toolbox.Library.Forms.STLabel stLabel1;
|
||||
private Toolbox.Library.Forms.STLabel stLabel2;
|
||||
private Toolbox.Library.Forms.STTextBox hexTB;
|
||||
private Toolbox.Library.Forms.PictureBoxCustom pictureBox2;
|
||||
private Toolbox.Library.Forms.PictureBoxCustom pictureBox3;
|
||||
private Toolbox.Library.Forms.PictureBoxCustom pictureBox1;
|
||||
private Toolbox.Library.Forms.STTabControl stTabControl1;
|
||||
private System.Windows.Forms.TabPage tabPageColors;
|
||||
private System.Windows.Forms.TabPage tabPageTextures;
|
||||
private Toolbox.Library.Forms.STTextBox TBTexture2;
|
||||
private Toolbox.Library.Forms.STTextBox TBTexture1;
|
||||
private Toolbox.Library.Forms.STTextBox TBTexture0;
|
||||
private Toolbox.Library.Forms.STPanel stPanel2;
|
||||
private Toolbox.Library.Forms.STPanel stPanel1;
|
||||
private Toolbox.Library.Forms.STComboBox color1TypeCB;
|
||||
private Toolbox.Library.Forms.STComboBox color0TypeCB;
|
||||
private Toolbox.Library.Forms.STComboBox alpha1TypeCB;
|
||||
private Toolbox.Library.Forms.STComboBox alpha0TypeCB;
|
||||
private Toolbox.Library.Forms.STLabel stLabel3;
|
||||
private Toolbox.Library.Forms.STLabel stLabel4;
|
||||
private Toolbox.Library.Forms.STPanel stPanel6;
|
||||
private Toolbox.Library.Forms.STPanel stPanel5;
|
||||
private Toolbox.Library.Forms.STPanel stPanel4;
|
||||
private Toolbox.Library.Forms.STPanel stPanel3;
|
||||
private Toolbox.Library.Forms.STLabel stLabel5;
|
||||
private Toolbox.Library.Forms.ColorSelector colorSelector1;
|
||||
private Toolbox.Library.Forms.STTextBox timeTB;
|
||||
private System.Windows.Forms.PictureBox pictureBox4;
|
||||
}
|
||||
}
|
276
File_Format_Library/GUI/Editors/PTCL/EmitterEditorNX.cs
Normal file
276
File_Format_Library/GUI/Editors/PTCL/EmitterEditorNX.cs
Normal file
|
@ -0,0 +1,276 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Windows.Forms;
|
||||
using Toolbox.Library.Forms;
|
||||
using Toolbox.Library;
|
||||
using FirstPlugin.Forms;
|
||||
|
||||
namespace FirstPlugin
|
||||
{
|
||||
public partial class EmitterEditorNX : STUserControl
|
||||
{
|
||||
public EmitterEditorNX()
|
||||
{
|
||||
InitializeComponent();
|
||||
stTabControl1.myBackColor = FormThemes.BaseTheme.FormBackColor;
|
||||
tabPageColors.BackColor = FormThemes.BaseTheme.TabPageActive;
|
||||
|
||||
foreach (PTCL.Emitter.ColorType format in (PTCL.Emitter.ColorType[])Enum.GetValues(typeof(PTCL.Emitter.ColorType)))
|
||||
{
|
||||
color0TypeCB.Items.Add(format);
|
||||
color1TypeCB.Items.Add(format);
|
||||
alpha0TypeCB.Items.Add(format);
|
||||
alpha1TypeCB.Items.Add(format);
|
||||
}
|
||||
|
||||
color0TypeCB.SetAsReadOnly();
|
||||
color1TypeCB.SetAsReadOnly();
|
||||
alpha0TypeCB.SetAsReadOnly();
|
||||
alpha1TypeCB.SetAsReadOnly();
|
||||
}
|
||||
|
||||
private void Reset()
|
||||
{
|
||||
pictureBox1.Image = null;
|
||||
pictureBox2.Image = null;
|
||||
pictureBox3.Image = null;
|
||||
TBTexture0.Text = "";
|
||||
TBTexture1.Text = "";
|
||||
TBTexture2.Text = "";
|
||||
}
|
||||
|
||||
private Thread Thread;
|
||||
PTCL.Emitter ActiveEmitter;
|
||||
|
||||
private IColorPanelCommon ActivePanel;
|
||||
|
||||
private void LoadColors(STColor[] colors, PTCL.Emitter.ColorType colorType, int type)
|
||||
{
|
||||
STPanel panel = new STPanel();
|
||||
if (type == 0)
|
||||
panel = stPanel3;
|
||||
if (type == 1)
|
||||
panel = stPanel4;
|
||||
if (type == 2)
|
||||
panel = stPanel5;
|
||||
if (type == 3)
|
||||
panel = stPanel6;
|
||||
|
||||
panel.Controls.Clear();
|
||||
|
||||
if (colorType == PTCL.Emitter.ColorType.Animated8Key)
|
||||
{
|
||||
Color8KeySlider colorSlider = new Color8KeySlider();
|
||||
colorSlider.Dock = DockStyle.Fill;
|
||||
colorSlider.ColorSelected += ColorPanelSelected;
|
||||
panel.Controls.Add(colorSlider);
|
||||
|
||||
if (type == 0)
|
||||
colorSlider.LoadColors(colors, (int)ActiveEmitter.Color0KeyCount);
|
||||
if (type == 1)
|
||||
colorSlider.LoadColors(colors, (int)ActiveEmitter.Color1KeyCount);
|
||||
if (type == 2)
|
||||
colorSlider.LoadColors(colors, (int)ActiveEmitter.Alpha0KeyCount);
|
||||
if (type == 3)
|
||||
colorSlider.LoadColors(colors, (int)ActiveEmitter.Alpha1KeyCount);
|
||||
}
|
||||
else if (colorType == PTCL.Emitter.ColorType.Random)
|
||||
{
|
||||
ColorRandomPanel colorRandomPnl = new ColorRandomPanel();
|
||||
colorRandomPnl.ColorSelected += ColorPanelSelected;
|
||||
panel.Controls.Add(colorRandomPnl);
|
||||
|
||||
colorRandomPnl.LoadColors(colors);
|
||||
}
|
||||
else
|
||||
{
|
||||
ColorConstantPanel colorConstantPnl = new ColorConstantPanel();
|
||||
colorConstantPnl.ColorSelected += ColorPanelSelected;
|
||||
panel.Controls.Add(colorConstantPnl);
|
||||
|
||||
if (type == 0)
|
||||
colorConstantPnl.LoadColor(ActiveEmitter.ConstantColor0);
|
||||
if (type == 1)
|
||||
colorConstantPnl.LoadColor(ActiveEmitter.ConstantColor1);
|
||||
if (type == 2)
|
||||
colorConstantPnl.LoadColor(ActiveEmitter.ConstantAlpha0);
|
||||
if (type == 3)
|
||||
colorConstantPnl.LoadColor(ActiveEmitter.ConstantAlpha1);
|
||||
}
|
||||
}
|
||||
|
||||
private void ColorPanelSelected(object sender, EventArgs e)
|
||||
{
|
||||
var panel = sender as IColorPanelCommon;
|
||||
if (panel != null)
|
||||
{
|
||||
hexTB.Text = "";
|
||||
|
||||
ActivePanel = panel;
|
||||
UpdateColorSelector(panel.GetColor());
|
||||
if (panel is Color8KeySlider)
|
||||
UpdateTimeDisplay(((Color8KeySlider)panel).GetTime());
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateTimeDisplay(float time)
|
||||
{
|
||||
timeTB.Text = time.ToString();
|
||||
}
|
||||
|
||||
public void LoadEmitter(PTCL.Emitter Emitter)
|
||||
{
|
||||
IsColorsLoaded = false;
|
||||
|
||||
ActiveEmitter = Emitter;
|
||||
|
||||
|
||||
Reset();
|
||||
|
||||
color0TypeCB.SelectedItem = Emitter.Color0Type;
|
||||
color1TypeCB.SelectedItem = Emitter.Color1Type;
|
||||
alpha0TypeCB.SelectedItem = Emitter.Alpha0Type;
|
||||
alpha1TypeCB.SelectedItem = Emitter.Alpha1Type;
|
||||
|
||||
LoadColors(Emitter.Color0Array, Emitter.Color0Type, 0);
|
||||
LoadColors(Emitter.Color1Array, Emitter.Color1Type, 1);
|
||||
LoadColors(Emitter.Color0AlphaArray, Emitter.Alpha0Type, 2);
|
||||
LoadColors(Emitter.Color1AlphaArray, Emitter.Alpha1Type, 3);
|
||||
|
||||
stLabel1.Text = $"Color 0 ({Emitter.Color0KeyCount} Keys)";
|
||||
stLabel2.Text = $"Color 1 ({Emitter.Color1KeyCount} Keys)";
|
||||
stLabel3.Text = $"Alpha 0 ({Emitter.Alpha0KeyCount} Keys)";
|
||||
stLabel4.Text = $"Alpha 1 ({Emitter.Alpha1KeyCount} Keys)";
|
||||
|
||||
UpdateColorSelector(Color.Black);
|
||||
|
||||
IsColorsLoaded = true;
|
||||
|
||||
if (Emitter.DrawableTex.Count <= 0)
|
||||
return;
|
||||
|
||||
if (Emitter.DrawableTex[0].MipCount > 0)
|
||||
{
|
||||
pictureBox1.Image = Imaging.GetLoadingImage();
|
||||
pictureBox1.Image = Emitter.DrawableTex[0].GetBitmap();
|
||||
|
||||
TBTexture0.Text = Emitter.DrawableTex[0].Text;
|
||||
}
|
||||
if (Emitter.DrawableTex.Count < 2)
|
||||
return;
|
||||
|
||||
if (Emitter.DrawableTex[1].MipCount > 0)
|
||||
{
|
||||
pictureBox2.Image = Imaging.GetLoadingImage();
|
||||
pictureBox2.Image = Emitter.DrawableTex[1].GetBitmap();
|
||||
TBTexture1.Text = Emitter.DrawableTex[1].Text;
|
||||
}
|
||||
if (Emitter.DrawableTex.Count < 3)
|
||||
return;
|
||||
|
||||
if (Emitter.DrawableTex[2].MipCount > 0)
|
||||
{
|
||||
pictureBox3.Image = Imaging.GetLoadingImage();
|
||||
pictureBox3.Image = Emitter.DrawableTex[2].GetBitmap();
|
||||
TBTexture2.Text = Emitter.DrawableTex[2].Text;
|
||||
}
|
||||
}
|
||||
|
||||
bool IsColorsLoaded = false;
|
||||
|
||||
public ColorAlphaBox GetColor(int colorType, int index)
|
||||
{
|
||||
foreach (Control control in stPanel2.Controls)
|
||||
{
|
||||
if (control.Name == $"color{colorType}Index{index}")
|
||||
return (ColorAlphaBox)control;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public void RefreshColorBoxes()
|
||||
{
|
||||
foreach (Control control in stPanel2.Controls)
|
||||
{
|
||||
if (control is ColorAlphaBox)
|
||||
control.Refresh();
|
||||
}
|
||||
}
|
||||
|
||||
private void ExportImage0(object sender, EventArgs e)
|
||||
{
|
||||
ActiveEmitter.DrawableTex[0].ExportImage();
|
||||
}
|
||||
private void ReplaceImage0(object sender, EventArgs e)
|
||||
{
|
||||
if (ActiveEmitter is PTCL_WiiU.EmitterU)
|
||||
{
|
||||
var emitter = (PTCL_WiiU.EmitterU)ActiveEmitter;
|
||||
|
||||
OpenFileDialog ofd = new OpenFileDialog();
|
||||
ofd.Filter = "Supported Formats|*.dds; *.png;*.tga;*.jpg;*.tiff|" +
|
||||
"Microsoft DDS |*.dds|" +
|
||||
"Portable Network Graphics |*.png|" +
|
||||
"Joint Photographic Experts Group |*.jpg|" +
|
||||
"Bitmap Image |*.bmp|" +
|
||||
"Tagged Image File Format |*.tiff|" +
|
||||
"All files(*.*)|*.*";
|
||||
|
||||
ofd.Multiselect = false;
|
||||
if (ofd.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
((PTCL_WiiU.TextureInfo)emitter.DrawableTex[0]).Replace(ofd.FileName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void SetEmitterColor(Color color, int index, bool IsColor0)
|
||||
{
|
||||
if (IsColor0)
|
||||
ActiveEmitter.Color0Array[index].Color = color;
|
||||
else
|
||||
ActiveEmitter.Color1Array[index].Color = color;
|
||||
}
|
||||
|
||||
public Color SetColor(Color input, Color output)
|
||||
{
|
||||
return Color.FromArgb(input.A, output.R, output.G, output.B);
|
||||
}
|
||||
|
||||
private void hexTB_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (sender is TextBox)
|
||||
{
|
||||
((TextBox)sender).MaxLength = 8;
|
||||
|
||||
if (((TextBox)sender).Text.Length != 8)
|
||||
return;
|
||||
|
||||
var color = Utils.HexToColor(((TextBox)sender).Text);
|
||||
UpdateColorSelector(color);
|
||||
}
|
||||
}
|
||||
|
||||
private void colorSelector1_ColorChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (!IsColorsLoaded)
|
||||
return;
|
||||
|
||||
hexTB.Text = Utils.ColorToHex(colorSelector1.Color);
|
||||
pictureBox4.BackColor = colorSelector1.Color;
|
||||
|
||||
if (ActivePanel != null)
|
||||
ActivePanel.SetColor(colorSelector1.Color);
|
||||
}
|
||||
|
||||
private void UpdateColorSelector(Color color) {
|
||||
colorSelector1.Color = color;
|
||||
}
|
||||
}
|
||||
}
|
742
File_Format_Library/GUI/Editors/PTCL/EmitterEditorNX.resx
Normal file
742
File_Format_Library/GUI/Editors/PTCL/EmitterEditorNX.resx
Normal file
|
@ -0,0 +1,742 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="pictureBox3.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAAlgAAAJYCAMAAACJuGjuAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
|
||||
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAADAFBMVEXMzMzNzc3Ozs7Pz8/Q0NDR0dHS
|
||||
0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm
|
||||
5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6
|
||||
+vr7+/v8/Pz9/f3+/v7///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
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
|
||||
</value>
|
||||
</data>
|
||||
<data name="pictureBox2.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAAlgAAAJYCAMAAACJuGjuAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
|
||||
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAADAFBMVEXMzMzNzc3Ozs7Pz8/Q0NDR0dHS
|
||||
0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm
|
||||
5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6
|
||||
+vr7+/v8/Pz9/f3+/v7///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
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
|
||||
</value>
|
||||
</data>
|
||||
<data name="pictureBox1.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAAlgAAAJYCAMAAACJuGjuAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
|
||||
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAADAFBMVEXMzMzNzc3Ozs7Pz8/Q0NDR0dHS
|
||||
0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm
|
||||
5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6
|
||||
+vr7+/v8/Pz9/f3+/v7///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
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
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
18
File_Format_Library/GUI/Editors/PTCL/IColorPanelCommon.cs
Normal file
18
File_Format_Library/GUI/Editors/PTCL/IColorPanelCommon.cs
Normal file
|
@ -0,0 +1,18 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Drawing;
|
||||
|
||||
namespace FirstPlugin.Forms
|
||||
{
|
||||
public interface IColorPanelCommon
|
||||
{
|
||||
void SetColor(Color color);
|
||||
Color GetColor();
|
||||
event EventHandler ColorSelected;
|
||||
void SelectPanel();
|
||||
void DeselectPanel();
|
||||
}
|
||||
}
|
|
@ -49,7 +49,6 @@
|
|||
this.stComboBox1.FormattingEnabled = true;
|
||||
this.stComboBox1.Location = new System.Drawing.Point(3, 3);
|
||||
this.stComboBox1.Name = "stComboBox1";
|
||||
this.stComboBox1.ReadOnly = true;
|
||||
this.stComboBox1.Size = new System.Drawing.Size(158, 21);
|
||||
this.stComboBox1.TabIndex = 12;
|
||||
this.stComboBox1.SelectedIndexChanged += new System.EventHandler(this.stComboBox1_SelectedIndexChanged);
|
||||
|
|
|
@ -171,7 +171,6 @@
|
|||
this.tileModeCB.FormattingEnabled = true;
|
||||
this.tileModeCB.Location = new System.Drawing.Point(851, 114);
|
||||
this.tileModeCB.Name = "tileModeCB";
|
||||
this.tileModeCB.ReadOnly = true;
|
||||
this.tileModeCB.Size = new System.Drawing.Size(230, 21);
|
||||
this.tileModeCB.TabIndex = 26;
|
||||
//
|
||||
|
@ -192,7 +191,6 @@
|
|||
this.ImgDimComb.FormattingEnabled = true;
|
||||
this.ImgDimComb.Location = new System.Drawing.Point(851, 87);
|
||||
this.ImgDimComb.Name = "ImgDimComb";
|
||||
this.ImgDimComb.ReadOnly = true;
|
||||
this.ImgDimComb.Size = new System.Drawing.Size(232, 21);
|
||||
this.ImgDimComb.TabIndex = 24;
|
||||
this.ImgDimComb.SelectedIndexChanged += new System.EventHandler(this.ImgDimComb_SelectedIndexChanged);
|
||||
|
@ -270,7 +268,6 @@
|
|||
this.formatComboBox.FormattingEnabled = true;
|
||||
this.formatComboBox.Location = new System.Drawing.Point(851, 60);
|
||||
this.formatComboBox.Name = "formatComboBox";
|
||||
this.formatComboBox.ReadOnly = true;
|
||||
this.formatComboBox.Size = new System.Drawing.Size(233, 21);
|
||||
this.formatComboBox.TabIndex = 16;
|
||||
this.formatComboBox.SelectedIndexChanged += new System.EventHandler(this.formatComboBox_SelectedIndexChanged);
|
||||
|
@ -283,7 +280,6 @@
|
|||
this.compressionModeCB.FormattingEnabled = true;
|
||||
this.compressionModeCB.Location = new System.Drawing.Point(851, 33);
|
||||
this.compressionModeCB.Name = "compressionModeCB";
|
||||
this.compressionModeCB.ReadOnly = true;
|
||||
this.compressionModeCB.Size = new System.Drawing.Size(232, 21);
|
||||
this.compressionModeCB.TabIndex = 30;
|
||||
this.compressionModeCB.SelectedIndexChanged += new System.EventHandler(this.compressionModeCB_SelectedIndexChanged);
|
||||
|
|
|
@ -95,7 +95,7 @@ namespace FirstPlugin
|
|||
{
|
||||
set
|
||||
{
|
||||
tileModeCB.ReadOnly = value;
|
||||
tileModeCB.IsReadOnly = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -103,7 +103,7 @@ namespace FirstPlugin
|
|||
{
|
||||
set
|
||||
{
|
||||
formatComboBox.ReadOnly = value;
|
||||
formatComboBox.IsReadOnly = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -404,7 +404,6 @@ namespace FirstPlugin
|
|||
this.tileModeCB.FormattingEnabled = true;
|
||||
this.tileModeCB.Location = new System.Drawing.Point(772, 85);
|
||||
this.tileModeCB.Name = "tileModeCB";
|
||||
this.tileModeCB.ReadOnly = true;
|
||||
this.tileModeCB.Size = new System.Drawing.Size(172, 21);
|
||||
this.tileModeCB.TabIndex = 42;
|
||||
this.tileModeCB.SelectedIndexChanged += new System.EventHandler(this.tileModeCB_SelectedIndexChanged);
|
||||
|
@ -426,7 +425,6 @@ namespace FirstPlugin
|
|||
this.ImgDimComb.FormattingEnabled = true;
|
||||
this.ImgDimComb.Location = new System.Drawing.Point(772, 58);
|
||||
this.ImgDimComb.Name = "ImgDimComb";
|
||||
this.ImgDimComb.ReadOnly = true;
|
||||
this.ImgDimComb.Size = new System.Drawing.Size(172, 21);
|
||||
this.ImgDimComb.TabIndex = 40;
|
||||
//
|
||||
|
@ -496,7 +494,6 @@ namespace FirstPlugin
|
|||
this.formatComboBox.FormattingEnabled = true;
|
||||
this.formatComboBox.Location = new System.Drawing.Point(772, 31);
|
||||
this.formatComboBox.Name = "formatComboBox";
|
||||
this.formatComboBox.ReadOnly = true;
|
||||
this.formatComboBox.Size = new System.Drawing.Size(172, 21);
|
||||
this.formatComboBox.TabIndex = 32;
|
||||
this.formatComboBox.SelectedIndexChanged += new System.EventHandler(this.formatComboBox_SelectedIndexChanged);
|
||||
|
|
|
@ -30,7 +30,7 @@ namespace Toolbox.Library
|
|||
scene.RootNode = new Node("RootNode");
|
||||
|
||||
progressBar = new STProgressBar();
|
||||
progressBar.Task = "Exorting Skeleton...";
|
||||
progressBar.Task = "Exporting Skeleton...";
|
||||
progressBar.Value = 0;
|
||||
progressBar.StartPosition = FormStartPosition.CenterScreen;
|
||||
progressBar.Show();
|
||||
|
@ -39,7 +39,7 @@ namespace Toolbox.Library
|
|||
SaveSkeleton(skeleton, scene.RootNode);
|
||||
SaveMaterials(scene, Materials, FileName, Textures);
|
||||
|
||||
progressBar.Task = "Exorting Meshes...";
|
||||
progressBar.Task = "Exporting Meshes...";
|
||||
progressBar.Value = 50;
|
||||
|
||||
SaveMeshes(scene, Meshes, skeleton, FileName, NodeArray);
|
||||
|
@ -519,7 +519,7 @@ namespace Toolbox.Library
|
|||
{
|
||||
ExtractedTextures.Add(path);
|
||||
|
||||
progressBar.Task = $"Exorting Texture {Textures[i].Text}";
|
||||
progressBar.Task = $"Exporting Texture {Textures[i].Text}";
|
||||
progressBar.Value = ((i * 100) / Textures.Count);
|
||||
progressBar.Refresh();
|
||||
|
||||
|
|
|
@ -85,7 +85,6 @@
|
|||
this.stComboBox1.FormattingEnabled = true;
|
||||
this.stComboBox1.Location = new System.Drawing.Point(53, 2);
|
||||
this.stComboBox1.Name = "stComboBox1";
|
||||
this.stComboBox1.ReadOnly = true;
|
||||
this.stComboBox1.Size = new System.Drawing.Size(190, 21);
|
||||
this.stComboBox1.TabIndex = 0;
|
||||
this.stComboBox1.SelectedIndexChanged += new System.EventHandler(this.stComboBox1_SelectedIndexChanged);
|
||||
|
|
291
Switch_Toolbox_Library/Forms/ColorSelector.cs
Normal file
291
Switch_Toolbox_Library/Forms/ColorSelector.cs
Normal file
|
@ -0,0 +1,291 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Drawing2D;
|
||||
using Toolbox.Library.IO;
|
||||
|
||||
namespace Toolbox.Library.Forms
|
||||
{
|
||||
//Based on this, very good color slider
|
||||
//https://github.com/libertyernie/brawltools/blob/40d7431b1a01ef4a0411cd69e51411bd581e93e2/BrawlLib/System/Windows/Controls/GoodColorControl.cs#L394
|
||||
//Slimmed down a bit to be more simple
|
||||
|
||||
/// <summary>
|
||||
/// A panel which can select and pick colors
|
||||
/// </summary>
|
||||
public class ColorSelector : STUserControl
|
||||
{
|
||||
private Color _color;
|
||||
|
||||
private HSVPixel _hsv = new HSVPixel(0, 100, 100);
|
||||
|
||||
/// <summary>
|
||||
/// The color the dialog gets and sets.
|
||||
/// </summary>
|
||||
public Color Color
|
||||
{
|
||||
get { return _color; }
|
||||
set
|
||||
{
|
||||
_color = value;
|
||||
OnColorChanged(false);
|
||||
}
|
||||
}
|
||||
private LinearGradientBrush _hueBrush;
|
||||
private STPanel colorSquare;
|
||||
private STPanel huePanel;
|
||||
private PathGradientBrush _mainBrush;
|
||||
|
||||
public ColorSelector()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
this.SetStyle(
|
||||
ControlStyles.AllPaintingInWmPaint |
|
||||
ControlStyles.UserPaint |
|
||||
ControlStyles.DoubleBuffer,
|
||||
true);
|
||||
|
||||
colorSquare.SetDoubleBuffer();
|
||||
huePanel.SetDoubleBuffer();
|
||||
}
|
||||
|
||||
private Point CursorPoint = new Point(0,0);
|
||||
|
||||
public event EventHandler ColorChanged;
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.colorSquare = new Toolbox.Library.Forms.STPanel();
|
||||
this.huePanel = new Toolbox.Library.Forms.STPanel();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// colorSquare
|
||||
//
|
||||
this.colorSquare.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.colorSquare.Location = new System.Drawing.Point(3, 3);
|
||||
this.colorSquare.Name = "colorSquare";
|
||||
this.colorSquare.Size = new System.Drawing.Size(180, 180);
|
||||
this.colorSquare.TabIndex = 0;
|
||||
this.colorSquare.Paint += new System.Windows.Forms.PaintEventHandler(this.colorSquare_Paint);
|
||||
this.colorSquare.MouseDown += new System.Windows.Forms.MouseEventHandler(this.colorSquare_MouseDown);
|
||||
this.colorSquare.MouseMove += new System.Windows.Forms.MouseEventHandler(this.colorSquare_MouseMove);
|
||||
this.colorSquare.MouseUp += new System.Windows.Forms.MouseEventHandler(this.colorSquare_MouseUp);
|
||||
//
|
||||
// huePanel
|
||||
//
|
||||
this.huePanel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.huePanel.Location = new System.Drawing.Point(189, 3);
|
||||
this.huePanel.Name = "huePanel";
|
||||
this.huePanel.Size = new System.Drawing.Size(16, 180);
|
||||
this.huePanel.TabIndex = 1;
|
||||
this.huePanel.Paint += new System.Windows.Forms.PaintEventHandler(this.huePanel_Paint);
|
||||
this.huePanel.MouseDown += new System.Windows.Forms.MouseEventHandler(this.huePanel_MouseDown);
|
||||
this.huePanel.MouseMove += new System.Windows.Forms.MouseEventHandler(this.huePanel_MouseMove);
|
||||
this.huePanel.MouseUp += new System.Windows.Forms.MouseEventHandler(this.huePanel_MouseUp);
|
||||
//
|
||||
// ColorSelector
|
||||
//
|
||||
this.Controls.Add(this.huePanel);
|
||||
this.Controls.Add(this.colorSquare);
|
||||
this.MaximumSize = new System.Drawing.Size(212, 188);
|
||||
this.MinimumSize = new System.Drawing.Size(212, 188);
|
||||
this.Name = "ColorSelector";
|
||||
this.Size = new System.Drawing.Size(212, 188);
|
||||
this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.ColorSelector_MouseMove);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
private void ColorSelector_MouseMove(object sender, MouseEventArgs e)
|
||||
{
|
||||
CursorPoint = e.Location;
|
||||
this.Invalidate();
|
||||
}
|
||||
|
||||
|
||||
#region HueBar
|
||||
|
||||
private bool _hueSelected = false;
|
||||
private void huePanel_MouseDown(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.Button == MouseButtons.Left)
|
||||
{
|
||||
_hueSelected = true;
|
||||
huePanel_MouseMove(sender, e);
|
||||
}
|
||||
}
|
||||
|
||||
private void huePanel_MouseUp(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.Button == MouseButtons.Left)
|
||||
_hueSelected = false;
|
||||
}
|
||||
|
||||
private int hueY;
|
||||
private void huePanel_MouseMove(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (_hueSelected)
|
||||
{
|
||||
int y = Math.Max(Math.Min(e.Y, (huePanel.Height - 1)), 0);
|
||||
if (y != hueY)
|
||||
{
|
||||
hueY = y;
|
||||
|
||||
_hsv.H = (ushort)((float)y / (huePanel.Height - 1) * 360);
|
||||
|
||||
OnColorChanged(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void huePanel_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
const float numHueColors = 6.0f;
|
||||
|
||||
Rectangle r = colorSquare.ClientRectangle;
|
||||
|
||||
//Split the hue colors
|
||||
float p = r.Height / numHueColors / r.Height;
|
||||
|
||||
//Draw the hue slider
|
||||
var g = e.Graphics;
|
||||
|
||||
_hueBrush = new LinearGradientBrush(new Rectangle(0, 0, r.Width, r.Height), Color.Red, Color.Red, LinearGradientMode.Vertical);
|
||||
|
||||
//Create the hue list
|
||||
ColorBlend blend = new ColorBlend();
|
||||
blend.Colors = new Color[]
|
||||
{
|
||||
Color.Red,
|
||||
Color.Yellow,
|
||||
Color.Lime,
|
||||
Color.Cyan,
|
||||
Color.Blue,
|
||||
Color.Magenta,
|
||||
Color.Red
|
||||
};
|
||||
|
||||
blend.Positions = new float[] { 0, p, p * 2, p * 3, p * 4, p * 5, 1.0f };
|
||||
_hueBrush.InterpolationColors = blend;
|
||||
|
||||
g.FillRectangle(_hueBrush, r);
|
||||
|
||||
Color pixel = new HSVPixel(_hsv.H, 100, 100).ToRGBA().Inverse();
|
||||
|
||||
int y = (int)(_hsv.H / 360.0f * (huePanel.Height - 1));
|
||||
Rectangle c = new Rectangle(-1, y - 2, huePanel.Width + 1, 4);
|
||||
|
||||
using (Pen pen = new Pen(pixel))
|
||||
g.DrawRectangle(pen, c);
|
||||
|
||||
c.Y += 1;
|
||||
c.Height -= 2;
|
||||
pixel = pixel.Lighten(64);
|
||||
|
||||
using (Pen pen = new Pen(pixel))
|
||||
g.DrawRectangle(pen, c);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Color[] _boxColors = new Color[] { Color.Black, Color.White, Color.Black, Color.Black, Color.Black };
|
||||
private void colorSquare_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
var g = e.Graphics;
|
||||
|
||||
Rectangle r = colorSquare.ClientRectangle;
|
||||
float p = r.Height / 6.0f / r.Height;
|
||||
|
||||
_mainBrush = new PathGradientBrush(new PointF[] {
|
||||
new PointF(r.Width, 0),
|
||||
new PointF(r.Width, r.Height),
|
||||
new PointF(0, r.Height),
|
||||
new PointF(0,0),
|
||||
new PointF(r.Width, 0)});
|
||||
|
||||
_boxColors[0] = _boxColors[4] = new HSVPixel(_hsv.H, 100, 100).ToRGBA();
|
||||
_mainBrush.SurroundColors = _boxColors;
|
||||
_mainBrush.CenterColor = new HSVPixel(_hsv.H, 50, 50).ToRGBA();
|
||||
_mainBrush.CenterPoint = new PointF(r.Width / 2, r.Height / 2);
|
||||
|
||||
g.FillRectangle(_mainBrush, r);
|
||||
|
||||
|
||||
//Draw indicator
|
||||
int x = (int)(_hsv.V / 100.0f * colorSquare.Width);
|
||||
int y = (int)((100 - _hsv.S) / 100.0f * colorSquare.Height);
|
||||
|
||||
Rectangle c = new Rectangle(x - 3, y - 3, 6, 6);
|
||||
|
||||
Color pixel = _color.Inverse();
|
||||
pixel.WhiteAlpha();
|
||||
|
||||
using (Pen pen = new Pen(pixel))
|
||||
g.DrawEllipse(pen, c);
|
||||
|
||||
c.X -= 1;
|
||||
c.Y -= 1;
|
||||
c.Width += 2;
|
||||
c.Height += 2;
|
||||
|
||||
pixel = pixel.Lighten(64);
|
||||
|
||||
using (Pen pen = new Pen(pixel))
|
||||
g.DrawEllipse(pen, c);
|
||||
}
|
||||
|
||||
protected virtual void OnColorChanged(bool hsvToRgb)
|
||||
{
|
||||
colorSquare.Invalidate();
|
||||
huePanel.Invalidate();
|
||||
|
||||
if (hsvToRgb)
|
||||
_color = _hsv.ToRGBA();
|
||||
else
|
||||
_hsv = HSVPixel.FromRGBA(_color);
|
||||
|
||||
if (ColorChanged != null)
|
||||
ColorChanged(this, null);
|
||||
}
|
||||
|
||||
private int _squareX, _squareY;
|
||||
private bool _squareSelected = false;
|
||||
private void colorSquare_MouseDown(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.Button == MouseButtons.Left)
|
||||
{
|
||||
_squareSelected = true;
|
||||
colorSquare_MouseMove(sender, e);
|
||||
}
|
||||
}
|
||||
|
||||
private void colorSquare_MouseUp(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.Button == MouseButtons.Left)
|
||||
_squareSelected = false;
|
||||
}
|
||||
|
||||
private void colorSquare_MouseMove(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (_squareSelected)
|
||||
{
|
||||
int x = Math.Min(Math.Max(e.X, 0), colorSquare.Width);
|
||||
int y = Math.Min(Math.Max(e.Y, 0), colorSquare.Height);
|
||||
if ((x != _squareX) || (y != _squareY))
|
||||
{
|
||||
_hsv.V = (byte)((float)x / colorSquare.Width * 100);
|
||||
_hsv.S = (byte)((float)(colorSquare.Height - y) / colorSquare.Height * 100);
|
||||
|
||||
OnColorChanged(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
120
Switch_Toolbox_Library/Forms/ColorSelector.resx
Normal file
120
Switch_Toolbox_Library/Forms/ColorSelector.resx
Normal file
|
@ -0,0 +1,120 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
|
@ -54,21 +54,20 @@ namespace Toolbox.Library.Forms
|
|||
if (FormThemes.ActivePreset == FormThemes.Preset.White)
|
||||
DropDownStyle = ComboBoxStyle.DropDownList;
|
||||
|
||||
|
||||
|
||||
ReadOnly = true;
|
||||
|
||||
/* Resize += (s, e) =>
|
||||
{
|
||||
if (!IsHandleCreated)
|
||||
return;
|
||||
|
||||
SelectionLength = 0;
|
||||
};*/
|
||||
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public void SetAsReadOnly()
|
||||
{
|
||||
IsReadOnly = true;
|
||||
}
|
||||
|
||||
protected override void OnMouseWheel(MouseEventArgs e)
|
||||
{
|
||||
if (IsReadOnly)
|
||||
((HandledMouseEventArgs)e).Handled = true;
|
||||
}
|
||||
|
||||
private dynamic value;
|
||||
|
||||
public string GetSelectedText()
|
||||
|
@ -169,7 +168,6 @@ namespace Toolbox.Library.Forms
|
|||
e.Graphics.FillRectangle(backBrush, this.ClientRectangle);
|
||||
|
||||
e.Graphics.DrawString(this.Text, this.Font, foreBrush, this.Location);
|
||||
|
||||
}
|
||||
|
||||
protected override void OnLostFocus(System.EventArgs e)
|
||||
|
@ -217,10 +215,9 @@ namespace Toolbox.Library.Forms
|
|||
|
||||
}
|
||||
|
||||
private bool _readOnly;
|
||||
private bool _readOnly = false;
|
||||
|
||||
|
||||
public bool ReadOnly
|
||||
public bool IsReadOnly
|
||||
{
|
||||
get { return _readOnly; }
|
||||
set { _readOnly = value; }
|
||||
|
@ -269,5 +266,35 @@ namespace Toolbox.Library.Forms
|
|||
value = SelectedItem;
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnDropDown(EventArgs e)
|
||||
{
|
||||
if (_readOnly)
|
||||
{
|
||||
DropDownHeight = 1;
|
||||
var t = new Thread(CloseDropDown);
|
||||
t.Start();
|
||||
return;
|
||||
}
|
||||
base.OnDropDown(e);
|
||||
}
|
||||
|
||||
private delegate void CloseDropDownDelegate();
|
||||
private void WaitForDropDown()
|
||||
{
|
||||
if (InvokeRequired)
|
||||
{
|
||||
var d = new CloseDropDownDelegate(WaitForDropDown);
|
||||
Invoke(d);
|
||||
}
|
||||
else
|
||||
{
|
||||
DroppedDown = false;
|
||||
}
|
||||
}
|
||||
private void CloseDropDown()
|
||||
{
|
||||
WaitForDropDown();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,5 +14,14 @@ namespace Toolbox.Library.Forms
|
|||
ForeColor = FormThemes.BaseTheme.FormForeColor;
|
||||
BackColor = FormThemes.BaseTheme.FormBackColor;
|
||||
}
|
||||
|
||||
public void SetDoubleBuffer()
|
||||
{
|
||||
this.SetStyle(
|
||||
ControlStyles.AllPaintingInWmPaint |
|
||||
ControlStyles.UserPaint |
|
||||
ControlStyles.DoubleBuffer,
|
||||
true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -158,6 +158,8 @@ namespace Toolbox.Library
|
|||
var image = ((STGenericTexture)node).GetBitmap();
|
||||
if (image != null)
|
||||
{
|
||||
image = ((STGenericTexture)node).GetComponentBitmap(image);
|
||||
|
||||
imageIcons.Add(image);
|
||||
treeNodes.Add(node);
|
||||
}
|
||||
|
@ -242,6 +244,7 @@ namespace Toolbox.Library
|
|||
try
|
||||
{
|
||||
var image = textureIcon.IconTexture.GetBitmap();
|
||||
image = textureIcon.IconTexture.GetComponentBitmap(image);
|
||||
AddImageOnThread(image, textureIcon.IconTexture);
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
@ -273,6 +276,7 @@ namespace Toolbox.Library
|
|||
var image = ((STGenericTexture)node).GetBitmap();
|
||||
if (image != null)
|
||||
{
|
||||
image = ((STGenericTexture)node).GetComponentBitmap(image);
|
||||
treeNodes.Add(node);
|
||||
imageIcons.Add(image);
|
||||
}
|
||||
|
|
|
@ -366,7 +366,6 @@
|
|||
this.audioDevice.FormattingEnabled = true;
|
||||
this.audioDevice.Location = new System.Drawing.Point(214, 3);
|
||||
this.audioDevice.Name = "audioDevice";
|
||||
this.audioDevice.ReadOnly = true;
|
||||
this.audioDevice.Size = new System.Drawing.Size(151, 21);
|
||||
this.audioDevice.TabIndex = 20;
|
||||
this.audioDevice.SelectedIndexChanged += new System.EventHandler(this.audioDevice_SelectedIndexChanged);
|
||||
|
@ -380,7 +379,6 @@
|
|||
this.channelCB.FormattingEnabled = true;
|
||||
this.channelCB.Location = new System.Drawing.Point(371, 3);
|
||||
this.channelCB.Name = "channelCB";
|
||||
this.channelCB.ReadOnly = true;
|
||||
this.channelCB.Size = new System.Drawing.Size(151, 21);
|
||||
this.channelCB.TabIndex = 19;
|
||||
this.channelCB.SelectedIndexChanged += new System.EventHandler(this.channelCB_SelectedIndexChanged);
|
||||
|
|
|
@ -357,7 +357,6 @@
|
|||
this.audioDevice.FormattingEnabled = true;
|
||||
this.audioDevice.Location = new System.Drawing.Point(220, 3);
|
||||
this.audioDevice.Name = "audioDevice";
|
||||
this.audioDevice.ReadOnly = true;
|
||||
this.audioDevice.Size = new System.Drawing.Size(151, 21);
|
||||
this.audioDevice.TabIndex = 20;
|
||||
this.audioDevice.SelectedIndexChanged += new System.EventHandler(this.audioDevice_SelectedIndexChanged);
|
||||
|
@ -371,7 +370,6 @@
|
|||
this.channelCB.FormattingEnabled = true;
|
||||
this.channelCB.Location = new System.Drawing.Point(377, 3);
|
||||
this.channelCB.Name = "channelCB";
|
||||
this.channelCB.ReadOnly = true;
|
||||
this.channelCB.Size = new System.Drawing.Size(151, 21);
|
||||
this.channelCB.TabIndex = 19;
|
||||
this.channelCB.SelectedIndexChanged += new System.EventHandler(this.channelCB_SelectedIndexChanged);
|
||||
|
|
|
@ -328,7 +328,6 @@
|
|||
this.imageBGComboBox.FormattingEnabled = true;
|
||||
this.imageBGComboBox.Location = new System.Drawing.Point(262, 2);
|
||||
this.imageBGComboBox.Name = "imageBGComboBox";
|
||||
this.imageBGComboBox.ReadOnly = true;
|
||||
this.imageBGComboBox.Size = new System.Drawing.Size(95, 21);
|
||||
this.imageBGComboBox.TabIndex = 2;
|
||||
this.imageBGComboBox.SelectedIndexChanged += new System.EventHandler(this.imageBGComboBox_SelectedIndexChanged);
|
||||
|
|
|
@ -70,7 +70,6 @@
|
|||
this.textureImageFormatCB.FormattingEnabled = true;
|
||||
this.textureImageFormatCB.Location = new System.Drawing.Point(148, 64);
|
||||
this.textureImageFormatCB.Name = "textureImageFormatCB";
|
||||
this.textureImageFormatCB.ReadOnly = true;
|
||||
this.textureImageFormatCB.Size = new System.Drawing.Size(236, 21);
|
||||
this.textureImageFormatCB.TabIndex = 12;
|
||||
//
|
||||
|
@ -82,7 +81,6 @@
|
|||
this.textureFileFormatCB.FormattingEnabled = true;
|
||||
this.textureFileFormatCB.Location = new System.Drawing.Point(147, 38);
|
||||
this.textureFileFormatCB.Name = "textureFileFormatCB";
|
||||
this.textureFileFormatCB.ReadOnly = true;
|
||||
this.textureFileFormatCB.Size = new System.Drawing.Size(236, 21);
|
||||
this.textureFileFormatCB.TabIndex = 14;
|
||||
//
|
||||
|
|
|
@ -141,7 +141,6 @@
|
|||
this.resampleCB.FormattingEnabled = true;
|
||||
this.resampleCB.Location = new System.Drawing.Point(564, 52);
|
||||
this.resampleCB.Name = "resampleCB";
|
||||
this.resampleCB.ReadOnly = true;
|
||||
this.resampleCB.Size = new System.Drawing.Size(149, 21);
|
||||
this.resampleCB.TabIndex = 16;
|
||||
this.resampleCB.SelectedIndexChanged += new System.EventHandler(this.resampleCB_SelectedIndexChanged);
|
||||
|
|
|
@ -100,7 +100,6 @@
|
|||
this.nodeSizeCB.FormattingEnabled = true;
|
||||
this.nodeSizeCB.Location = new System.Drawing.Point(172, 29);
|
||||
this.nodeSizeCB.Name = "nodeSizeCB";
|
||||
this.nodeSizeCB.ReadOnly = true;
|
||||
this.nodeSizeCB.Size = new System.Drawing.Size(136, 21);
|
||||
this.nodeSizeCB.TabIndex = 5;
|
||||
this.nodeSizeCB.SelectedIndexChanged += new System.EventHandler(this.nodeSizeCB_SelectedIndexChanged);
|
||||
|
|
|
@ -134,7 +134,6 @@
|
|||
this.listViewModeCB.FormattingEnabled = true;
|
||||
this.listViewModeCB.Location = new System.Drawing.Point(5, 346);
|
||||
this.listViewModeCB.Name = "listViewModeCB";
|
||||
this.listViewModeCB.ReadOnly = true;
|
||||
this.listViewModeCB.Size = new System.Drawing.Size(143, 21);
|
||||
this.listViewModeCB.TabIndex = 18;
|
||||
this.listViewModeCB.SelectedIndexChanged += new System.EventHandler(this.listViewModeCB_SelectedIndexChanged);
|
||||
|
|
|
@ -47,7 +47,7 @@ namespace Toolbox.Library.Forms
|
|||
{
|
||||
set
|
||||
{
|
||||
formatComboBox.ReadOnly = value;
|
||||
formatComboBox.IsReadOnly = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -272,7 +272,6 @@ namespace Toolbox.Library.Forms
|
|||
this.ImgDimComb.FormattingEnabled = true;
|
||||
this.ImgDimComb.Location = new System.Drawing.Point(772, 61);
|
||||
this.ImgDimComb.Name = "ImgDimComb";
|
||||
this.ImgDimComb.ReadOnly = true;
|
||||
this.ImgDimComb.Size = new System.Drawing.Size(172, 21);
|
||||
this.ImgDimComb.TabIndex = 40;
|
||||
//
|
||||
|
@ -342,7 +341,6 @@ namespace Toolbox.Library.Forms
|
|||
this.formatComboBox.FormattingEnabled = true;
|
||||
this.formatComboBox.Location = new System.Drawing.Point(772, 31);
|
||||
this.formatComboBox.Name = "formatComboBox";
|
||||
this.formatComboBox.ReadOnly = true;
|
||||
this.formatComboBox.Size = new System.Drawing.Size(172, 21);
|
||||
this.formatComboBox.TabIndex = 32;
|
||||
this.formatComboBox.SelectedIndexChanged += new System.EventHandler(this.formatComboBox_SelectedIndexChanged);
|
||||
|
|
|
@ -192,7 +192,6 @@
|
|||
this.formatComboBox.FormattingEnabled = true;
|
||||
this.formatComboBox.Location = new System.Drawing.Point(841, 64);
|
||||
this.formatComboBox.Name = "formatComboBox";
|
||||
this.formatComboBox.ReadOnly = true;
|
||||
this.formatComboBox.Size = new System.Drawing.Size(133, 21);
|
||||
this.formatComboBox.TabIndex = 16;
|
||||
this.formatComboBox.SelectedIndexChanged += new System.EventHandler(this.formatComboBox_SelectedIndexChanged);
|
||||
|
@ -241,7 +240,6 @@
|
|||
this.paletteFormatCB.FormattingEnabled = true;
|
||||
this.paletteFormatCB.Location = new System.Drawing.Point(844, 165);
|
||||
this.paletteFormatCB.Name = "paletteFormatCB";
|
||||
this.paletteFormatCB.ReadOnly = true;
|
||||
this.paletteFormatCB.Size = new System.Drawing.Size(130, 21);
|
||||
this.paletteFormatCB.TabIndex = 34;
|
||||
this.paletteFormatCB.SelectedIndexChanged += new System.EventHandler(this.paletteFormatCB_SelectedIndexChanged);
|
||||
|
@ -279,7 +277,6 @@
|
|||
this.paletteAlgorithmCB.FormattingEnabled = true;
|
||||
this.paletteAlgorithmCB.Location = new System.Drawing.Point(844, 239);
|
||||
this.paletteAlgorithmCB.Name = "paletteAlgorithmCB";
|
||||
this.paletteAlgorithmCB.ReadOnly = true;
|
||||
this.paletteAlgorithmCB.Size = new System.Drawing.Size(133, 21);
|
||||
this.paletteAlgorithmCB.TabIndex = 38;
|
||||
//
|
||||
|
|
|
@ -191,7 +191,6 @@
|
|||
this.formatComboBox.FormattingEnabled = true;
|
||||
this.formatComboBox.Location = new System.Drawing.Point(854, 58);
|
||||
this.formatComboBox.Name = "formatComboBox";
|
||||
this.formatComboBox.ReadOnly = true;
|
||||
this.formatComboBox.Size = new System.Drawing.Size(233, 21);
|
||||
this.formatComboBox.TabIndex = 16;
|
||||
this.formatComboBox.SelectedIndexChanged += new System.EventHandler(this.formatComboBox_SelectedIndexChanged);
|
||||
|
@ -204,7 +203,6 @@
|
|||
this.compressionModeCB.FormattingEnabled = true;
|
||||
this.compressionModeCB.Location = new System.Drawing.Point(854, 31);
|
||||
this.compressionModeCB.Name = "compressionModeCB";
|
||||
this.compressionModeCB.ReadOnly = true;
|
||||
this.compressionModeCB.Size = new System.Drawing.Size(233, 21);
|
||||
this.compressionModeCB.TabIndex = 30;
|
||||
this.compressionModeCB.SelectedIndexChanged += new System.EventHandler(this.compressionModeCB_SelectedIndexChanged);
|
||||
|
|
|
@ -211,7 +211,6 @@
|
|||
this.drawableContainerCB.FormattingEnabled = true;
|
||||
this.drawableContainerCB.Location = new System.Drawing.Point(294, 7);
|
||||
this.drawableContainerCB.Name = "drawableContainerCB";
|
||||
this.drawableContainerCB.ReadOnly = true;
|
||||
this.drawableContainerCB.Size = new System.Drawing.Size(146, 21);
|
||||
this.drawableContainerCB.TabIndex = 20;
|
||||
this.drawableContainerCB.SelectedIndexChanged += new System.EventHandler(this.drawableContainerCB_SelectedIndexChanged);
|
||||
|
@ -226,7 +225,6 @@
|
|||
this.meshesCB.FormattingEnabled = true;
|
||||
this.meshesCB.Location = new System.Drawing.Point(294, 34);
|
||||
this.meshesCB.Name = "meshesCB";
|
||||
this.meshesCB.ReadOnly = true;
|
||||
this.meshesCB.Size = new System.Drawing.Size(146, 21);
|
||||
this.meshesCB.TabIndex = 19;
|
||||
this.meshesCB.SelectedIndexChanged += new System.EventHandler(this.meshesCB_SelectedIndexChanged);
|
||||
|
@ -284,7 +282,6 @@
|
|||
this.textureCB.FormattingEnabled = true;
|
||||
this.textureCB.Location = new System.Drawing.Point(446, 34);
|
||||
this.textureCB.Name = "textureCB";
|
||||
this.textureCB.ReadOnly = true;
|
||||
this.textureCB.Size = new System.Drawing.Size(156, 21);
|
||||
this.textureCB.TabIndex = 5;
|
||||
this.textureCB.SelectedIndexChanged += new System.EventHandler(this.comboBox2_SelectedIndexChanged);
|
||||
|
@ -298,7 +295,6 @@
|
|||
this.comboBox1.FormattingEnabled = true;
|
||||
this.comboBox1.Location = new System.Drawing.Point(550, 7);
|
||||
this.comboBox1.Name = "comboBox1";
|
||||
this.comboBox1.ReadOnly = true;
|
||||
this.comboBox1.Size = new System.Drawing.Size(52, 21);
|
||||
this.comboBox1.TabIndex = 3;
|
||||
this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
|
||||
|
|
|
@ -262,7 +262,6 @@
|
|||
this.comboBox2.FormattingEnabled = true;
|
||||
this.comboBox2.Location = new System.Drawing.Point(290, 7);
|
||||
this.comboBox2.Name = "comboBox2";
|
||||
this.comboBox2.ReadOnly = true;
|
||||
this.comboBox2.Size = new System.Drawing.Size(166, 21);
|
||||
this.comboBox2.TabIndex = 5;
|
||||
this.comboBox2.SelectedIndexChanged += new System.EventHandler(this.comboBox2_SelectedIndexChanged);
|
||||
|
@ -276,7 +275,6 @@
|
|||
this.comboBox1.FormattingEnabled = true;
|
||||
this.comboBox1.Location = new System.Drawing.Point(550, 7);
|
||||
this.comboBox1.Name = "comboBox1";
|
||||
this.comboBox1.ReadOnly = true;
|
||||
this.comboBox1.Size = new System.Drawing.Size(52, 21);
|
||||
this.comboBox1.TabIndex = 3;
|
||||
this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
|
||||
|
|
|
@ -137,7 +137,6 @@
|
|||
this.drawContainersCB.FormattingEnabled = true;
|
||||
this.drawContainersCB.Location = new System.Drawing.Point(93, 0);
|
||||
this.drawContainersCB.Name = "drawContainersCB";
|
||||
this.drawContainersCB.ReadOnly = true;
|
||||
this.drawContainersCB.Size = new System.Drawing.Size(183, 21);
|
||||
this.drawContainersCB.TabIndex = 0;
|
||||
this.drawContainersCB.SelectedIndexChanged += new System.EventHandler(this.drawContainersCB_SelectedIndexChanged);
|
||||
|
|
|
@ -1060,6 +1060,26 @@ namespace Toolbox.Library
|
|||
return FileName.Substring(0, FileName.Length - extension.Length);
|
||||
}
|
||||
|
||||
public Bitmap GetComponentBitmap(Bitmap image)
|
||||
{
|
||||
//Check if it's RGBA to save time editing the image
|
||||
if (UseRGBA())
|
||||
return image;
|
||||
else
|
||||
return BitmapExtension.SetChannel(image, RedChannel, GreenChannel, BlueChannel, AlphaChannel);
|
||||
}
|
||||
|
||||
private bool UseRGBA()
|
||||
{
|
||||
if (RedChannel == STChannelType.Red &&
|
||||
GreenChannel == STChannelType.Green &&
|
||||
BlueChannel == STChannelType.Blue &&
|
||||
AlphaChannel == STChannelType.Alpha)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
private static byte[] ConvertBgraToRgba(byte[] bytes)
|
||||
{
|
||||
if (bytes == null)
|
||||
|
|
27
Switch_Toolbox_Library/IO/Extensions/ColorExtensions.cs
Normal file
27
Switch_Toolbox_Library/IO/Extensions/ColorExtensions.cs
Normal file
|
@ -0,0 +1,27 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Drawing;
|
||||
|
||||
namespace Toolbox.Library.IO
|
||||
{
|
||||
public static class ColorExtensions
|
||||
{
|
||||
public static Color Inverse(this Color color)
|
||||
{
|
||||
return Color.FromArgb(color.A, (byte)(255 - color.R), (byte)(255 - color.G), (byte)(255 - color.B));
|
||||
}
|
||||
|
||||
public static Color WhiteAlpha(this Color color)
|
||||
{
|
||||
return Color.FromArgb(255, color.R, color.G, color.B);
|
||||
}
|
||||
|
||||
public static Color Lighten(this Color color, int amount)
|
||||
{
|
||||
return Color.FromArgb(color.A, (byte)Math.Min(color.R + amount, 255), (byte)Math.Min(color.G + amount, 255), (byte)Math.Min(color.B + amount, 255));
|
||||
}
|
||||
}
|
||||
}
|
82
Switch_Toolbox_Library/IO/HSVPixel.cs
Normal file
82
Switch_Toolbox_Library/IO/HSVPixel.cs
Normal file
|
@ -0,0 +1,82 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Drawing;
|
||||
|
||||
namespace Toolbox.Library.IO
|
||||
{
|
||||
//Based on
|
||||
//https://github.com/libertyernie/brawltools/blob/40d7431b1a01ef4a0411cd69e51411bd581e93e2/BrawlLib/Imaging/PixelTypes.cs
|
||||
public class HSVPixel
|
||||
{
|
||||
public ushort H { get; set; }
|
||||
public byte S { get; set; }
|
||||
public byte V { get; set; }
|
||||
|
||||
public HSVPixel(ushort h, byte s, byte v) { H = h; S = s; V = v; }
|
||||
|
||||
public static HSVPixel FromRGBA(Color p)
|
||||
{
|
||||
HSVPixel outp = new HSVPixel(0,0,0);
|
||||
|
||||
int min = Math.Min(Math.Min(p.R, p.G), p.B);
|
||||
int max = Math.Max(Math.Max(p.R, p.G), p.B);
|
||||
int diff = max - min;
|
||||
|
||||
if (diff == 0)
|
||||
{
|
||||
outp.H = 0;
|
||||
outp.S = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (max == p.R)
|
||||
outp.H = (ushort)((60 * ((float)(p.G - p.B) / diff) + 360) % 360);
|
||||
else if (max == p.G)
|
||||
outp.H = (ushort)(60 * ((float)(p.B - p.R) / diff) + 120);
|
||||
else
|
||||
outp.H = (ushort)(60 * ((float)(p.R - p.G) / diff) + 240);
|
||||
|
||||
if (max == 0)
|
||||
outp.S = 0;
|
||||
else
|
||||
outp.S = (byte)(diff * 100 / max);
|
||||
}
|
||||
|
||||
outp.V = (byte)(max * 100 / 255);
|
||||
|
||||
return outp;
|
||||
}
|
||||
|
||||
public Color ToRGBA()
|
||||
{
|
||||
var color = new Color();
|
||||
|
||||
byte v = (byte)(V * 255 / 100);
|
||||
if (S == 0)
|
||||
color = Color.FromArgb(255,v,v,v);
|
||||
else
|
||||
{
|
||||
int h = (H / 60) % 6;
|
||||
float f = (H / 60.0f) - (H / 60);
|
||||
|
||||
byte p = (byte)(V * (100 - S) * 255 / 10000);
|
||||
byte q = (byte)(V * (100 - (int)(f * S)) * 255 / 10000);
|
||||
byte t = (byte)(V * (100 - (int)((1.0f - f) * S)) * 255 / 10000);
|
||||
|
||||
switch (h)
|
||||
{
|
||||
case 0: color = Color.FromArgb(255, v, t, p); break;
|
||||
case 1: color = Color.FromArgb(255, q, v, p); break;
|
||||
case 2: color = Color.FromArgb(255, p, v, t); break;
|
||||
case 3: color = Color.FromArgb(255, p, q, v); break;
|
||||
case 4: color = Color.FromArgb(255, t, p, v); break;
|
||||
default: color = Color.FromArgb(255, v, p, q); break;
|
||||
}
|
||||
}
|
||||
|
||||
return color;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -56,5 +56,15 @@ namespace Toolbox.Library
|
|||
B = 1;
|
||||
A = 1;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return String.Format("R:{0} G:{1} B:{2} A:{3}", R, G, B, A);
|
||||
}
|
||||
|
||||
public string ToHexString()
|
||||
{
|
||||
return String.Format("R:{0:X2} G:{1:X2} B:{2:X2} A:{3:X2}", R, G, B, A);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -237,6 +237,9 @@
|
|||
<Compile Include="Forms\ColorAlphaBox.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms\ColorSelector.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Forms\Editors\Object Editor\SearchNodeForm.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
|
@ -291,9 +294,11 @@
|
|||
<Compile Include="Interfaces\ModelData\IMeshContainer.cs" />
|
||||
<Compile Include="Interfaces\Textures\ITextureContainer.cs" />
|
||||
<Compile Include="Interfaces\Forms\IUpdateForm.cs" />
|
||||
<Compile Include="IO\Extensions\ColorExtensions.cs" />
|
||||
<Compile Include="IO\Extensions\StreamExport.cs" />
|
||||
<Compile Include="IO\Extensions\UintExtension.cs" />
|
||||
<Compile Include="IO\FileStreamStorage.cs" />
|
||||
<Compile Include="IO\HSVPixel.cs" />
|
||||
<Compile Include="IO\IOComoon.cs" />
|
||||
<Compile Include="IO\STColor.cs" />
|
||||
<Compile Include="IO\SubStream.cs" />
|
||||
|
@ -829,6 +834,9 @@
|
|||
<EmbeddedResource Include="Forms\BatchFormatExport.resx">
|
||||
<DependentUpon>BatchFormatExport.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms\ColorSelector.resx">
|
||||
<DependentUpon>ColorSelector.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Forms\Custom\ColorSlider.resx" />
|
||||
<EmbeddedResource Include="Forms\Custom\DropdownPanel\STCollapsePanelButton.resx">
|
||||
<DependentUpon>STCollapsePanelButton.cs</DependentUpon>
|
||||
|
|
1
Toolbox/GUI/GithubIssueDialog.Designer.cs
generated
1
Toolbox/GUI/GithubIssueDialog.Designer.cs
generated
|
@ -109,7 +109,6 @@
|
|||
this.typeCB.FormattingEnabled = true;
|
||||
this.typeCB.Location = new System.Drawing.Point(11, 19);
|
||||
this.typeCB.Name = "typeCB";
|
||||
this.typeCB.ReadOnly = true;
|
||||
this.typeCB.Size = new System.Drawing.Size(159, 21);
|
||||
this.typeCB.TabIndex = 3;
|
||||
//
|
||||
|
|
Loading…
Reference in a new issue