#include "wx/spinctrl.h"
#include "wx/msw/private.h"
-#if (defined(__WIN95__) && !defined(__GNUWIN32__)) || defined(__TWIN32__) || defined(wxUSE_NORLANDER_HEADERS)
+#if defined(__WIN95__) && !(defined(__GNUWIN32_OLD__) || defined(__TWIN32__))
#include <commctrl.h>
#endif
// before using DoGetBestSize(), have to set style to let the base class
// know whether this is a horizontal or vertical control (we're always
// vertical)
- SetWindowStyle(style | wxSP_VERTICAL);
+ style |= wxSP_VERTICAL;
+ SetWindowStyle(style);
// calculate the sizes: the size given is the toal size for both controls
// and we need to fit them both in the given width (height is the same)
// couldn't call DoGetBestSize() before as font wasn't set
if ( sizeText.y <= 0 )
{
- // make it the same height as the button then
- sizeText.y = DoGetBestSize().y;
+ int cx, cy;
+ wxGetCharSize(GetHWND(), &cx, &cy, &GetFont());
+
+ sizeText.y = EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy);
}
DoMoveWindow(pos.x, pos.y,
void wxSpinCtrl::SetValue(const wxString& text)
{
- if ( ::SetWindowText((HWND)m_hwndBuddy, text.c_str()) )
+ if ( !::SetWindowText((HWND)m_hwndBuddy, text.c_str()) )
{
wxLogLastError("SetWindowText(buddy)");
}
}
// ----------------------------------------------------------------------------
-// when setting font, we need to do it for both controls
+// forward some methods to subcontrols
// ----------------------------------------------------------------------------
bool wxSpinCtrl::SetFont(const wxFont& font)
return TRUE;
}
+bool wxSpinCtrl::Show(bool show)
+{
+ if ( !wxControl::Show(show) )
+ {
+ return FALSE;
+ }
+
+ ::ShowWindow((HWND)m_hwndBuddy, show ? SW_SHOW : SW_HIDE);
+
+ return TRUE;
+}
+
+bool wxSpinCtrl::Enable(bool enable)
+{
+ if ( !wxControl::Enable(enable) )
+ {
+ return FALSE;
+ }
+
+ ::EnableWindow((HWND)m_hwndBuddy, enable);
+
+ return TRUE;
+}
+
+void wxSpinCtrl::SetFocus()
+{
+ ::SetFocus((HWND)m_hwndBuddy);
+}
+
// ----------------------------------------------------------------------------
// event processing
// ----------------------------------------------------------------------------