xref: /haiku/src/apps/haikudepot/ui/PackageInfoView.h (revision a5061ecec55353a5f394759473f1fd6df04890da)
1 /*
2  * Copyright 2013-2014, Stephan Aßmus <superstippi@gmx.de>.
3  * Copyright 2020-2021, 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 
17 class BCardLayout;
18 class BLocker;
19 class OnePackageMessagePackageListener;
20 class PackageActionView;
21 class PagesView;
22 class TitleView;
23 
24 enum {
25 	MSG_RATE_PACKAGE	= 'rate',
26 	MSG_SHOW_SCREENSHOT = 'shws',
27 };
28 
29 
30 class PackageInfoView : public BView {
31 public:
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 private:
46 			Model*				fModel;
47 
48 			BCardLayout*		fCardLayout;
49 			TitleView*			fTitleView;
50 			PackageActionView*	fPackageActionView;
51 			PagesView*			fPagesView;
52 
53 			PackageInfoRef		fPackage;
54 			OnePackageMessagePackageListener* fPackageListener;
55 };
56 
57 #endif // PACKAGE_INFO_VIEW_H
58