CRangeSlider.hpp

Go to the documentation of this file.
00001 #ifndef __CRangeSlider__
00002 #define __CRangeSlider__
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         {
00040             class CRangeSlider : public CControl
00041             {
00043                 EXPONENT_CLASS_DECLARATION;
00046 //  ===========================================================================
00047 
00048             public:
00049 
00057                 CRangeSlider(IControlRoot *root, const long uniqueId, const CRect &area, IActionListener *listener = NULL);
00058 
00062                 virtual ~CRangeSlider();
00063 
00064 //  ===========================================================================
00065 
00070                 virtual void setMinimumValue(const double minValue);
00071 
00076                 virtual void setMaximumValue(const double maxValue);
00077 
00082                 virtual double getMinimumValue() const { return m_minValue; }
00083 
00088                 virtual double getMaximumValue() const { return m_maxValue; }
00089 
00090 //  ===========================================================================
00091 
00100                 virtual void lockPositions(const bool lockMin, const bool lockMax, const double minValue, const double maxValue, const bool jumpToMax = true);
00101 
00110                 virtual void setColours(CAlphaColour frameColour, CAlphaColour backgroundColour, CAlphaColour handleColour, CAlphaColour handleOverColour, CAlphaColour handleDownColour);
00111 
00112 //  ===========================================================================
00113 
00118                 virtual void handleLeftButtonDown(CMouseEvent &event);
00119 
00124                 virtual void handleLeftButtonUp(CMouseEvent &event);
00125 
00130                 virtual void handleMouseScroll(CMouseEvent &event);
00131 
00136                 virtual void handleMouseMovement(CMouseEvent &event);
00137 
00142                 virtual void handleMouseLeavingArea(CMouseEvent &event);
00143 
00144 //  ===========================================================================
00145 
00150                 virtual void drawControl(CGraphics &graphics);
00151 
00152 //  ===========================================================================
00153 
00154             protected:
00155 
00156 //  ===========================================================================
00157 
00162                 enum EDragId
00163                 {
00164                     e_notDragging = 0,          
00165                     e_draggingTop,              
00166                     e_draggingHandle,           
00167                     e_draggingBottom            
00168                 };
00169 
00170 //  ===========================================================================
00171 
00176                 virtual void checkAndLock(const CPoint &point);
00177 
00182                 void handleMovement(CMouseEvent &event);
00183 
00188                 bool handleTopMovement(CMouseEvent &event);
00189 
00194                 bool handleBottomMovement(CMouseEvent &event);
00195 
00200                 bool handleBarMovement(CMouseEvent &event);
00201 
00202 //  ===========================================================================
00203 
00204                 CRect m_sliderArea;                         
00205                 CPoint m_grabOffset;                        
00206                 CAlphaColour m_handleColour;                
00207                 CAlphaColour m_handleOverColour;            
00208                 CAlphaColour m_handleDownColour;            
00210                 CRolloverButton::ERolloverState m_state;    
00211                 bool m_isVertical;                          
00212                 EDragId m_dragId;                           
00214                 double m_minValue;                          
00215                 double m_maxValue;                          
00217                 bool m_lockMax;                             
00218                 bool m_lockMin;                             
00219                 bool m_jumpToMax;                           
00220             };
00221         }
00222     }
00223 }
00224 #endif  // End of CRangeSlider.hpp

Infinity API - CRangeSlider.hpp Source File generated on 7 Mar 2007