#ifndef _WX_UNIV_SCROLBAR_H_
#define _WX_UNIV_SCROLBAR_H_
-#ifdef __GNUG__
- #pragma interface "univscrolbar.h"
-#endif
-
class WXDLLEXPORT wxScrollTimer;
#include "wx/univ/scrarrow.h"
+#include "wx/renderer.h"
// ----------------------------------------------------------------------------
// the actions supported by this control
virtual void SetThumbPosition(int thumbPos);
virtual void SetScrollbar(int position, int thumbSize,
int range, int pageSize,
- bool refresh = TRUE);
+ bool refresh = true);
// wxScrollBar actions
void ScrollToStart();
long numArg = 0,
const wxString& strArg = wxEmptyString);
- // The scrollbars around a normal window should not
- // receive the focus.
+ static wxInputHandler *GetStdInputHandler(wxInputHandler *handlerDef);
+ virtual wxInputHandler *DoGetStdInputHandler(wxInputHandler *handlerDef)
+ {
+ return GetStdInputHandler(handlerDef);
+ }
+
+ // scrollbars around a normal window should not receive the focus
virtual bool AcceptsFocus() const;
// wxScrollBar sub elements state (combination of wxCONTROL_XXX)
virtual void DoDraw(wxControlRenderer *renderer);
virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; }
- // forces update of thumb's visual appearence (does nothing if m_dirty=FALSE)
+ // forces update of thumb's visual appearence (does nothing if m_dirty=false)
void UpdateThumb();
// SetThumbPosition() helper
};
// ----------------------------------------------------------------------------
-// common scrollbar input handler: it manages clicks on the standard scrollbar
-// elements (line arrows, bar, thumb)
+// Standard scrollbar input handler which can be used as a base class
// ----------------------------------------------------------------------------
class WXDLLEXPORT wxStdScrollBarInputHandler : public wxStdInputHandler
// this method is called by wxScrollBarTimer only and may be overridden
//
- // return TRUE to continue scrolling, FALSE to stop the timer
+ // return true to continue scrolling, false to stop the timer
virtual bool OnScrollTimer(wxScrollBar *scrollbar,
const wxControlAction& action);
protected:
- // the methods which must be overridden in the derived class
-
- // return TRUE if the mouse button can be used to activate scrollbar, FALSE
- // if not (only left mouse button can do it under Windows, any button under
- // GTK+)
- virtual bool IsAllowedButton(int button) = 0;
+ // return true if the mouse button can be used to activate scrollbar, false
+ // if not (any button under GTK+ unlike left button only which is default)
+ virtual bool IsAllowedButton(int button) const
+ { return button == wxMOUSE_BTN_LEFT; }
// set or clear the specified flag on the scrollbar element corresponding
// to m_htLast
// generate a "thumb move" action for this mouse event
void HandleThumbMove(wxScrollBar *scrollbar, const wxMouseEvent& event);
+
// the window (scrollbar) which has capture or NULL and the flag telling if
// the mouse is inside the element which captured it or not
wxWindow *m_winCapture;