]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/radiobut.cpp
Test the commit announcement bot some more by fixing more gtk signal callback handler...
[wxWidgets.git] / src / os2 / radiobut.cpp
index e0eaed2b65785f6dd8b8ee460c050b0574dcd9de..6d6376cde7a5ecbd2632a193c3e21a5272119a14 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        radiobut.cpp
+// Name:        src/os2/radiobut.cpp
 // Purpose:     wxRadioButton
 // Author:      David Webster
 // Modified by:
 #endif
 
 #ifndef WX_PRECOMP
-#include <stdio.h>
-#include "wx/setup.h"
-#include "wx/radiobut.h"
-#include "wx/brush.h"
-#include "wx/dcscreen.h"
-#include "wx/settings.h"
+    #include <stdio.h>
+    #include "wx/radiobut.h"
+    #include "wx/brush.h"
+    #include "wx/dcscreen.h"
+    #include "wx/settings.h"
 #endif
 
 #include "wx/os2/private.h"
@@ -111,17 +110,11 @@ bool wxRadioButton::Create(
 
 wxSize wxRadioButton::DoGetBestSize() const
 {
-    static int                      snRadioSize = 0;
+    // We should probably compute snRadioSize but it seems to be a constant
+    // independent of its label's font size and not made available by OS/2.
+    static int                      snRadioSize = RADIO_SIZE;
 
-    if (!snRadioSize)
-    {
-        wxScreenDC                  vDC;
-
-        vDC.SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
-        snRadioSize = vDC.GetCharHeight();
-    }
-
-    wxString                        sStr = GetLabel();
+    wxString                        sStr = wxGetWindowText(GetHwnd());
     int                             nRadioWidth;
     int                             nRadioHeight;
 
@@ -131,7 +124,7 @@ wxSize wxRadioButton::DoGetBestSize() const
                       ,&nRadioWidth
                       ,&nRadioHeight
                      );
-        nRadioWidth += snRadioSize + GetCharWidth();
+        nRadioWidth += snRadioSize;
         if (nRadioHeight < snRadioSize)
             nRadioHeight = snRadioSize;
     }
@@ -153,24 +146,21 @@ bool wxRadioButton::GetValue() const
     return((::WinSendMsg((HWND) GetHWND(), BM_QUERYCHECK, (MPARAM)0L, (MPARAM)0L) != 0));
 } // end of wxRadioButton::GetValue
 
-bool wxRadioButton::OS2Command(
-  WXUINT                            wParam
-, WXWORD                            wId
-)
+bool wxRadioButton::OS2Command( WXUINT wParam, WXWORD WXUNUSED(wId) )
 {
     if (wParam != BN_CLICKED)
-        return FALSE;
+        return false;
 
     if (m_bFocusJustSet)
     {
         //
         // See above: we want to ignore this event
         //
-        m_bFocusJustSet = FALSE;
+        m_bFocusJustSet = false;
     }
     else
     {
-        bool                        bIsChecked = GetValue();
+        bool bIsChecked = GetValue();
 
         if (HasFlag(wxRB_SINGLE))
         {
@@ -182,14 +172,11 @@ bool wxRadioButton::OS2Command(
             if (!bIsChecked )
                 SetValue(TRUE);
         }
-        wxCommandEvent              rEvent( wxEVT_COMMAND_RADIOBUTTON_SELECTED
-                                           ,m_windowId
-                                          );
-
+        wxCommandEvent rEvent( wxEVT_COMMAND_RADIOBUTTON_SELECTED, m_windowId );
         rEvent.SetEventObject(this);
         ProcessCommand(rEvent);
     }
-    return TRUE;
+    return true;
 } // end of wxRadioButton::OS2Command
 
 void wxRadioButton::SetFocus()
@@ -201,9 +188,9 @@ void wxRadioButton::SetFocus()
     // generates BN_CLICKED which leads to showing another dialog and so on
     // without end!
     //
-    // to aviod this, we drop the pseudo BN_CLICKED events generated when the
+    // to avoid this, we drop the pseudo BN_CLICKED events generated when the
     // button gains focus
-    m_bFocusJustSet = TRUE;
+    m_bFocusJustSet = true;
 
     wxControl::SetFocus();
 }
@@ -212,7 +199,8 @@ void wxRadioButton::SetLabel(
   const wxString&                   rsLabel
 )
 {
-    ::WinSetWindowText((HWND)GetHWND(), (const char *)rsLabel.c_str());
+    wxString                        sLabel = ::wxPMTextToLabel(rsLabel);
+    ::WinSetWindowText((HWND)GetHWND(), (const char *)sLabel.c_str());
 } // end of wxRadioButton::SetLabel
 
 void wxRadioButton::SetValue(