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