Window handling
This commit is contained in:
2
VAR.Toolbox/UI/FrmToolbox.Designer.cs
generated
2
VAR.Toolbox/UI/FrmToolbox.Designer.cs
generated
@@ -75,6 +75,8 @@
|
||||
this.MaximizeBox = false;
|
||||
this.Name = "FrmToolbox";
|
||||
this.Text = "Toolbox";
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FrmToolbox_FormClosing);
|
||||
this.Resize += new System.EventHandler(this.FrmToolbox_Resize);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace VAR.Toolbox.UI
|
||||
@@ -12,20 +13,71 @@ namespace VAR.Toolbox.UI
|
||||
|
||||
private void btnBase64_Click(object sender, EventArgs e)
|
||||
{
|
||||
var frmBase64 = new FrmBase64();
|
||||
frmBase64.Show();
|
||||
CreateWindow(typeof(FrmBase64));
|
||||
}
|
||||
|
||||
private void btnProxyCmd_Click(object sender, EventArgs e)
|
||||
{
|
||||
var frmProxyCmd = new FrmProxyCmd();
|
||||
frmProxyCmd.Show();
|
||||
CreateWindow(typeof(FrmProxyCmd));
|
||||
}
|
||||
|
||||
private void btnWebcam_Click(object sender, EventArgs e)
|
||||
{
|
||||
var frmWebcam = new FrmWebcam();
|
||||
frmWebcam.Show();
|
||||
CreateWindow(typeof(FrmWebcam));
|
||||
}
|
||||
|
||||
#region Window handling
|
||||
|
||||
private Form CreateWindow(Type type)
|
||||
{
|
||||
Form frm = Activator.CreateInstance(type) as Form;
|
||||
if(frm== null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
_forms.Add(frm);
|
||||
frm.FormClosing += frmChild_FormClosing;
|
||||
frm.Show();
|
||||
return frm;
|
||||
}
|
||||
|
||||
private List<Form> _forms = new List<Form>();
|
||||
|
||||
private void frmChild_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
_forms.Remove((Form)sender);
|
||||
}
|
||||
|
||||
private void FrmToolbox_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
while (_forms.Count > 0)
|
||||
{
|
||||
_forms[0].Close();
|
||||
}
|
||||
}
|
||||
|
||||
private bool _wasMinimized = false;
|
||||
|
||||
private void FrmToolbox_Resize(object sender, EventArgs e)
|
||||
{
|
||||
if (FormWindowState.Minimized == WindowState)
|
||||
{
|
||||
_wasMinimized = true;
|
||||
foreach(Form frm in _forms)
|
||||
{
|
||||
frm.Hide();
|
||||
}
|
||||
}
|
||||
if (FormWindowState.Normal == WindowState && _wasMinimized)
|
||||
{
|
||||
_wasMinimized = false;
|
||||
foreach (Form frm in _forms)
|
||||
{
|
||||
frm.Show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Window handling
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user