xref: /haiku/src/apps/installer/PackageViews.h (revision 93aeb8c3bc3f13cb1f282e3e749258a23790d947)
1 /*
2  * Copyright 2005, Jérôme DUVAL. All rights reserved.
3  * Distributed under the terms of the MIT License.
4  */
5 
6 #ifndef __PACKAGEVIEWS_H__
7 #define __PACKAGEVIEWS_H__
8 
9 #include <Bitmap.h>
10 #include <CheckBox.h>
11 #include <List.h>
12 #include <StringView.h>
13 #include <stdlib.h>
14 #include <string.h>
15 
16 class Group {
17 public:
18 	Group();
19 	virtual ~Group();
20 	void SetGroupName(const char *group) { strcpy(fGroup, group); };
21 	const char * GroupName() const { return fGroup; };
22 private:
23 	char fGroup[64];
24 };
25 
26 
27 class Package : public Group {
28 public:
29 	Package();
30 	virtual ~Package();
31 	void SetName(const char *name) { strcpy(fName, name);};
32 	void SetDescription(const char *description) { strcpy(fDescription, description);};
33 	void SetSize(const int32 size) { fSize = size; };
34 	void SetIcon(BBitmap * icon) { delete fIcon; fIcon = icon; };
35 	void SetOnByDefault(bool onByDefault) { fOnByDefault = onByDefault; };
36 	void SetAlwaysOn(bool alwaysOn) { fAlwaysOn = alwaysOn; };
37 	const char * Name() const { return fName; };
38 	const char * Description() const { return fDescription; };
39 	const int32 Size() const { return fSize; };
40 	void GetSizeAsString(char *string);
41 	const BBitmap * Icon() const { return fIcon; };
42 	bool OnByDefault() const { return fOnByDefault; };
43 	bool AlwaysOn() const { return fAlwaysOn; };
44 
45 	static Package *PackageFromEntry(BEntry &dir);
46 private:
47 	char fName[64];
48 	char fDescription[64];
49 	int32 fSize;
50 	BBitmap *fIcon;
51 	bool fAlwaysOn, fOnByDefault;
52 };
53 
54 
55 class PackageCheckBox : public BCheckBox {
56 	public:
57 		PackageCheckBox(BRect rect, Package *item);
58 		virtual ~PackageCheckBox();
59 		virtual void Draw(BRect update);
60 		Package *GetPackage() { return fPackage; };
61 	private:
62 		Package *fPackage;
63 };
64 
65 class GroupView : public BStringView {
66 	public:
67 		GroupView(BRect rect, Group *group);
68 		virtual ~GroupView();
69 	private:
70 		Group *fGroup;
71 
72 };
73 
74 
75 class PackagesView : public BView {
76 public:
77 	PackagesView(BRect rect, const char* name);
78 	virtual ~PackagesView();
79 	void Clean();
80 	void AddPackages(BList &list, BMessage *msg);
81 	void GetTotalSizeAsString(char *string);
82 private:
83 	BList fViews;
84 };
85 
86 #endif	/* __PACKAGEVIEWS_H__ */
87