private void Main_UpdateCheckerCheckResult(object sender, EventArgs ea)
        {
            clsUpdate.CheckEventArgs e = (clsUpdate.CheckEventArgs)ea;
            if (e.Error != null)
            {
                if (e.Error.Message.Contains("The remote name could not be resolved"))
                {
                    SetUpdateValue("Unable to Connect: Server not Found", false);
                    if (tReset != 0)
                    {
                        GLib.Source.Remove(tReset);
                        tReset = 0;
                    }
                    tReset = GLib.Timeout.Add(3500, ResetUpdate);
                }
                else
                {
                    SetUpdateValue(e.Error.Message, false);
                    RestartReset();
                }
            }
            else if (e.Cancelled)
            {
                SetUpdateValue("Update Check Cancelled", false);
                RestartReset();
            }
            else
            {
                AppSettings mySettings = new AppSettings();
                dlgUpdate   fUpdate;
                switch (e.Result)
                {
                case ResultType.NewUpdate:
                    SetButtonUpdate("_New Update Available", "Click to begin download.");
                    System.Threading.Thread.Sleep(0);
                    fUpdate = new dlgUpdate();
                    fUpdate.NewUpdate(e.Version, false);
                    switch ((Gtk.ResponseType)fUpdate.Run())
                    {
                    case Gtk.ResponseType.Yes:
                        updateChecker.DownloadUpdate(sUpdatePath);
                        break;

                    case Gtk.ResponseType.No:
                        break;

                    case Gtk.ResponseType.Ok:
                        updateChecker.DownloadUpdate(sUpdatePath);
                        mySettings.UpdateBETA = false;
                        mySettings.Save();
                        break;

                    case Gtk.ResponseType.Cancel:
                        mySettings.UpdateBETA = false;
                        mySettings.Save();
                        break;

                    default:
                        break;
                    }
                    fUpdate.Destroy();
                    fUpdate.Dispose();
                    fUpdate = null;
                    break;

                case ResultType.NewBeta:
                    if (mySettings.UpdateBETA)
                    {
                        SetButtonUpdate("_New BETA Available", "Click to begin download.");
                        System.Threading.Thread.Sleep(0);
                        fUpdate = new dlgUpdate();
                        fUpdate.NewUpdate(e.Version, true);
                        switch ((Gtk.ResponseType)fUpdate.Run())
                        {
                        case Gtk.ResponseType.Yes:
                            updateChecker.DownloadUpdate(sUpdatePath);
                            break;

                        case Gtk.ResponseType.No:
                            break;

                        case Gtk.ResponseType.Ok:
                            updateChecker.DownloadUpdate(sUpdatePath);
                            mySettings.UpdateBETA = false;
                            mySettings.Save();
                            break;

                        case Gtk.ResponseType.Cancel:
                            mySettings.UpdateBETA = false;
                            mySettings.Save();
                            SetUpdateValue("No New Updates", false);
                            break;

                        default:
                            break;
                        }
                        fUpdate.Destroy();
                        fUpdate.Dispose();
                        fUpdate = null;
                    }
                    else
                    {
                        SetUpdateValue("No New Updates", false);
                        RestartReset();
                    }
                    break;

                case ResultType.NoUpdate:
                    SetUpdateValue("No New Updates", false);
                    RestartReset();
                    break;
                }
                mySettings = null;
            }
        }
 protected void updateChecker_CheckResult(object sender, clsUpdate.CheckEventArgs e)
 {
     Gtk.Application.Invoke(sender, (EventArgs)e, Main_UpdateCheckerCheckResult);
 }