// // 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