]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/slider.cpp
Do not generate wxEVT_PG_SELECTED with direct ClearSelection() and SelectProperty...
[wxWidgets.git] / src / gtk / slider.cpp
index 77db1445299cbaeb6fdedf2d3e8b48fa00c7069d..52e12014c752b9b5b3b3f327eb0e90e5402b0cac 100644 (file)
@@ -46,7 +46,7 @@ ProcessScrollEvent(wxSlider *win, wxEventType evtType)
     {
         wxScrollEvent event( evtType, win->GetId(), value, orient );
         event.SetEventObject( win );
-        win->GetEventHandler()->ProcessEvent( event );
+        win->HandleWindowEvent( event );
     }
 
     // but, in any case, except if we're dragging the slider (and so the change
@@ -55,14 +55,14 @@ ProcessScrollEvent(wxSlider *win, wxEventType evtType)
     {
         wxScrollEvent event(wxEVT_SCROLL_CHANGED, win->GetId(), value, orient);
         event.SetEventObject( win );
-        win->GetEventHandler()->ProcessEvent( event );
+        win->HandleWindowEvent( event );
     }
 
     // and also generate a command event for compatibility
     wxCommandEvent event( wxEVT_COMMAND_SLIDER_UPDATED, win->GetId() );
     event.SetEventObject( win );
     event.SetInt( value );
-    win->GetEventHandler()->ProcessEvent( event );
+    win->HandleWindowEvent( event );
 }
 
 static inline wxEventType GtkScrollTypeToWx(int scrollType)
@@ -100,7 +100,7 @@ static inline wxEventType GtkScrollTypeToWx(int scrollType)
         eventType = wxEVT_SCROLL_THUMBTRACK;
         break;
     default:
-        wxFAIL_MSG(_T("Unknown GtkScrollType"));
+        wxFAIL_MSG(wxT("Unknown GtkScrollType"));
         eventType = wxEVT_NULL;
         break;
     }
@@ -304,9 +304,10 @@ bool wxSlider::Create(wxWindow *parent,
     }
 
     if (style & wxSL_VERTICAL)
-        m_widget = gtk_vscale_new( (GtkAdjustment *) NULL );
+        m_widget = gtk_vscale_new( NULL );
     else
-        m_widget = gtk_hscale_new( (GtkAdjustment *) NULL );
+        m_widget = gtk_hscale_new( NULL );
+    g_object_ref(m_widget);
 
     gtk_scale_set_draw_value(GTK_SCALE (m_widget), (style & wxSL_LABELS) != 0);
     // Keep full precision in position value
@@ -357,6 +358,8 @@ void wxSlider::GTKSetValue(int value)
 void wxSlider::SetRange( int minValue, int maxValue )
 {
     m_blockScrollEvent = true;
+    if (minValue == maxValue)
+       maxValue++;
     gtk_range_set_range(GTK_RANGE (m_widget), minValue, maxValue);
     gtk_range_set_increments(GTK_RANGE (m_widget), 1, (maxValue - minValue + 9) / 10);
     m_blockScrollEvent = false;