Tweaks to the generic scpinctrl to handle layouts on wxMac better and
fixed alignment of the spinbutton. Also, since the generic spinctrl is used then the generic header should be included. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27301 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
89b674772c
commit
e459a7940d
@ -64,7 +64,7 @@ protected:
|
||||
#elif defined(__WXMOTIF__)
|
||||
#include "wx/generic/spinctlg.h"
|
||||
#elif defined(__WXMAC__)
|
||||
#include "wx/mac/spinctrl.h"
|
||||
#include "wx/generic/spinctlg.h"
|
||||
#elif defined(__WXCOCOA__)
|
||||
#include "wx/generic/spinctlg.h"
|
||||
#endif // platform
|
||||
|
@ -45,7 +45,11 @@
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// the margin between the text control and the spin
|
||||
#ifdef __WXMAC__
|
||||
static const wxCoord MARGIN = 4;
|
||||
#else
|
||||
static const wxCoord MARGIN = 2;
|
||||
#endif
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxSpinCtrlText: text control used by spin control
|
||||
@ -58,6 +62,9 @@ public:
|
||||
: wxTextCtrl(spin->GetParent(), -1, value)
|
||||
{
|
||||
m_spin = spin;
|
||||
|
||||
// remove the default minsize, the spinctrl will have one instead
|
||||
SetSizeHints(-1,-1);
|
||||
}
|
||||
|
||||
protected:
|
||||
@ -104,6 +111,9 @@ public:
|
||||
m_spin = spin;
|
||||
|
||||
SetWindowStyle(style | wxSP_VERTICAL);
|
||||
|
||||
// remove the default minsize, the spinctrl will have one instead
|
||||
SetSizeHints(-1,-1);
|
||||
}
|
||||
|
||||
protected:
|
||||
@ -174,24 +184,21 @@ bool wxSpinCtrl::Create(wxWindow *parent,
|
||||
initial = l;
|
||||
}
|
||||
|
||||
SetBackgroundColour(*wxRED);
|
||||
m_text = new wxSpinCtrlText(this, value);
|
||||
m_btn = new wxSpinCtrlButton(this, style);
|
||||
|
||||
|
||||
m_btn->SetRange(min, max);
|
||||
m_btn->SetValue(initial);
|
||||
#ifdef __WXMAC__
|
||||
wxSize csize = size ;
|
||||
if ( size.y == -1 ) {
|
||||
csize.y = m_text->GetSize().y ;
|
||||
csize.y = m_text->GetSize().y;
|
||||
}
|
||||
DoSetSize(pos.x, pos.y, csize.x, csize.y);
|
||||
SetBestSize(csize);
|
||||
#else
|
||||
wxSize best = GetBestSize();
|
||||
if ( size.x != -1 ) best.x = size.x;
|
||||
if ( size.y != -1 ) best.y = size.y;
|
||||
DoSetSize(pos.x, pos.y, best.x, best.y);
|
||||
SetBestSize(size);
|
||||
#endif
|
||||
|
||||
// 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
|
||||
@ -209,11 +216,13 @@ bool wxSpinCtrl::Create(wxWindow *parent,
|
||||
|
||||
wxSpinCtrl::~wxSpinCtrl()
|
||||
{
|
||||
// delete the controls now, don't leave them alive even though they woudl
|
||||
// delete the controls now, don't leave them alive even though they would
|
||||
// still be eventually deleted by our parent - but it will be too late, the
|
||||
// user code expects them to be gone now
|
||||
delete m_text;
|
||||
m_text = NULL ;
|
||||
delete m_btn;
|
||||
m_btn = NULL ;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
@ -237,11 +246,7 @@ void wxSpinCtrl::DoMoveWindow(int x, int y, int width, int height)
|
||||
|
||||
wxCoord wText = width - sizeBtn.x;
|
||||
m_text->SetSize(x, y, wText, height);
|
||||
#ifdef __WXMAC__
|
||||
m_btn->SetSize(x + wText + MARGIN, y, -1, -1);
|
||||
#else
|
||||
m_btn->SetSize(x + wText + MARGIN, y, -1, height);
|
||||
#endif
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user