/* * Copyright 2014, Stephan Aßmus . * Copyright 2020-2025, Andrew Lindesay . * All rights reserved. Distributed under the terms of the MIT License. */ #ifndef FEATURED_PACKAGES_VIEW_H #define FEATURED_PACKAGES_VIEW_H #include #include #include #include #include "Model.h" #include "PackageInfo.h" #include "PackageInfoListener.h" #include "TextDocumentView.h" class StackedFeaturedPackagesView; class FeaturedPackagesView : public BView { public: FeaturedPackagesView(Model& model); virtual ~FeaturedPackagesView(); virtual void DoLayout(); void AttachedToWindow(); void RetainPackages(const std::vector& packages); void AddRemovePackages(const std::vector& addedPackages, const std::vector& removedPackages); void Clear(); void SelectPackage(const PackageInfoRef& package, bool scrollToEntry = false); void HandleIconsChanged(); void HandlePackagesChanged(const PackageInfoEvents& events); void SetLoading(bool isLoading); private: void _AdjustViews(); void _HandlePackageChanged(const PackageInfoEvent& event); void _BuildNoResultsView(); private: Model& fModel; BScrollView* fScrollView; StackedFeaturedPackagesView* fPackagesView; BCardLayout* fFeaturedCardLayout; TextDocumentView* fNoResultsView; bool fIsLoadingAndNoData; }; #endif // FEATURED_PACKAGES_VIEW_H