HaikuDepot: PackageInfo, added SharedBitmap and BitmapRef classes
* Use in UserInfo for avatar field. * Use in PackageInfo for icon. * Use in PackageListView.
This commit is contained in:
parent
3a98600e80
commit
cdbf478fbf
|
@ -153,6 +153,7 @@ MainWindow::_InitDummyModel()
|
||||||
DepotInfo depot(B_TRANSLATE("Default"));
|
DepotInfo depot(B_TRANSLATE("Default"));
|
||||||
|
|
||||||
PackageInfo wonderbrush(
|
PackageInfo wonderbrush(
|
||||||
|
BitmapRef(),
|
||||||
"WonderBrush",
|
"WonderBrush",
|
||||||
"2.1.2",
|
"2.1.2",
|
||||||
"A vector based graphics editor.",
|
"A vector based graphics editor.",
|
||||||
|
@ -171,6 +172,7 @@ MainWindow::_InitDummyModel()
|
||||||
depot.AddPackage(wonderbrush);
|
depot.AddPackage(wonderbrush);
|
||||||
|
|
||||||
PackageInfo paladin(
|
PackageInfo paladin(
|
||||||
|
BitmapRef(),
|
||||||
"Paladin",
|
"Paladin",
|
||||||
"1.2.0",
|
"1.2.0",
|
||||||
"A C/C++ IDE based on Pe.",
|
"A C/C++ IDE based on Pe.",
|
||||||
|
|
|
@ -7,26 +7,55 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include <Bitmap.h>
|
||||||
|
|
||||||
|
|
||||||
|
// #pragma mark - SharedBitmap
|
||||||
|
|
||||||
|
|
||||||
|
SharedBitmap::SharedBitmap(BBitmap* bitmap)
|
||||||
|
:
|
||||||
|
fBitmap(bitmap)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
SharedBitmap::~SharedBitmap()
|
||||||
|
{
|
||||||
|
delete fBitmap;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark - UserInfo
|
// #pragma mark - UserInfo
|
||||||
|
|
||||||
|
|
||||||
UserInfo::UserInfo()
|
UserInfo::UserInfo()
|
||||||
:
|
:
|
||||||
|
fAvatar(),
|
||||||
fNickName()
|
fNickName()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
UserInfo::UserInfo(const BString& fNickName)
|
UserInfo::UserInfo(const BString& nickName)
|
||||||
:
|
:
|
||||||
fNickName(fNickName)
|
fAvatar(),
|
||||||
|
fNickName(nickName)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
UserInfo::UserInfo(const BitmapRef& avatar, const BString& nickName)
|
||||||
|
:
|
||||||
|
fAvatar(avatar),
|
||||||
|
fNickName(nickName)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
UserInfo::UserInfo(const UserInfo& other)
|
UserInfo::UserInfo(const UserInfo& other)
|
||||||
:
|
:
|
||||||
|
fAvatar(other.fAvatar),
|
||||||
fNickName(other.fNickName)
|
fNickName(other.fNickName)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -35,6 +64,7 @@ UserInfo::UserInfo(const UserInfo& other)
|
||||||
UserInfo&
|
UserInfo&
|
||||||
UserInfo::operator=(const UserInfo& other)
|
UserInfo::operator=(const UserInfo& other)
|
||||||
{
|
{
|
||||||
|
fAvatar = other.fAvatar;
|
||||||
fNickName = other.fNickName;
|
fNickName = other.fNickName;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
@ -43,7 +73,8 @@ UserInfo::operator=(const UserInfo& other)
|
||||||
bool
|
bool
|
||||||
UserInfo::operator==(const UserInfo& other) const
|
UserInfo::operator==(const UserInfo& other) const
|
||||||
{
|
{
|
||||||
return fNickName == other.fNickName;
|
return fAvatar == other.fAvatar
|
||||||
|
&& fNickName == other.fNickName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -128,6 +159,7 @@ UserRating::operator!=(const UserRating& other) const
|
||||||
|
|
||||||
PackageInfo::PackageInfo()
|
PackageInfo::PackageInfo()
|
||||||
:
|
:
|
||||||
|
fIcon(),
|
||||||
fTitle(),
|
fTitle(),
|
||||||
fVersion(),
|
fVersion(),
|
||||||
fShortDescription(),
|
fShortDescription(),
|
||||||
|
@ -138,10 +170,11 @@ PackageInfo::PackageInfo()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
PackageInfo::PackageInfo(const BString& title, const BString& version,
|
PackageInfo::PackageInfo(const BitmapRef& icon, const BString& title,
|
||||||
const BString& shortDescription, const BString& fullDescription,
|
const BString& version, const BString& shortDescription,
|
||||||
const BString& changelog)
|
const BString& fullDescription, const BString& changelog)
|
||||||
:
|
:
|
||||||
|
fIcon(icon),
|
||||||
fTitle(title),
|
fTitle(title),
|
||||||
fVersion(version),
|
fVersion(version),
|
||||||
fShortDescription(shortDescription),
|
fShortDescription(shortDescription),
|
||||||
|
@ -154,6 +187,7 @@ PackageInfo::PackageInfo(const BString& title, const BString& version,
|
||||||
|
|
||||||
PackageInfo::PackageInfo(const PackageInfo& other)
|
PackageInfo::PackageInfo(const PackageInfo& other)
|
||||||
:
|
:
|
||||||
|
fIcon(other.fIcon),
|
||||||
fTitle(other.fTitle),
|
fTitle(other.fTitle),
|
||||||
fVersion(other.fVersion),
|
fVersion(other.fVersion),
|
||||||
fShortDescription(other.fShortDescription),
|
fShortDescription(other.fShortDescription),
|
||||||
|
@ -167,6 +201,7 @@ PackageInfo::PackageInfo(const PackageInfo& other)
|
||||||
PackageInfo&
|
PackageInfo&
|
||||||
PackageInfo::operator=(const PackageInfo& other)
|
PackageInfo::operator=(const PackageInfo& other)
|
||||||
{
|
{
|
||||||
|
fIcon = other.fIcon;
|
||||||
fTitle = other.fTitle;
|
fTitle = other.fTitle;
|
||||||
fVersion = other.fVersion;
|
fVersion = other.fVersion;
|
||||||
fShortDescription = other.fShortDescription;
|
fShortDescription = other.fShortDescription;
|
||||||
|
@ -180,7 +215,8 @@ PackageInfo::operator=(const PackageInfo& other)
|
||||||
bool
|
bool
|
||||||
PackageInfo::operator==(const PackageInfo& other) const
|
PackageInfo::operator==(const PackageInfo& other) const
|
||||||
{
|
{
|
||||||
return fTitle == other.fTitle
|
return fIcon == other.fIcon
|
||||||
|
&& fTitle == other.fTitle
|
||||||
&& fVersion == other.fVersion
|
&& fVersion == other.fVersion
|
||||||
&& fShortDescription == other.fShortDescription
|
&& fShortDescription == other.fShortDescription
|
||||||
&& fFullDescription == other.fFullDescription
|
&& fFullDescription == other.fFullDescription
|
||||||
|
|
|
@ -6,24 +6,50 @@
|
||||||
#define PACKAGE_INFO_H
|
#define PACKAGE_INFO_H
|
||||||
|
|
||||||
|
|
||||||
|
#include <Referenceable.h>
|
||||||
#include <String.h>
|
#include <String.h>
|
||||||
|
|
||||||
#include "List.h"
|
#include "List.h"
|
||||||
|
|
||||||
|
|
||||||
|
class BBitmap;
|
||||||
|
|
||||||
|
|
||||||
|
class SharedBitmap : public BReferenceable {
|
||||||
|
public:
|
||||||
|
SharedBitmap(BBitmap* bitmap);
|
||||||
|
~SharedBitmap();
|
||||||
|
|
||||||
|
const BBitmap* Bitmap() const
|
||||||
|
{ return fBitmap; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
BBitmap* fBitmap;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
typedef BReference<SharedBitmap> BitmapRef;
|
||||||
|
|
||||||
|
|
||||||
class UserInfo {
|
class UserInfo {
|
||||||
public:
|
public:
|
||||||
UserInfo();
|
UserInfo();
|
||||||
UserInfo(const BString& nickName);
|
UserInfo(const BString& nickName);
|
||||||
|
UserInfo(const BitmapRef& avatar,
|
||||||
|
const BString& nickName);
|
||||||
UserInfo(const UserInfo& other);
|
UserInfo(const UserInfo& other);
|
||||||
|
|
||||||
UserInfo& operator=(const UserInfo& other);
|
UserInfo& operator=(const UserInfo& other);
|
||||||
bool operator==(const UserInfo& other) const;
|
bool operator==(const UserInfo& other) const;
|
||||||
bool operator!=(const UserInfo& other) const;
|
bool operator!=(const UserInfo& other) const;
|
||||||
|
|
||||||
const BString& NickName() const;
|
const BitmapRef& Avatar() const
|
||||||
|
{ return fAvatar; }
|
||||||
|
const BString& NickName() const
|
||||||
|
{ return fNickName; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
BitmapRef fAvatar;
|
||||||
BString fNickName;
|
BString fNickName;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -68,7 +94,8 @@ typedef List<UserRating, false> UserRatingList;
|
||||||
class PackageInfo {
|
class PackageInfo {
|
||||||
public:
|
public:
|
||||||
PackageInfo();
|
PackageInfo();
|
||||||
PackageInfo(const BString& title,
|
PackageInfo(const BitmapRef& icon,
|
||||||
|
const BString& title,
|
||||||
const BString& version,
|
const BString& version,
|
||||||
const BString& shortDescription,
|
const BString& shortDescription,
|
||||||
const BString& fullDescription,
|
const BString& fullDescription,
|
||||||
|
@ -79,6 +106,8 @@ public:
|
||||||
bool operator==(const PackageInfo& other) const;
|
bool operator==(const PackageInfo& other) const;
|
||||||
bool operator!=(const PackageInfo& other) const;
|
bool operator!=(const PackageInfo& other) const;
|
||||||
|
|
||||||
|
const BitmapRef& Icon() const
|
||||||
|
{ return fIcon; }
|
||||||
const BString& Title() const
|
const BString& Title() const
|
||||||
{ return fTitle; }
|
{ return fTitle; }
|
||||||
const BString& Version() const
|
const BString& Version() const
|
||||||
|
@ -93,6 +122,7 @@ public:
|
||||||
bool AddUserRating(const UserRating& rating);
|
bool AddUserRating(const UserRating& rating);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
BitmapRef fIcon;
|
||||||
BString fTitle;
|
BString fTitle;
|
||||||
BString fVersion;
|
BString fVersion;
|
||||||
BString fShortDescription;
|
BString fShortDescription;
|
||||||
|
|
|
@ -22,16 +22,16 @@
|
||||||
class BBitmapStringField : public BStringField {
|
class BBitmapStringField : public BStringField {
|
||||||
typedef BStringField Inherited;
|
typedef BStringField Inherited;
|
||||||
public:
|
public:
|
||||||
BBitmapStringField(BBitmap* bitmap,
|
BBitmapStringField(const BBitmap* bitmap,
|
||||||
const char* string);
|
const char* string);
|
||||||
virtual ~BBitmapStringField();
|
virtual ~BBitmapStringField();
|
||||||
|
|
||||||
void SetBitmap(BBitmap* bitmap);
|
void SetBitmap(const BBitmap* bitmap);
|
||||||
const BBitmap* Bitmap() const
|
const BBitmap* Bitmap() const
|
||||||
{ return fBitmap; }
|
{ return fBitmap; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
BBitmap* fBitmap;
|
const BBitmap* fBitmap;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -79,7 +79,8 @@ private:
|
||||||
|
|
||||||
|
|
||||||
// TODO: Code-duplication with DriveSetup PartitionList.cpp
|
// TODO: Code-duplication with DriveSetup PartitionList.cpp
|
||||||
BBitmapStringField::BBitmapStringField(BBitmap* bitmap, const char* string)
|
BBitmapStringField::BBitmapStringField(const BBitmap* bitmap,
|
||||||
|
const char* string)
|
||||||
:
|
:
|
||||||
Inherited(string),
|
Inherited(string),
|
||||||
fBitmap(bitmap)
|
fBitmap(bitmap)
|
||||||
|
@ -89,14 +90,12 @@ BBitmapStringField::BBitmapStringField(BBitmap* bitmap, const char* string)
|
||||||
|
|
||||||
BBitmapStringField::~BBitmapStringField()
|
BBitmapStringField::~BBitmapStringField()
|
||||||
{
|
{
|
||||||
delete fBitmap;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
BBitmapStringField::SetBitmap(BBitmap* bitmap)
|
BBitmapStringField::SetBitmap(const BBitmap* bitmap)
|
||||||
{
|
{
|
||||||
delete fBitmap;
|
|
||||||
fBitmap = bitmap;
|
fBitmap = bitmap;
|
||||||
// TODO: cause a redraw?
|
// TODO: cause a redraw?
|
||||||
}
|
}
|
||||||
|
@ -248,11 +247,11 @@ PackageRow::PackageRow(const PackageInfo& package)
|
||||||
Inherited(),
|
Inherited(),
|
||||||
fPackage(package)
|
fPackage(package)
|
||||||
{
|
{
|
||||||
// Package icon
|
// Package icon and title
|
||||||
|
// NOTE: The icon BBitmap is referenced by the fPackage member.
|
||||||
BBitmap* icon = NULL;
|
const BBitmap* icon = NULL;
|
||||||
// TODO: Fetch package icon
|
if (package.Icon().Get() != NULL)
|
||||||
|
icon = package.Icon()->Bitmap();
|
||||||
SetField(new BBitmapStringField(icon, package.Title()), kTitleColumn);
|
SetField(new BBitmapStringField(icon, package.Title()), kTitleColumn);
|
||||||
|
|
||||||
// Rating
|
// Rating
|
||||||
|
|
Loading…
Reference in New Issue