]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/scrolwin.h
don't compare initial slider position with uninitialized m_pos (modified patch 1818759)
[wxWidgets.git] / include / wx / scrolwin.h
index 111136f453bae20575866864d73e2bdda6e6b798..e7660e93eacf61be5a2ae19d6a442a28c447aece 100644 (file)
 #ifndef _WX_SCROLWIN_H_BASE_
 #define _WX_SCROLWIN_H_BASE_
 
 #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_CORE wxTimer;
 
 // default scrolled window style: scroll in both directions
 #define wxScrolledWindowStyle (wxHSCROLL | wxVSCROLL)
 
 // default scrolled window style: scroll in both directions
 #define wxScrolledWindowStyle (wxHSCROLL | wxVSCROLL)
@@ -70,6 +68,10 @@ public:
     int GetScrollPageSize(int orient) const;
     void SetScrollPageSize(int orient, int pageSize);
 
     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 );
 
     // Set the x, y scrolling increments.
     void SetScrollRate( int xstep, int ystep );
 
@@ -179,7 +181,7 @@ protected:
                                          : m_targetWindow->GetClientSize();
     }
 
                                          : m_targetWindow->GetClientSize();
     }
 
-    void GetTargetSize(int *w, int *h)
+    void GetTargetSize(int *w, int *h) const
     {
         wxSize size = GetTargetSize();
         if ( w )
     {
         wxSize size = GetTargetSize();
         if ( w )
@@ -237,18 +239,22 @@ protected:
 // this macro can be used in a wxScrollHelper-derived class to forward wxWindow
 // methods to corresponding wxScrollHelper methods
 #define WX_FORWARD_TO_SCROLL_HELPER()                                         \
 // 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 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(); }                                \
+protected:                                                                    \
     virtual wxSize GetWindowSizeForVirtualSize(const wxSize& size) const      \
         { return ScrollGetWindowSizeForVirtualSize(size); }
 
 // include the declaration of wxScrollHelperNative if needed
     virtual wxSize GetWindowSizeForVirtualSize(const wxSize& size) const      \
         { return ScrollGetWindowSizeForVirtualSize(size); }
 
 // include the declaration of wxScrollHelperNative if needed
-#if defined(__WXGTK__) && !defined(__WXUNIVERSAL__)
+#if defined(__WXGTK20__) && !defined(__WXUNIVERSAL__)
     #include "wx/gtk/scrolwin.h"
     #include "wx/gtk/scrolwin.h"
+#elif defined(__WXGTK__) && !defined(__WXUNIVERSAL__)
+    #include "wx/gtk1/scrolwin.h"
 #else
     typedef wxScrollHelper wxScrollHelperNative;
 #endif
 #else
     typedef wxScrollHelper wxScrollHelperNative;
 #endif
@@ -282,6 +288,12 @@ public:
                 long style = wxScrolledWindowStyle,
                 const wxString& name = wxPanelNameStr);
 
                 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:
     WX_FORWARD_TO_SCROLL_HELPER()
 
 protected:
@@ -289,12 +301,6 @@ protected:
     // wxScrollHelperEvtHandler::ProcessEvent()
     void OnPaint(wxPaintEvent& event);
 
     // 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()
 private:
     DECLARE_DYNAMIC_CLASS_NO_COPY(wxScrolledWindow)
     DECLARE_EVENT_TABLE()