public void Setup(Window setting)
{
try
{
this.config = setting;
this.Text = this.config.Name;
this.TopMost = this.config.OnTop;
this.Icon = Resources.TrayIcon;
this.browser = new GeckoWebBrowser
{
Parent = this,
Dock = DockStyle.Fill,
Location = new Point(0, 0),
Name = "browser",
Size = new Size(104, 100),
TabIndex = 0
};
this.ClientSize = new Size(104, 100);
this.ControlBox = false;
this.Controls.Add(this.browser);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "browser";
this.SizeGripStyle = SizeGripStyle.Hide;
this.StartPosition = FormStartPosition.Manual;
this.ResumeLayout(false);
#if DEBUG
this.FormBorderStyle = FormBorderStyle.Fixed3D;
#else
this.FormBorderStyle = FormBorderStyle.None;
#endif
this.browser.HandleCreated += this.GeckoBrowserHandleCreated;
var showOnScreen = this.config.ShowOnScreen;
showOnScreen = (showOnScreen >= Screen.AllScreens.Length) ? 0 : showOnScreen;
var screen = Screen.AllScreens[showOnScreen];
var left = screen.Bounds.Left;
var top = screen.Bounds.Top;
var posX = this.config.Position.PosX;
var posY = this.config.Position.PosY;
this.Location = new Point(left + posX, top + posY);
var width = this.config.Dimensions.Width;
int num5;
if (width == "max" || width == "max2")
{
num5 = (width == "max") ? screen.Bounds.Width : (screen.Bounds.Width * 2);
num5 -= posX;
}
else
{
num5 = Convert.ToInt32(width);
}
var height = this.config.Dimensions.Height;
int num6;
if (height == "max" || height == "max2")
{
num6 = (height == "max") ? screen.Bounds.Height : (screen.Bounds.Height * 2);
num6 -= posY;
}
else
{
num6 = Convert.ToInt32(height);
}
this.ClientSize = new Size(num5, num6);
this.browser.DOMContentLoaded += this.BrowserOnDomContentLoaded;
this.browser.DomMouseScroll += this.BrowserOnDomMouseScroll;
this.browser.DomKeyDown += this.BrowserOnDomKeyDown;
if (setting.ReloadInSeconds > 0)
{
// This timer works as auto reload of the webpage.
var reloadTimer = new Timer { Interval = setting.ReloadInSeconds * 1000, AutoReset = true };
this.browser.Disposed += (sender, args) =>
{
if (reloadTimer == null)
{
return;
}
reloadTimer.Stop();
reloadTimer.Dispose();
reloadTimer = null;
};
reloadTimer.Elapsed += (sender, args) =>
{
if (this.browser.Disposing || !this.DomContentLoaded)
{
return;
}
lock (this.reloadLockObject)
{
this.DocumentCookies.Clear();
this.browser.Reload();
}
};
reloadTimer.Start();
}
}
catch (Exception exception)
{
Logger.Warn(exception);
}
}