corrected enabling of a specific item by index

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16663 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Gilles Depeyrot
2002-08-21 20:20:20 +00:00
parent 5d5d57f3ec
commit 371fd015a7
2 changed files with 70 additions and 64 deletions

View File

@@ -112,27 +112,27 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& label,
m_majorDim = majorDim ; m_majorDim = majorDim ;
Rect bounds ; Rect bounds ;
Str255 title ; Str255 title ;
MacPreControlCreate( parent , id , wxStripMenuCodes(label) , pos , size ,style, val , name , &bounds , title ) ; MacPreControlCreate( parent , id , wxStripMenuCodes(label) , pos , size ,style, val , name , &bounds , title ) ;
m_macControl = ::NewControl( MAC_WXHWND(parent->MacGetRootWindow()) , &bounds , title , false , 0 , 0 , 1, m_macControl = ::NewControl( MAC_WXHWND(parent->MacGetRootWindow()) , &bounds , title , false , 0 , 0 , 1,
kControlGroupBoxTextTitleProc , (long) this ) ; kControlGroupBoxTextTitleProc , (long) this ) ;
for (i = 0; i < n; i++) for (i = 0; i < n; i++)
{ {
wxRadioButton *radBtn = new wxRadioButton(this, NewControlId(), wxStripMenuCodes(choices[i]),wxPoint(5,20*i+10), wxRadioButton *radBtn = new wxRadioButton(this, NewControlId(), wxStripMenuCodes(choices[i]),wxPoint(5,20*i+10),
wxDefaultSize , i == 0 ? wxRB_GROUP : 0 ) ; wxDefaultSize , i == 0 ? wxRB_GROUP : 0 ) ;
if ( i == 0 ) if ( i == 0 )
m_radioButtonCycle = radBtn ; m_radioButtonCycle = radBtn ;
// m_radioButtonCycle=radBtn->AddInCycle(m_radioButtonCycle); // m_radioButtonCycle=radBtn->AddInCycle(m_radioButtonCycle);
} }
SetSelection(0); SetSelection(0);
MacPostControlCreate() ; MacPostControlCreate() ;
return TRUE; return TRUE;
} }
@@ -146,18 +146,18 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& label,
bool wxRadioBox::Enable(bool enable) bool wxRadioBox::Enable(bool enable)
{ {
int i; int i;
wxRadioButton *current; wxRadioButton *current;
if (!wxControl::Enable(enable)) if (!wxControl::Enable(enable))
return (false); return false;
current=m_radioButtonCycle; current = m_radioButtonCycle;
for (i=0;i<m_noItems;i++) { for (i = 0; i < m_noItems; i++) {
current->Enable(enable); current->Enable(enable);
current=current->NextInCycle(); current = current->NextInCycle();
} }
return (true); return true;
} }
//------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------
@@ -167,17 +167,19 @@ bool wxRadioBox::Enable(bool enable)
void wxRadioBox::Enable(int item, bool enable) void wxRadioBox::Enable(int item, bool enable)
{ {
int i; int i;
wxRadioButton *current; wxRadioButton *current;
if ((item < 0) || (item >= m_noItems)) if ((item < 0) || (item >= m_noItems))
return; return;
i=0;
current=m_radioButtonCycle; i = 0;
while (i!=item) { current = m_radioButtonCycle;
while (i != item) {
i++; i++;
current=current->NextInCycle(); current = current->NextInCycle();
} }
current->Enable(enable);
} }
//------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------
@@ -197,17 +199,18 @@ wxString wxRadioBox::GetLabel() const
wxString wxRadioBox::GetString(int item) const wxString wxRadioBox::GetString(int item) const
{ {
int i; int i;
wxRadioButton *current; wxRadioButton *current;
if ((item < 0) || (item >= m_noItems)) if ((item < 0) || (item >= m_noItems))
return wxString(""); return wxString("");
i=0;
current=m_radioButtonCycle; i = 0;
while (i!=item) { current = m_radioButtonCycle;
while (i != item) {
i++; i++;
current=current->NextInCycle(); current = current->NextInCycle();
} }
return current->GetLabel(); return current->GetLabel();
} }

View File

@@ -112,27 +112,27 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& label,
m_majorDim = majorDim ; m_majorDim = majorDim ;
Rect bounds ; Rect bounds ;
Str255 title ; Str255 title ;
MacPreControlCreate( parent , id , wxStripMenuCodes(label) , pos , size ,style, val , name , &bounds , title ) ; MacPreControlCreate( parent , id , wxStripMenuCodes(label) , pos , size ,style, val , name , &bounds , title ) ;
m_macControl = ::NewControl( MAC_WXHWND(parent->MacGetRootWindow()) , &bounds , title , false , 0 , 0 , 1, m_macControl = ::NewControl( MAC_WXHWND(parent->MacGetRootWindow()) , &bounds , title , false , 0 , 0 , 1,
kControlGroupBoxTextTitleProc , (long) this ) ; kControlGroupBoxTextTitleProc , (long) this ) ;
for (i = 0; i < n; i++) for (i = 0; i < n; i++)
{ {
wxRadioButton *radBtn = new wxRadioButton(this, NewControlId(), wxStripMenuCodes(choices[i]),wxPoint(5,20*i+10), wxRadioButton *radBtn = new wxRadioButton(this, NewControlId(), wxStripMenuCodes(choices[i]),wxPoint(5,20*i+10),
wxDefaultSize , i == 0 ? wxRB_GROUP : 0 ) ; wxDefaultSize , i == 0 ? wxRB_GROUP : 0 ) ;
if ( i == 0 ) if ( i == 0 )
m_radioButtonCycle = radBtn ; m_radioButtonCycle = radBtn ;
// m_radioButtonCycle=radBtn->AddInCycle(m_radioButtonCycle); // m_radioButtonCycle=radBtn->AddInCycle(m_radioButtonCycle);
} }
SetSelection(0); SetSelection(0);
MacPostControlCreate() ; MacPostControlCreate() ;
return TRUE; return TRUE;
} }
@@ -146,18 +146,18 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& label,
bool wxRadioBox::Enable(bool enable) bool wxRadioBox::Enable(bool enable)
{ {
int i; int i;
wxRadioButton *current; wxRadioButton *current;
if (!wxControl::Enable(enable)) if (!wxControl::Enable(enable))
return (false); return false;
current=m_radioButtonCycle; current = m_radioButtonCycle;
for (i=0;i<m_noItems;i++) { for (i = 0; i < m_noItems; i++) {
current->Enable(enable); current->Enable(enable);
current=current->NextInCycle(); current = current->NextInCycle();
} }
return (true); return true;
} }
//------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------
@@ -167,17 +167,19 @@ bool wxRadioBox::Enable(bool enable)
void wxRadioBox::Enable(int item, bool enable) void wxRadioBox::Enable(int item, bool enable)
{ {
int i; int i;
wxRadioButton *current; wxRadioButton *current;
if ((item < 0) || (item >= m_noItems)) if ((item < 0) || (item >= m_noItems))
return; return;
i=0;
current=m_radioButtonCycle; i = 0;
while (i!=item) { current = m_radioButtonCycle;
while (i != item) {
i++; i++;
current=current->NextInCycle(); current = current->NextInCycle();
} }
current->Enable(enable);
} }
//------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------
@@ -197,17 +199,18 @@ wxString wxRadioBox::GetLabel() const
wxString wxRadioBox::GetString(int item) const wxString wxRadioBox::GetString(int item) const
{ {
int i; int i;
wxRadioButton *current; wxRadioButton *current;
if ((item < 0) || (item >= m_noItems)) if ((item < 0) || (item >= m_noItems))
return wxString(""); return wxString("");
i=0;
current=m_radioButtonCycle; i = 0;
while (i!=item) { current = m_radioButtonCycle;
while (i != item) {
i++; i++;
current=current->NextInCycle(); current = current->NextInCycle();
} }
return current->GetLabel(); return current->GetLabel();
} }