private void Main_SetButtonUpdate(object o, EventArgs ea)
        {
            UpdateValueEventArgs e = (UpdateValueEventArgs)ea;

            if (lblUpdate.Visible)
            {
                pctUpdate.Visible = false;
                lblUpdate.Visible = false;
                pnlUpdate.Remove(lblUpdate);
                pnlUpdate.Add(cmdUpdate);
                ((Gtk.Box.BoxChild)pnlUpdate[cmdUpdate]).Position = 2;
                ((Gtk.Box.BoxChild)pnlUpdate[cmdUpdate]).PackType = Gtk.PackType.Start;
                ((Gtk.Box.BoxChild)pnlUpdate[cmdUpdate]).Fill     = false;
                ((Gtk.Box.BoxChild)pnlUpdate[cmdUpdate]).Expand   = false;
                cmdUpdate.Visible = true;
            }
            ((Gtk.Label)cmdUpdate.Child).LabelProp = e.Message;
            cmdUpdate.TooltipText = e.ToolTip;
        }
        private void Main_SetUpdateValue(object o, EventArgs ea)
        {
            UpdateValueEventArgs e = (UpdateValueEventArgs)ea;

            if (cmdUpdate.Visible)
            {
                int upHeight = cmdUpdate.Allocation.Height;
                cmdUpdate.Visible = false;
                pnlUpdate.Remove(cmdUpdate);
                pnlUpdate.Add(lblUpdate);
                lblUpdate.Visible       = true;
                lblUpdate.HeightRequest = upHeight;
            }
            if (pctUpdate.Visible != e.Throbber)
            {
                pctUpdate.Visible = e.Throbber;
            }
            lblUpdate.Markup      = e.Message;
            lblUpdate.TooltipText = e.ToolTip;
            pctUpdate.TooltipText = e.ToolTip;
        }
        private void SetButtonUpdate(string Message, string ToolTip)
        {
            UpdateValueEventArgs e = new UpdateValueEventArgs(Message, false, ToolTip);

            Gtk.Application.Invoke(null, (EventArgs)e, Main_SetButtonUpdate);
        }
        private void SetUpdateValue(string Message, bool Throbber, string ToolTip)
        {
            UpdateValueEventArgs e = new UpdateValueEventArgs(Message, Throbber, ToolTip);

            Gtk.Application.Invoke(null, (EventArgs)e, Main_SetUpdateValue);
        }