cleaned up the checkbox creation code (~70 lines of code became 3)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14976 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2002-04-06 22:27:34 +00:00
parent 7fe1a8b5a9
commit 8912d7eb18

View File

@ -63,7 +63,6 @@ bool wxCheckBox::MSWCommand(WXUINT WXUNUSED(param), WXWORD WXUNUSED(id))
return TRUE;
}
// Single check box item
bool wxCheckBox::Create(wxWindow *parent,
wxWindowID id,
const wxString& label,
@ -72,79 +71,14 @@ bool wxCheckBox::Create(wxWindow *parent,
const wxValidator& validator,
const wxString& name)
{
SetName(name);
#if wxUSE_VALIDATORS
SetValidator(validator);
#endif // wxUSE_VALIDATORS
if (parent) parent->AddChild(this);
if ( !CreateControl(parent, id, pos, size, style, wxDefaultValidator, name) )
return FALSE;
SetBackgroundColour(parent->GetBackgroundColour()) ;
SetForegroundColour(parent->GetForegroundColour()) ;
m_windowStyle = style;
// VZ: disabling this ugliness which completely breaks checkboxes in wxGrid
// whoever did it, please tell me where and how does the checkbox fail
// to appear
#if 0
wxString Label = label;
if (Label == wxT(""))
Label = wxT(" "); // Apparently needed or checkbox won't show
#endif // 0
if ( id == -1 )
m_windowId = NewControlId();
else
m_windowId = id;
int x = pos.x;
int y = pos.y;
int width = size.x;
int height = size.y;
long msStyle = BS_AUTOCHECKBOX | WS_TABSTOP | WS_CHILD | WS_VISIBLE;
long msStyle = BS_AUTOCHECKBOX | WS_TABSTOP;
if ( style & wxALIGN_RIGHT )
msStyle |= BS_LEFTTEXT;
if ( style & wxCLIP_SIBLINGS )
msStyle |= WS_CLIPSIBLINGS;
// We perhaps have different concepts of 3D here - a 3D border,
// versus a 3D button.
// So we only wish to give a border if this is specified
// in the style.
bool want3D;
WXDWORD exStyle = Determine3DEffects(0, &want3D) ;
// Even with extended styles, need to combine with WS_BORDER
// for them to look right.
/*
if ( want3D || wxStyleHasBorder(m_windowStyle) )
msStyle |= WS_BORDER;
*/
m_hWnd = (WXHWND)CreateWindowEx(exStyle, wxT("BUTTON"), label,
msStyle,
0, 0, 0, 0,
(HWND)parent->GetHWND(), (HMENU)m_windowId,
wxGetInstance(), NULL);
#if wxUSE_CTL3D
if (want3D)
{
Ctl3dSubclassCtl(GetHwnd());
m_useCtl3D = TRUE;
}
#endif
// Subclass again for purposes of dialog editing mode
SubclassWin(m_hWnd);
SetFont(parent->GetFont());
SetSize(x, y, width, height);
return TRUE;
return MSWCreateControl(wxT("BUTTON"), msStyle, pos, size, label, 0);
}
void wxCheckBox::SetLabel(const wxString& label)