00001 #if !defined( __XSCROLLBAR_H__ ) 00002 #define __XSCROLLBAR_H__ 00003 00004 namespace Ars 00005 { 00006 class XScrollBar : public XBox { 00007 public: 00009 enum EScrollBarType 00010 { 00011 VERTICAL, 00012 HORIZONTAL 00013 }; 00014 00015 private: 00016 EScrollBarType m_ScrollBarType; 00017 int m_iMin; 00018 int m_iMax; 00019 int m_iPosition; 00020 XButtonImage *m_pBtnUpLeft; 00021 XButtonImage *m_pBtnDownRight; 00022 XRect m_ThumbRect; 00023 bool m_bDragging; 00024 00025 string sct , key ,fname; 00026 00027 public: 00028 00032 XScrollBar( void ); 00033 00035 virtual ~XScrollBar(void); 00036 00044 virtual void Init( icstring &aStr ); 00045 00046 virtual const bool SetupWindow( const Message &msg ); 00047 00049 void SetLimits( const int Min , const int Max ) { m_iMin = Min; m_iMax = Max; SetDirty( true ); } 00050 00052 const int GetMinLimit( void ) { return m_iMin; } 00053 00055 const int GetMaxLimit( void ) { return m_iMax; } 00056 00058 void SetPosition( const int iPosition ); 00059 00061 const int GetPosition(void) { return m_iPosition; } 00062 00063 // Object overrides 00065 virtual void Draw(void); 00066 00069 virtual void SetWindowRect( const XRect &WindowRect ); 00070 00071 protected: 00072 virtual const bool evMouseButtonDown( const MouseMessage &msg ); 00073 virtual const bool evMouseButtonUp( const MouseMessage &msg ); 00074 virtual const bool evMouseMove( const MouseMessage &msg ); 00075 virtual const bool evMouseLClick( const CtrlMessage &msg ); 00076 }; 00077 } 00078 00079 #endif