diff options
Diffstat (limited to 'simulator/app/PhoneButton.cpp')
| -rw-r--r-- | simulator/app/PhoneButton.cpp | 180 |
1 files changed, 0 insertions, 180 deletions
diff --git a/simulator/app/PhoneButton.cpp b/simulator/app/PhoneButton.cpp deleted file mode 100644 index eca7ddcb1..000000000 --- a/simulator/app/PhoneButton.cpp +++ /dev/null @@ -1,180 +0,0 @@ -// -// Copyright 2005 The Android Open Source Project -// -// Simulated device data. -// - -// For compilers that support precompilation, include "wx/wx.h". -#include "wx/wxprec.h" - -// Otherwise, include all standard headers -#ifndef WX_PRECOMP -# include "wx/wx.h" -#endif -#include "wx/image.h" // needed for Windows build - -#include "LinuxKeys.h" -#include "PhoneButton.h" - -using namespace android; - - -/* - * Create a PhoneButton without a backing image. - */ -bool PhoneButton::Create(const char* label) -{ - assert(!mHasImage); // quick check for re-use - - mKeyCode = LookupKeyCode(label); - if (mKeyCode == kKeyCodeUnknown) { - fprintf(stderr, "WARNING: key code '%s' not recognized\n", label); - // keep going - } - - return true; -} - -/* - * Create a PhoneButton with an associated image. Don't load the image yet. - */ -bool PhoneButton::Create(const char* label, const char* imageFileName, - int x, int y) -{ - if (!Create(label)) - return false; - - if (mSelectedImage.Create(imageFileName, x, y)) - mHasImage = true; - else - fprintf(stderr, "Warning: image create (%s, %d, %d) failed\n", - imageFileName, x, y); - - return true; -} - -/* - * Load the image, if any. - */ -bool PhoneButton::LoadResources(void) -{ - if (!mHasImage) - return true; // no image associated with this button - - bool result = mSelectedImage.LoadResources(); - if (result) - CreateHighlightedBitmap(); - return result; -} - -/* - * Unload the image if we loaded one. - */ -bool PhoneButton::UnloadResources(void) -{ - if (!mHasImage) - return true; - - return mSelectedImage.UnloadResources(); -} - -/* use an inline instead of macro so we don't evaluate args multiple times */ -static inline int MinVal(int a, int b) { return (a < b ? a : b); } - -/* - * Create the "highlighted" bitmap from the "selected" image. - */ -void PhoneButton::CreateHighlightedBitmap(void) -{ - wxBitmap* src = mSelectedImage.GetBitmap(); - assert(src != NULL); - wxImage tmpImage = src->ConvertToImage(); - - unsigned char* pRGB = tmpImage.GetData(); // top-left RGBRGB... - int x, y; - - /* - * Modify the color used for the "highlight" image. - */ - for (y = tmpImage.GetHeight()-1; y >= 0; --y) { - for (x = tmpImage.GetWidth()-1; x >= 0; --x) { - *(pRGB) = MinVal(*(pRGB) + *(pRGB) / 8, 255); - *(pRGB+1) = MinVal(*(pRGB+1) + *(pRGB+1) / 8, 255); - *(pRGB+2) = *(pRGB+2) * 5 / 8; - - pRGB += 3; - } - } - - mHighlightedBitmap = wxBitmap(tmpImage); -} - -/* - * Check to see if the button "collides" with the specified point. - * - * This is currently a simple rectangle check, but could be modified - * to take image transparency into account. - */ -bool PhoneButton::CheckCollision(int x, int y) const -{ - if (!mHasImage) - return false; - - return (x >= mSelectedImage.GetX() && - x < mSelectedImage.GetX() + mSelectedImage.GetWidth() && - y >= mSelectedImage.GetY() && - y < mSelectedImage.GetY() + mSelectedImage.GetHeight()); -} - -/* - * Look up a key code based on a string. - * - * Returns kKeyCodeUnknown if the label doesn't match anything. - */ -KeyCode PhoneButton::LookupKeyCode(const char* label) const -{ - static const struct { - const char* label; - int keyCode; - } codeList[] = { - { "soft-left", KEY_MENU }, - { "soft-right", KEY_KBDILLUMUP }, - { "home", KEY_HOME }, - { "back", KEY_BACK }, - { "call", KEY_F3 }, - { "phone-dial", KEY_F3 }, - { "end-call", KEY_F4 }, - { "phone-hangup", KEY_F4 }, - { "0", KEY_0 }, - { "1", KEY_1 }, - { "2", KEY_2 }, - { "3", KEY_3 }, - { "4", KEY_4 }, - { "5", KEY_5 }, - { "6", KEY_6 }, - { "7", KEY_7 }, - { "8", KEY_8 }, - { "9", KEY_9 }, - { "star", KEY_SWITCHVIDEOMODE }, - { "pound", KEY_KBDILLUMTOGGLE }, - { "dpad-up", KEY_UP }, - { "dpad-down", KEY_DOWN }, - { "dpad-left", KEY_LEFT }, - { "dpad-right", KEY_RIGHT }, - { "dpad-center", KEY_REPLY }, - { "volume-up", KEY_VOLUMEUP }, - { "volume-down", KEY_VOLUMEDOWN }, - { "power", KEY_POWER }, - { "camera", KEY_CAMERA }, - //{ "clear", kKeyCodeClear }, - }; - const int numCodes = sizeof(codeList) / sizeof(codeList[0]); - - for (int i = 0; i < numCodes; i++) { - if (strcmp(label, codeList[i].label) == 0) - return (KeyCode) codeList[i].keyCode; - } - - return kKeyCodeUnknown; -}; - |
