///<summary>Creates a new progress bar and adds it to the form.  Returns null if there are more than 10 progress bars.</summary>
        private ODProgressBar AddNewProgressBar(string leftLabel, string topLabel, string rightLabel, int blockValue, int blockMax, string tagString,
                                                ProgBarStyle progStyle, int marqSpeed, bool isLeftHidden, bool isTopHidden, bool isRightHidden)
        {
            if (_listProgressBars.Count > 10)
            {
                return(null);
            }
            ODProgressBar pbar = new ODProgressBar(leftLabel, topLabel, rightLabel, blockValue, blockMax, tagString, progStyle, marqSpeed, isLeftHidden, isTopHidden,
                                                   isRightHidden);

            pbar.TabStop = false;
            int rowLocation = tableLayoutPanel1.RowCount;

            tableLayoutPanel1.Controls.Add(pbar, 1, rowLocation);
            pbar.Name = "pbar" + rowLocation;
            return(pbar);
        }
        public sealed override void UpdateProgress(string status, ProgressBarHelper progHelper, bool hasProgHelper)
        {
            if (hasProgHelper)
            {
                switch (progHelper.ProgressBarEventType)
                {
                case ProgBarEventType.BringToFront:
                    this.TopMost = true;
                    this.TopMost = false;
                    break;

                case ProgBarEventType.Header:
                    this.Text = status;
                    break;

                case ProgBarEventType.ProgressLog:
                    label4.Text = status;
                    break;

                case ProgBarEventType.TextMsg:
                    status = status.Trim();                          //Get rid of leading and trailing new lines.
                    textMsg.AppendText((string.IsNullOrWhiteSpace(textMsg.Text) ? "" : "\r\n") + status.PadRight(60));
                    break;

                case ProgBarEventType.WarningOff:
                case ProgBarEventType.AllowResume:
                    labelWarning.Visible = false;
                    butPause.Enabled     = true;
                    if (_isPaused)
                    {
                        butPause.Text = "Resume";
                    }
                    else
                    {
                        butPause.Text = "Pause";                              //setting down below wasn't always working when this event type was passed in.
                    }
                    break;

                case ProgBarEventType.Done:
                    butCancel.Visible = true;                           //can sometimes be set to invisible with HideButtons. Show if previously invisible.
                    butCancel.Text    = "Close";
                    butPause.Enabled  = false;
                    _isDone           = true;
                    break;

                case ProgBarEventType.HideButtons:                        //hide pause and cancel. Call Done when "close button" should appear.
                    butPause.Visible  = false;
                    butCancel.Visible = false;
                    break;

                case ProgBarEventType.ProgressBar:
                default:
                    if (!_listProgressBars.Exists(x => x.TagString.ToLower() == progHelper.TagString.ToLower()))                           //if not already added
                    {
                        ODProgressBar progBar = AddNewProgressBar(progHelper.LabelValue, progHelper.LabelTop, progHelper.PercentValue, progHelper.BlockValue,
                                                                  progHelper.BlockMax, progHelper.TagString, progHelper.ProgressStyle, progHelper.MarqueeSpeed, progHelper.IsValHidden, progHelper.IsTopHidden,
                                                                  progHelper.IsPercentHidden);
                        if (progBar == null)
                        {
                            break;
                        }
                        _listProgressBars.Add(progBar);
                    }
                    else
                    {
                        ODProgressBar odBar = _listProgressBars.Find(x => x.TagString.ToLower() == progHelper.TagString.ToLower());
                        UpdateProgressBar(odBar, progHelper);
                    }
                    break;
                }
            }
        }
 private void UpdateProgressBar(ODProgressBar progBar, ProgressBarHelper progHelper)
 {
     progBar.ODProgUpdate(progHelper.LabelValue, progHelper.LabelTop, progHelper.PercentValue, progHelper.BlockValue, progHelper.BlockMax,
                          progHelper.TagString, progHelper.ProgressStyle, progHelper.MarqueeSpeed, progHelper.IsValHidden, progHelper.IsTopHidden, progHelper.IsPercentHidden);
 }