X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8228b8932abaedadbf9568bb3a1eef3ae25fb2a3..5c7b506103cfc078a821860766e31c47d595e07f:/src/mac/carbon/radiobox.cpp diff --git a/src/mac/carbon/radiobox.cpp b/src/mac/carbon/radiobox.cpp index 020354b760..69ce082c1b 100644 --- a/src/mac/carbon/radiobox.cpp +++ b/src/mac/carbon/radiobox.cpp @@ -9,24 +9,24 @@ // 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 = (size_t)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 ); @@ -154,7 +154,7 @@ bool wxRadioBox::Enable(bool enable) return false; current = m_radioButtonCycle; - for (size_t i = 0; i < m_noItems; i++) + for (unsigned int i = 0; i < m_noItems; i++) { current->Enable( enable ); current = current->NextInCycle(); @@ -165,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++; @@ -184,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 @@ -193,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) { @@ -239,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++; @@ -287,7 +296,7 @@ bool wxRadioBox::Show(bool show) wxRadioButton *current; current = m_radioButtonCycle; - for (size_t i=0; iShow( show ); current = current->NextInCycle(); @@ -300,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++; @@ -319,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 ) @@ -331,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(); } @@ -387,9 +407,9 @@ void wxRadioBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) maxWidth = -1; maxHeight = -1; - for (size_t 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); @@ -433,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)) @@ -477,9 +497,9 @@ wxSize wxRadioBox::DoGetBestSize() const maxWidth = -1; maxHeight = -1; - for (size_t 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)