internal class UIContext:ApplicationContext
{
private Host host;
internal MainFrm mainFrm;
public UIContext(Host _host)
{
Application.ApplicationExit += Application_ApplicationExit;
Application.ThreadExit += Application_ThreadExit;
Application.EnableVisualStyles();
host = _host;
mainFrm = new MainFrm();
mainFrm.StartPosition=FormStartPosition.Manual;
mainFrm.Location = new System.Drawing.Point(host.settings.MainFormX, host.settings.MainFormY);
mainFrm.SetHost(host);
mainFrm.Closed += new EventHandler(OnFormClosed);
mainFrm.TopMost = host.settings.MainFromTopMost;
mainFrm.Show();
}
void Application_ThreadExit(object sender, EventArgs e)
{
if (mainFrm != null)
{
mainFrm.Close();
if (mainFrm.WindowState == FormWindowState.Normal)
{
host.settings.MainFormX = mainFrm.Location.X;
host.settings.MainFormY = mainFrm.Location.Y;
}
host.settings.SaveSettings(host.settingsFileName);
}
}
private void Application_ApplicationExit(object sender, EventArgs e)
{
if (mainFrm != null)
{
mainFrm.Close();
if (mainFrm.WindowState == FormWindowState.Normal)
{
host.settings.MainFormX = mainFrm.Location.X;
host.settings.MainFormY = mainFrm.Location.Y;
}
host.settings.SaveSettings(host.settingsFileName);
}
}
private void OnFormClosed(object sender, EventArgs e)
{
if (mainFrm.WindowState == FormWindowState.Normal)
{
host.settings.MainFormX = mainFrm.Location.X;
host.settings.MainFormY = mainFrm.Location.Y;
}
host.settings.SaveSettings(host.settingsFileName);
ExitThread();
host.PluginStop();
}
}