diff --git a/include/wx/msw/checkbox.h b/include/wx/msw/checkbox.h index 97cf1d32b5..57603fc9a0 100644 --- a/include/wx/msw/checkbox.h +++ b/include/wx/msw/checkbox.h @@ -17,31 +17,37 @@ #endif // Checkbox item (single checkbox) -class WXDLLEXPORT wxBitmap; class WXDLLEXPORT wxCheckBox : public wxCheckBoxBase { public: wxCheckBox() { } - wxCheckBox(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr) + wxCheckBox(wxWindow *parent, + wxWindowID id, + const wxString& label, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxValidator& validator = wxDefaultValidator, + const wxString& name = wxCheckBoxNameStr) { Create(parent, id, label, pos, size, style, validator, name); } - bool Create(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr); + bool Create(wxWindow *parent, + wxWindowID id, + const wxString& label, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxValidator& validator = wxDefaultValidator, + const wxString& name = wxCheckBoxNameStr); virtual void SetValue(bool value); - virtual bool GetValue() const ; + virtual bool GetValue() const; + + virtual void SetLabel(const wxString& label); virtual bool MSWCommand(WXUINT param, WXWORD id); - virtual void SetLabel(const wxString& label); virtual void Command(wxCommandEvent& event); protected: @@ -51,32 +57,5 @@ private: DECLARE_DYNAMIC_CLASS(wxCheckBox) }; -class WXDLLEXPORT wxBitmapCheckBox: public wxCheckBox -{ -DECLARE_DYNAMIC_CLASS(wxBitmapCheckBox) - -public: - int checkWidth ; - int checkHeight ; - - wxBitmapCheckBox() { checkWidth = -1; checkHeight = -1; } - wxBitmapCheckBox(wxWindow *parent, wxWindowID id, const wxBitmap *label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, const wxBitmap *bitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr); - - virtual void SetLabel(const wxBitmap& bitmap); -}; - #endif // _WX_CHECKBOX_H_ diff --git a/src/msw/checkbox.cpp b/src/msw/checkbox.cpp index bc4e9e8393..f1e29a2395 100644 --- a/src/msw/checkbox.cpp +++ b/src/msw/checkbox.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: checkbox.cpp +// Name: msw/checkbox.cpp // Purpose: wxCheckBox // Author: Julian Smart // Modified by: @@ -39,17 +39,16 @@ #include "wx/msw/private.h" -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxCheckBox, wxControl) -IMPLEMENT_DYNAMIC_CLASS(wxBitmapCheckBox, wxCheckBox) +#ifndef BST_CHECKED + #define BST_CHECKED 0x0001 +#endif // ============================================================================ // implementation // ============================================================================ +IMPLEMENT_DYNAMIC_CLASS(wxCheckBox, wxControl) + // ---------------------------------------------------------------------------- // wxCheckBox // ---------------------------------------------------------------------------- @@ -123,87 +122,15 @@ void wxCheckBox::SetValue(bool val) SendMessage(GetHwnd(), BM_SETCHECK, val, 0); } -#ifndef BST_CHECKED -#define BST_CHECKED 0x0001 -#endif - bool wxCheckBox::GetValue() const { -#ifdef __WIN32__ - return (SendMessage(GetHwnd(), BM_GETCHECK, 0, 0) == BST_CHECKED); -#else - return ((0x001 & SendMessage(GetHwnd(), BM_GETCHECK, 0, 0)) == 0x001); -#endif + return (SendMessage(GetHwnd(), BM_GETCHECK, 0, 0) & BST_CHECKED) != 0; } -void wxCheckBox::Command (wxCommandEvent & event) +void wxCheckBox::Command(wxCommandEvent& event) { - SetValue ((event.GetInt() != 0)); - ProcessCommand (event); -} - -// ---------------------------------------------------------------------------- -// wxBitmapCheckBox -// ---------------------------------------------------------------------------- - -bool wxBitmapCheckBox::Create(wxWindow *parent, wxWindowID id, const wxBitmap *WXUNUSED(label), - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); -#if wxUSE_VALIDATORS - SetValidator(validator); -#endif // wxUSE_VALIDATORS - if (parent) parent->AddChild(this); - - SetBackgroundColour(parent->GetBackgroundColour()) ; - SetForegroundColour(parent->GetForegroundColour()) ; - m_windowStyle = style; - - 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; - - checkWidth = -1 ; - checkHeight = -1 ; - long msStyle = CHECK_FLAGS; - - HWND wx_button = CreateWindowEx(MakeExtendedStyle(m_windowStyle), CHECK_CLASS, wxT("toggle"), - msStyle, - 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId, - wxGetInstance(), NULL); - -#if wxUSE_CTL3D - if (!(GetParent()->GetWindowStyleFlag() & wxUSER_COLOURS)) - { - Ctl3dSubclassCtl(wx_button); - m_useCtl3D = TRUE; - } -#endif - - m_hWnd = (WXHWND)wx_button; - - // Subclass again for purposes of dialog editing mode - SubclassWin((WXHWND)wx_button); - - SetSize(x, y, width, height); - - ShowWindow(wx_button, SW_SHOW); - - return TRUE; -} - -void wxBitmapCheckBox::SetLabel(const wxBitmap& WXUNUSED(bitmap)) -{ - wxFAIL_MSG(wxT("not implemented")); + SetValue(event.GetInt() != 0); + ProcessCommand(event); } #endif // wxUSE_CHECKBOX