00001 #ifndef __CScrollBar__ 00002 #define __CScrollBar__ 00003 00004 #include "CSlider.hpp" 00005 #include "CScrollBarImages.hpp" 00006 #include "../Listeners/IScrollListener.hpp" 00007 00008 // =========================================================================== 00009 00010 using Exponent::GUI::Controls::CSlider; 00011 using Exponent::GUI::Controls::CScrollBarImages; 00012 using Exponent::GUI::Listeners::IScrollListener; 00013 00014 // =========================================================================== 00015 00016 namespace Exponent 00017 { 00018 namespace GUI 00019 { 00020 namespace Controls 00021 { 00040 class CScrollBar : public CSlider, public IActionListener 00041 { 00043 EXPONENT_CLASS_DECLARATION; 00046 // =========================================================================== 00047 00048 public: 00049 00050 // =========================================================================== 00051 00060 CScrollBar(IControlRoot *root, const long uniqueId, const CRect &area, const CRect &virtualArea, IScrollListener *scrollListener = NULL); 00061 00065 virtual ~CScrollBar(); 00066 00067 // =========================================================================== 00068 00072 virtual void drawControl(CGraphics &graphics); 00073 00074 // =========================================================================== 00075 00080 void setVirtualArea(const CRect &virtualArea); 00081 00086 virtual void registerScrollListener(IScrollListener *listener); 00087 00092 virtual void handleActionEvent(const CActionEvent &event); 00093 00094 // =========================================================================== 00095 00102 void setScrollBarImages(CScrollBarImages *normal, CScrollBarImages *mouseOver, CScrollBarImages *mouseDown); 00103 00104 // =========================================================================== 00105 00106 protected: 00107 00108 // =========================================================================== 00109 00110 IScrollListener *m_scrollListener; 00112 CRect m_virtualArea; 00113 double m_areaRatio; 00115 CScrollBarImages *m_normalImages; 00116 CScrollBarImages *m_mouseOverImage; 00117 CScrollBarImages *m_mouseDownImages; 00118 }; 00119 } 00120 } 00121 } 00122 #endif // End of CScrollBar.hpp