private void UpdateLabel ()
{
if (!IsRealized || layout == null) {
return;
}
if (IsBuffering) {
double progress = buffering_progress * 100.0;
UpdateLabel (String.Format ("{0}: {1}%", Catalog.GetString("Buffering"), progress.ToString ("0.0")));
} else if (IsContacting) {
UpdateLabel (contacting);
} else if (IsLoading) {
// TODO replace w/ "Loading..." after string freeze
UpdateLabel (contacting);
} else if (IsIdle) {
UpdateLabel (idle);
} else if (seekRange.Duration == Int64.MaxValue) {
UpdateLabel (FormatDuration ((long)seekRange.Value));
} else if (seekRange.Value == 0 && seekRange.Duration == 0) {
// nop
} else {
UpdateLabel (String.Format (Catalog.GetString ("{0} of {1}"),
FormatDuration ((long)seekRange.Value), FormatDuration ((long)seekRange.Adjustment.Upper)));
}
}