//-------------------------------------------------------------------------------------
#include "wx/defs.h"
+#include "wx/arrstr.h"
#include "wx/radiobox.h"
#include "wx/radiobut.h"
IMPLEMENT_DYNAMIC_CLASS(wxRadioBox, wxControl)
#endif
-#pragma mark -
-#pragma mark ### Constructors & destructor ###
-
//-------------------------------------------------------------------------------------
// ¥ wxRadioBox()
//-------------------------------------------------------------------------------------
wxRadioBox::~wxRadioBox()
{
+ m_isBeingDeleted = TRUE;
+
wxRadioButton *next,*current;
current=m_radioButtonCycle->NextInCycle();
//-------------------------------------------------------------------------------------
// Create the radiobox for two-step construction
+bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& label,
+ const wxPoint& pos, const wxSize& size,
+ const wxArrayString& choices,
+ int majorDim, long style,
+ const wxValidator& val, const wxString& name)
+{
+ wxCArrayString chs(choices);
+
+ return Create(parent, id, label, pos, size, chs.GetCount(),
+ chs.GetStrings(), majorDim, style, val, name);
+}
+
bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& label,
const wxPoint& pos, const wxSize& size,
int n, const wxString choices[],
int majorDim, long style,
const wxValidator& val, const wxString& name)
{
+ if ( !wxControl::Create(parent, id, pos, size, style, val, name) )
+ return false;
+
int i;
m_noItems = n;
for (i = 0; i < n; i++)
{
- wxRadioButton *radBtn = new wxRadioButton(this, NewControlId(), wxStripMenuCodes(choices[i]),wxPoint(5,20*i+10),
- wxDefaultSize , i == 0 ? wxRB_GROUP : 0 ) ;
+ wxRadioButton *radBtn = new wxRadioButton
+ (
+ this,
+ wxID_ANY,
+ wxStripMenuCodes(choices[i]),
+ wxPoint(5,20*i+10),
+ wxDefaultSize,
+ i == 0 ? wxRB_GROUP : 0
+ );
if ( i == 0 )
m_radioButtonCycle = radBtn ;
// m_radioButtonCycle=radBtn->AddInCycle(m_radioButtonCycle);
}
-#pragma mark -
-#pragma mark ### Specific functions (reference v2) ###
-
//-------------------------------------------------------------------------------------
// ¥ Enable(bool)
//-------------------------------------------------------------------------------------
wxRadioButton *current;
if ((item < 0) || (item >= m_noItems))
- return wxString("");
+ return wxEmptyString;
i = 0;
current = m_radioButtonCycle;
current->Show(show);
}
-#pragma mark -
-#pragma mark ### Other external functions ###
-
//-------------------------------------------------------------------------------------
// ¥ Command
//-------------------------------------------------------------------------------------
}
-#pragma mark -
-#pragma mark ### Internal functions ###
-
//-------------------------------------------------------------------------------------
// ¥ DoSetSize
//-------------------------------------------------------------------------------------
// Simulates the effect of the user issuing a command to the item
-#define RADIO_SIZE 40
+#define RADIO_SIZE 20
void wxRadioBox::DoSetSize(int x, int y, int width, int height, int sizeFlags)
{
int totWidth,totHeight;
SetFont(GetParent()->GetFont());
- GetTextExtent(wxString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), &charWidth, &charHeight);
+ GetTextExtent(wxT("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), &charWidth, &charHeight);
charWidth/=52;
maxWidth=-1;
if (maxHeight<eachHeight[i]) maxHeight = eachHeight[i];
}
- totHeight = GetRowCount() * (maxHeight + charHeight/2) + charHeight*3/2;
+ totHeight = GetRowCount() * (maxHeight + charHeight/2) + charHeight ;
totWidth = GetColumnCount() * (maxWidth + charWidth) + charWidth;
// only change our width/height if asked for
x_start = charWidth;
y_start = 15 ;
+ if ( UMAGetSystemVersion() >= 0x1030 )
+ {
+ //need to add a few more pixels for the top border on panther
+ y_start = y_start + 5; //how many exactly should this be to meet the HIG?
+ }
x_offset = x_start;
y_offset = y_start;
int totWidth, totHeight;
wxFont font = GetParent()->GetFont();
- GetTextExtent(wxString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"),
+ GetTextExtent(wxT("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"),
&charWidth, &charHeight, NULL, NULL, &font);
charWidth /= 52;
if (maxHeight < eachHeight) maxHeight = eachHeight;
}
- totHeight = GetRowCount() * (maxHeight + charHeight/2) + charHeight * 3/2;
+ totHeight = GetRowCount() * (maxHeight + charHeight/2) + charHeight ;
totWidth = GetColumnCount() * (maxWidth + charWidth) + charWidth;
+ if ( UMAGetSystemVersion() >= 0x1030 )
+ {
+ //need to add a few more pixels for the static boxborder on panther
+ totHeight = totHeight + 10; //how many exactly should this be to meet the HIG?
+ }
// handle radio box title as well
GetTextExtent(GetTitle(), &eachWidth, NULL);
eachWidth = (int)(eachWidth + RADIO_SIZE) + 3 * charWidth ;