From 9291985ba8b70c59c7a83f45f4844b033399e095 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Tue, 21 Sep 2010 18:37:14 +0000 Subject: [PATCH] * Exchange the round knob for a standard block thumb again, albeit a smaller one. Makes the interface look even more standard Haiku-like. * Make sure the volume slider has a reasonable minimum width. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38765 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../mediaplayer/interface/VolumeSlider.cpp | 29 ++++++++++++++++--- src/apps/mediaplayer/interface/VolumeSlider.h | 2 ++ 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/src/apps/mediaplayer/interface/VolumeSlider.cpp b/src/apps/mediaplayer/interface/VolumeSlider.cpp index 01e59beb81..2f913abcb3 100644 --- a/src/apps/mediaplayer/interface/VolumeSlider.cpp +++ b/src/apps/mediaplayer/interface/VolumeSlider.cpp @@ -13,6 +13,7 @@ #define KNOB_EMBEDDED 0 +#define ROUND_KNOB 0 static const rgb_color kGreen = (rgb_color){ 116, 224, 0, 255 }; @@ -22,7 +23,7 @@ VolumeSlider::VolumeSlider(const char* name, int32 minValue, int32 maxValue, int32 snapValue, BMessage* message) : BSlider(name, NULL, NULL, minValue, maxValue, B_HORIZONTAL, - B_TRIANGLE_THUMB), + B_BLOCK_THUMB), fMuted(false), fSnapValue(snapValue), fSnapping(false) @@ -95,17 +96,24 @@ VolumeSlider::MouseMoved(BPoint where, uint32 transit, BRect VolumeSlider::ThumbFrame() const { +#if !ROUND_KNOB + BRect rect = BSlider::ThumbFrame(); + rect.InsetBy(2, 2); + rect.bottom += 1; +#else BRect rect(BarFrame()); -#if KNOB_EMBEDDED +# if KNOB_EMBEDDED // Knob embedded in bar frame rect.InsetBy(0, 1); -#else +# else // Knob extends outside the bar frame rect.InsetBy(0, -1); -#endif +# endif rect.InsetBy(rect.Height() / 2, 0); rect.left = rect.left + rect.Width() * Position() - rect.Height() / 2; rect.right = rect.left + rect.Height(); +#endif + return rect; } @@ -113,6 +121,7 @@ VolumeSlider::ThumbFrame() const void VolumeSlider::DrawThumb() { +#if ROUND_KNOB // Draw a round thumb BRect rect(ThumbFrame()); @@ -196,6 +205,18 @@ VolumeSlider::DrawThumb() gradient.SetStart(rect.LeftTop()); gradient.SetEnd(rect.LeftBottom()); FillEllipse(rect, gradient); +#else + BSlider::DrawThumb(); +#endif +} + + +BSize +VolumeSlider::MinSize() +{ + BSize size = BSlider::MinSize(); + size.width *= 2; + return size; } diff --git a/src/apps/mediaplayer/interface/VolumeSlider.h b/src/apps/mediaplayer/interface/VolumeSlider.h index 359750d407..12f3e11ea1 100644 --- a/src/apps/mediaplayer/interface/VolumeSlider.h +++ b/src/apps/mediaplayer/interface/VolumeSlider.h @@ -27,6 +27,8 @@ public: virtual BRect ThumbFrame() const; virtual void DrawThumb(); + virtual BSize MinSize(); + // VolumeSlider void SetMuted(bool mute); bool IsMuted() const