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__ 7 8 #include <stdlib.h> 9 #include <string.h> 10 11 #include <Bitmap.h> 12 #include <CheckBox.h> 13 #include <Entry.h> 14 #include <List.h> 15 #include <Path.h> 16 #include <String.h> 17 #include <StringView.h> 18 19 20 class Group { 21 public: 22 Group(); 23 virtual ~Group(); SetGroupName(const char * group)24 void SetGroupName(const char* group) 25 { strcpy(fGroup, group); } GroupName()26 const char* GroupName() const 27 { return fGroup; } 28 private: 29 char fGroup[64]; 30 }; 31 32 33 class Package : public Group { 34 public: 35 Package(const BPath &path); 36 virtual ~Package(); 37 SetPath(const BPath & path)38 void SetPath(const BPath &path) 39 { fPath = path; } SetName(const BString name)40 void SetName(const BString name) 41 { fName = name; } SetDescription(const BString description)42 void SetDescription(const BString description) 43 { fDescription = description; } SetSize(const int32 size)44 void SetSize(const int32 size) 45 { fSize = size; } SetIcon(BBitmap * icon)46 void SetIcon(BBitmap* icon) 47 { delete fIcon; fIcon = icon; } SetOnByDefault(bool onByDefault)48 void SetOnByDefault(bool onByDefault) 49 { fOnByDefault = onByDefault; } SetAlwaysOn(bool alwaysOn)50 void SetAlwaysOn(bool alwaysOn) 51 { fAlwaysOn = alwaysOn; } Path()52 BPath Path() const 53 { return fPath; } Name()54 BString Name() const 55 { return fName; } Description()56 BString Description() const 57 { return fDescription; } Size()58 const int32 Size() const 59 { return fSize; } 60 void GetSizeAsString(char* string, 61 size_t stringSize); Icon()62 const BBitmap* Icon() const 63 { return fIcon; } OnByDefault()64 bool OnByDefault() const 65 { return fOnByDefault; } AlwaysOn()66 bool AlwaysOn() const 67 { return fAlwaysOn; } 68 69 static Package* PackageFromEntry(BEntry &dir); 70 71 private: 72 BPath fPath; 73 BString fName; 74 BString fDescription; 75 int32 fSize; 76 BBitmap* fIcon; 77 bool fAlwaysOn; 78 bool fOnByDefault; 79 }; 80 81 82 class PackageCheckBox : public BCheckBox { 83 public: 84 PackageCheckBox(Package* item); 85 virtual ~PackageCheckBox(); 86 87 virtual void Draw(BRect updateRect); 88 virtual void MouseMoved(BPoint point, uint32 transit, 89 const BMessage* dragMessage); 90 GetPackage()91 Package* GetPackage() 92 { return fPackage; }; 93 private: 94 Package* fPackage; 95 }; 96 97 98 class GroupView : public BStringView { 99 public: 100 GroupView(Group* group); 101 virtual ~GroupView(); 102 103 private: 104 Group* fGroup; 105 }; 106 107 108 class PackagesView : public BView { 109 public: 110 PackagesView(const char* name); 111 virtual ~PackagesView(); 112 113 void Clean(); 114 void AddPackages(BList& list, BMessage* message); 115 void GetTotalSizeAsString(char* string, 116 size_t stringSize); 117 void GetPackagesToInstall(BList* list, int32* size); 118 119 virtual void Draw(BRect updateRect); 120 }; 121 122 #endif // __PACKAGEVIEWS_H__ 123