1/* 2 * Copyright 2013-2014, Stephan A��mus <superstippi@gmx.de>. 3 * Copyright 2020-2023, Andrew Lindesay <apl@lindesay.co.nz> 4 * All rights reserved. Distributed under the terms of the MIT License. 5 */ 6#ifndef PACKAGE_INFO_VIEW_H 7#define PACKAGE_INFO_VIEW_H 8 9#include <GroupView.h> 10 11#include "Model.h" 12#include "PackageInfo.h" 13#include "PackageInfoListener.h" 14#include "ProcessCoordinator.h" 15 16 17class BCardLayout; 18class BLocker; 19class OnePackageMessagePackageListener; 20class PackageActionView; 21class PagesView; 22class TitleView; 23 24enum { 25 MSG_RATE_PACKAGE = 'rate', 26 MSG_SHOW_SCREENSHOT = 'shws', 27}; 28 29 30class PackageInfoView : public BView { 31public: 32 PackageInfoView(Model* model, 33 ProcessCoordinatorConsumer* 34 processCoordinatorConsumer); 35 virtual ~PackageInfoView(); 36 37 virtual void AttachedToWindow(); 38 virtual void MessageReceived(BMessage* message); 39 40 void SetPackage(const PackageInfoRef& package); 41 const PackageInfoRef& Package() const 42 { return fPackage; } 43 void Clear(); 44 45 void HandleScreenshotCached(const ScreenshotCoordinate& coordinate); 46 47private: 48 static const ScreenshotCoordinate 49 _ScreenshotThumbCoordinate(const PackageInfoRef& package); 50 void _SetPackageScreenshotThumb(const PackageInfoRef& package); 51 void _HandleScreenshotCached(const PackageInfoRef& package, 52 const ScreenshotCoordinate& coordinate); 53 54private: 55 Model* fModel; 56 57 BCardLayout* fCardLayout; 58 TitleView* fTitleView; 59 PackageActionView* fPackageActionView; 60 PagesView* fPagesView; 61 62 PackageInfoRef fPackage; 63 OnePackageMessagePackageListener* 64 fPackageListener; 65 ProcessCoordinatorConsumer* 66 fProcessCoordinatorConsumer; 67}; 68 69#endif // PACKAGE_INFO_VIEW_H 70