xref: /haiku/src/apps/deskbar/InlineScrollView.h (revision deaae5fc20b5cf44115441d34a1e33436df885b2)
132f840b7SJohn Scipione /*
232f840b7SJohn Scipione  * Copyright 2012, Haiku, Inc.
332f840b7SJohn Scipione  * Distributed under the terms of the MIT License.
432f840b7SJohn Scipione  *
532f840b7SJohn Scipione  * Authors:
632f840b7SJohn Scipione  *		Marc Flerackers (mflerackers@androme.be)
732f840b7SJohn Scipione  *		Stefano Ceccherini (stefano.ceccherini@gmail.com)
832f840b7SJohn Scipione  *		John Scipione (jscipione@gmail.com)
932f840b7SJohn Scipione  */
1032f840b7SJohn Scipione #ifndef INLINE_SCROLL_VIEW_H
1132f840b7SJohn Scipione #define INLINE_SCROLL_VIEW_H
1232f840b7SJohn Scipione 
1332f840b7SJohn Scipione 
1432f840b7SJohn Scipione #include <View.h>
1532f840b7SJohn Scipione 
1632f840b7SJohn Scipione 
17c07e6ff2SJohn Scipione class BLayout;
18c07e6ff2SJohn Scipione class BPoint;
19c07e6ff2SJohn Scipione class ScrollArrow;
2032f840b7SJohn Scipione 
2132f840b7SJohn Scipione class TInlineScrollView : public BView {
2232f840b7SJohn Scipione public:
23*deaae5fcSJohn Scipione 								TInlineScrollView(BView* target,
24255853feSJohn Scipione 									enum orientation orientation = B_VERTICAL);
2532f840b7SJohn Scipione 	virtual						~TInlineScrollView();
2632f840b7SJohn Scipione 
2732f840b7SJohn Scipione 	virtual	void				AttachedToWindow();
2832f840b7SJohn Scipione 	virtual	void				DetachedFromWindow();
2932f840b7SJohn Scipione 
30d6f6b835SJohn Scipione 	virtual	void				Draw(BRect updateRect);
31d6f6b835SJohn Scipione 
3232f840b7SJohn Scipione 				void			AttachScrollers();
3332f840b7SJohn Scipione 				void			DetachScrollers();
3432f840b7SJohn Scipione 				bool			HasScrollers() const;
3532f840b7SJohn Scipione 
3632f840b7SJohn Scipione 				void			SetSmallStep(float step);
37c07e6ff2SJohn Scipione 				void			GetSteps(float* _smallStep,
38c07e6ff2SJohn Scipione 										 float* _largeStep) const;
3932f840b7SJohn Scipione 				void			ScrollBy(const float& step);
4032f840b7SJohn Scipione 
Orientation()41*deaae5fcSJohn Scipione 				bool			Orientation() const { return fOrientation; };
SetOrientation(int32 orienation)42*deaae5fcSJohn Scipione 				void			SetOrientation(int32 orienation)
43*deaae5fcSJohn Scipione 									{ fOrientation = orienation; };
44*deaae5fcSJohn Scipione 
4532f840b7SJohn Scipione private:
4632f840b7SJohn Scipione 				BView*			fTarget;
47e6d8c22aSJohn Scipione 				ScrollArrow*	fBeginScrollArrow;
48e6d8c22aSJohn Scipione 				ScrollArrow*	fEndScrollArrow;
4932f840b7SJohn Scipione 
5032f840b7SJohn Scipione 				float			fScrollStep;
51e6d8c22aSJohn Scipione 				float			fScrollValue;
52e6d8c22aSJohn Scipione 				float			fScrollLimit;
53e6d8c22aSJohn Scipione 
54e6d8c22aSJohn Scipione 				int32			fOrientation;
5532f840b7SJohn Scipione };
5632f840b7SJohn Scipione 
5732f840b7SJohn Scipione 
5832f840b7SJohn Scipione #endif	// INLINE_SCROLL_VIEW_H
59