]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/radiobut.cpp
Vadim, please check this, I think it's what you meant
[wxWidgets.git] / src / msw / radiobut.cpp
index 6a10d9168dafe6a4ca3c7d8fa1402752c1dcbc06..c4453ac9ac5da90d1e281a731e1b47ac79eed965 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        radiobut.cpp
+// Name:        msw/radiobut.cpp
 // Purpose:     wxRadioButton
 // Author:      Julian Smart
 // Modified by:
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
-#pragma implementation "radiobut.h"
+    #pragma implementation "radiobut.h"
 #endif
 
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
-#pragma hdrstop
+    #pragma hdrstop
 #endif
 
+#if wxUSE_RADIOBTN
+
 #ifndef WX_PRECOMP
-#include <stdio.h>
-#include "wx/setup.h"
-#include "wx/radiobut.h"
-#include "wx/settings.h"
-#include "wx/brush.h"
+    #include "wx/radiobut.h"
+    #include "wx/settings.h"
+    #include "wx/brush.h"
 #endif
 
 #include "wx/msw/private.h"
 IMPLEMENT_DYNAMIC_CLASS(wxRadioButton, wxControl)
 // IMPLEMENT_DYNAMIC_CLASS(wxBitmapRadioButton, wxRadioButton)
 
-bool wxRadioButton::MSWCommand(WXUINT param, WXWORD id)
+bool wxRadioButton::MSWCommand(WXUINT param, WXWORD WXUNUSED(id))
 {
   if (param == BN_CLICKED)
   {
     wxCommandEvent event(wxEVT_COMMAND_RADIOBUTTON_SELECTED, m_windowId);
     event.SetEventObject( this );
+    event.SetInt( GetValue() );
     ProcessCommand(event);
     return TRUE;
   }
@@ -81,6 +82,10 @@ bool wxRadioButton::Create(wxWindow *parent, wxWindowID id,
 //  long msStyle = groupStyle | RADIO_FLAGS;
   long msStyle = groupStyle | BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE /* | WS_CLIPSIBLINGS */;
 
+  if ( m_windowStyle & wxCLIP_SIBLINGS )
+        msStyle |= WS_CLIPSIBLINGS;
+
+
   bool want3D;
   WXDWORD exStyle = Determine3DEffects(0, &want3D) ;
 
@@ -137,6 +142,13 @@ bool wxRadioButton::Create(wxWindow *parent, wxWindowID id,
 
   SetSize(x, y, width, height);
 
+  // for compatibility with wxGTK, the first radio button in a group is
+  // always checked (this makes sense anyhow as you need to ensure that at
+  // least one button in the group is checked and this is the simlpest way to
+  // do it)
+  if ( m_windowStyle & wxRB_GROUP )
+      SetValue(TRUE);
+
   return TRUE;
 }
 
@@ -164,10 +176,17 @@ void wxRadioButton::Command (wxCommandEvent & event)
   ProcessCommand (event);
 }
 
-WXHBRUSH wxRadioButton::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,
+WXHBRUSH wxRadioButton::OnCtlColor(WXHDC pDC, WXHWND WXUNUSED(pWnd), WXUINT WXUNUSED(nCtlColor),
+#if wxUSE_CTL3D
                                WXUINT message,
                                WXWPARAM wParam,
-                               WXLPARAM lParam)
+                               WXLPARAM lParam
+#else
+                               WXUINT WXUNUSED(message),
+                               WXWPARAM WXUNUSED(wParam),
+                               WXLPARAM WXUNUSED(lParam)
+#endif
+    )
 {
 #if wxUSE_CTL3D
     if ( m_useCtl3D )
@@ -269,3 +288,5 @@ bool wxBitmapRadioButton::GetValue(void) const
 }
 
 #endif
+
+#endif // wxUSE_RADIOBTN