{
public:
wxSpinCtrlTextGeneric(wxSpinCtrlGenericBase *spin, const wxString& value, long style=0)
- : wxTextCtrl(spin->GetParent(), wxID_ANY, value, wxDefaultPosition, wxDefaultSize,
+ : wxTextCtrl(spin, wxID_ANY, value, wxDefaultPosition, wxDefaultSize,
// This is tricky: we want to honour any alignment flags
// but not wxALIGN_CENTER_VERTICAL because it's the same
// as wxTE_PASSWORD and we definitely don't want to show
{
public:
wxSpinCtrlButtonGeneric(wxSpinCtrlGenericBase *spin, int style)
- : wxSpinButton(spin->GetParent(), wxID_ANY, wxDefaultPosition,
+ : wxSpinButton(spin, wxID_ANY, wxDefaultPosition,
wxDefaultSize, style | wxSP_VERTICAL)
{
m_spin = spin;
m_textCtrl = new wxSpinCtrlTextGeneric(this, value, style);
m_spinButton = new wxSpinCtrlButtonGeneric(this, style);
+
#if wxUSE_TOOLTIPS
m_textCtrl->SetToolTip(GetToolTipText());
m_spinButton->SetToolTip(GetToolTipText());
SetInitialSize(size);
Move(pos);
- // have to disable this window to avoid interfering it with message
- // processing to the text and the button... but pretend it is enabled to
- // make IsEnabled() return true
- wxControl::Enable(false); // don't use non virtual Disable() here!
- m_isEnabled = true;
-
- // we don't even need to show this window itself - and not doing it avoids
- // that it overwrites the text control
- wxControl::Show(false);
- m_isShown = true;
return true;
}
wxSize sizeBtn = m_spinButton->GetSize();
wxCoord wText = width - sizeBtn.x - MARGIN;
- m_textCtrl->SetSize(x, y, wText, height);
- m_spinButton->SetSize(x + wText + MARGIN, y, wxDefaultCoord, height);
+ m_textCtrl->SetSize(0, 0, wText, height);
+ m_spinButton->SetSize(0 + wText + MARGIN, 0, wxDefaultCoord, height);
}
// ----------------------------------------------------------------------------
void wxSpinCtrlGenericBase::DoEnable(bool enable)
{
- // We never enable this control itself, it must stay disabled to avoid
- // interfering with the siblings event handling (see e.g. #12045 for the
- // kind of problems which arise otherwise).
- if ( !enable )
- wxSpinCtrlBase::DoEnable(enable);
+ wxSpinCtrlBase::DoEnable(enable);
}
#endif // __WXMSW__
}
#endif // wxUSE_TOOLTIPS
+bool wxSpinCtrlGenericBase::SetBackgroundColour(const wxColour& colour)
+{
+ // We need to provide this otherwise the entire composite window
+ // background and therefore the between component spaces
+ // will be changed.
+ if ( m_textCtrl )
+ return m_textCtrl->SetBackgroundColour(colour);
+
+ return true;
+}
+
// ----------------------------------------------------------------------------
// Handle sub controls events
// ----------------------------------------------------------------------------