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