xref: /haiku/src/apps/haikudepot/ui/FeaturedPackagesView.h (revision 9883929b9cf86d48b4e6ee22ba22da30f0e1a998)
1f545fe6aSStephan Aßmus /*
2f545fe6aSStephan Aßmus  * Copyright 2014, Stephan Aßmus <superstippi@gmx.de>.
3*9883929bSAndrew Lindesay  * Copyright 2020, Andrew Lindesay <apl@lindesay.co.nz>.
4f545fe6aSStephan Aßmus  * All rights reserved. Distributed under the terms of the MIT License.
5f545fe6aSStephan Aßmus  */
6f545fe6aSStephan Aßmus #ifndef FEATURED_PACKAGES_VIEW_H
7f545fe6aSStephan Aßmus #define FEATURED_PACKAGES_VIEW_H
8f545fe6aSStephan Aßmus 
9f545fe6aSStephan Aßmus 
10f545fe6aSStephan Aßmus #include <View.h>
11f545fe6aSStephan Aßmus 
12f545fe6aSStephan Aßmus #include "PackageInfo.h"
13f545fe6aSStephan Aßmus #include "PackageInfoListener.h"
14f545fe6aSStephan Aßmus 
15f545fe6aSStephan Aßmus 
16*9883929bSAndrew Lindesay class StackedFeaturedPackagesView;
17f545fe6aSStephan Aßmus 
18f545fe6aSStephan Aßmus 
19f545fe6aSStephan Aßmus class FeaturedPackagesView : public BView {
20f545fe6aSStephan Aßmus public:
21f545fe6aSStephan Aßmus 								FeaturedPackagesView();
22f545fe6aSStephan Aßmus 	virtual						~FeaturedPackagesView();
23f545fe6aSStephan Aßmus 
24*9883929bSAndrew Lindesay 	virtual	void				FrameResized(float width, float height);
25*9883929bSAndrew Lindesay 	virtual	void				DoLayout();
26*9883929bSAndrew Lindesay 
27f545fe6aSStephan Aßmus 			void				AddPackage(const PackageInfoRef& package);
2818b941b4SStephan Aßmus 			void				RemovePackage(const PackageInfoRef& package);
29f545fe6aSStephan Aßmus 			void				Clear();
30664372abSStephan Aßmus 
3172fff6d3SJulian Harnath 			void				SelectPackage(const PackageInfoRef& package,
3272fff6d3SJulian Harnath 									bool scrollToEntry = false);
33f545fe6aSStephan Aßmus 
34056d423cSStephan Aßmus 	static	void				CleanupIcons();
35056d423cSStephan Aßmus 
36f545fe6aSStephan Aßmus private:
37*9883929bSAndrew Lindesay 			void			_AdjustViews();
38ccf707d0SAndrew Lindesay 
39ccf707d0SAndrew Lindesay private:
40*9883929bSAndrew Lindesay 
41*9883929bSAndrew Lindesay 			BScrollView*		fScrollView;
42*9883929bSAndrew Lindesay 			StackedFeaturedPackagesView*
43*9883929bSAndrew Lindesay 								fPackagesView;
44f545fe6aSStephan Aßmus };
45f545fe6aSStephan Aßmus 
46f545fe6aSStephan Aßmus 
47f545fe6aSStephan Aßmus #endif // FEATURED_PACKAGES_VIEW_H
48