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:
parent
7fe1a8b5a9
commit
8912d7eb18
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user