1/////////////////////////////////////////////////////////////////////////////
2// Name:        wx/gtk1/scrolbar.h
3// Purpose:
4// Author:      Robert Roebling
5// Id:          $Id: scrolbar.h 41020 2006-09-05 20:47:48Z VZ $
6// Copyright:   (c) 1998 Robert Roebling
7// Licence:     wxWindows licence
8/////////////////////////////////////////////////////////////////////////////
9
10#ifndef __GTKSCROLLBARH__
11#define __GTKSCROLLBARH__
12
13#include "wx/defs.h"
14
15//-----------------------------------------------------------------------------
16// classes
17//-----------------------------------------------------------------------------
18
19class WXDLLIMPEXP_CORE wxScrollBar;
20
21//-----------------------------------------------------------------------------
22// wxScrollBar
23//-----------------------------------------------------------------------------
24
25class WXDLLIMPEXP_CORE wxScrollBar: public wxScrollBarBase
26{
27public:
28    wxScrollBar()
29       { m_adjust = (GtkAdjustment *) NULL; m_oldPos = 0.0; }
30    inline wxScrollBar( wxWindow *parent, wxWindowID id,
31           const wxPoint& pos = wxDefaultPosition,
32           const wxSize& size = wxDefaultSize,
33           long style = wxSB_HORIZONTAL,
34           const wxValidator& validator = wxDefaultValidator,
35           const wxString& name = wxScrollBarNameStr )
36    {
37        Create( parent, id, pos, size, style, validator, name );
38    }
39    bool Create( wxWindow *parent, wxWindowID id,
40           const wxPoint& pos = wxDefaultPosition,
41           const wxSize& size = wxDefaultSize,
42           long style = wxSB_HORIZONTAL,
43           const wxValidator& validator = wxDefaultValidator,
44           const wxString& name = wxScrollBarNameStr );
45    virtual ~wxScrollBar();
46    int GetThumbPosition() const;
47    int GetThumbSize() const;
48    int GetPageSize() const;
49    int GetRange() const;
50    virtual void SetThumbPosition( int viewStart );
51    virtual void SetScrollbar( int position, int thumbSize, int range, int pageSize,
52      bool refresh = TRUE );
53
54    // Backward compatibility
55    // ----------------------
56
57    int GetValue(void) const;
58    void SetValue( int viewStart );
59    void GetValues( int *viewStart, int *viewLength, int *objectLength, int *pageLength) const;
60    int GetViewLength() const;
61    int GetObjectLength() const;
62    void SetPageSize( int pageLength );
63    void SetObjectLength( int objectLength );
64    void SetViewLength( int viewLength );
65
66    static wxVisualAttributes
67    GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
68
69    // implementation
70    // --------------
71
72    bool IsOwnGtkWindow( GdkWindow *window );
73
74    GtkAdjustment  *m_adjust;
75    float           m_oldPos;
76
77protected:
78    virtual wxSize DoGetBestSize() const;
79
80private:
81    DECLARE_DYNAMIC_CLASS(wxScrollBar)
82};
83
84#endif
85    // __GTKSCROLLBARH__
86