X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1a87edf286921de9b182f3d19adb6bb63ba85ebd..57f2a6529245d54274a4c56469f1828a6f8fd497:/src/palmos/radiobox.cpp diff --git a/src/palmos/radiobox.cpp b/src/palmos/radiobox.cpp index 80ec1b6103..c14bc68425 100644 --- a/src/palmos/radiobox.cpp +++ b/src/palmos/radiobox.cpp @@ -17,10 +17,6 @@ // headers // --------------------------------------------------------------------------- -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "radiobox.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -30,20 +26,20 @@ #if wxUSE_RADIOBOX +#include "wx/radiobox.h" + #ifndef WX_PRECOMP #include "wx/bitmap.h" #include "wx/brush.h" - #include "wx/radiobox.h" #include "wx/settings.h" #include "wx/log.h" + #include "wx/radiobut.h" #endif #if wxUSE_TOOLTIPS #include "wx/tooltip.h" #endif // wxUSE_TOOLTIPS -#include "wx/radiobut.h" - // TODO: wxCONSTRUCTOR #if 0 // wxUSE_EXTENDED_RTTI WX_DEFINE_FLAGS( wxRadioBoxStyle ) @@ -116,33 +112,11 @@ void wxRadioBox::Init() m_size = wxSize(0,0); } -int wxRadioBox::GetCount() const +unsigned int wxRadioBox::GetCount() const { return m_radios.GetCount(); } -int wxRadioBox::GetColumnCount() const -{ - return 0; -} - -int wxRadioBox::GetRowCount() const -{ - return 0; -} - -// returns the number of rows -int wxRadioBox::GetNumVer() const -{ - return 0; -} - -// returns the number of columns -int wxRadioBox::GetNumHor() const -{ - return 0; -} - bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& title, @@ -156,8 +130,10 @@ bool wxRadioBox::Create(wxWindow *parent, const wxString& name) { // initialize members - m_majorDim = majorDim == 0 ? n : wxMin(majorDim, n); - if(m_majorDim==0 || n==0) return false; + SetMajorDim(majorDim == 0 ? n : majorDim, style); + + if ( GetMajorDim() == 0 || n == 0 ) + return false; // subtype of the native palmOS radio: checkbox or push button? const bool use_checkbox = style & wxRA_USE_CHECKBOX; @@ -166,32 +142,35 @@ bool wxRadioBox::Create(wxWindow *parent, // get default size and position for the initial placement m_size = size; m_pos = pos; - int minor = n / m_majorDim; - if(n % m_majorDim > 0) minor++; + int minor = n / GetMajorDim(); + if(n % GetMajorDim() > 0) + minor++; if(m_size.x==wxDefaultCoord) - m_size.x=36*(use_cols?m_majorDim:minor); + m_size.x=36*(use_cols?GetMajorDim():minor); if(m_size.y==wxDefaultCoord) - m_size.y=12*(use_cols?minor:m_majorDim); + m_size.y=12*(use_cols?minor:GetMajorDim()); if(m_pos.x==wxDefaultCoord) m_pos.x=0; if(m_pos.y==wxDefaultCoord) m_pos.y=0; + m_label = title; + if(!wxControl::Create(parent, id, m_pos, m_size, style, val, name)) return false; int i = 0; - for ( int j = 0; j < minor; j++ ) + for ( unsigned int j = 0; j < minor; j++ ) { - for ( int k = 0; k < m_majorDim; k++ ) + for ( unsigned int k = 0; k < GetMajorDim(); k++ ) { if(iSetGroup( id ); rb->Create( @@ -231,7 +210,7 @@ wxRadioBox::~wxRadioBox() { } -wxRadioButton *wxRadioBox::GetRadioButton(int i) +wxRadioButton *wxRadioBox::GetRadioButton(int i) const { return (wxRadioButton *)m_radios.Get(i); } @@ -250,44 +229,57 @@ void wxRadioBox::DoGetSize( int *width, int *height ) const void wxRadioBox::DoMoveWindow(int x, int y, int width, int height) { + wxRect oldRect = GetRect(); + + m_pos.x = x; + m_pos.y = y; m_size.x = width; m_size.y = height; const bool use_cols = HasFlag(wxRA_SPECIFY_COLS); - const int n = GetCount(); - int minor = n / m_majorDim; - if(n % m_majorDim > 0) minor++; + const unsigned int n = GetCount(); + unsigned int minor = n / GetMajorDim(); + if(n % GetMajorDim() > 0) + minor++; - int i = 0; - for ( int j = 0; j < minor; j++ ) + unsigned int i = 0; + for ( unsigned int j = 0; j < minor; j++ ) { - for ( int k = 0; k < m_majorDim; k++ ) + for ( unsigned int k = 0; k < GetMajorDim(); k++ ) { if(iSetSize(end.x-start.x-1,end.y-start.y-1); + { + rb->SetSize(start.x,start.y,end.x-start.x-1,end.y-start.y-1); + } i++; } } } + + // refresh old and new area + GetParent()->RefreshRect(oldRect.Union(GetRect())); } // get the origin of the client area in the client coordinates wxPoint wxRadioBox::GetClientAreaOrigin() const { - return GetParent()->GetClientAreaOrigin() + GetPosition(); + return GetPosition(); } -void wxRadioBox::SetString(int item, const wxString& label) +void wxRadioBox::SetString(unsigned int item, const wxString& label) { + wxRadioButton *btn = GetRadioButton(item); + if(btn) + btn->SetLabel(label); } void wxRadioBox::SetSelection(int N) @@ -301,11 +293,12 @@ int wxRadioBox::GetSelection() const } // Find string for position -wxString wxRadioBox::GetString(int item) const +wxString wxRadioBox::GetString(unsigned int item) const { - wxString ret; - - return ret; + wxRadioButton *btn = GetRadioButton(item); + if(btn) + return btn->GetLabel(); + return wxEmptyString; } // ---------------------------------------------------------------------------- @@ -331,13 +324,16 @@ void wxRadioBox::SetFocus() { } -bool wxRadioBox::Show(bool show) +// Enable all subcontrols +bool wxRadioBox::Enable(bool enable) { - return false; + for(unsigned int i=0; iShow(show); + RefreshRect(btn->GetRect()); + return ret; + } + return false; +} + +wxString wxRadioBox::GetLabel() +{ + return m_label; +} + +void wxRadioBox::SetLabel(const wxString& label) +{ + m_label = label; +} + +void wxRadioBox::Refresh(bool eraseBack, const wxRect *rect) +{ + wxRect area = GetRect(); + + if(rect) + { + area.Offset(rect->GetPosition()); + area.SetSize(rect->GetSize()); + } + + GetParent()->RefreshRect(area); } void wxRadioBox::Command(wxCommandEvent & event)