]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/scrolwin.cpp
fixed check for bitmapType match (thanks to HP compiler for the warning)
[wxWidgets.git] / src / gtk / scrolwin.cpp
index 79cfe5d3a3da7a4d12ba2270ee8d21b8f3bd3c36..80ba00f515f2f5144c553641d93fa410fa2aca40 100644 (file)
 // headers
 // ----------------------------------------------------------------------------
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-    #pragma implementation "scrolwin.h"
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
@@ -33,6 +29,7 @@
 #include "wx/dcclient.h"
 #include "wx/panel.h"
 #include "wx/sizer.h"
+#include "wx/math.h"
 
 #include "wx/gtk/private.h"
 #include "wx/gtk/win_gtk.h"
@@ -83,7 +80,7 @@ static void gtk_scrolled_window_vscroll_callback( GtkAdjustment *adjust,
     if (g_blockEventsOnDrag) return;
 
     if (!win->m_hasVMT) return;
-    
+
     win->GtkVScroll( adjust->value,
             GET_SCROLL_TYPE(GTK_SCROLLED_WINDOW(win->m_widget)->vscrollbar) );
 }
@@ -320,7 +317,7 @@ bool wxScrolledWindow::Create(wxWindow *parent,
     PostCreation();
 
     Show( TRUE );
-    
+
     return TRUE;
 }
 
@@ -401,7 +398,7 @@ void wxScrolledWindow::SetScrollbars( int pixelsPerUnitX, int pixelsPerUnitY,
 {
     int xs, ys;
     GetViewStart (& xs, & ys);
-    
+
     int old_x = m_xScrollPixelsPerLine * xs;
     int old_y = m_yScrollPixelsPerLine * ys;
 
@@ -436,7 +433,7 @@ void wxScrolledWindow::AdjustScrollbars()
 
     m_targetWindow->GetClientSize( &w, &h );
     m_targetWindow->GetVirtualSize( &vw, &vh );
-    
+
     if (m_xScrollPixelsPerLine == 0)
     {
         m_hAdjust->upper = 1.0;
@@ -451,19 +448,20 @@ void wxScrolledWindow::AdjustScrollbars()
 
         // Special case. When client and virtual size are very close but
         // the client is big enough, kill scrollbar.
-        
-        if ((m_hAdjust->page_size < m_hAdjust->upper) && (w >= vw)) 
+
+        if ((m_hAdjust->page_size < m_hAdjust->upper) && (w >= vw))
             m_hAdjust->page_size += 1.0;
-        
+
         // If the scrollbar hits the right side, move the window
         // right to keep it from over extending.
 
-        if ((m_hAdjust->value != 0.0) && (m_hAdjust->value + m_hAdjust->page_size > m_hAdjust->upper))
+        if ( !wxIsNullDouble(m_hAdjust->value) &&
+                (m_hAdjust->value + m_hAdjust->page_size > m_hAdjust->upper) )
         {
             m_hAdjust->value = m_hAdjust->upper - m_hAdjust->page_size;
             if (m_hAdjust->value < 0.0)
                 m_hAdjust->value = 0.0;
-                
+
             if (GetChildren().GetCount() == 0)
                 m_xScrollPosition = (int)m_hAdjust->value; // This is enough without child windows
             else
@@ -482,18 +480,19 @@ void wxScrolledWindow::AdjustScrollbars()
         m_vAdjust->upper = (vh+m_yScrollPixelsPerLine-1) / m_yScrollPixelsPerLine;
         m_vAdjust->page_size = h / m_yScrollPixelsPerLine;
         m_vAdjust->page_increment = h / m_yScrollPixelsPerLine;
-        
-        if ((m_vAdjust->page_size < m_vAdjust->upper) && (h >= vh)) 
+
+        if ((m_vAdjust->page_size < m_vAdjust->upper) && (h >= vh))
             m_vAdjust->page_size += 1.0;
 
-        if ((m_vAdjust->value != 0.0) && (m_vAdjust->value + m_vAdjust->page_size > m_vAdjust->upper))
+        if ( !wxIsNullDouble(m_vAdjust->value) &&
+                (m_vAdjust->value + m_vAdjust->page_size > m_vAdjust->upper) )
         {
             m_vAdjust->value = m_vAdjust->upper - m_vAdjust->page_size;
             if (m_vAdjust->value < 0.0)
                 m_vAdjust->value = 0.0;
-                
+
             if (GetChildren().GetCount() == 0)
-                m_yScrollPosition = (int)m_vAdjust->value;  
+                m_yScrollPosition = (int)m_vAdjust->value;
             else
                 gtk_signal_emit_by_name( GTK_OBJECT(m_vAdjust), "value_changed" );
         }
@@ -718,7 +717,7 @@ void wxScrolledWindow::DoCalcScrolledPosition(int x, int y, int *xx, int *yy) co
 {
     int xs, ys;
     GetViewStart (& xs, & ys);
-    
+
     if ( xx )
         *xx = x - xs * m_xScrollPixelsPerLine;
     if ( yy )
@@ -729,7 +728,7 @@ void wxScrolledWindow::DoCalcUnscrolledPosition(int x, int y, int *xx, int *yy)
 {
     int xs, ys;
     GetViewStart (& xs, & ys);
-    
+
     if ( xx )
         *xx = x + xs * m_xScrollPixelsPerLine;
     if ( yy )
@@ -920,7 +919,7 @@ void wxScrolledWindow::OnSize(wxSizeEvent& WXUNUSED(event))
     if ( m_targetWindow->GetAutoLayout() )
     {
         wxSize size = m_targetWindow->GetBestVirtualSize();
-        
+
         // This will call ::Layout() and ::AdjustScrollbars()
         SetVirtualSize( size );
     }
@@ -1025,19 +1024,19 @@ void wxScrolledWindow::OnChar(wxKeyEvent& event)
     int xScroll = GetScrollPos(wxHORIZONTAL);
     if ( xScroll != xScrollOld )
     {
-        wxScrollWinEvent event(wxEVT_SCROLLWIN_THUMBTRACK, xScroll,
-                               wxHORIZONTAL);
-        event.SetEventObject(this);
-        GetEventHandler()->ProcessEvent(event);
+        wxScrollWinEvent eventS(wxEVT_SCROLLWIN_THUMBTRACK, xScroll,
+                                wxHORIZONTAL);
+        eventS.SetEventObject(this);
+        GetEventHandler()->ProcessEvent(eventS);
     }
 
     int yScroll = GetScrollPos(wxVERTICAL);
     if ( yScroll != yScrollOld )
     {
-        wxScrollWinEvent event(wxEVT_SCROLLWIN_THUMBTRACK, yScroll,
-                               wxVERTICAL);
-        event.SetEventObject(this);
-        GetEventHandler()->ProcessEvent(event);
+        wxScrollWinEvent eventS(wxEVT_SCROLLWIN_THUMBTRACK, yScroll,
+                                wxVERTICAL);
+        eventS.SetEventObject(this);
+        GetEventHandler()->ProcessEvent(eventS);
     }
 }