#ifndef _WX_SCROLWIN_H_BASE_
#define _WX_SCROLWIN_H_BASE_
-#include "wx/window.h"
+#include "wx/panel.h"
-class WXDLLEXPORT wxScrollHelperEvtHandler;
-class WXDLLEXPORT wxTimer;
-
-WXDLLEXPORT_DATA(extern const wxChar*) wxPanelNameStr;
+class WXDLLIMPEXP_FWD_CORE wxScrollHelperEvtHandler;
+class WXDLLIMPEXP_FWD_BASE wxTimer;
// default scrolled window style: scroll in both directions
#define wxScrolledWindowStyle (wxHSCROLL | wxVSCROLL)
int GetScrollPageSize(int orient) const;
void SetScrollPageSize(int orient, int pageSize);
+ // get the number of lines the window can scroll,
+ // returns 0 if no scrollbars are there.
+ int GetScrollLines( int orient ) const;
+
// Set the x, y scrolling increments.
void SetScrollRate( int xstep, int ystep );
#if wxUSE_MOUSEWHEEL
void HandleOnMouseWheel(wxMouseEvent& event);
#endif // wxUSE_MOUSEWHEEL
+ void HandleOnChildFocus(wxChildFocusEvent& event);
// FIXME: this is needed for now for wxPlot compilation, should be removed
// once it is fixed!
: m_targetWindow->GetClientSize();
}
- void GetTargetSize(int *w, int *h)
+ void GetTargetSize(int *w, int *h) const
{
wxSize size = GetTargetSize();
if ( w )
bool ScrollLayout();
void ScrollDoSetVirtualSize(int x, int y);
wxSize ScrollGetBestVirtualSize() const;
- wxSize ScrollGetWindowSizeForVirtualSize(const wxSize& size) const;
// change just the target window (unlike SetWindow which changes m_win as
// well)
// this macro can be used in a wxScrollHelper-derived class to forward wxWindow
// methods to corresponding wxScrollHelper methods
#define WX_FORWARD_TO_SCROLL_HELPER() \
+public: \
virtual void PrepareDC(wxDC& dc) { DoPrepareDC(dc); } \
virtual bool Layout() { return ScrollLayout(); } \
virtual void DoSetVirtualSize(int x, int y) \
{ ScrollDoSetVirtualSize(x, y); } \
virtual wxSize GetBestVirtualSize() const \
- { return ScrollGetBestVirtualSize(); } \
- virtual wxSize GetWindowSizeForVirtualSize(const wxSize& size) const \
- { return ScrollGetWindowSizeForVirtualSize(size); }
+ { return ScrollGetBestVirtualSize(); }
// include the declaration of wxScrollHelperNative if needed
-#if defined(__WXGTK__) && !defined(__WXUNIVERSAL__)
+#if defined(__WXGTK20__) && !defined(__WXUNIVERSAL__)
#include "wx/gtk/scrolwin.h"
+#elif defined(__WXGTK__) && !defined(__WXUNIVERSAL__)
+ #include "wx/gtk1/scrolwin.h"
#else
typedef wxScrollHelper wxScrollHelperNative;
#endif
long style = wxScrolledWindowStyle,
const wxString& name = wxPanelNameStr);
+ // we need to return a special WM_GETDLGCODE value to process just the
+ // arrows but let the other navigation characters through
+#ifdef __WXMSW__
+ virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
+#endif // __WXMSW__
+
WX_FORWARD_TO_SCROLL_HELPER()
protected:
+ virtual wxSize DoGetBestSize() const;
+
// this is needed for wxEVT_PAINT processing hack described in
// wxScrollHelperEvtHandler::ProcessEvent()
void OnPaint(wxPaintEvent& event);
- // we need to return a special WM_GETDLGCODE value to process just the
- // arrows but let the other navigation characters through
-#ifdef __WXMSW__
- virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
-#endif // __WXMSW__
-
private:
DECLARE_DYNAMIC_CLASS_NO_COPY(wxScrolledWindow)
DECLARE_EVENT_TABLE()