From 004b420b08aedc3195e3313560b6fa6fe039a861 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Sat, 11 Sep 2010 08:54:14 +0000 Subject: [PATCH] Make sure the duration view has a fixed width for all display modes for a given clip. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38603 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../mediaplayer/interface/DurationView.cpp | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/apps/mediaplayer/interface/DurationView.cpp b/src/apps/mediaplayer/interface/DurationView.cpp index 23b48edef5..87ca612652 100644 --- a/src/apps/mediaplayer/interface/DurationView.cpp +++ b/src/apps/mediaplayer/interface/DurationView.cpp @@ -52,14 +52,14 @@ DurationView::MouseDown(BPoint where) BSize DurationView::MinSize() { -// If we wanted to have a fixed size: -// BSize size; -// size.width = StringWidth("-00:00:00"); -// font_height fontHeight; -// GetFontHeight(&fontHeight); -// size.height = ceilf(fontHeight.ascent) + ceilf(fontHeight.descent); -// return BLayoutUtils::ComposeSize(ExplicitMinSize(), size); - return BStringView::MinSize(); + BSize size; + char string[64]; + duration_to_string(int32(fDuration / -1000000LL), string, sizeof(string)); + size.width = StringWidth(string); + font_height fontHeight; + GetFontHeight(&fontHeight); + size.height = ceilf(fontHeight.ascent) + ceilf(fontHeight.descent); + return BLayoutUtils::ComposeSize(ExplicitMinSize(), size); } @@ -80,7 +80,10 @@ DurationView::Update(bigtime_t position, bigtime_t duration) return; fPosition = position; - fDuration = duration; + if (fDuration != duration) { + fDuration = duration; + InvalidateLayout(); + } _Update(); }