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