mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/PCK-Studio.git
synced 2026-07-12 11:58:27 +00:00
GRF Editor - Changed UI of compression menu item
This commit is contained in:
250
PCK-Studio/Classes/ToolboxItems/ToolStripRadioButtonMenuItem.cs
Normal file
250
PCK-Studio/Classes/ToolboxItems/ToolStripRadioButtonMenuItem.cs
Normal file
@@ -0,0 +1,250 @@
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using System.Windows.Forms.VisualStyles;
|
||||
|
||||
// source: <https://learn.microsoft.com/en-us/dotnet/desktop/winforms/controls/how-to-display-option-buttons-in-a-menustrip-windows-forms?view=netframeworkdesktop-4.8>
|
||||
namespace PckStudio
|
||||
{
|
||||
public class ToolStripRadioButtonMenuItem : ToolStripMenuItem
|
||||
{
|
||||
public ToolStripRadioButtonMenuItem()
|
||||
: base()
|
||||
{
|
||||
Initialize();
|
||||
}
|
||||
|
||||
public ToolStripRadioButtonMenuItem(string text)
|
||||
: base(text, null, (EventHandler)null)
|
||||
{
|
||||
Initialize();
|
||||
}
|
||||
|
||||
public ToolStripRadioButtonMenuItem(Image image)
|
||||
: base(null, image, (EventHandler)null)
|
||||
{
|
||||
Initialize();
|
||||
}
|
||||
|
||||
public ToolStripRadioButtonMenuItem(string text, Image image)
|
||||
: base(text, image, (EventHandler)null)
|
||||
{
|
||||
Initialize();
|
||||
}
|
||||
|
||||
public ToolStripRadioButtonMenuItem(string text, Image image,
|
||||
EventHandler onClick)
|
||||
: base(text, image, onClick)
|
||||
{
|
||||
Initialize();
|
||||
}
|
||||
|
||||
public ToolStripRadioButtonMenuItem(string text, Image image,
|
||||
EventHandler onClick, string name)
|
||||
: base(text, image, onClick, name)
|
||||
{
|
||||
Initialize();
|
||||
}
|
||||
|
||||
public ToolStripRadioButtonMenuItem(string text, Image image,
|
||||
params ToolStripItem[] dropDownItems)
|
||||
: base(text, image, dropDownItems)
|
||||
{
|
||||
Initialize();
|
||||
}
|
||||
|
||||
public ToolStripRadioButtonMenuItem(string text, Image image,
|
||||
EventHandler onClick, Keys shortcutKeys)
|
||||
: base(text, image, onClick)
|
||||
{
|
||||
Initialize();
|
||||
this.ShortcutKeys = shortcutKeys;
|
||||
}
|
||||
|
||||
// Called by all constructors to initialize CheckOnClick.
|
||||
private void Initialize()
|
||||
{
|
||||
CheckOnClick = true;
|
||||
}
|
||||
|
||||
protected override void OnCheckedChanged(EventArgs e)
|
||||
{
|
||||
base.OnCheckedChanged(e);
|
||||
|
||||
// If this item is no longer in the checked state or if its
|
||||
// parent has not yet been initialized, do nothing.
|
||||
if (!Checked || this.Parent == null) return;
|
||||
|
||||
// Clear the checked state for all siblings.
|
||||
foreach (ToolStripItem item in Parent.Items)
|
||||
{
|
||||
ToolStripRadioButtonMenuItem radioItem =
|
||||
item as ToolStripRadioButtonMenuItem;
|
||||
if (radioItem != null && radioItem != this && radioItem.Checked)
|
||||
{
|
||||
radioItem.Checked = false;
|
||||
|
||||
// Only one item can be selected at a time,
|
||||
// so there is no need to continue.
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnClick(EventArgs e)
|
||||
{
|
||||
// If the item is already in the checked state, do not call
|
||||
// the base method, which would toggle the value.
|
||||
if (Checked) return;
|
||||
|
||||
base.OnClick(e);
|
||||
}
|
||||
|
||||
// Let the item paint itself, and then paint the RadioButton
|
||||
// where the check mark is normally displayed.
|
||||
protected override void OnPaint(PaintEventArgs e)
|
||||
{
|
||||
if (Image != null)
|
||||
{
|
||||
// If the client sets the Image property, the selection behavior
|
||||
// remains unchanged, but the RadioButton is not displayed and the
|
||||
// selection is indicated only by the selection rectangle.
|
||||
base.OnPaint(e);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
// If the Image property is not set, call the base OnPaint method
|
||||
// with the CheckState property temporarily cleared to prevent
|
||||
// the check mark from being painted.
|
||||
CheckState currentState = this.CheckState;
|
||||
this.CheckState = CheckState.Unchecked;
|
||||
base.OnPaint(e);
|
||||
this.CheckState = currentState;
|
||||
}
|
||||
|
||||
// Determine the correct state of the RadioButton.
|
||||
RadioButtonState buttonState = RadioButtonState.UncheckedNormal;
|
||||
if (Enabled)
|
||||
{
|
||||
if (mouseDownState)
|
||||
{
|
||||
if (Checked) buttonState = RadioButtonState.CheckedPressed;
|
||||
else buttonState = RadioButtonState.UncheckedPressed;
|
||||
}
|
||||
else if (mouseHoverState)
|
||||
{
|
||||
if (Checked) buttonState = RadioButtonState.CheckedHot;
|
||||
else buttonState = RadioButtonState.UncheckedHot;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Checked) buttonState = RadioButtonState.CheckedNormal;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Checked) buttonState = RadioButtonState.CheckedDisabled;
|
||||
else buttonState = RadioButtonState.UncheckedDisabled;
|
||||
}
|
||||
|
||||
// Calculate the position at which to display the RadioButton.
|
||||
Int32 offset = (ContentRectangle.Height -
|
||||
RadioButtonRenderer.GetGlyphSize(
|
||||
e.Graphics, buttonState).Height) / 2;
|
||||
Point imageLocation = new Point(
|
||||
ContentRectangle.Location.X + 4,
|
||||
ContentRectangle.Location.Y + offset);
|
||||
|
||||
// Paint the RadioButton.
|
||||
RadioButtonRenderer.DrawRadioButton(
|
||||
e.Graphics, imageLocation, buttonState);
|
||||
}
|
||||
|
||||
private bool mouseHoverState = false;
|
||||
|
||||
protected override void OnMouseEnter(EventArgs e)
|
||||
{
|
||||
mouseHoverState = true;
|
||||
|
||||
// Force the item to repaint with the new RadioButton state.
|
||||
Invalidate();
|
||||
|
||||
base.OnMouseEnter(e);
|
||||
}
|
||||
|
||||
protected override void OnMouseLeave(EventArgs e)
|
||||
{
|
||||
mouseHoverState = false;
|
||||
base.OnMouseLeave(e);
|
||||
}
|
||||
|
||||
private bool mouseDownState = false;
|
||||
|
||||
protected override void OnMouseDown(MouseEventArgs e)
|
||||
{
|
||||
mouseDownState = true;
|
||||
|
||||
// Force the item to repaint with the new RadioButton state.
|
||||
Invalidate();
|
||||
|
||||
base.OnMouseDown(e);
|
||||
}
|
||||
|
||||
protected override void OnMouseUp(MouseEventArgs e)
|
||||
{
|
||||
mouseDownState = false;
|
||||
base.OnMouseUp(e);
|
||||
}
|
||||
|
||||
// Enable the item only if its parent item is in the checked state
|
||||
// and its Enabled property has not been explicitly set to false.
|
||||
public override bool Enabled
|
||||
{
|
||||
get
|
||||
{
|
||||
ToolStripMenuItem ownerMenuItem =
|
||||
OwnerItem as ToolStripMenuItem;
|
||||
|
||||
// Use the base value in design mode to prevent the designer
|
||||
// from setting the base value to the calculated value.
|
||||
if (!DesignMode &&
|
||||
ownerMenuItem != null && ownerMenuItem.CheckOnClick)
|
||||
{
|
||||
return base.Enabled && ownerMenuItem.Checked;
|
||||
}
|
||||
else
|
||||
{
|
||||
return base.Enabled;
|
||||
}
|
||||
}
|
||||
set
|
||||
{
|
||||
base.Enabled = value;
|
||||
}
|
||||
}
|
||||
|
||||
// When OwnerItem becomes available, if it is a ToolStripMenuItem
|
||||
// with a CheckOnClick property value of true, subscribe to its
|
||||
// CheckedChanged event.
|
||||
protected override void OnOwnerChanged(EventArgs e)
|
||||
{
|
||||
ToolStripMenuItem ownerMenuItem =
|
||||
OwnerItem as ToolStripMenuItem;
|
||||
if (ownerMenuItem != null && ownerMenuItem.CheckOnClick)
|
||||
{
|
||||
ownerMenuItem.CheckedChanged +=
|
||||
new EventHandler(OwnerMenuItem_CheckedChanged);
|
||||
}
|
||||
base.OnOwnerChanged(e);
|
||||
}
|
||||
|
||||
// When the checked state of the parent item changes,
|
||||
// repaint the item so that the new Enabled state is displayed.
|
||||
private void OwnerMenuItem_CheckedChanged(
|
||||
object sender, EventArgs e)
|
||||
{
|
||||
Invalidate();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,7 +7,7 @@ namespace PckStudio.Forms.Additional_Popups
|
||||
{
|
||||
public string SelectedItem => DialogResult == DialogResult.OK ? ComboBox.Text : string.Empty;
|
||||
|
||||
public ItemSelectionPopUp(string[] items)
|
||||
public ItemSelectionPopUp(params string[] items)
|
||||
{
|
||||
InitializeComponent();
|
||||
ComboBox.Items.AddRange(items);
|
||||
|
||||
151
PCK-Studio/Forms/Editor/GameRuleFileEditor.Designer.cs
generated
151
PCK-Studio/Forms/Editor/GameRuleFileEditor.Designer.cs
generated
@@ -45,10 +45,16 @@
|
||||
this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.compressionLvlToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripComboBox1 = new System.Windows.Forms.ToolStripComboBox();
|
||||
this.compressionTypeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.compressionTypeComboBox = new System.Windows.Forms.ToolStripComboBox();
|
||||
this.levelToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.typeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.metroPanel1 = new MetroFramework.Controls.MetroPanel();
|
||||
this.noneToolStripMenuItem = new PckStudio.ToolStripRadioButtonMenuItem();
|
||||
this.compressedToolStripMenuItem = new PckStudio.ToolStripRadioButtonMenuItem();
|
||||
this.compressedRLEToolStripMenuItem = new PckStudio.ToolStripRadioButtonMenuItem();
|
||||
this.compressedRLECRCToolStripMenuItem = new PckStudio.ToolStripRadioButtonMenuItem();
|
||||
this.wiiUPSVitaToolStripMenuItem = new PckStudio.ToolStripRadioButtonMenuItem();
|
||||
this.pS3ToolStripMenuItem = new PckStudio.ToolStripRadioButtonMenuItem();
|
||||
this.xbox360ToolStripMenuItem = new PckStudio.ToolStripRadioButtonMenuItem();
|
||||
this.MessageContextMenu.SuspendLayout();
|
||||
this.DetailContextMenu.SuspendLayout();
|
||||
this.menuStrip1.SuspendLayout();
|
||||
@@ -155,8 +161,7 @@
|
||||
this.menuStrip1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
||||
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.fileToolStripMenuItem,
|
||||
this.compressionLvlToolStripMenuItem,
|
||||
this.compressionTypeToolStripMenuItem});
|
||||
this.compressionLvlToolStripMenuItem});
|
||||
this.menuStrip1.Location = new System.Drawing.Point(25, 60);
|
||||
this.menuStrip1.Name = "menuStrip1";
|
||||
this.menuStrip1.Size = new System.Drawing.Size(450, 24);
|
||||
@@ -176,7 +181,7 @@
|
||||
// openToolStripMenuItem
|
||||
//
|
||||
this.openToolStripMenuItem.Name = "openToolStripMenuItem";
|
||||
this.openToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.openToolStripMenuItem.Size = new System.Drawing.Size(103, 22);
|
||||
this.openToolStripMenuItem.Text = "Open";
|
||||
this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click);
|
||||
//
|
||||
@@ -184,47 +189,42 @@
|
||||
//
|
||||
this.saveToolStripMenuItem.BackColor = System.Drawing.Color.Transparent;
|
||||
this.saveToolStripMenuItem.Name = "saveToolStripMenuItem";
|
||||
this.saveToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.saveToolStripMenuItem.Size = new System.Drawing.Size(103, 22);
|
||||
this.saveToolStripMenuItem.Text = "Save";
|
||||
this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click);
|
||||
//
|
||||
// compressionLvlToolStripMenuItem
|
||||
//
|
||||
this.compressionLvlToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.toolStripComboBox1});
|
||||
this.levelToolStripMenuItem,
|
||||
this.typeToolStripMenuItem});
|
||||
this.compressionLvlToolStripMenuItem.ForeColor = System.Drawing.SystemColors.Menu;
|
||||
this.compressionLvlToolStripMenuItem.Name = "compressionLvlToolStripMenuItem";
|
||||
this.compressionLvlToolStripMenuItem.Size = new System.Drawing.Size(106, 20);
|
||||
this.compressionLvlToolStripMenuItem.Text = "Compression Lvl";
|
||||
this.compressionLvlToolStripMenuItem.Size = new System.Drawing.Size(89, 20);
|
||||
this.compressionLvlToolStripMenuItem.Text = "Compression";
|
||||
//
|
||||
// toolStripComboBox1
|
||||
// levelToolStripMenuItem
|
||||
//
|
||||
this.toolStripComboBox1.Items.AddRange(new object[] {
|
||||
"None",
|
||||
"Compressed",
|
||||
"Compressed + RLE",
|
||||
"Compressed + RLE + CRC"});
|
||||
this.toolStripComboBox1.Name = "toolStripComboBox1";
|
||||
this.toolStripComboBox1.Size = new System.Drawing.Size(121, 23);
|
||||
this.toolStripComboBox1.Text = "None";
|
||||
this.levelToolStripMenuItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
|
||||
this.levelToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.noneToolStripMenuItem,
|
||||
this.compressedToolStripMenuItem,
|
||||
this.compressedRLEToolStripMenuItem,
|
||||
this.compressedRLECRCToolStripMenuItem});
|
||||
this.levelToolStripMenuItem.Name = "levelToolStripMenuItem";
|
||||
this.levelToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.levelToolStripMenuItem.Text = "Level";
|
||||
//
|
||||
// compressionTypeToolStripMenuItem
|
||||
// typeToolStripMenuItem
|
||||
//
|
||||
this.compressionTypeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.compressionTypeComboBox});
|
||||
this.compressionTypeToolStripMenuItem.ForeColor = System.Drawing.SystemColors.Menu;
|
||||
this.compressionTypeToolStripMenuItem.Name = "compressionTypeToolStripMenuItem";
|
||||
this.compressionTypeToolStripMenuItem.Size = new System.Drawing.Size(116, 20);
|
||||
this.compressionTypeToolStripMenuItem.Text = "Compression Type";
|
||||
//
|
||||
// compressionTypeComboBox
|
||||
//
|
||||
this.compressionTypeComboBox.Items.AddRange(new object[] {
|
||||
"Wii U, PS Vita",
|
||||
"PS3",
|
||||
"Xbox 360"});
|
||||
this.compressionTypeComboBox.Name = "compressionTypeComboBox";
|
||||
this.compressionTypeComboBox.Size = new System.Drawing.Size(121, 23);
|
||||
this.typeToolStripMenuItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
|
||||
this.typeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.wiiUPSVitaToolStripMenuItem,
|
||||
this.pS3ToolStripMenuItem,
|
||||
this.xbox360ToolStripMenuItem});
|
||||
this.typeToolStripMenuItem.Name = "typeToolStripMenuItem";
|
||||
this.typeToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.typeToolStripMenuItem.Text = "Type";
|
||||
//
|
||||
// metroPanel1
|
||||
//
|
||||
@@ -246,6 +246,72 @@
|
||||
this.metroPanel1.VerticalScrollbarSize = 10;
|
||||
this.metroPanel1.Resize += new System.EventHandler(this.metroPanel1_Resize);
|
||||
//
|
||||
// noneToolStripMenuItem
|
||||
//
|
||||
this.noneToolStripMenuItem.Checked = true;
|
||||
this.noneToolStripMenuItem.CheckOnClick = true;
|
||||
this.noneToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.noneToolStripMenuItem.Name = "noneToolStripMenuItem";
|
||||
this.noneToolStripMenuItem.Size = new System.Drawing.Size(210, 22);
|
||||
this.noneToolStripMenuItem.Text = "None";
|
||||
this.noneToolStripMenuItem.CheckedChanged += new System.EventHandler(this.noneToolStripMenuItem_CheckedChanged);
|
||||
//
|
||||
// compressedToolStripMenuItem
|
||||
//
|
||||
this.compressedToolStripMenuItem.CheckOnClick = true;
|
||||
this.compressedToolStripMenuItem.Name = "compressedToolStripMenuItem";
|
||||
this.compressedToolStripMenuItem.Size = new System.Drawing.Size(210, 22);
|
||||
this.compressedToolStripMenuItem.Text = "Compressed";
|
||||
this.compressedToolStripMenuItem.CheckedChanged += new System.EventHandler(this.compressedToolStripMenuItem_CheckedChanged);
|
||||
//
|
||||
// compressedRLEToolStripMenuItem
|
||||
//
|
||||
this.compressedRLEToolStripMenuItem.CheckOnClick = true;
|
||||
this.compressedRLEToolStripMenuItem.Name = "compressedRLEToolStripMenuItem";
|
||||
this.compressedRLEToolStripMenuItem.Size = new System.Drawing.Size(210, 22);
|
||||
this.compressedRLEToolStripMenuItem.Text = "Compressed + RLE";
|
||||
this.compressedRLEToolStripMenuItem.CheckedChanged += new System.EventHandler(this.compressedRLEToolStripMenuItem_CheckedChanged);
|
||||
//
|
||||
// compressedRLECRCToolStripMenuItem
|
||||
//
|
||||
this.compressedRLECRCToolStripMenuItem.CheckOnClick = true;
|
||||
this.compressedRLECRCToolStripMenuItem.Name = "compressedRLECRCToolStripMenuItem";
|
||||
this.compressedRLECRCToolStripMenuItem.Size = new System.Drawing.Size(210, 22);
|
||||
this.compressedRLECRCToolStripMenuItem.Text = "Compressed + RLE + CRC";
|
||||
this.compressedRLECRCToolStripMenuItem.CheckedChanged += new System.EventHandler(this.compressedRLECRCToolStripMenuItem_CheckedChanged);
|
||||
//
|
||||
// wiiUPSVitaToolStripMenuItem
|
||||
//
|
||||
this.wiiUPSVitaToolStripMenuItem.BackColor = System.Drawing.SystemColors.Window;
|
||||
this.wiiUPSVitaToolStripMenuItem.CheckOnClick = true;
|
||||
this.wiiUPSVitaToolStripMenuItem.Name = "wiiUPSVitaToolStripMenuItem";
|
||||
this.wiiUPSVitaToolStripMenuItem.ShowShortcutKeys = false;
|
||||
this.wiiUPSVitaToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.wiiUPSVitaToolStripMenuItem.Text = "Wii U, PS Vita";
|
||||
this.wiiUPSVitaToolStripMenuItem.CheckedChanged += new System.EventHandler(this.wiiUPSVitaToolStripMenuItem_CheckedChanged);
|
||||
//
|
||||
// pS3ToolStripMenuItem
|
||||
//
|
||||
this.pS3ToolStripMenuItem.BackColor = System.Drawing.SystemColors.Window;
|
||||
this.pS3ToolStripMenuItem.CheckOnClick = true;
|
||||
this.pS3ToolStripMenuItem.Name = "pS3ToolStripMenuItem";
|
||||
this.pS3ToolStripMenuItem.ShowShortcutKeys = false;
|
||||
this.pS3ToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.pS3ToolStripMenuItem.Text = "PS3";
|
||||
this.pS3ToolStripMenuItem.CheckedChanged += new System.EventHandler(this.pS3ToolStripMenuItem_CheckedChanged);
|
||||
//
|
||||
// xbox360ToolStripMenuItem
|
||||
//
|
||||
this.xbox360ToolStripMenuItem.BackColor = System.Drawing.SystemColors.Window;
|
||||
this.xbox360ToolStripMenuItem.Checked = true;
|
||||
this.xbox360ToolStripMenuItem.CheckOnClick = true;
|
||||
this.xbox360ToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.xbox360ToolStripMenuItem.Name = "xbox360ToolStripMenuItem";
|
||||
this.xbox360ToolStripMenuItem.ShowShortcutKeys = false;
|
||||
this.xbox360ToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
this.xbox360ToolStripMenuItem.Text = "Xbox 360";
|
||||
this.xbox360ToolStripMenuItem.CheckedChanged += new System.EventHandler(this.xbox360ToolStripMenuItem_CheckedChanged);
|
||||
//
|
||||
// GameRuleFileEditor
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
@@ -294,8 +360,17 @@
|
||||
private System.Windows.Forms.ToolStripMenuItem openToolStripMenuItem;
|
||||
private MetroFramework.Controls.MetroPanel metroPanel1;
|
||||
private System.Windows.Forms.ToolStripMenuItem compressionLvlToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripComboBox toolStripComboBox1;
|
||||
private System.Windows.Forms.ToolStripMenuItem compressionTypeToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripComboBox compressionTypeComboBox;
|
||||
private System.Windows.Forms.ToolStripMenuItem levelToolStripMenuItem;
|
||||
|
||||
private PckStudio.ToolStripRadioButtonMenuItem noneToolStripMenuItem;
|
||||
private PckStudio.ToolStripRadioButtonMenuItem compressedToolStripMenuItem;
|
||||
private PckStudio.ToolStripRadioButtonMenuItem compressedRLEToolStripMenuItem;
|
||||
private PckStudio.ToolStripRadioButtonMenuItem compressedRLECRCToolStripMenuItem;
|
||||
|
||||
private System.Windows.Forms.ToolStripMenuItem typeToolStripMenuItem;
|
||||
|
||||
private PckStudio.ToolStripRadioButtonMenuItem wiiUPSVitaToolStripMenuItem;
|
||||
private PckStudio.ToolStripRadioButtonMenuItem pS3ToolStripMenuItem;
|
||||
private PckStudio.ToolStripRadioButtonMenuItem xbox360ToolStripMenuItem;
|
||||
}
|
||||
}
|
||||
@@ -11,6 +11,7 @@ using OMI.Workers.GameRule;
|
||||
using System.Diagnostics;
|
||||
using OMI.Formats.Pck;
|
||||
using PckStudio.Forms.Additional_Popups;
|
||||
using PckStudio.Models;
|
||||
|
||||
namespace PckStudio.Forms.Editor
|
||||
{
|
||||
@@ -18,7 +19,8 @@ namespace PckStudio.Forms.Editor
|
||||
{
|
||||
private PckFile.FileData _pckfile;
|
||||
private GameRuleFile _file;
|
||||
|
||||
private GameRuleFile.CompressionType compressionType;
|
||||
private GameRuleFile.CompressionLevel compressionLevel;
|
||||
public GameRuleFileEditor()
|
||||
{
|
||||
InitializeComponent();
|
||||
@@ -27,28 +29,44 @@ namespace PckStudio.Forms.Editor
|
||||
|
||||
private void PromptForCompressionType()
|
||||
{
|
||||
ItemSelectionPopUp dialog = new ItemSelectionPopUp(compressionTypeComboBox.Items.Cast<string>().ToArray());
|
||||
ItemSelectionPopUp dialog = new ItemSelectionPopUp("Wii U, PS Vita", "PS3", "Xbox 360");
|
||||
dialog.label2.Text = "Type";
|
||||
dialog.okBtn.Text = "Ok";
|
||||
if (dialog.ShowDialog() == DialogResult.OK)
|
||||
compressionTypeComboBox.SelectedIndex = compressionTypeComboBox.Items.IndexOf(dialog.SelectedItem);
|
||||
{
|
||||
switch(dialog.SelectedItem)
|
||||
{
|
||||
case "Wii U, PS Vita":
|
||||
wiiUPSVitaToolStripMenuItem.Checked = true;
|
||||
break;
|
||||
case "PS3":
|
||||
pS3ToolStripMenuItem.Checked = true;
|
||||
break;
|
||||
case "Xbox 360":
|
||||
xbox360ToolStripMenuItem.Checked = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public GameRuleFileEditor(PckFile.FileData file) : this()
|
||||
{
|
||||
_pckfile = file;
|
||||
using (var stream = new MemoryStream(file.Data))
|
||||
if (file.Size > 0)
|
||||
{
|
||||
_file = OpenGameRuleFile(stream, (GameRuleFile.CompressionType)compressionTypeComboBox.SelectedIndex);
|
||||
using (var stream = new MemoryStream(file.Data))
|
||||
{
|
||||
_file = OpenGameRuleFile(stream);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public GameRuleFileEditor(Stream stream) : this()
|
||||
{
|
||||
_file = OpenGameRuleFile(stream, (GameRuleFile.CompressionType)compressionTypeComboBox.SelectedIndex);
|
||||
_file = OpenGameRuleFile(stream);
|
||||
}
|
||||
|
||||
private GameRuleFile OpenGameRuleFile(Stream stream, GameRuleFile.CompressionType compressionType)
|
||||
private GameRuleFile OpenGameRuleFile(Stream stream)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -83,13 +101,32 @@ namespace PckStudio.Forms.Editor
|
||||
private void ReloadGameRuleTree()
|
||||
{
|
||||
GrfTreeView.Nodes.Clear();
|
||||
SetCompressionLevel();
|
||||
if (_file is not null)
|
||||
{
|
||||
toolStripComboBox1.SelectedIndex = (int)_file.FileHeader.CompressionLevel;
|
||||
LoadGameRuleTree(GrfTreeView.Nodes, _file.Root);
|
||||
}
|
||||
}
|
||||
|
||||
private void SetCompressionLevel()
|
||||
{
|
||||
switch (_file.FileHeader.CompressionLevel)
|
||||
{
|
||||
case GameRuleFile.CompressionLevel.None:
|
||||
noneToolStripMenuItem.Checked = true;
|
||||
break;
|
||||
case GameRuleFile.CompressionLevel.Compressed:
|
||||
compressedToolStripMenuItem.Checked = true;
|
||||
break;
|
||||
case GameRuleFile.CompressionLevel.CompressedRle:
|
||||
compressedRLEToolStripMenuItem.Checked = true;
|
||||
break;
|
||||
case GameRuleFile.CompressionLevel.CompressedRleCrc:
|
||||
compressedRLECRCToolStripMenuItem.Checked = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void GrfTreeView_AfterSelect(object sender, TreeViewEventArgs e)
|
||||
{
|
||||
if (e.Node is TreeNode t && t.Tag is GameRuleFile.GameRule)
|
||||
@@ -215,8 +252,8 @@ namespace PckStudio.Forms.Editor
|
||||
{
|
||||
var writer = new GameRuleFileWriter(
|
||||
_file,
|
||||
(GameRuleFile.CompressionLevel)toolStripComboBox1.SelectedIndex,
|
||||
(GameRuleFile.CompressionType)compressionTypeComboBox.SelectedIndex);
|
||||
compressionLevel,
|
||||
compressionType);
|
||||
writer.WriteToStream(stream);
|
||||
_pckfile?.SetData(stream.ToArray());
|
||||
MessageBox.Show("Saved!");
|
||||
@@ -247,10 +284,52 @@ namespace PckStudio.Forms.Editor
|
||||
{
|
||||
using (var fs = File.OpenRead(dialog.FileName))
|
||||
{
|
||||
_file = OpenGameRuleFile(fs, (GameRuleFile.CompressionType)compressionTypeComboBox.SelectedIndex);
|
||||
_file = OpenGameRuleFile(fs);
|
||||
ReloadGameRuleTree();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void noneToolStripMenuItem_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (sender is ToolStripRadioButtonMenuItem radioButton && radioButton.Checked)
|
||||
compressionLevel = GameRuleFile.CompressionLevel.None;
|
||||
}
|
||||
|
||||
private void compressedToolStripMenuItem_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (sender is ToolStripRadioButtonMenuItem radioButton && radioButton.Checked)
|
||||
compressionLevel = GameRuleFile.CompressionLevel.Compressed;
|
||||
}
|
||||
|
||||
private void compressedRLEToolStripMenuItem_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (sender is ToolStripRadioButtonMenuItem radioButton && radioButton.Checked)
|
||||
compressionLevel = GameRuleFile.CompressionLevel.CompressedRle;
|
||||
}
|
||||
|
||||
private void compressedRLECRCToolStripMenuItem_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (sender is ToolStripRadioButtonMenuItem radioButton && radioButton.Checked)
|
||||
compressionLevel = GameRuleFile.CompressionLevel.CompressedRleCrc;
|
||||
}
|
||||
|
||||
private void wiiUPSVitaToolStripMenuItem_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (sender is ToolStripRadioButtonMenuItem radioButton && radioButton.Checked)
|
||||
compressionType = GameRuleFile.CompressionType.Zlib;
|
||||
}
|
||||
|
||||
private void pS3ToolStripMenuItem_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (sender is ToolStripRadioButtonMenuItem radioButton && radioButton.Checked)
|
||||
compressionType = GameRuleFile.CompressionType.Deflate;
|
||||
}
|
||||
|
||||
private void xbox360ToolStripMenuItem_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (sender is ToolStripRadioButtonMenuItem radioButton && radioButton.Checked)
|
||||
compressionType = GameRuleFile.CompressionType.XMem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -170,6 +170,9 @@
|
||||
<Compile Include="Classes\ToolboxItems\PictureBoxWithInterpolationMode.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Classes\ToolboxItems\ToolStripRadioButtonMenuItem.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Extensions\ImageLayoutDirection.cs" />
|
||||
<Compile Include="Extensions\ImageSection.cs" />
|
||||
<Compile Include="Extensions\ListExtensions.cs" />
|
||||
|
||||
Reference in New Issue
Block a user