X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1777b9bbf4573dabecf4a3256d0d3c2c0c2a3fdf..0492f62e0bee1c391a4557f5af84b838430902a0:/include/wx/scrolbar.h diff --git a/include/wx/scrolbar.h b/include/wx/scrolbar.h index 301291e7b2..f63573c0cb 100644 --- a/include/wx/scrolbar.h +++ b/include/wx/scrolbar.h @@ -1,21 +1,87 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: wx/scrolbar.h +// Purpose: wxScrollBar base header +// Author: Julian Smart +// Modified by: +// Created: +// Copyright: (c) Julian Smart +// RCS-ID: $Id$ +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + #ifndef _WX_SCROLBAR_H_BASE_ #define _WX_SCROLBAR_H_BASE_ -#if defined(__WXMSW__) -#include "wx/msw/scrolbar.h" +#include "wx/defs.h" + +#if wxUSE_SCROLLBAR + +#include "wx/control.h" + +extern WXDLLIMPEXP_DATA_CORE(const char) wxScrollBarNameStr[]; + +// ---------------------------------------------------------------------------- +// wxScrollBar: a scroll bar control +// ---------------------------------------------------------------------------- + +class WXDLLIMPEXP_CORE wxScrollBarBase : public wxControl +{ +public: + wxScrollBarBase() { } + + /* + Derived classes should provide the following method and ctor with the + same parameters: + + bool Create(wxWindow *parent, + wxWindowID id, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxSB_HORIZONTAL, + const wxValidator& validator = wxDefaultValidator, + const wxString& name = wxScrollBarNameStr); + */ + + // accessors + virtual int GetThumbPosition() const = 0; + virtual int GetThumbSize() const = 0; + virtual int GetPageSize() const = 0; + virtual int GetRange() const = 0; + + bool IsVertical() const { return (m_windowStyle & wxVERTICAL) != 0; } + + // operations + virtual void SetThumbPosition(int viewStart) = 0; + virtual void SetScrollbar(int position, int thumbSize, + int range, int pageSize, + bool refresh = true) = 0; + + // implementation-only + bool IsNeeded() const { return GetRange() > GetThumbSize(); } + +private: + wxDECLARE_NO_COPY_CLASS(wxScrollBarBase); +}; + +#if defined(__WXUNIVERSAL__) + #include "wx/univ/scrolbar.h" +#elif defined(__WXMSW__) + #include "wx/msw/scrolbar.h" #elif defined(__WXMOTIF__) -#include "wx/motif/scrolbar.h" + #include "wx/motif/scrolbar.h" +#elif defined(__WXGTK20__) + #include "wx/gtk/scrolbar.h" #elif defined(__WXGTK__) -#include "wx/gtk/scrolbar.h" -#elif defined(__WXQT__) -#include "wx/qt/scrolbar.h" + #include "wx/gtk1/scrolbar.h" #elif defined(__WXMAC__) -#include "wx/mac/scrolbar.h" + #include "wx/osx/scrolbar.h" +#elif defined(__WXCOCOA__) + #include "wx/cocoa/scrolbar.h" #elif defined(__WXPM__) -#include "wx/os2/scrolbar.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/scrolbar.h" + #include "wx/os2/scrolbar.h" #endif +#endif // wxUSE_SCROLLBAR + #endif // _WX_SCROLBAR_H_BASE_