]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk1/window.cpp
no more _ftime instead of ftime
[wxWidgets.git] / src / gtk1 / window.cpp
index a08961fed878cb4c48f245ee229a0ec1ce04258a..befad324ff53a3a54afa33761f098ab9d1d80558 100644 (file)
@@ -612,7 +612,8 @@ static void gtk_window_expose_callback( GtkWidget *WXUNUSED(widget), GdkEventExp
 {
     DEBUG_MAIN_THREAD
 
-    if (win->GetName() == wxT("columntitles"))
+/*
+    if (win->GetName() == wxT("grid window"))
     {
         wxPrintf( wxT("OnExpose from ") );
         if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
@@ -622,6 +623,7 @@ static void gtk_window_expose_callback( GtkWidget *WXUNUSED(widget), GdkEventExp
                                          (int)gdk_event->area.width,
                                          (int)gdk_event->area.height );
     }
+*/
                                 
     win->GetUpdateRegion().Union( gdk_event->area.x,
                                   gdk_event->area.y,
@@ -661,7 +663,8 @@ static void gtk_window_draw_callback( GtkWidget *WXUNUSED(widget),
     if ((rect->x == 0) && (rect->y == 0) && (rect->width <= 1) && (rect->height <= 1))
         return;
 
-    if (win->GetName() == wxT("columntitles"))
+/*
+    if (win->GetName() == wxT("grid window"))
     {
         wxPrintf( wxT("OnDraw from ") );
         if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
@@ -671,6 +674,7 @@ static void gtk_window_draw_callback( GtkWidget *WXUNUSED(widget),
                                          (int)rect->width,
                                          (int)rect->height );
     }
+*/
                                 
     win->GetUpdateRegion().Union( rect->x, rect->y,
                                   rect->width, rect->height );
@@ -3440,6 +3444,60 @@ void wxWindow::ScrollWindow( int dx, int dy, const wxRect* WXUNUSED(rect) )
     wxCHECK_RET( m_widget != NULL, wxT("invalid window") );
 
     wxCHECK_RET( m_wxwindow != NULL, wxT("window needs client area for scrolling") );
+    
+    if ((dx == 0) && (dy == 0)) return;
 
     gtk_pizza_scroll( GTK_PIZZA(m_wxwindow), -dx, -dy );
+    
+/*    
+    if (m_children.GetCount() > 0)
+    {
+        gtk_pizza_scroll( GTK_PIZZA(m_wxwindow), -dx, -dy );
+    }
+    else
+    {
+        GtkPizza *pizza = GTK_PIZZA(m_wxwindow);
+    
+        pizza->xoffset -= dx;
+        pizza->yoffset -= dy;
+        
+        GdkGC *m_scrollGC = gdk_gc_new( pizza->bin_window );
+        gdk_gc_set_exposures( m_scrollGC, TRUE );
+
+        int cw = 0;
+        int ch = 0;
+        GetClientSize( &cw, &ch );
+        int w = cw - abs(dx);
+        int h = ch - abs(dy);
+
+        if ((h < 0) || (w < 0))
+        {
+            Refresh();
+        } 
+        else
+        {
+            int s_x = 0;
+            int s_y = 0;
+            if (dx < 0) s_x = -dx;
+            if (dy < 0) s_y = -dy;
+            int d_x = 0;
+            int d_y = 0;
+            if (dx > 0) d_x = dx;
+            if (dy > 0) d_y = dy;
+
+            gdk_window_copy_area( pizza->bin_window, m_scrollGC, d_x, d_y,
+                pizza->bin_window, s_x, s_y, w, h );
+
+            wxRect rect;
+            if (dx < 0) rect.x = cw+dx; else rect.x = 0;
+            if (dy < 0) rect.y = ch+dy; else rect.y = 0;
+            if (dy != 0) rect.width = cw; else rect.width = abs(dx);
+            if (dx != 0) rect.height = ch; else rect.height = abs(dy);
+
+            Refresh( TRUE, &rect );
+        }
+        
+        gdk_gc_unref( m_scrollGC );
+    }
+*/
 }