using System;
using System.Windows.Forms;
using BizHawk.Client.EmuHawk.WinFormExtensions;
namespace BizHawk.Client.EmuHawk
{
///
/// implements a minimal dialog for configuring JMDWriter
///
public partial class JmdForm : Form
{
public JmdForm()
{
InitializeComponent();
}
private void ThreadsBar_Scroll(object sender, EventArgs e)
{
threadTop.Text = $"Number of compression threads: {threadsBar.Value}";
}
private void CompressionBar_Scroll(object sender, EventArgs e)
{
compressionTop.Text = compressionBar.Value == compressionBar.Minimum
? "Compression Level: NONE"
: $"Compression Level: {compressionBar.Value}";
}
///
/// Show a configuration dialog (modal) for JMDWriter
///
/// number of threads
/// compression level
/// minimum possible number of threads
/// maximum possible number of threads
/// minimum compression level, assumed to be "no compression"
/// maximum compression level
/// hwnd of parent
/// false if user canceled; true if user consented
public static bool DoCompressionDlg(ref int threads, ref int compLevel, int tMin, int tMax, int cMin, int cMax, IWin32Window hwnd)
{
var j = new JmdForm
{
threadsBar = { Minimum = tMin, Maximum = tMax },
compressionBar = { Minimum = cMin, Maximum = cMax }
};
j.threadsBar.Value = threads;
j.compressionBar.Value = compLevel;
j.ThreadsBar_Scroll(null, null);
j.CompressionBar_Scroll(null, null);
j.threadLeft.Text = $"{tMin}";
j.threadRight.Text = $"{tMax}";
j.compressionLeft.Text = $"{cMin}";
j.compressionRight.Text = $"{cMax}";
DialogResult d = j.ShowDialog(hwnd);
threads = j.threadsBar.Value;
compLevel = j.compressionBar.Value;
j.Dispose();
return d.IsOk();
}
}
}