* Copyright 2013-2014, Stephan Aßmus <superstippi@gmx.de>.
* Copyright 2020-2025, Andrew Lindesay <apl@lindesay.co.nz>
* All rights reserved. Distributed under the terms of the MIT License.
*/
#ifndef PACKAGE_INFO_VIEW_H
#define PACKAGE_INFO_VIEW_H
#include <GroupView.h>
#include "Model.h"
#include "PackageInfo.h"
#include "PackageInfoListener.h"
#include "ProcessCoordinator.h"
class BCardLayout;
class BLocker;
class OnePackageMessagePackageListener;
class PackageActionView;
class PagesView;
class TitleView;
enum {
MSG_RATE_PACKAGE = 'rate',
MSG_SHOW_SCREENSHOT = 'shws',
};
class PackageInfoView : public BView {
public:
PackageInfoView(Model* model,
ProcessCoordinatorConsumer*
processCoordinatorConsumer);
virtual ~PackageInfoView();
virtual void AttachedToWindow();
void SetPackage(const PackageInfoRef& package);
const PackageInfoRef& Package() const
{ return fPackage; }
void Clear();
void HandleScreenshotCached(const ScreenshotCoordinate& coordinate);
void HandleIconsChanged();
void HandlePackagesChanged(const PackageInfoEvents& events);
private:
static const ScreenshotCoordinate
_ScreenshotThumbCoordinate(const PackageInfoRef& package);
void _SetPackageScreenshotThumb(const PackageInfoRef& package);
void _HandleScreenshotCached(const PackageInfoRef& package,
const ScreenshotCoordinate& coordinate);
void _HandlePackageChanged(const PackageInfoEvent& event);
private:
Model* fModel;
BCardLayout* fCardLayout;
TitleView* fTitleView;
PackageActionView* fPackageActionView;
PagesView* fPagesView;
PackageInfoRef fPackage;
OnePackageMessagePackageListener*
fPackageListener;
ProcessCoordinatorConsumer*
fProcessCoordinatorConsumer;
};
#endif