auto import from //depot/cupcake/@135843
diff --git a/simulator/app/LoadableImage.h b/simulator/app/LoadableImage.h
new file mode 100644
index 0000000..368d520
--- /dev/null
+++ b/simulator/app/LoadableImage.h
@@ -0,0 +1,73 @@
+//
+// 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