74 lines
1.9 KiB
C++
74 lines
1.9 KiB
C++
//
|
|
// Copyright 2005 The Android Open Source Project
|
|
//
|
|
// Simulated device definition.
|
|
//
|
|
#ifndef _SIM_LOADABLE_IMAGE_H
|
|
#define _SIM_LOADABLE_IMAGE_H
|
|
|
|
#include "utils.h"
|
|
|
|
/*
|
|
* Holds an image that may or may not be loaded at present. The image
|
|
* has an (x,y) offset.
|
|
*/
|
|
class LoadableImage {
|
|
public:
|
|
LoadableImage(void)
|
|
: mName(NULL), mpBitmap(NULL), mX(-1), mY(-1), mWidth(-1), mHeight(-1)
|
|
{}
|
|
virtual ~LoadableImage(void) {
|
|
delete[] mName;
|
|
delete mpBitmap;
|
|
}
|
|
LoadableImage(const LoadableImage& src)
|
|
: mName(NULL), mpBitmap(NULL)
|
|
{
|
|
CopyMembers(src);
|
|
}
|
|
LoadableImage& operator=(const LoadableImage& src) {
|
|
if (this != &src) // self-assignment
|
|
CopyMembers(src);
|
|
return *this;
|
|
}
|
|
void CopyMembers(const LoadableImage& src) {
|
|
// Need to delete resources in case we're using operator= and
|
|
// assigning into an object that already holds some.
|
|
delete mName;
|
|
delete mpBitmap;
|
|
mName = android::strdupNew(src.mName);
|
|
if (src.mpBitmap == NULL)
|
|
mpBitmap = NULL;
|
|
else
|
|
mpBitmap = new wxBitmap(*(src.mpBitmap));
|
|
mX = src.mX;
|
|
mY = src.mY;
|
|
mWidth = src.mWidth;
|
|
mHeight = src.mHeight;
|
|
}
|
|
|
|
virtual bool Create(const char* fileName, int x, int y);
|
|
|
|
// load or unload the bitmap
|
|
bool LoadResources(void);
|
|
bool UnloadResources(void);
|
|
|
|
// accessors
|
|
int GetX(void) const { return mX; }
|
|
int GetY(void) const { return mY; }
|
|
int GetWidth(void) const { return mWidth; }
|
|
int GetHeight(void) const { return mHeight; }
|
|
wxBitmap* GetBitmap(void) const { return mpBitmap; }
|
|
|
|
private:
|
|
char* mName;
|
|
wxBitmap* mpBitmap;
|
|
|
|
int mX; // position relative to phone image
|
|
int mY;
|
|
int mWidth; // from image (cached values)
|
|
int mHeight;
|
|
};
|
|
|
|
#endif // _SIM_LOADABLE_IMAGE_H
|