X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6670f56440ae9209b3e2e51e06acf3bc5aaf1905..3225a4b8b8656f25dac6cb20684a3c2c273cf796:/src/os2/checkbox.cpp?ds=inline diff --git a/src/os2/checkbox.cpp b/src/os2/checkbox.cpp index b83deaa481..5462a84f7a 100644 --- a/src/os2/checkbox.cpp +++ b/src/os2/checkbox.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: checkbox.cpp +// Name: src/os2/checkbox.cpp // Purpose: wxCheckBox // Author: David Webster // Modified by: @@ -12,8 +12,9 @@ // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" +#include "wx/checkbox.h" + #ifndef WX_PRECOMP - #include "wx/checkbox.h" #include "wx/brush.h" #include "wx/scrolwin.h" #include "wx/dcscreen.h" @@ -26,7 +27,6 @@ // macros // ---------------------------------------------------------------------------- -IMPLEMENT_DYNAMIC_CLASS(wxCheckBox, wxControl) IMPLEMENT_DYNAMIC_CLASS(wxBitmapCheckBox, wxCheckBox) extern void wxAssociateWinWithHandle( HWND hWnd @@ -51,20 +51,15 @@ bool wxCheckBox::OS2Command( WXUINT WXUNUSED(uParam), return true; } // end of wxCheckBox::OS2Command -bool wxCheckBox::Create( - wxWindow* pParent -, wxWindowID vId -, const wxString& rsLabel -, const wxPoint& rPos -, const wxSize& rSize -, long lStyle -, const wxValidator& rValidator -, const wxString& rsName -) +bool wxCheckBox::Create(wxWindow* pParent, + wxWindowID vId, + const wxString& rsLabel, + const wxPoint& rPos, + const wxSize& rSize, + long lStyle, + const wxValidator& rValidator, + const wxString& rsName ) { - LONG lColor; - bool bOk; - if (!CreateControl( pParent ,vId ,rPos @@ -73,14 +68,12 @@ bool wxCheckBox::Create( ,rValidator ,rsName )) - return FALSE; + return false; - long osStyle = BS_AUTOCHECKBOX | - WS_TABSTOP | - WS_VISIBLE; + long osStyle = BS_AUTOCHECKBOX | WS_TABSTOP | WS_VISIBLE; - bOk = OS2CreateControl( wxT("BUTTON") + bool bOk = OS2CreateControl( wxT("BUTTON") ,osStyle ,rPos ,rSize @@ -88,7 +81,8 @@ bool wxCheckBox::Create( ,0 ); m_backgroundColour = pParent->GetBackgroundColour(); - lColor = (LONG)m_backgroundColour.GetPixel(); + + LONG lColor = (LONG)m_backgroundColour.GetPixel(); ::WinSetPresParam( m_hWnd ,PP_BACKGROUNDCOLOR ,sizeof(LONG) @@ -98,32 +92,17 @@ bool wxCheckBox::Create( return bOk; } // end of wxCheckBox::Create -void wxCheckBox::SetLabel( - const wxString& rsLabel -) +void wxCheckBox::SetLabel( const wxString& rsLabel ) { - wxString sLabel=::wxPMTextToLabel(rsLabel); - ::WinSetWindowText(GetHwnd(), (PSZ)sLabel.c_str()); + wxString sLabel=::wxPMTextToLabel(rsLabel); + ::WinSetWindowText(GetHwnd(), sLabel.c_str()); } // end of wxCheckBox::SetLabel wxSize wxCheckBox::DoGetBestSize() const { - static int nCheckSize = 0; - - if (!nCheckSize) - { - wxScreenDC vDc; - - vDc.SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT)); - - // - // The height of a standard button in the dialog units is 8, - // translate this to pixels (as one dialog unit is precisely equal to - // 8 character heights, it's just the char height) - // - nCheckSize = vDc.GetCharHeight(); - } - + // We should probably compute nCheckSize but it seems to be a constant + // independent of its label's font size and not made available by OS/2. + int nCheckSize = RADIO_SIZE; int nWidthCheckbox; int nHeightCheckbox; wxString sStr = wxGetWindowText(GetHWND()); @@ -134,7 +113,7 @@ wxSize wxCheckBox::DoGetBestSize() const ,&nWidthCheckbox ,&nHeightCheckbox ); - nWidthCheckbox += nCheckSize + GetCharWidth(); + nWidthCheckbox += nCheckSize; if (nHeightCheckbox < nCheckSize) nHeightCheckbox = nCheckSize; @@ -145,14 +124,10 @@ wxSize wxCheckBox::DoGetBestSize() const nHeightCheckbox = nCheckSize; } - return wxSize( nWidthCheckbox - ,nHeightCheckbox - ); + return wxSize( nWidthCheckbox, nHeightCheckbox ); } // end of wxCheckBox::DoGetBestSize -void wxCheckBox::SetValue( - bool bValue -) +void wxCheckBox::SetValue( bool bValue ) { ::WinSendMsg(GetHwnd(), BM_SETCHECK, (MPARAM)bValue, 0); } // end of wxCheckBox::SetValue @@ -166,9 +141,7 @@ bool wxCheckBox::GetValue() const return((LONGFROMMR(::WinSendMsg(GetHwnd(), BM_QUERYCHECK, (MPARAM)0, (MPARAM)0)) == 1L)); } // end of wxCheckBox::GetValue -void wxCheckBox::Command ( - wxCommandEvent& rEvent -) +void wxCheckBox::Command ( wxCommandEvent& rEvent ) { SetValue((rEvent.GetInt() != 0)); ProcessCommand(rEvent);