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