+// static
+wxVisualAttributes
+wxSpinCtrlGTKBase::GetClassDefaultAttributes(wxWindowVariant WXUNUSED(variant))
+{
+ // TODO: overload to accept functions like gtk_spin_button_new?
+ // Until then use a similar type
+ return GetDefaultAttributesFromGTKWidget(gtk_entry_new, true);
+}
+
+//-----------------------------------------------------------------------------
+// wxSpinCtrl
+//-----------------------------------------------------------------------------
+
+IMPLEMENT_DYNAMIC_CLASS(wxSpinCtrl, wxSpinCtrlGTKBase)
+
+//-----------------------------------------------------------------------------
+// wxSpinCtrlDouble
+//-----------------------------------------------------------------------------
+
+IMPLEMENT_DYNAMIC_CLASS(wxSpinCtrlDouble, wxSpinCtrlGTKBase)
+
+unsigned wxSpinCtrlDouble::GetDigits() const
+{
+ wxCHECK_MSG( m_widget, 0, "invalid spin button" );
+
+ return gtk_spin_button_get_digits( GTK_SPIN_BUTTON(m_widget) );
+}
+
+void wxSpinCtrlDouble::SetDigits(unsigned digits)
+{
+ wxCHECK_RET( m_widget, "invalid spin button" );
+
+ gtk_spin_button_set_digits( GTK_SPIN_BUTTON(m_widget), digits);
+}
+
+#endif // wxUSE_SPINCTRL