]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/scrolwin.cpp
adding raw_control for osx
[wxWidgets.git] / src / gtk / scrolwin.cpp
index b13658fd237b0cb00584b6de89eba0c163b2a9ff..2ce5843e923bf46d3e762bf595ff1f128e55f196 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
-// Name:        gtk/scrolwin.cpp
+// Name:        src/gtk/scrolwin.cpp
 // Purpose:     wxScrolledWindow implementation
 // Author:      Robert Roebling
 // Modified by: Ron Lee
 // Purpose:     wxScrolledWindow implementation
 // Author:      Robert Roebling
 // Modified by: Ron Lee
@@ -20,6 +20,7 @@
 #include "wx/scrolwin.h"
 
 #include <gtk/gtk.h>
 #include "wx/scrolwin.h"
 
 #include <gtk/gtk.h>
+#include "wx/gtk/private/gtk2-compat.h"
 
 // ----------------------------------------------------------------------------
 // wxScrollHelper implementation
 
 // ----------------------------------------------------------------------------
 // wxScrollHelper implementation
@@ -30,8 +31,10 @@ void wxScrollHelper::SetScrollbars(int pixelsPerUnitX, int pixelsPerUnitY,
                                    int xPos, int yPos,
                                    bool noRefresh)
 {
                                    int xPos, int yPos,
                                    bool noRefresh)
 {
-    m_win->m_scrollBar[wxWindow::ScrollDir_Horz]->adjustment->value = xPos;
-    m_win->m_scrollBar[wxWindow::ScrollDir_Vert]->adjustment->value = yPos;
+    // prevent programmatic position changes from causing scroll events
+    m_win->SetScrollPos(wxHORIZONTAL, xPos);
+    m_win->SetScrollPos(wxVERTICAL, yPos);
+
     base_type::SetScrollbars(
         pixelsPerUnitX, pixelsPerUnitY, noUnitsX, noUnitsY, xPos, yPos, noRefresh);
 }
     base_type::SetScrollbars(
         pixelsPerUnitX, pixelsPerUnitY, noUnitsX, noUnitsY, xPos, yPos, noRefresh);
 }
@@ -66,10 +69,8 @@ void wxScrollHelper::DoAdjustScrollbar(GtkRange* range,
         *linesPerPage = 0;
     }
 
         *linesPerPage = 0;
     }
 
-    GtkAdjustment* adj = range->adjustment;
-    adj->step_increment = 1;
-    adj->page_increment =
-    adj->page_size = page_size;
+    gtk_range_set_increments(range, 1, page_size);
+    gtk_adjustment_set_page_size(gtk_range_get_adjustment(range), page_size);
     gtk_range_set_range(range, 0, upper);
 
     // ensure that the scroll position is always in valid range
     gtk_range_set_range(range, 0, upper);
 
     // ensure that the scroll position is always in valid range