xref: /haiku/src/apps/haikudepot/ui/FeaturedPackagesView.h (revision 66ee6532aab036bee121141274257aab39ddbd67)
1f545fe6aSStephan Aßmus /*
2f545fe6aSStephan Aßmus  * Copyright 2014, Stephan Aßmus <superstippi@gmx.de>.
3*66ee6532SAndrew Lindesay  * Copyright 2020-2024, 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 
12f0e491d3SAndrew Lindesay #include "Model.h"
13f545fe6aSStephan Aßmus #include "PackageInfo.h"
14f545fe6aSStephan Aßmus #include "PackageInfoListener.h"
15f545fe6aSStephan Aßmus 
16f545fe6aSStephan Aßmus 
179883929bSAndrew Lindesay class StackedFeaturedPackagesView;
18f545fe6aSStephan Aßmus 
19f545fe6aSStephan Aßmus 
20f545fe6aSStephan Aßmus class FeaturedPackagesView : public BView {
21f545fe6aSStephan Aßmus public:
22f0e491d3SAndrew Lindesay 								FeaturedPackagesView(Model& model);
23f545fe6aSStephan Aßmus 	virtual						~FeaturedPackagesView();
24f545fe6aSStephan Aßmus 
259883929bSAndrew Lindesay 	virtual	void				DoLayout();
269883929bSAndrew Lindesay 
270b69420bSAndrew Lindesay 			void				BeginAddRemove();
280b69420bSAndrew Lindesay 			void				EndAddRemove();
29f545fe6aSStephan Aßmus 			void				AddPackage(const PackageInfoRef& package);
3018b941b4SStephan Aßmus 			void				RemovePackage(const PackageInfoRef& package);
31f545fe6aSStephan Aßmus 			void				Clear();
32664372abSStephan Aßmus 
3372fff6d3SJulian Harnath 			void				SelectPackage(const PackageInfoRef& package,
3472fff6d3SJulian Harnath 									bool scrollToEntry = false);
35f545fe6aSStephan Aßmus 
36f545fe6aSStephan Aßmus private:
379883929bSAndrew Lindesay 			void				_AdjustViews();
38ccf707d0SAndrew Lindesay 
39ccf707d0SAndrew Lindesay private:
40f0e491d3SAndrew Lindesay 			Model&				fModel;
419883929bSAndrew Lindesay 			BScrollView*		fScrollView;
429883929bSAndrew Lindesay 			StackedFeaturedPackagesView*
439883929bSAndrew Lindesay 								fPackagesView;
44f545fe6aSStephan Aßmus };
45f545fe6aSStephan Aßmus 
46f545fe6aSStephan Aßmus 
47f545fe6aSStephan Aßmus #endif // FEATURED_PACKAGES_VIEW_H
48