]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/radiobut.cpp
Build fix after recent changes in wxRendererNative class.
[wxWidgets.git] / src / os2 / radiobut.cpp
index 287df6e52d839ddeb59b3587ad7ef138b240da0b..6d6376cde7a5ecbd2632a193c3e21a5272119a14 100644 (file)
@@ -1,12 +1,12 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        radiobut.cpp
+// Name:        src/os2/radiobut.cpp
 // Purpose:     wxRadioButton
 // Author:      David Webster
 // Modified by:
 // Created:     10/12/99
 // RCS-ID:      $Id$
 // Copyright:   (c) David Webster
-// Licence:     wxWidgets licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 // For compilers that support precompilation, includes "wx.h".
 #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(
@@ -223,9 +211,9 @@ void wxRadioButton::SetValue(
     if (bValue)
     {
         const wxWindowList&         rSiblings = GetParent()->GetChildren();
-        wxWindowList::Node*         pNodeThis = rSiblings.Find(this);
+        wxWindowList::compatibility_iterator nodeThis = rSiblings.Find(this);
 
-        wxCHECK_RET(pNodeThis, _T("radio button not a child of its parent?"));
+        wxCHECK_RET(nodeThis, _T("radio button not a child of its parent?"));
 
         //
         // If it's not the first item of the group ...
@@ -235,11 +223,11 @@ void wxRadioButton::SetValue(
             //
             // ...turn off all radio buttons before this one
             //
-            for ( wxWindowList::Node* pNodeBefore = pNodeThis->GetPrevious();
-                  pNodeBefore;
-                  pNodeBefore = pNodeBefore->GetPrevious() )
+            for ( wxWindowList::compatibility_iterator nodeBefore = nodeThis->GetPrevious();
+                  nodeBefore;
+                  nodeBefore = nodeBefore->GetPrevious() )
             {
-                wxRadioButton*      pBtn = wxDynamicCast( pNodeBefore->GetData()
+                wxRadioButton*      pBtn = wxDynamicCast( nodeBefore->GetData()
                                                          ,wxRadioButton
                                                         );
                 if (!pBtn)
@@ -265,11 +253,11 @@ void wxRadioButton::SetValue(
         //
         // ... and all after this one
         //
-        for (wxWindowList::Node* pNodeAfter = pNodeThis->GetNext();
-             pNodeAfter;
-             pNodeAfter = pNodeAfter->GetNext())
+        for (wxWindowList::compatibility_iterator nodeAfter = nodeThis->GetNext();
+             nodeAfter;
+             nodeAfter = nodeAfter->GetNext())
         {
-            wxRadioButton*          pBtn = wxDynamicCast( pNodeAfter->GetData()
+            wxRadioButton*          pBtn = wxDynamicCast( nodeAfter->GetData()
                                                          ,wxRadioButton
                                                         );