00001 #ifndef __CRepeatingButton__ 00002 #define __CRepeatingButton__ 00003 00004 #include "CRolloverButton.hpp" 00005 #include "../Basics/ITimedObject.hpp" 00006 00007 // =========================================================================== 00008 00009 using Exponent::GUI::Controls::CRolloverButton; 00010 using Exponent::GUI::Basics::ITimedObject; 00011 00012 // =========================================================================== 00013 00014 namespace Exponent 00015 { 00016 namespace GUI 00017 { 00018 namespace Controls 00019 { 00037 class CRepeatingButton : public CRolloverButton, public ITimedObject 00038 { 00040 EXPONENT_CLASS_DECLARATION; 00043 // =========================================================================== 00044 00045 public: 00046 00047 // =========================================================================== 00048 00056 CRepeatingButton(IControlRoot *root, const long uniqueId, const CRect &area, IActionListener *listener = NULL); 00057 00061 virtual ~CRepeatingButton(); 00062 00063 // =========================================================================== 00064 00069 virtual void handleLeftButtonDown(CMouseEvent &event); 00070 00075 virtual void handleLeftButtonUp(CMouseEvent &event); 00076 00081 virtual void handleMouseMovement(CMouseEvent &event); 00082 00083 // =========================================================================== 00084 00089 virtual void setRepeatTime(const long timeInMilliseconds); 00090 00094 virtual void timerExpired(); 00095 00100 virtual long getTimerId() const { return this->getUniqueId(); } 00101 00102 // =========================================================================== 00103 00104 protected: 00105 00106 // =========================================================================== 00107 00108 long m_timeInMilliseconds; 00110 }; 00111 } 00112 } 00113 } 00114 #endif // End of CRepeatingButton.hpp