haiku/src/apps/resedit/ResourceData.h

62 lines
1.6 KiB
C++

/*
* Copyright (c) 2005-2010, Haiku, Inc.
* Distributed under the terms of the MIT license.
*
* Author:
* DarkWyrm <darkwyrm@gmail.com>
*/
#ifndef RESOURCE_DATA_H
#define RESOURCE_DATA_H
#include <fs_attr.h>
#include <Resources.h>
#include <Node.h>
#include <String.h>
class ResourceData
{
public:
ResourceData(void);
ResourceData(const type_code &code, const int32 &id,
const char *name, char *data,
const size_t &length);
ResourceData(const ResourceData &data);
~ResourceData(void);
void SetTo(const type_code &code, const int32 &id,
const char *name, char *data, const size_t &length);
ResourceData & operator=(const ResourceData &data);
bool SetFromResource(const int32 &index, BResources &res);
bool SetFromAttribute(const char *name, BNode &node);
type_code GetType(void) const { return fType; }
const char * GetTypeString(void) const { return fTypeString.String(); }
void SetType(const type_code &code);
int32 GetID(void) const { return fID; }
const char * GetIDString(void) const { return fIDString.String(); }
void SetID(const int32 &id);
const char * GetName(void) const { return fName.String(); }
void SetName(const char *name) { fName = name; }
char * GetData(void) { return fData; }
size_t GetLength(void) const { return fLength; }
void SetData(const char *data, const size_t &size);
bool IsAttribute(void) const { return fAttr; }
void SetAttribute(const bool &value) { fAttr = value; }
private:
int32 fType;
BString fTypeString;
int32 fID;
BString fIDString;
BString fName;
char *fData;
size_t fLength;
bool fAttr;
};
#endif