xref: /haiku/src/apps/deskbar/InlineScrollView.h (revision 255853fe1593130db397b0923d0c82f1c2924557)
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 class BLayout;
1732f840b7SJohn Scipione class ScrollArrow;
1832f840b7SJohn Scipione class BPoint;
1932f840b7SJohn Scipione 
2032f840b7SJohn Scipione 
2132f840b7SJohn Scipione class TInlineScrollView : public BView {
2232f840b7SJohn Scipione public:
23*255853feSJohn Scipione 								TInlineScrollView(BRect frame, BView* target,
24*255853feSJohn Scipione 									enum orientation orientation = B_VERTICAL);
2532f840b7SJohn Scipione 	virtual						~TInlineScrollView();
2632f840b7SJohn Scipione 
2732f840b7SJohn Scipione 	virtual	void				AttachedToWindow();
2832f840b7SJohn Scipione 	virtual	void				DetachedFromWindow();
2932f840b7SJohn Scipione 
3032f840b7SJohn Scipione 				void			AttachScrollers();
3132f840b7SJohn Scipione 				void			DetachScrollers();
3232f840b7SJohn Scipione 				bool			HasScrollers() const;
3332f840b7SJohn Scipione 
3432f840b7SJohn Scipione 				void			SetSmallStep(float step);
3532f840b7SJohn Scipione 				void			GetSteps(float* _smallStep, float* _largeStep) const;
3632f840b7SJohn Scipione 				void			ScrollBy(const float& step);
3732f840b7SJohn Scipione 
3832f840b7SJohn Scipione private:
3932f840b7SJohn Scipione 				BView*			fTarget;
4032f840b7SJohn Scipione 				ScrollArrow*	fUpperScrollArrow;
4132f840b7SJohn Scipione 				ScrollArrow*	fLowerScrollArrow;
4232f840b7SJohn Scipione 
4332f840b7SJohn Scipione 				float			fScrollStep;
4432f840b7SJohn Scipione 				float			fValue;
4532f840b7SJohn Scipione 				float			fLimit;
4632f840b7SJohn Scipione };
4732f840b7SJohn Scipione 
4832f840b7SJohn Scipione 
4932f840b7SJohn Scipione #endif	// INLINE_SCROLL_VIEW_H
50