1///////////////////////////////////////////////////////////////////////////// 2// Name: scrollbar.h 3// Purpose: wxScrollBar class 4// Author: Julian Smart 5// Modified by: 6// Created: 01/02/97 7// RCS-ID: $Id: scrolbar.h 41020 2006-09-05 20:47:48Z VZ $ 8// Copyright: (c) Julian Smart 9// Licence: wxWindows licence 10///////////////////////////////////////////////////////////////////////////// 11 12#ifndef _WX_SCROLBAR_H_ 13#define _WX_SCROLBAR_H_ 14 15// Scrollbar item 16class WXDLLEXPORT wxScrollBar: public wxScrollBarBase 17{ 18public: 19 wxScrollBar() { m_pageSize = 0; m_viewSize = 0; m_objectSize = 0; } 20 virtual ~wxScrollBar(); 21 22 wxScrollBar(wxWindow *parent, wxWindowID id, 23 const wxPoint& pos = wxDefaultPosition, 24 const wxSize& size = wxDefaultSize, 25 long style = wxSB_HORIZONTAL, 26 const wxValidator& validator = wxDefaultValidator, 27 const wxString& name = wxScrollBarNameStr) 28 { 29 Create(parent, id, pos, size, style, validator, name); 30 } 31 bool Create(wxWindow *parent, wxWindowID id, 32 const wxPoint& pos = wxDefaultPosition, 33 const wxSize& size = wxDefaultSize, 34 long style = wxSB_HORIZONTAL, 35 const wxValidator& validator = wxDefaultValidator, 36 const wxString& name = wxScrollBarNameStr); 37 38 int GetThumbPosition() const ; 39 int GetThumbSize() const { return m_pageSize; } 40 int GetPageSize() const { return m_viewSize; } 41 int GetRange() const { return m_objectSize; } 42 43 virtual void SetThumbPosition(int viewStart); 44 virtual void SetScrollbar(int position, int thumbSize, int range, int pageSize, 45 bool refresh = true); 46 47 // needed for RTTI 48 void SetThumbSize( int s ) { SetScrollbar( GetThumbPosition() , s , GetRange() , GetPageSize() , true ) ; } 49 void SetPageSize( int s ) { SetScrollbar( GetThumbPosition() , GetThumbSize() , GetRange() , s , true ) ; } 50 void SetRange( int s ) { SetScrollbar( GetThumbPosition() , GetThumbSize() , s , GetPageSize() , true ) ; } 51 52 void Command(wxCommandEvent& event); 53 virtual bool MSWOnScroll(int orientation, WXWORD wParam, 54 WXWORD pos, WXHWND control); 55 56 // override wxControl version to not use solid background here 57 virtual WXHBRUSH MSWControlColor(WXHDC pDC, WXHWND hWnd); 58 59 virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const; 60 61protected: 62 virtual wxSize DoGetBestSize() const; 63 64 int m_pageSize; 65 int m_viewSize; 66 int m_objectSize; 67 68 DECLARE_DYNAMIC_CLASS_NO_COPY(wxScrollBar) 69}; 70 71#endif 72 // _WX_SCROLBAR_H_ 73