* Copyright (c) 2005-2010, Haiku, Inc.
* Distributed under the terms of the MIT license.
*
* Author:
* DarkWyrm <darkwyrm@gmail.com>
*/
#ifndef RESFIELDS_H
#define RESFIELDS_H
#include <ColumnTypes.h>
#include <Resources.h>
class ResourceData;
class TypeCodeField : public BStringField
{
public:
TypeCodeField(const type_code &code, ResourceData *data);
type_code GetTypeCode(void) const { return fTypeCode; }
ResourceData * GetResourceData(void) const { return fData; }
private:
type_code fTypeCode;
ResourceData *fData;
};
class PreviewField : public BField
{
public:
PreviewField(void);
virtual ~PreviewField(void);
virtual void DrawField(BRect rect, BView* parent) = 0;
virtual void SetData(char *data, const size_t &length) = 0;
};
class BitmapPreviewField : public PreviewField
{
public:
BitmapPreviewField(BBitmap *bitmap);
virtual ~BitmapPreviewField(void);
virtual void DrawField(BRect rect, BView* parent);
virtual void SetData(char *data, const size_t &length);
private:
BBitmap *fBitmap;
};
class IntegerPreviewField : public PreviewField
{
public:
IntegerPreviewField(const int64 &value);
virtual ~IntegerPreviewField(void);
virtual void DrawField(BRect rect, BView* parent);
virtual void SetData(char *data, const size_t &length);
private:
int64 fValue;
};
class StringPreviewField : public PreviewField
{
public:
StringPreviewField(const char *string);
virtual ~StringPreviewField(void);
virtual void DrawField(BRect rect, BView* parent);
virtual void SetData(char *data, const size_t &length);
private:
BString fString;
BString fClipped;
};
BString MakeTypeString(int32 type);
#endif