コード例 #1
0
        internal void Repaint()
        {
            if (transfer.Status == Status.Done)
            {
                if (!frozen)
                {
                    info.Text            = GuiUtil.FormatByte(transfer.Size);
                    progressBar.Value    = 1000;
                    pauseButton.Enabled  = false;
                    deleteButton.Enabled = false;
                    progressBar.Enabled  = false;

                    frozen = true;
                }
            }
            else if (transfer.Status == Status.Idle)
            {
                if (!frozen)
                {
                    pauseButton.Image   = IconHandler.Instance.MediaPlaybackStart;
                    pauseButton.Enabled = false;

                    info.Text = "Paused — " + GuiUtil.FormatByte(transfer.Received)
                                + " of " + GuiUtil.FormatByte(transfer.Size);
                    frozen = true;
                }
            }
            else
            {
                progressBar.Value = (int)(transfer.Progress * 1000.0);

                string timeLeft;
                var    estimateTimeLeft = transfer.EstimatedTimeLeft;
                if (estimateTimeLeft == null)
                {
                    timeLeft = "∞";
                }
                else
                {
                    timeLeft = GuiUtil.FormatTimeSpan((TimeSpan)estimateTimeLeft);
                }

                info.Text = timeLeft + " remaining — " +
                            GuiUtil.FormatByte(transfer.Received) + " of " + GuiUtil.FormatByte(transfer.Size) +
                            " (" + GuiUtil.FormatByte(transfer.Speed) + "/s" + ")";

                frozen = false;
            }
        }