81 lines
2.5 KiB
C++
81 lines
2.5 KiB
C++
//
|
|
// Copyright 2005 The Android Open Source Project
|
|
//
|
|
// Phone button image holder.
|
|
//
|
|
#ifndef _SIM_PHONE_BUTTON_H
|
|
#define _SIM_PHONE_BUTTON_H
|
|
|
|
#include "LoadableImage.h"
|
|
#include <ui/KeycodeLabels.h>
|
|
|
|
/*
|
|
* One button on a phone. Position, size, and a highlight graphic. The
|
|
* coordinates are relative to the device graphic.
|
|
*
|
|
* We now have a "highlighted" graphic for mouse-overs and a "selected"
|
|
* graphic for button presses. We assume they have the same dimensions.
|
|
* We currently assume that either both or neither exist, because we
|
|
* generate one from the other.
|
|
*/
|
|
class PhoneButton {
|
|
public:
|
|
PhoneButton(void)
|
|
: mHasImage(false), mKeyCode(kKeyCodeUnknown)
|
|
{}
|
|
virtual ~PhoneButton(void) {}
|
|
PhoneButton(const PhoneButton& src)
|
|
: mHasImage(false), mKeyCode(kKeyCodeUnknown)
|
|
{
|
|
CopyMembers(src);
|
|
}
|
|
PhoneButton& operator=(const PhoneButton& src) {
|
|
if (this != &src) {
|
|
// Unload any resources in case we're using operator= to
|
|
// assign to an existing object.
|
|
mSelectedImage.UnloadResources();
|
|
// Copy fields.
|
|
CopyMembers(src);
|
|
}
|
|
return *this;
|
|
}
|
|
void CopyMembers(const PhoneButton& src) {
|
|
mSelectedImage = src.mSelectedImage;
|
|
mHighlightedBitmap = src.mHighlightedBitmap;
|
|
mHasImage = src.mHasImage;
|
|
mKeyCode = src.mKeyCode;
|
|
}
|
|
|
|
/* finish construction of PhoneButton, with or without an image */
|
|
bool Create(const char* label);
|
|
bool Create(const char* label, const char* imageFileName, int x, int y);
|
|
|
|
int GetX(void) const { return mSelectedImage.GetX(); }
|
|
int GetY(void) const { return mSelectedImage.GetY(); }
|
|
int GetWidth(void) const { return mSelectedImage.GetWidth(); }
|
|
int GetHeight(void) const { return mSelectedImage.GetHeight(); }
|
|
wxBitmap* GetHighlightedBitmap(void) { return &mHighlightedBitmap; }
|
|
wxBitmap* GetSelectedBitmap(void) const {
|
|
return mSelectedImage.GetBitmap();
|
|
}
|
|
|
|
bool CheckCollision(int x, int y) const;
|
|
KeyCode GetKeyCode(void) const { return mKeyCode; }
|
|
|
|
// load or unload the image bitmap, if any
|
|
bool LoadResources(void);
|
|
bool UnloadResources(void);
|
|
|
|
private:
|
|
void CreateHighlightedBitmap(void);
|
|
KeyCode LookupKeyCode(const char* label) const;
|
|
|
|
LoadableImage mSelectedImage;
|
|
wxBitmap mHighlightedBitmap;
|
|
bool mHasImage; // both exist or neither exist
|
|
|
|
KeyCode mKeyCode;
|
|
};
|
|
|
|
#endif // _SIM_PHONE_BUTTON_H
|