// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma implementation "radiobut.h"
#endif
-#include "wx/defs.h"
+#include "wx/wxprec.h"
#include "wx/radiobut.h"
const wxValidator& validator,
const wxString& name)
{
+ m_macIsUserPane = FALSE ;
+
if ( !wxControl::Create(parent, id, pos, size, style, validator, name) )
return false;
-
- Rect bounds ;
- Str255 title ;
- MacPreControlCreate( parent , id , label , pos , size ,style, validator , name , &bounds , title ) ;
+ m_label = label ;
- m_macControl = ::NewControl( MAC_WXHWND(parent->MacGetRootWindow()) , &bounds , title , false , 0 , 0 , 1,
- kControlRadioButtonProc , (long) this ) ;
+ Rect bounds = wxMacGetBoundsForControl( this , pos , size ) ;
+
+ m_peer = new wxMacControl() ;
+ verify_noerr ( CreateRadioButtonControl( MAC_WXHWND(parent->MacGetTopLevelWindowRef()) , &bounds , CFSTR("") ,
+ 0 , false /* no autotoggle */ , m_peer->GetControlRefAddr() ) );
- MacPostControlCreate() ;
+
+ MacPostControlCreate(pos,size) ;
m_cycle = this ;
{
/* search backward for last group start */
wxRadioButton *chief = (wxRadioButton*) NULL;
- wxWindowList::Node *node = parent->GetChildren().GetLast();
+ wxWindowList::compatibility_iterator node = parent->GetChildren().GetLast();
while (node)
{
wxWindow *child = node->GetData();
void wxRadioButton::SetValue(bool val)
{
wxRadioButton *cycle;
- if ( GetControl32BitValue( (ControlHandle) m_macControl ) == val )
+ if ( m_peer->GetValue() == val )
return ;
- ::SetControl32BitValue( (ControlHandle) m_macControl , val ) ;
- if (val)
- {
- cycle=this->NextInCycle();
- if (cycle!=NULL) {
- while (cycle!=this) {
- cycle->SetValue(false);
- cycle=cycle->NextInCycle();
- }
- }
+ m_peer->SetValue( val ) ;
+ if (val)
+ {
+ cycle=this->NextInCycle();
+ if (cycle!=NULL)
+ {
+ while (cycle!=this)
+ {
+ cycle->SetValue(false);
+ cycle=cycle->NextInCycle();
}
- MacRedrawControl() ;
+ }
+ }
}
bool wxRadioButton::GetValue() const
{
- return ::GetControl32BitValue( (ControlHandle) m_macControl ) ;
+ return m_peer->GetValue() ;
}
void wxRadioButton::Command (wxCommandEvent & event)
ProcessCommand (event);
}
-void wxRadioButton::MacHandleControlClick( WXWidget control , wxInt16 controlpart , bool WXUNUSED(mouseStillDown))
+wxInt32 wxRadioButton::MacControlHit(WXEVENTHANDLERREF WXUNUSED(handler) , WXEVENTREF WXUNUSED(event) )
{
+ // if already set -> no action
if ( GetValue() )
- return ;
+ return noErr;
wxRadioButton *cycle, *old = NULL ;
cycle=this->NextInCycle();
event2.SetEventObject(this);
event2.SetInt( true );
ProcessCommand(event2);
+ return noErr ;
}
wxRadioButton *wxRadioButton::AddInCycle(wxRadioButton *cycle)