#include <stdio.h>
#include "wx/setup.h"
#include "wx/radiobut.h"
+#include "wx/brush.h"
#endif
#include "wx/msw/private.h"
// IMPLEMENT_DYNAMIC_CLASS(wxBitmapRadioButton, wxRadioButton)
#endif
+bool wxRadioButton::MSWCommand(WXUINT param, WXWORD id)
+{
+ if (param == BN_CLICKED)
+ {
+ wxCommandEvent event(wxEVT_COMMAND_RADIOBUTTON_SELECTED, m_windowId);
+ event.SetEventObject( this );
+ ProcessCommand(event);
+ return TRUE;
+ }
+ else return FALSE;
+}
+
bool wxRadioButton::Create(wxWindow *parent, wxWindowID id,
const wxString& label,
const wxPoint& pos,
groupStyle = WS_GROUP;
// long msStyle = groupStyle | RADIO_FLAGS;
- long msStyle = groupStyle | BS_RADIOBUTTON | WS_CHILD | WS_VISIBLE ;
+ long msStyle = groupStyle | BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE ;
bool want3D;
WXDWORD exStyle = Determine3DEffects(0, &want3D) ;
// Even with extended styles, need to combine with WS_BORDER
// for them to look right.
+/*
if ( want3D || wxStyleHasBorder(m_windowStyle) )
msStyle |= WS_BORDER;
+*/
- m_hWnd = (WXHWND) CreateWindowEx(exStyle, RADIO_CLASS, (const char *)label,
+ m_hWnd = (WXHWND) CreateWindowEx(exStyle, RADIO_CLASS, (const wxChar *)label,
msStyle,0,0,0,0,
(HWND) parent->GetHWND(), (HMENU)m_windowId, wxGetInstance(), NULL);
- wxCHECK_MSG( m_hWnd, FALSE, "Failed to create radiobutton" );
+ wxCHECK_MSG( m_hWnd, FALSE, wxT("Failed to create radiobutton") );
-#if CTL3D
+#if wxUSE_CTL3D
if (want3D)
{
Ctl3dSubclassCtl((HWND) m_hWnd);
}
#endif
- SetFont(* parent->GetFont());
+ SetFont(parent->GetFont());
// Subclass again for purposes of dialog editing mode
SubclassWin((WXHWND)m_hWnd);
// SetValue(value);
// start GRW fix
- if (label != "")
+ if (label != wxT(""))
{
int label_width, label_height;
- GetTextExtent(label, &label_width, &label_height, NULL, NULL, GetFont());
+ GetTextExtent(label, &label_width, &label_height, NULL, NULL, & this->GetFont());
if (width < 0)
width = (int)(label_width + RADIO_SIZE);
if (height<0)
void wxRadioButton::SetLabel(const wxString& label)
{
- SetWindowText((HWND) GetHWND(), (const char *)label);
+ SetWindowText((HWND) GetHWND(), (const wxChar *)label);
}
void wxRadioButton::SetValue(bool value)
SendMessage((HWND) GetHWND(), BM_SETCHECK, (WPARAM)value, 0L);
}
-// Get single selection, for single choice list items
+// Get single selection
bool wxRadioButton::GetValue(void) const
{
- return (SendMessage((HWND) GetHWND(), BM_SETCHECK, 0, 0L) != 0);
+ return (SendMessage((HWND) GetHWND(), BM_GETCHECK, 0, 0L) != 0);
}
WXHBRUSH wxRadioButton::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,
WXUINT message, WXWPARAM wParam, WXLPARAM lParam)
{
-#if CTL3D
+#if wxUSE_CTL3D
if ( m_useCtl3D )
{
HBRUSH hbrush = Ctl3dCtlColorEx(message, wParam, lParam);
wxCHECK_MSG( m_hWnd, "Failed to create radio button", FALSE );
-#if CTL3D
+#if wxUSE_CTL3D
if (!(GetParent()->GetWindowStyleFlag() & wxUSER_COLOURS))
{
Ctl3dSubclassCtl((HWND) GetHWND());