xref: /haiku/src/apps/deskbar/InlineScrollView.h (revision d6f6b835adcb34abfca03207f272614373f38bb1)
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:
23255853feSJohn Scipione 								TInlineScrollView(BRect frame, 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 
30*d6f6b835SJohn Scipione 	virtual	void				Draw(BRect updateRect);
31*d6f6b835SJohn 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 
4132f840b7SJohn Scipione private:
4232f840b7SJohn Scipione 				BView*			fTarget;
43e6d8c22aSJohn Scipione 				ScrollArrow*	fBeginScrollArrow;
44e6d8c22aSJohn Scipione 				ScrollArrow*	fEndScrollArrow;
4532f840b7SJohn Scipione 
4632f840b7SJohn Scipione 				float			fScrollStep;
47e6d8c22aSJohn Scipione 				float			fScrollValue;
48e6d8c22aSJohn Scipione 				float			fScrollLimit;
49e6d8c22aSJohn Scipione 
50e6d8c22aSJohn Scipione 				int32			fOrientation;
5132f840b7SJohn Scipione };
5232f840b7SJohn Scipione 
5332f840b7SJohn Scipione 
5432f840b7SJohn Scipione #endif	// INLINE_SCROLL_VIEW_H
55