wxRadioBox::~wxRadioBox()
{
- m_isBeingDeleted = true;
+ SendDestroyEvent();
wxRadioButton *next, *current;
{
GetTextExtent(GetString(i), &eachWidth[i], &eachHeight[i] );
eachWidth[i] = (int)(eachWidth[i] + RADIO_SIZE);
- eachHeight[i] = (int)((3 * eachHeight[i]) / 2);
+ eachHeight[i] = (int) eachHeight[i];
if (maxWidth < eachWidth[i])
maxWidth = eachWidth[i];
maxHeight = eachHeight[i];
}
- totHeight = GetRowCount() * maxHeight;
+ totHeight = GetRowCount() * maxHeight + (GetRowCount() - 1) * maxHeight / 2;
totWidth = GetColumnCount() * (maxWidth + charWidth);
wxSize sz = DoGetSizeFromClientSize( wxSize( totWidth, totHeight ) ) ;
// arrange radio buttons
int x_start, y_start;
- x_start = 0;
- y_start = 0;
+ x_start = ( width - sz.x ) / 2;
+ y_start = ( height - sz.y ) / 2;
x_offset = x_start;
y_offset = y_start;
else
{
x_offset = x_start;
- y_offset += maxHeight ; //+ charHeight / 2
+ y_offset += 3 * maxHeight / 2 ; //+ charHeight / 2
}
}
current = current->NextInCycle();
if (m_windowStyle & wxRA_SPECIFY_ROWS)
- y_offset += maxHeight ; // + charHeight / 2
+ y_offset += 3 * maxHeight / 2 ; // + charHeight / 2
else
x_offset += maxWidth + charWidth;
}
{
GetTextExtent(GetString(i), &eachWidth, &eachHeight, NULL, NULL, &font );
eachWidth = (int)(eachWidth + RADIO_SIZE);
- eachHeight = (int)((3 * eachHeight) / 2);
+ eachHeight = (int)eachHeight;
if (maxWidth < eachWidth)
maxWidth = eachWidth;
if (maxHeight < eachHeight)
maxHeight = eachHeight;
}
- totHeight = GetRowCount() * maxHeight;
+ totHeight = GetRowCount() * maxHeight + (GetRowCount() - 1) * maxHeight / 2;
totWidth = GetColumnCount() * (maxWidth + charWidth);
wxSize sz = DoGetSizeFromClientSize( wxSize( totWidth, totHeight ) );
totWidth = sz.x;
totHeight = sz.y;
+ // optimum size is an additional 5 pt border to all sides
+ totWidth += 10;
+ totHeight += 10;
+
// handle radio box title as well
GetTextExtent( GetLabel(), &eachWidth, NULL );
eachWidth = (int)(eachWidth + RADIO_SIZE) + 3 * charWidth;
return wxSize( totWidth, totHeight );
}
+bool wxRadioBox::SetFont(const wxFont& font)
+{
+ bool retval = wxWindowBase::SetFont( font );
+
+ // dont' update the native control, it has its own small font
+
+ return retval;
+}
+
#endif // wxUSE_RADIOBOX