wg_scrollbar.h

00001 // wg_scrollbar.h
00002 //
00003 // CScrollBar interface
00004 //
00005 //
00006 // Copyright (c) 2002-2004 Rob Wiskow
00007 // rob-dev@boxedchaos.com
00008 //
00009 // This library is free software; you can redistribute it and/or
00010 // modify it under the terms of the GNU Lesser General Public
00011 // License as published by the Free Software Foundation; either
00012 // version 2.1 of the License, or (at your option) any later version.
00013 //
00014 // This library is distributed in the hope that it will be useful,
00015 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00016 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00017 // Lesser General Public License for more details.
00018 //
00019 // You should have received a copy of the GNU Lesser General Public
00020 // License along with this library; if not, write to the Free Software
00021 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
00022 //
00023 
00024 
00025 #ifndef _WG_SCROLLBAR_H_
00026 #define _WG_SCROLLBAR_H_
00027 
00028 #include "wg_range_control.h"
00029 #include "wg_painter.h"
00030 #include "wg_button.h"
00031 
00032 
00033 namespace wGui
00034 {
00035 
00037 
00038 class CScrollBar : public CRangeControl<int>
00039 {
00040 public:
00042      enum EScrollBarType
00043      {
00044           VERTICAL,  
00045           HORIZONTAL  
00046      };
00047 
00052      CScrollBar(const CRect& WindowRect, CWindow* pParent, EScrollBarType ScrollBarType);
00053 
00055      virtual ~CScrollBar(void);
00056 
00059      virtual void SetJumpAmount(int iJumpAmount) { m_iJumpAmount = iJumpAmount; }
00060 
00063      virtual int GetJumpAmount(void) const { return m_iJumpAmount; }
00064 
00065 
00066      // CRangeControl overrides
00070      virtual void SetValue(int iValue, bool bRedraw = true);
00071 
00072 
00073      // CWindow overrides
00075      virtual void Draw(void) const;
00076 
00079      virtual void SetWindowRect(const CRect& WindowRect);
00080 
00083      virtual void MoveWindow(const CPoint& MoveDistance);
00084 
00090      virtual bool OnMouseButtonDown(CPoint Point, unsigned int Button);
00091 
00092 
00093      // CMessageClient overrides
00096      virtual bool HandleMessage(CMessage* pMessage);
00097 
00098 
00099 protected:
00101      virtual void RepositionThumb(void);
00102 
00103      EScrollBarType m_ScrollBarType;  
00104      int m_iJumpAmount;  
00105      CPictureButton* m_pBtnUpLeft;  
00106      CPictureButton* m_pBtnDownRight;  
00107      CRect m_ThumbRect;  
00108      bool m_bDragging;  
00109 
00110 
00111 private:
00112      void operator=(CScrollBar) { }  
00113 };
00114 
00115 }
00116 
00117 
00118 #include "unit_tests/wg_scrollbar_unittests.h"
00119 
00120 #endif  // _WG_SCROLLBAR_H_
00121 

Generated on Wed May 16 23:11:26 2007 for wGui by  doxygen 1.5.1