Button.h
Go to the documentation of this file.00001 00011 #ifndef __Button_H__ 00012 #define __Button_H__ 00013 00014 // Includes 00015 #include "StringId.h" 00016 #include "Sprite.h" 00017 #include "Array.h" 00018 #include "Resource_BitmapStrip.h" 00019 00020 // Forward declares 00021 class SpriteManager; 00022 00023 // Button 00024 class Button:public Sprite 00025 { 00026 public: 00027 Button(); 00028 Button(SpriteManager* spriteManager); 00029 virtual ~Button(); 00030 00031 enum State 00032 { 00033 State_Normal, 00034 State_Highlighted, 00035 State_Pressed, 00036 State_Disabled, 00037 00038 States_Count, 00039 }; 00040 00041 virtual const Resource_BitmapStrip& GetBitmap() const; 00042 virtual const Resource_BitmapStrip& GetBitmap(State state) const; 00043 virtual void SetBitmap(State state, const Resource_BitmapStrip& bitmapStrip); 00044 00045 virtual State GetState() const; 00046 virtual void SetState(State state); 00047 00048 virtual bool IsEnabled() const; 00049 virtual void SetEnabled(bool enabled); 00050 00051 virtual StringId GetEventId() const; 00052 virtual void SetEventId(StringId eventId); 00053 00054 virtual void* GetEventUserData() const; 00055 virtual void SetEventUserData(void* userData); 00056 00057 virtual float GetCrossFadeTime() const; 00058 virtual void SetCrossFadeTime(float time = 0.0f ); 00059 00060 protected: 00061 friend class SpriteAction_ButtonStateCrossFade; 00062 00063 virtual void SetStateCrossFadeAlpha(unsigned char fromAlpha, unsigned char toAlpha); 00064 00065 virtual void Render(Bitmap& bitmap); 00066 virtual bool OnMouseOver(int x, int y, bool button, StringId& eventId, void*& userData); 00067 00068 00069 private: 00070 State state_; 00071 Resource_BitmapStrip bitmapStrips_[States_Count]; 00072 bool enabled_; 00073 bool highlighted_; 00074 StringId eventId_; 00075 void* eventUserData_; 00076 float stateCrossFadeTime_; 00077 State stateCrossFadeFromState_; 00078 unsigned char stateCrossFadeFromAlpha_; 00079 unsigned char stateCrossFadeToAlpha_; 00080 }; 00081 00082 00083 #endif /* __Button_H__ */ 00084
Reproduction/republishing of any material on this site without permission is strictly prohibited.
