118 lines
3.2 KiB
C#
118 lines
3.2 KiB
C#
using System;
|
|
using System.Drawing;
|
|
using System.Windows.Forms;
|
|
|
|
using BizHawk.Client.Common;
|
|
using BizHawk.Common;
|
|
using BizHawk.Client.EmuHawk;
|
|
|
|
using Community.CsharpSqlite.SQLiteClient;
|
|
|
|
namespace BizHawk.DBManTool
|
|
{
|
|
[ExternalTool("DBMan", Description = "DB Manager", LoadAssemblyFiles = new[] { "CSharp-SQLite.dll" })]
|
|
public class CustomMainForm : ToolFormBase, IExternalToolForm
|
|
{
|
|
protected override string WindowTitleStatic => "DBMan";
|
|
|
|
public CustomMainForm()
|
|
{
|
|
static Label CreateArgsLabel(string labelText) => new Label { Anchor = AnchorStyles.None, AutoSize = true, Text = labelText };
|
|
static TextBox CreateArgsTextBox() => new TextBox { Size = new Size(240, 19) };
|
|
static Button CreateLaunchButton() => new Button { Size = new Size(32, 24), Text = "=>", UseVisualStyleBackColor = true };
|
|
|
|
AutoScaleDimensions = new SizeF(6F, 13F);
|
|
AutoScaleMode = AutoScaleMode.Font;
|
|
ClientSize = new Size(480, 200);
|
|
Name = "CustomMainForm";
|
|
|
|
var btnDiscHash = CreateLaunchButton();
|
|
var tbDiscHashArgs = CreateArgsTextBox();
|
|
btnDiscHash.Click += (sender, e) => new DiscHash().Run(tbDiscHashArgs.Text.Split(' '));
|
|
|
|
var btnPSXDB = CreateLaunchButton();
|
|
var tbPSXDBArgs = CreateArgsTextBox();
|
|
btnPSXDB.Click += (sender, e) => new PsxDBJob().Run(tbPSXDBArgs.Text.Split(' '));
|
|
|
|
var btnDBMan = CreateLaunchButton();
|
|
btnDBMan.Click += (sender, e) =>
|
|
{
|
|
try
|
|
{
|
|
DB.Con = new SqliteConnection { ConnectionString = @"Version=3,uri=file://gamedb/game.db" };
|
|
DB.Con.Open();
|
|
new DBMan().Show(this);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.ToString());
|
|
}
|
|
finally
|
|
{
|
|
DB.Con?.Dispose();
|
|
}
|
|
};
|
|
|
|
var btnDiscCMP = CreateLaunchButton();
|
|
var tbDiscCMPArgs = CreateArgsTextBox();
|
|
#if false
|
|
btnDiscCMP.Click += (sender, e) => new DiscCmp().Run(tbDiscCMPArgs.Text.Split(' '));
|
|
#endif
|
|
|
|
SuspendLayout();
|
|
Controls.Add(new FlowLayoutPanel {
|
|
AutoSize = true,
|
|
Controls = {
|
|
new FlowLayoutPanel {
|
|
AutoSize = true,
|
|
Controls = {
|
|
btnDiscHash,
|
|
CreateArgsLabel("DBMan.exe --dischash"),
|
|
tbDiscHashArgs
|
|
}
|
|
},
|
|
new FlowLayoutPanel {
|
|
AutoSize = true,
|
|
Controls = {
|
|
btnPSXDB,
|
|
CreateArgsLabel("DBMan.exe --psxdb"),
|
|
tbPSXDBArgs
|
|
}
|
|
},
|
|
new FlowLayoutPanel {
|
|
AutoSize = true,
|
|
Controls = {
|
|
btnDBMan,
|
|
CreateArgsLabel("DBMan.exe --dbman")
|
|
},
|
|
Enabled = !OSTailoredCode.IsUnixHost
|
|
},
|
|
new FlowLayoutPanel {
|
|
AutoSize = true,
|
|
Controls = {
|
|
btnDiscCMP,
|
|
CreateArgsLabel("DBMan.exe --disccmp"),
|
|
tbDiscCMPArgs
|
|
},
|
|
Enabled = false
|
|
}
|
|
|
|
},
|
|
Dock = DockStyle.Fill,
|
|
FlowDirection = FlowDirection.TopDown
|
|
});
|
|
ResumeLayout();
|
|
}
|
|
|
|
#if false
|
|
/// <remarks>This was just sitting in <c>BizHawk.Client.DBMan/Program.cs</c>.</remarks>
|
|
public static string GetExeDirectoryAbsolute()
|
|
{
|
|
var uri = new Uri(Assembly.GetEntryAssembly().GetName().CodeBase);
|
|
string module = uri.LocalPath + System.Web.HttpUtility.UrlDecode(uri.Fragment);
|
|
return Path.GetDirectoryName(module);
|
|
}
|
|
#endif
|
|
}
|
|
}
|