btrfs: Attempt to fix GCC2 build.
[haiku.git] / src / apps / installer / PackageViews.h
blobd676b6b91d33990ee196ad7ba7cc2f3a9ce3402d
1 /*
2 * Copyright 2005, Jérôme DUVAL. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 */
5 #ifndef __PACKAGEVIEWS_H__
6 #define __PACKAGEVIEWS_H__
8 #include <stdlib.h>
9 #include <string.h>
11 #include <Bitmap.h>
12 #include <CheckBox.h>
13 #include <Entry.h>
14 #include <List.h>
15 #include <StringView.h>
18 class Group {
19 public:
20 Group();
21 virtual ~Group();
22 void SetGroupName(const char* group)
23 { strcpy(fGroup, group); }
24 const char* GroupName() const
25 { return fGroup; }
26 private:
27 char fGroup[64];
31 class Package : public Group {
32 public:
33 Package(const char* folder);
34 virtual ~Package();
36 void SetFolder(const char* folder)
37 { strcpy(fFolder, folder); }
38 void SetName(const char* name)
39 { strcpy(fName, name); }
40 void SetDescription(const char* description)
41 { strcpy(fDescription, description); }
42 void SetSize(const int32 size)
43 { fSize = size; }
44 void SetIcon(BBitmap* icon)
45 { delete fIcon; fIcon = icon; }
46 void SetOnByDefault(bool onByDefault)
47 { fOnByDefault = onByDefault; }
48 void SetAlwaysOn(bool alwaysOn)
49 { fAlwaysOn = alwaysOn; }
50 const char* Folder() const
51 { return fFolder; }
52 const char* Name() const
53 { return fName; }
54 const char* Description() const
55 { return fDescription; }
56 const int32 Size() const
57 { return fSize; }
58 void GetSizeAsString(char* string,
59 size_t stringSize);
60 const BBitmap* Icon() const
61 { return fIcon; }
62 bool OnByDefault() const
63 { return fOnByDefault; }
64 bool AlwaysOn() const
65 { return fAlwaysOn; }
67 static Package* PackageFromEntry(BEntry &dir);
69 private:
70 char fFolder[64];
71 char fName[64];
72 char fDescription[64];
73 int32 fSize;
74 BBitmap* fIcon;
75 bool fAlwaysOn;
76 bool fOnByDefault;
80 class PackageCheckBox : public BCheckBox {
81 public:
82 PackageCheckBox(BRect rect, Package* item);
83 virtual ~PackageCheckBox();
85 virtual void Draw(BRect updateRect);
86 virtual void MouseMoved(BPoint point, uint32 transit,
87 const BMessage* dragMessage);
89 Package* GetPackage()
90 { return fPackage; };
91 private:
92 Package* fPackage;
96 class GroupView : public BStringView {
97 public:
98 GroupView(BRect rect, Group* group);
99 virtual ~GroupView();
101 private:
102 Group* fGroup;
106 class PackagesView : public BView {
107 public:
108 PackagesView(BRect rect, const char* name);
109 PackagesView(const char* name);
110 virtual ~PackagesView();
112 void Clean();
113 void AddPackages(BList& list, BMessage* message);
114 void GetTotalSizeAsString(char* string,
115 size_t stringSize);
116 void GetPackagesToInstall(BList* list, int32* size);
118 virtual void FrameResized(float width, float height);
119 virtual void Draw(BRect updateRect);
120 virtual void GetPreferredSize(float* _width, float* _height);
121 virtual BSize MaxSize();
123 private:
124 BList fViews;
127 #endif // __PACKAGEVIEWS_H__