]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/slider.cpp
Fox around a bug in GTK's GtkNotebook
[wxWidgets.git] / src / gtk / slider.cpp
index 3c7c1ade23184faf52ace2122df0f23083c40194..e7f36d0c4ce00226eb5ddbceb887c2ce9fb0f890 100644 (file)
@@ -101,13 +101,39 @@ bool wxSlider::Create(wxWindow *parent, wxWindowID id,
 
     m_oldPos = 0.0;
 
-    if (style & wxSL_VERTICAL == wxSL_VERTICAL)
-        m_widget = gtk_hscale_new( (GtkAdjustment *) NULL );
-    else
+    if (style & wxSL_VERTICAL)
         m_widget = gtk_vscale_new( (GtkAdjustment *) NULL );
+    else
+        m_widget = gtk_hscale_new( (GtkAdjustment *) NULL );
     
-    gtk_scale_set_draw_value( GTK_SCALE( m_widget ), FALSE );
-  
+    if (style & wxSL_LABELS)
+    {
+        gtk_scale_set_draw_value( GTK_SCALE( m_widget ), TRUE );
+       
+       /* labels need more space and too small window will
+          cause junk to appear on the dialog */
+        if (style & wxSL_VERTICAL)
+       {
+           wxSize sz( size );
+           if (sz.x < 35)
+           {
+               sz.x = 35;
+               SetSize( sz );
+           }
+       }
+        else
+       {
+           wxSize sz( size );
+           if (sz.y < 35)
+           {
+               sz.y = 35;
+               SetSize( sz );
+           }
+       }
+    }
+    else
+        gtk_scale_set_draw_value( GTK_SCALE( m_widget ), FALSE );
+
     m_adjust = gtk_range_get_adjustment( GTK_RANGE(m_widget) );
   
     gtk_signal_connect( GTK_OBJECT(m_adjust),