xref: /haiku/src/apps/mediaplayer/interface/VolumeSlider.h (revision 9291985ba8b70c59c7a83f45f4844b033399e095)
1 /*
2  * Copyright 2006-2010, Haiku.
3  * Distributed under the terms of the MIT License.
4  *
5  * Authors:
6  *		Stephan Aßmus <superstippi@gmx.de>
7  */
8 #ifndef VOLUME_SLIDER_H
9 #define VOLUME_SLIDER_H
10 
11 
12 #include <Slider.h>
13 
14 
15 class VolumeSlider : public BSlider {
16 public:
17 								VolumeSlider(const char* name,
18 									int32 minValue, int32 maxValue,
19 									int32 snapValue, BMessage* message = NULL);
20 
21 	virtual						~VolumeSlider();
22 
23 	// BSlider interface
24 	virtual	void				MouseMoved(BPoint where, uint32 transit,
25 									const BMessage* dragMessage);
26 
27 	virtual BRect				ThumbFrame() const;
28 	virtual	void				DrawThumb();
29 
30 	virtual	BSize				MinSize();
31 
32 	// VolumeSlider
33 			void				SetMuted(bool mute);
IsMuted()34 			bool				IsMuted() const
35 									{ return fMuted; }
36 
37 			float				PreferredBarThickness() const;
38 
39 private:
40 			float				_PointForValue(int32 value) const;
41 
42 private:
43 			bool				fMuted;
44 
45 			int32				fSnapValue;
46 			bool				fSnapping;
47 			float				fMinSnap;
48 			float				fMaxSnap;
49 };
50 
51 #endif	// VOLUME_SLIDER_H
52