/////////////////////////////////////////////////////////////////////////////
-// Name: radiobox.cpp
+// Name: src/mac/classic/radiobox.cpp
// Purpose: wxRadioBox
// Author: Stefan Csomor
// Modified by: JS Lair (99/11/15) first implementation
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
-#pragma implementation "radioboxbase.h"
-#pragma implementation "radiobox.h"
-#endif
-
//-------------------------------------------------------------------------------------
// headers
//-------------------------------------------------------------------------------------
#include "wx/radiobut.h"
#include "wx/mac/uma.h"
-#if !USE_SHARED_LIBRARY
IMPLEMENT_DYNAMIC_CLASS(wxRadioBox, wxControl)
-#endif
//-------------------------------------------------------------------------------------
// ¥ wxRadioBox()
//-------------------------------------------------------------------------------------
// Default constructor
BEGIN_EVENT_TABLE(wxRadioBox, wxControl)
-EVT_RADIOBUTTON( -1 , wxRadioBox::OnRadioButton )
+EVT_RADIOBUTTON( wxID_ANY , wxRadioBox::OnRadioButton )
END_EVENT_TABLE()
void wxRadioBox::OnRadioButton( wxCommandEvent &outer )
{
m_noItems = 0;
m_noRowsOrCols = 0;
- m_majorDim = 0 ;
m_radioButtonCycle = NULL;
}
m_noRowsOrCols = majorDim;
m_radioButtonCycle = NULL;
- if (majorDim==0)
- m_majorDim = n ;
- else
- m_majorDim = majorDim ;
+ SetMajorDim(majorDim == 0 ? n : majorDim, style);
Rect bounds ;
Str255 title ;
int i;
wxRadioButton *current;
- if ((item < 0) || (item >= m_noItems))
+ if (!IsValid(item))
return false;
i = 0;
int i;
wxRadioButton *current;
- if ((item < 0) || (item >= m_noItems))
+ if (!IsValid(item))
return wxEmptyString;
i = 0;
void wxRadioBox::SetString(int item,const wxString& label)
{
- int i;
+ int i;
wxRadioButton *current;
- if ((item < 0) || (item >= m_noItems))
+ if (!IsValid(item))
return;
i=0;
current=m_radioButtonCycle;
int i;
wxRadioButton *current;
- if ((item < 0) || (item >= m_noItems))
+ if (!IsValid(item))
return;
i=0;
current=m_radioButtonCycle;
wxControl::Show(show);
current=m_radioButtonCycle;
- for (i=0;i<m_noItems;i++) {
+ for (i=0;i<m_noItems;i++)
+ {
current->Show(show);
current=current->NextInCycle();
}
//-------------------------------------------------------------------------------------
// Shows or hides the given button
-void wxRadioBox::Show(int item, bool show)
+bool wxRadioBox::Show(int item, bool show)
{
- int i;
+ int i;
wxRadioButton *current;
- if ((item < 0) || (item >= m_noItems))
- return;
+ if (!IsValid(item))
+ return false;
i=0;
current=m_radioButtonCycle;
while (i!=item) {
i++;
current=current->NextInCycle();
}
- current->Show(show);
+ return current->Show(show);
}
//-------------------------------------------------------------------------------------
x_offset = x;
y_offset = y;
GetPosition(&x_current, &y_current);
- if ((x == -1) && !(sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
+ if ((x == wxDefaultCoord) && !(sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
x_offset = x_current;
- if ((y == -1)&& !(sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
+ if ((y == wxDefaultCoord)&& !(sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
y_offset = y_current;
// define size
totWidth = GetColumnCount() * (maxWidth + charWidth) + charWidth;
// only change our width/height if asked for
- if ( width == -1 )
+ if ( width == wxDefaultCoord )
{
if ( sizeFlags & wxSIZE_AUTO_WIDTH )
width = totWidth ;
width = widthOld;
}
- if ( height == -1 )
+ if ( height == wxDefaultCoord )
{
if ( sizeFlags & wxSIZE_AUTO_HEIGHT )
height = totHeight ;
current=m_radioButtonCycle;
for ( i = 0 ; i < m_noItems; i++)
{
- if (i&&((i%m_majorDim)==0)) // not to do for the zero button!
+ if (i&&((i%GetMajorDim())==0)) // not to do for the zero button!
{
if (m_windowStyle & wxRA_VERTICAL)
{
totHeight = totHeight + 10; //how many exactly should this be to meet the HIG?
}
// handle radio box title as well
- GetTextExtent(GetTitle(), &eachWidth, NULL);
+ GetTextExtent(GetLabel(), &eachWidth, NULL);
eachWidth = (int)(eachWidth + RADIO_SIZE) + 3 * charWidth ;
if (totWidth < eachWidth)
totWidth = eachWidth;
return wxSize(totWidth, totHeight);
}
-//-------------------------------------------------------------------------------------
-// ¥ GetNumVer
-//-------------------------------------------------------------------------------------
-// return the number of buttons in the vertical direction
-
-int wxRadioBox::GetRowCount() const
-{
- if ( m_windowStyle & wxRA_SPECIFY_ROWS )
- {
- return m_majorDim;
- }
- else
- {
- return (m_noItems + m_majorDim - 1)/m_majorDim;
- }
-}
-
-//-------------------------------------------------------------------------------------
-// ¥ GetNumHor
-//-------------------------------------------------------------------------------------
-// return the number of buttons in the horizontal direction
-
-int wxRadioBox::GetColumnCount() const
-{
- if ( m_windowStyle & wxRA_SPECIFY_ROWS )
- {
- return (m_noItems + m_majorDim - 1)/m_majorDim;
- }
- else
- {
- return m_majorDim;
- }
-}