X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/43524b1583cbe798351fef03242f0990e1cfddc2..6cef0db28018fd2644ee4e38af715872e5242459:/src/mac/carbon/radiobox.cpp?ds=inline diff --git a/src/mac/carbon/radiobox.cpp b/src/mac/carbon/radiobox.cpp index 1fecf3f8db..69ce082c1b 100644 --- a/src/mac/carbon/radiobox.cpp +++ b/src/mac/carbon/radiobox.cpp @@ -6,27 +6,27 @@ // Created: 1998-01-01 // RCS-ID: $Id$ // Copyright: (c) Stefan Csomor -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -//------------------------------------------------------------------------------------- -// headers -//------------------------------------------------------------------------------------- - #include "wx/wxprec.h" #if wxUSE_RADIOBOX -#include "wx/arrstr.h" #include "wx/radiobox.h" -#include "wx/radiobut.h" + +#ifndef WX_PRECOMP + #include "wx/radiobut.h" + #include "wx/arrstr.h" +#endif + #include "wx/mac/uma.h" IMPLEMENT_DYNAMIC_CLASS(wxRadioBox, wxControl) BEGIN_EVENT_TABLE(wxRadioBox, wxControl) -EVT_RADIOBUTTON( wxID_ANY , wxRadioBox::OnRadioButton ) + EVT_RADIOBUTTON( wxID_ANY , wxRadioBox::OnRadioButton ) END_EVENT_TABLE() @@ -36,10 +36,10 @@ void wxRadioBox::OnRadioButton( wxCommandEvent &outer ) { wxCommandEvent event( wxEVT_COMMAND_RADIOBOX_SELECTED, m_windowId ); int i = GetSelection() ; - event.SetInt( i ); - event.SetString( GetString( i ) ); + event.SetInt(i); + event.SetString(GetString(i)); event.SetEventObject( this ); - ProcessCommand( event ); + ProcessCommand(event); } } @@ -101,13 +101,13 @@ bool wxRadioBox::Create( wxWindow *parent, int i; - m_noItems = n; + m_noItems = (unsigned int)n; m_noRowsOrCols = majorDim; m_radioButtonCycle = NULL; SetMajorDim( majorDim == 0 ? n : majorDim, style ); - m_label = label ; + m_labelOrig = m_label = label; Rect bounds = wxMacGetBoundsForControl( this, pos, size ); if ( bounds.right <= bounds.left ) @@ -128,7 +128,7 @@ bool wxRadioBox::Create( wxWindow *parent, wxRadioButton *radBtn = new wxRadioButton( this, wxID_ANY, - wxStripMenuCodes(choices[i]), + GetLabelText(choices[i]), wxPoint( 5, 20 * i + 10 ), wxDefaultSize, i == 0 ? wxRB_GROUP : 0 ); @@ -148,14 +148,13 @@ bool wxRadioBox::Create( wxWindow *parent, // bool wxRadioBox::Enable(bool enable) { - int i; wxRadioButton *current; if (!wxControl::Enable( enable )) return false; current = m_radioButtonCycle; - for (i = 0; i < m_noItems; i++) + for (unsigned int i = 0; i < m_noItems; i++) { current->Enable( enable ); current = current->NextInCycle(); @@ -166,16 +165,13 @@ bool wxRadioBox::Enable(bool enable) // Enables or disables an given button // -bool wxRadioBox::Enable(int item, bool enable) +bool wxRadioBox::Enable(unsigned int item, bool enable) { - int i; - wxRadioButton *current; - if (!IsValid( item )) return false; - i = 0; - current = m_radioButtonCycle; + unsigned int i = 0; + wxRadioButton *current = m_radioButtonCycle; while (i != item) { i++; @@ -185,6 +181,22 @@ bool wxRadioBox::Enable(int item, bool enable) return current->Enable( enable ); } +bool wxRadioBox::IsItemEnabled(unsigned int item) const +{ + if (!IsValid( item )) + return false; + + unsigned int i = 0; + wxRadioButton *current = m_radioButtonCycle; + while (i != item) + { + i++; + current = current->NextInCycle(); + } + + return current->IsEnabled(); +} + // Returns the radiobox label // wxString wxRadioBox::GetLabel() const @@ -194,15 +206,14 @@ wxString wxRadioBox::GetLabel() const // Returns the label for the given button // -wxString wxRadioBox::GetString(int item) const +wxString wxRadioBox::GetString(unsigned int item) const { - int i; wxRadioButton *current; if (!IsValid( item )) return wxEmptyString; - i = 0; + unsigned int i = 0; current = m_radioButtonCycle; while (i != item) { @@ -240,16 +251,13 @@ void wxRadioBox::SetLabel(const wxString& label) // Sets the label of a given button // -void wxRadioBox::SetString(int item,const wxString& label) +void wxRadioBox::SetString(unsigned int item,const wxString& label) { - int i; - wxRadioButton *current; - if (!IsValid( item )) return; - i = 0; - current = m_radioButtonCycle; + unsigned int i = 0; + wxRadioButton *current = m_radioButtonCycle; while (i != item) { i++; @@ -285,11 +293,10 @@ void wxRadioBox::SetSelection(int item) // bool wxRadioBox::Show(bool show) { - int i; wxRadioButton *current; current = m_radioButtonCycle; - for (i=0; iShow( show ); current = current->NextInCycle(); @@ -302,16 +309,13 @@ bool wxRadioBox::Show(bool show) // Shows or hides the given button // -bool wxRadioBox::Show(int item, bool show) +bool wxRadioBox::Show(unsigned int item, bool show) { - int i; - wxRadioButton *current; - if (!IsValid( item )) return false; - i = 0; - current = m_radioButtonCycle; + unsigned int i = 0; + wxRadioButton *current = m_radioButtonCycle; while (i != item) { i++; @@ -321,6 +325,23 @@ bool wxRadioBox::Show(int item, bool show) return current->Show( show ); } +bool wxRadioBox::IsItemShown(unsigned int item) const +{ + if (!IsValid( item )) + return false; + + unsigned int i = 0; + wxRadioButton *current = m_radioButtonCycle; + while (i != item) + { + i++; + current = current->NextInCycle(); + } + + return current->IsShown(); +} + + // Simulates the effect of the user issuing a command to the item // void wxRadioBox::Command( wxCommandEvent& event ) @@ -333,14 +354,11 @@ void wxRadioBox::Command( wxCommandEvent& event ) // void wxRadioBox::SetFocus() { - int i; wxRadioButton *current; - i = 0; current = m_radioButtonCycle; while (!current->GetValue()) { - i++; current = current->NextInCycle(); } @@ -389,9 +407,9 @@ void wxRadioBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) maxWidth = -1; maxHeight = -1; - for (i = 0 ; i < m_noItems; i++) + for (unsigned int i = 0 ; i < m_noItems; i++) { - GetTextExtent( GetString( i ), &eachWidth[i], &eachHeight[i] ); + GetTextExtent(GetString(i), &eachWidth[i], &eachHeight[i] ); eachWidth[i] = (int)(eachWidth[i] + RADIO_SIZE); eachHeight[i] = (int)((3 * eachHeight[i]) / 2); @@ -435,7 +453,7 @@ void wxRadioBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) y_offset = y_start; current = m_radioButtonCycle; - for ( i = 0 ; i < m_noItems; i++) + for (i = 0 ; i < (int)m_noItems; i++) { // not to do for the zero button! if ((i > 0) && ((i % GetMajorDim()) == 0)) @@ -479,9 +497,9 @@ wxSize wxRadioBox::DoGetBestSize() const maxWidth = -1; maxHeight = -1; - for (int i = 0 ; i < m_noItems; i++) + for (unsigned int i = 0 ; i < m_noItems; i++) { - GetTextExtent( GetString( i ), &eachWidth, &eachHeight, NULL, NULL, &font ); + GetTextExtent(GetString(i), &eachWidth, &eachHeight, NULL, NULL, &font ); eachWidth = (int)(eachWidth + RADIO_SIZE); eachHeight = (int)((3 * eachHeight) / 2); if (maxWidth < eachWidth) @@ -506,4 +524,4 @@ wxSize wxRadioBox::DoGetBestSize() const return wxSize( totWidth, totHeight ); } -#endif +#endif // wxUSE_RADIOBOX