00001 #ifndef __CCenterSlider__ 00002 #define __CCenterSlider__ 00003 00004 #include "CControl.hpp" 00005 #include "CRolloverButton.hpp" 00006 #include <MathTools/CBounds.hpp> 00007 00008 // =========================================================================== 00009 00010 using Exponent::GUI::Controls::CControl; 00011 using Exponent::GUI::Controls::CRolloverButton; 00012 using Exponent::MathTools::CBounds; 00013 00014 // =========================================================================== 00015 00016 namespace Exponent 00017 { 00018 namespace GUI 00019 { 00020 namespace Controls 00021 { 00039 class CCenterSlider : public CControl 00040 { 00042 EXPONENT_CLASS_DECLARATION; 00045 // =========================================================================== 00046 00047 public: 00048 00049 // =========================================================================== 00050 00058 CCenterSlider(IControlRoot *root, const long uniqueId, const CRect &area, IActionListener *listener = NULL); 00059 00063 virtual ~CCenterSlider(); 00064 00065 // =========================================================================== 00066 00071 virtual void setValue(const double value); 00072 00081 virtual void setColours(CAlphaColour frameColour, CAlphaColour backgroundColour, CAlphaColour handleColour, CAlphaColour handleOverColour, CAlphaColour handleDownColour); 00082 00083 // =========================================================================== 00084 00089 virtual void handleLeftButtonDown(CMouseEvent &event); 00090 00095 virtual void handleLeftButtonUp(CMouseEvent &event); 00096 00101 virtual void handleMouseScroll(CMouseEvent &event); 00102 00107 virtual void handleMouseMovement(CMouseEvent &event); 00108 00109 // =========================================================================== 00110 00115 virtual void drawControl(CGraphics &graphics); 00116 00117 // =========================================================================== 00118 00119 protected: 00120 00121 // =========================================================================== 00122 00127 void handleMovement(CMouseEvent &event); 00128 00129 // =========================================================================== 00130 00131 long m_centerPoint; 00133 CAlphaColour m_handleColour; 00134 CAlphaColour m_handleOverColour; 00135 CAlphaColour m_handleDownColour; 00137 CRolloverButton::ERolloverState m_state; 00139 CRect m_sliderArea; 00141 bool m_isVertical; 00142 bool m_isDragging; 00143 }; 00144 } 00145 } 00146 } 00147 #endif // End of CCenterSlider.hpp