From 1a87edf286921de9b182f3d19adb6bb63ba85ebd Mon Sep 17 00:00:00 2001 From: =?utf8?q?W=C5=82odzimierz=20Skiba?= Date: Mon, 21 Feb 2005 21:02:41 +0000 Subject: [PATCH] Consistent wxWindow::Enable with wxRadioBox::Enable for control and its items. wxRadioBox of PalmOS. Little source cleaning. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32301 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/changes.txt | 8 ++ docs/latex/wx/radiobox.tex | 8 +- include/wx/cocoa/radiobox.h | 6 +- include/wx/gtk/radiobox.h | 2 +- include/wx/gtk1/radiobox.h | 2 +- include/wx/mac/carbon/radiobox.h | 10 +- include/wx/mac/classic/radiobox.h | 11 +-- include/wx/motif/radiobox.h | 3 +- include/wx/msw/radiobox.h | 2 +- include/wx/os2/radiobox.h | 8 +- include/wx/palmos/radiobox.h | 30 +++++- include/wx/radiobox.h | 2 +- include/wx/univ/radiobox.h | 2 +- src/cocoa/radiobox.mm | 8 +- src/gtk/radiobox.cpp | 16 ++-- src/gtk1/radiobox.cpp | 16 ++-- src/mac/carbon/radiobox.cpp | 137 +++++++++++++-------------- src/mac/classic/radiobox.cpp | 134 +++++++++++++------------- src/motif/radiobox.cpp | 25 ++--- src/msw/radiobox.cpp | 9 +- src/os2/radiobox.cpp | 52 +++++------ src/palmos/control.cpp | 4 +- src/palmos/radiobox.cpp | 150 ++++++++++++++++++++++++------ src/univ/radiobox.cpp | 6 +- 24 files changed, 382 insertions(+), 269 deletions(-) diff --git a/docs/changes.txt b/docs/changes.txt index 134bbf566c..1e71392871 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -2,6 +2,14 @@ wxWidgets 2.5 Change Log - For more verbose changes, see the manual ------------------------------------------------------------------- +2.5.5 +----- + +wxPalmOS: + +- native wxRadioBox implementation + + 2.5.4 ----- diff --git a/docs/latex/wx/radiobox.tex b/docs/latex/wx/radiobox.tex index 5cd773a331..0db8a838ef 100644 --- a/docs/latex/wx/radiobox.tex +++ b/docs/latex/wx/radiobox.tex @@ -129,11 +129,11 @@ for further details. \membersection{wxRadioBox::Enable}\label{wxradioboxenable} -\func{void}{Enable}{\param{bool}{ enable = {\tt true}}} +\func{virtual bool}{Enable}{\param{bool}{ enable = {\tt true}}} Enables or disables the entire radiobox. -\func{void}{Enable}{\param{int}{ n}, \param{bool}{ enable = {\tt true}}} +\func{virtual bool}{Enable}{\param{int}{ n}, \param{bool}{ enable = {\tt true}}} Enables or disables an individual button in the radiobox. @@ -152,6 +152,10 @@ individual button in the radiobox.} \end{twocollist}} } +\wxheading{See also} + +\helpref{wxWindow::Enable}{wxwindowenable} + \membersection{wxRadioBox::FindString}\label{wxradioboxfindstring} diff --git a/include/wx/cocoa/radiobox.h b/include/wx/cocoa/radiobox.h index ad01d746d8..f7bb99c4e4 100644 --- a/include/wx/cocoa/radiobox.h +++ b/include/wx/cocoa/radiobox.h @@ -6,7 +6,7 @@ // Created: 2003/03/18 // RCS-ID: $Id: // Copyright: (c) 2003 David Elliott -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef __WX_COCOA_RADIOBOX_H__ @@ -89,8 +89,8 @@ public: virtual wxString GetString(int n) const; virtual void SetString(int n, const wxString& label); // change the individual radio button state - virtual void Enable(int n, bool enable = TRUE); - virtual void Show(int n, bool show = TRUE); + virtual bool Enable(int n, bool enable = true); + virtual void Show(int n, bool show = true); // layout parameters virtual int GetColumnCount() const; virtual int GetRowCount() const; diff --git a/include/wx/gtk/radiobox.h b/include/wx/gtk/radiobox.h index ff0fc1dbfa..cf76a447e5 100644 --- a/include/wx/gtk/radiobox.h +++ b/include/wx/gtk/radiobox.h @@ -88,7 +88,7 @@ public: void SetString( int n, const wxString& label ); void Show( int item, bool show ); - void Enable( int item, bool enable ); + virtual bool Enable( int item, bool enable = true ); virtual wxString GetStringSelection() const; virtual bool SetStringSelection( const wxString& s ); diff --git a/include/wx/gtk1/radiobox.h b/include/wx/gtk1/radiobox.h index ff0fc1dbfa..cf76a447e5 100644 --- a/include/wx/gtk1/radiobox.h +++ b/include/wx/gtk1/radiobox.h @@ -88,7 +88,7 @@ public: void SetString( int n, const wxString& label ); void Show( int item, bool show ); - void Enable( int item, bool enable ); + virtual bool Enable( int item, bool enable = true ); virtual wxString GetStringSelection() const; virtual bool SetStringSelection( const wxString& s ); diff --git a/include/wx/mac/carbon/radiobox.h b/include/wx/mac/carbon/radiobox.h index d4d2a46263..663b8126c0 100644 --- a/include/wx/mac/carbon/radiobox.h +++ b/include/wx/mac/carbon/radiobox.h @@ -67,19 +67,19 @@ public: virtual wxString GetString(int item) const; virtual void SetString(int item, const wxString& label) ; - virtual void Enable(int item, bool enable); + virtual bool Enable(int item, bool enable = true); virtual void Show(int item, bool show) ; virtual int GetColumnCount() const ; virtual int GetRowCount() const ; - virtual bool Enable(bool enable = TRUE); + virtual bool Enable(bool enable = true); virtual wxString GetLabel() const; virtual void SetLabel(const wxString& label) ; - virtual bool Show(bool show = TRUE); + virtual bool Show(bool show = true); -// Other external functions +// Other external functions void Command(wxCommandEvent& event); void SetFocus(); @@ -95,7 +95,7 @@ protected: int m_noItems; int m_noRowsOrCols; -// Internal functions +// Internal functions virtual wxSize DoGetBestSize() const ; virtual void DoSetSize(int x, int y, int width, int height, diff --git a/include/wx/mac/classic/radiobox.h b/include/wx/mac/classic/radiobox.h index d4d2a46263..dc6d92ccb8 100644 --- a/include/wx/mac/classic/radiobox.h +++ b/include/wx/mac/classic/radiobox.h @@ -67,19 +67,18 @@ public: virtual wxString GetString(int item) const; virtual void SetString(int item, const wxString& label) ; - virtual void Enable(int item, bool enable); + virtual bool Enable(int item, bool enable = true); virtual void Show(int item, bool show) ; virtual int GetColumnCount() const ; virtual int GetRowCount() const ; - - virtual bool Enable(bool enable = TRUE); + virtual bool Enable(bool enable = true); virtual wxString GetLabel() const; virtual void SetLabel(const wxString& label) ; - virtual bool Show(bool show = TRUE); + virtual bool Show(bool show = true); -// Other external functions +// Other external functions void Command(wxCommandEvent& event); void SetFocus(); @@ -95,7 +94,7 @@ protected: int m_noItems; int m_noRowsOrCols; -// Internal functions +// Internal functions virtual wxSize DoGetBestSize() const ; virtual void DoSetSize(int x, int y, int width, int height, diff --git a/include/wx/motif/radiobox.h b/include/wx/motif/radiobox.h index 6ba0e29882..a37b8f6628 100644 --- a/include/wx/motif/radiobox.h +++ b/include/wx/motif/radiobox.h @@ -83,7 +83,7 @@ public: void SetString(int item, const wxString& label) ; wxString GetString(int item) const; virtual bool Enable(bool enable = true); - void Enable(int item, bool enable); + virtual bool Enable(int item, bool enable = true); void Show(int item, bool show) ; virtual bool Show(bool show = true) ; @@ -123,7 +123,6 @@ protected: private: void Init(); - DECLARE_DYNAMIC_CLASS(wxRadioBox) }; diff --git a/include/wx/msw/radiobox.h b/include/wx/msw/radiobox.h index 89673b211f..ac8dac414d 100644 --- a/include/wx/msw/radiobox.h +++ b/include/wx/msw/radiobox.h @@ -92,7 +92,7 @@ public: virtual int GetCount() const; virtual wxString GetString(int n) const; virtual void SetString(int n, const wxString& label); - virtual void Enable(int n, bool enable = true); + virtual bool Enable(int n, bool enable = true); virtual void Show(int n, bool show = true); virtual int GetColumnCount() const { return GetNumHor(); } virtual int GetRowCount() const { return GetNumVer(); } diff --git a/include/wx/os2/radiobox.h b/include/wx/os2/radiobox.h index 9534ba0ba0..f1309b5bf3 100644 --- a/include/wx/os2/radiobox.h +++ b/include/wx/os2/radiobox.h @@ -101,10 +101,8 @@ public: void Command(wxCommandEvent& rEvent); bool ContainsHWND(WXHWND hWnd) const; - virtual bool Enable(bool bEnable = TRUE); - void Enable( int nItem - ,bool bEnable - ); + virtual bool Enable(bool bEnable = true); + virtual bool Enable(int nItem, bool bEnable = true); int FindString(const wxString& sStr) const; virtual WXHBRUSH OnCtlColor( WXHDC hDC @@ -119,7 +117,7 @@ public: ); void SendNotificationEvent(void); virtual void Show( int nItem - ,bool bShow = TRUE + ,bool bShow = true ) ; bool Show(bool bShow); MRESULT WindowProc( WXUINT uMsg diff --git a/include/wx/palmos/radiobox.h b/include/wx/palmos/radiobox.h index 12ff7bac7c..5ca125b1e7 100644 --- a/include/wx/palmos/radiobox.h +++ b/include/wx/palmos/radiobox.h @@ -17,6 +17,7 @@ #endif class WXDLLEXPORT wxBitmap; +class WXDLLEXPORT wxRadioButton; // ---------------------------------------------------------------------------- // wxRadioBox @@ -25,7 +26,10 @@ class WXDLLEXPORT wxBitmap; class WXDLLEXPORT wxRadioBox : public wxControl, public wxRadioBoxBase { public: - wxRadioBox(); + wxRadioBox():m_radios(wxKEY_INTEGER,32) + { + Init(); + } wxRadioBox(wxWindow *parent, wxWindowID id, @@ -37,10 +41,13 @@ public: long style = wxRA_SPECIFY_COLS, const wxValidator& val = wxDefaultValidator, const wxString& name = wxRadioBoxNameStr) + :m_radios(wxKEY_INTEGER,n+1) { + Init(); (void)Create(parent, id, title, pos, size, n, choices, majorDim, style, val, name); } + wxRadioBox(wxWindow *parent, wxWindowID id, const wxString& title, @@ -51,7 +58,9 @@ public: long style = wxRA_SPECIFY_COLS, const wxValidator& val = wxDefaultValidator, const wxString& name = wxRadioBoxNameStr) + :m_radios(wxKEY_INTEGER,choices.GetCount()+1) { + Init(); (void)Create(parent, id, title, pos, size, choices, majorDim, style, val, name); } @@ -86,11 +95,17 @@ public: virtual int GetCount() const; virtual wxString GetString(int n) const; virtual void SetString(int n, const wxString& label); - virtual void Enable(int n, bool enable = true); + virtual bool Enable(int n, bool enable = true); virtual void Show(int n, bool show = true); virtual int GetColumnCount() const; virtual int GetRowCount() const; + virtual void DoGetPosition( int *x, int *y ) const; + virtual void DoGetSize( int *width, int *height ) const; + virtual void DoMoveWindow(int x, int y, int width, int height); + + virtual wxPoint GetClientAreaOrigin() const; + virtual bool Show(bool show = true); void SetFocus(); virtual bool Enable(bool enable = true); @@ -134,12 +149,17 @@ protected: int m_noRowsOrCols; int m_selectedButton; - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); virtual wxSize DoGetBestSize() const; private: + + void Init(); + wxRadioButton *GetRadioButton(int i); + + wxPoint m_pos; + wxSize m_size; + wxHashTable m_radios; + DECLARE_DYNAMIC_CLASS(wxRadioBox) DECLARE_NO_COPY_CLASS(wxRadioBox) }; diff --git a/include/wx/radiobox.h b/include/wx/radiobox.h index 3a366c9943..376de2c623 100644 --- a/include/wx/radiobox.h +++ b/include/wx/radiobox.h @@ -32,7 +32,7 @@ class WXDLLEXPORT wxRadioBoxBase : public wxItemContainerImmutable { public: // change the individual radio button state - virtual void Enable(int n, bool enable = true) = 0; + virtual bool Enable(int n, bool enable = true) = 0; virtual void Show(int n, bool show = true) = 0; // layout parameters diff --git a/include/wx/univ/radiobox.h b/include/wx/univ/radiobox.h index f59e03d45c..59a06918b3 100644 --- a/include/wx/univ/radiobox.h +++ b/include/wx/univ/radiobox.h @@ -95,7 +95,7 @@ public: virtual wxString GetString(int n) const; virtual void SetString(int n, const wxString& label); - virtual void Enable(int n, bool enable = true); + virtual bool Enable(int n, bool enable = true); virtual void Show(int n, bool show = true); // we also override the wxControl methods to avoid virtual function hiding diff --git a/src/cocoa/radiobox.mm b/src/cocoa/radiobox.mm index 89f9b0bbe5..1e807be0c6 100644 --- a/src/cocoa/radiobox.mm +++ b/src/cocoa/radiobox.mm @@ -4,9 +4,9 @@ // Author: David Elliott // Modified by: // Created: 2003/02/15 -// RCS-ID: $Id: +// RCS-ID: $Id: // Copyright: (c) 2003 David Elliott -// Licence: wxWidgets licence +// Licence: wxWidgets licence ///////////////////////////////////////////////////////////////////////////// #include "wx/wxprec.h" @@ -91,8 +91,10 @@ void wxRadioBox::SetString(int n, const wxString& label) } // change the individual radio button state -void wxRadioBox::Enable(int n, bool enable) +bool wxRadioBox::Enable(int n, bool enable) { + // TODO + return false; } void wxRadioBox::Show(int n, bool show) diff --git a/src/gtk/radiobox.cpp b/src/gtk/radiobox.cpp index 04050c30dd..eaff2e8e6c 100644 --- a/src/gtk/radiobox.cpp +++ b/src/gtk/radiobox.cpp @@ -517,11 +517,11 @@ int wxRadioBox::GetSelection(void) const wxString wxRadioBox::GetString( int n ) const { - wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid radiobox") ); + wxCHECK_MSG( m_widget != NULL, wxEmptyString, wxT("invalid radiobox") ); wxList::compatibility_iterator node = m_boxes.Item( n ); - wxCHECK_MSG( node, wxT(""), wxT("radiobox wrong index") ); + wxCHECK_MSG( node, wxEmptyString, wxT("radiobox wrong index") ); GtkLabel *label = GTK_LABEL( BUTTON_CHILD(node->GetData()) ); @@ -575,19 +575,21 @@ bool wxRadioBox::Enable( bool enable ) return true; } -void wxRadioBox::Enable( int item, bool enable ) +bool wxRadioBox::Enable( int item, bool enable ) { - wxCHECK_RET( m_widget != NULL, wxT("invalid radiobox") ); + wxCHECK_MSG( m_widget != NULL, false, wxT("invalid radiobox") ); wxList::compatibility_iterator node = m_boxes.Item( item ); - wxCHECK_RET( node, wxT("radiobox wrong index") ); + wxCHECK_MSG( node, false, wxT("radiobox wrong index") ); GtkButton *button = GTK_BUTTON( node->GetData() ); GtkLabel *label = GTK_LABEL( BUTTON_CHILD(button) ); gtk_widget_set_sensitive( GTK_WIDGET(button), enable ); gtk_widget_set_sensitive( GTK_WIDGET(label), enable ); + + return true; } void wxRadioBox::Show( int item, bool show ) @@ -608,7 +610,7 @@ void wxRadioBox::Show( int item, bool show ) wxString wxRadioBox::GetStringSelection() const { - wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid radiobox") ); + wxCHECK_MSG( m_widget != NULL, wxEmptyString, wxT("invalid radiobox") ); wxList::compatibility_iterator node = m_boxes.GetFirst(); while (node) @@ -629,7 +631,7 @@ wxString wxRadioBox::GetStringSelection() const } wxFAIL_MSG( wxT("wxRadioBox none selected") ); - return wxT(""); + return wxEmptyString; } bool wxRadioBox::SetStringSelection( const wxString &s ) diff --git a/src/gtk1/radiobox.cpp b/src/gtk1/radiobox.cpp index 04050c30dd..eaff2e8e6c 100644 --- a/src/gtk1/radiobox.cpp +++ b/src/gtk1/radiobox.cpp @@ -517,11 +517,11 @@ int wxRadioBox::GetSelection(void) const wxString wxRadioBox::GetString( int n ) const { - wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid radiobox") ); + wxCHECK_MSG( m_widget != NULL, wxEmptyString, wxT("invalid radiobox") ); wxList::compatibility_iterator node = m_boxes.Item( n ); - wxCHECK_MSG( node, wxT(""), wxT("radiobox wrong index") ); + wxCHECK_MSG( node, wxEmptyString, wxT("radiobox wrong index") ); GtkLabel *label = GTK_LABEL( BUTTON_CHILD(node->GetData()) ); @@ -575,19 +575,21 @@ bool wxRadioBox::Enable( bool enable ) return true; } -void wxRadioBox::Enable( int item, bool enable ) +bool wxRadioBox::Enable( int item, bool enable ) { - wxCHECK_RET( m_widget != NULL, wxT("invalid radiobox") ); + wxCHECK_MSG( m_widget != NULL, false, wxT("invalid radiobox") ); wxList::compatibility_iterator node = m_boxes.Item( item ); - wxCHECK_RET( node, wxT("radiobox wrong index") ); + wxCHECK_MSG( node, false, wxT("radiobox wrong index") ); GtkButton *button = GTK_BUTTON( node->GetData() ); GtkLabel *label = GTK_LABEL( BUTTON_CHILD(button) ); gtk_widget_set_sensitive( GTK_WIDGET(button), enable ); gtk_widget_set_sensitive( GTK_WIDGET(label), enable ); + + return true; } void wxRadioBox::Show( int item, bool show ) @@ -608,7 +610,7 @@ void wxRadioBox::Show( int item, bool show ) wxString wxRadioBox::GetStringSelection() const { - wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid radiobox") ); + wxCHECK_MSG( m_widget != NULL, wxEmptyString, wxT("invalid radiobox") ); wxList::compatibility_iterator node = m_boxes.GetFirst(); while (node) @@ -629,7 +631,7 @@ wxString wxRadioBox::GetStringSelection() const } wxFAIL_MSG( wxT("wxRadioBox none selected") ); - return wxT(""); + return wxEmptyString; } bool wxRadioBox::SetStringSelection( const wxString &s ) diff --git a/src/mac/carbon/radiobox.cpp b/src/mac/carbon/radiobox.cpp index e69336b952..be78021cf1 100644 --- a/src/mac/carbon/radiobox.cpp +++ b/src/mac/carbon/radiobox.cpp @@ -62,8 +62,8 @@ wxRadioBox::wxRadioBox() } //------------------------------------------------------------------------------------- -// ¥ wxRadioBox(wxWindow*, wxWindowID, const wxString&, const wxPoint&, -// const wxSize&, int, const wxString[], int, long, +// ¥ wxRadioBox(wxWindow*, wxWindowID, const wxString&, const wxPoint&, +// const wxSize&, int, const wxString[], int, long, // const wxValidator&, const wxString&) //------------------------------------------------------------------------------------- // Contructor, creating and showing a radiobox @@ -78,10 +78,10 @@ wxRadioBox::wxRadioBox() wxRadioBox::~wxRadioBox() { - m_isBeingDeleted = TRUE; + m_isBeingDeleted = true; wxRadioButton *next,*current; - + current=m_radioButtonCycle->NextInCycle(); next=current->NextInCycle(); while (current!=m_radioButtonCycle) { @@ -89,7 +89,7 @@ wxRadioBox::~wxRadioBox() current=next; next=current->NextInCycle(); } - delete current; + delete current; } //------------------------------------------------------------------------------------- @@ -115,23 +115,23 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& label, int majorDim, long style, const wxValidator& val, const wxString& name) { - m_macIsUserPane = FALSE ; - + m_macIsUserPane = false ; + if ( !wxControl::Create(parent, id, pos, size, style, val, name) ) return false; int i; - + m_noItems = n; m_noRowsOrCols = majorDim; m_radioButtonCycle = NULL; - + if (majorDim==0) m_majorDim = n ; else m_majorDim = majorDim ; - - + + m_label = label ; Rect bounds = wxMacGetBoundsForControl( this , pos , size ) ; @@ -139,12 +139,12 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& label, bounds.right = bounds.left + 100 ; if ( bounds.bottom <= bounds.top ) bounds.bottom = bounds.top + 100 ; - + m_peer = new wxMacControl() ; - - verify_noerr(CreateGroupBoxControl(MAC_WXHWND(parent->MacGetTopLevelWindowRef()),&bounds, CFSTR("") , - true /*primary*/ , m_peer->GetControlRefAddr() ) ) ; - + + verify_noerr(CreateGroupBoxControl(MAC_WXHWND(parent->MacGetTopLevelWindowRef()),&bounds, CFSTR("") , + true /*primary*/ , m_peer->GetControlRefAddr() ) ) ; + for (i = 0; i < n; i++) { wxRadioButton *radBtn = new wxRadioButton @@ -160,11 +160,11 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& label, m_radioButtonCycle = radBtn ; // m_radioButtonCycle=radBtn->AddInCycle(m_radioButtonCycle); } - + SetSelection(0); MacPostControlCreate(pos,size) ; - - return TRUE; + + return true; } @@ -177,10 +177,10 @@ 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++) { current->Enable(enable); @@ -194,21 +194,21 @@ bool wxRadioBox::Enable(bool enable) //------------------------------------------------------------------------------------- // Enables or disables an given button -void wxRadioBox::Enable(int item, bool enable) +bool wxRadioBox::Enable(int item, bool enable) { int i; wxRadioButton *current; - + if ((item < 0) || (item >= m_noItems)) - return; - + return false; + i = 0; current = m_radioButtonCycle; while (i != item) { i++; current = current->NextInCycle(); } - current->Enable(enable); + return current->Enable(enable); } //------------------------------------------------------------------------------------- @@ -230,10 +230,10 @@ wxString wxRadioBox::GetString(int item) const { int i; wxRadioButton *current; - + if ((item < 0) || (item >= m_noItems)) return wxEmptyString; - + i = 0; current = m_radioButtonCycle; while (i != item) { @@ -252,14 +252,14 @@ int wxRadioBox::GetSelection() const { int i; wxRadioButton *current; - + i=0; current=m_radioButtonCycle; while (!current->GetValue()) { i++; current=current->NextInCycle(); } - + return i; } @@ -290,7 +290,7 @@ void wxRadioBox::SetString(int item,const wxString& label) { int i; wxRadioButton *current; - + if ((item < 0) || (item >= m_noItems)) return; i=0; @@ -305,14 +305,14 @@ void wxRadioBox::SetString(int item,const wxString& label) //------------------------------------------------------------------------------------- // ¥ SetSelection //------------------------------------------------------------------------------------- -// Sets a button by passing the desired position. This does not cause +// Sets a button by passing the desired position. This does not cause // wxEVT_COMMAND_RADIOBOX_SELECTED event to get emitted void wxRadioBox::SetSelection(int item) { int i; wxRadioButton *current; - + if ((item < 0) || (item >= m_noItems)) return; i=0; @@ -322,21 +322,21 @@ void wxRadioBox::SetSelection(int item) current=current->NextInCycle(); } current->SetValue(true); - + } //------------------------------------------------------------------------------------- // ¥ Show(bool) //------------------------------------------------------------------------------------- -// Shows or hides the entire radiobox +// Shows or hides the entire radiobox bool wxRadioBox::Show(bool show) { int i; wxRadioButton *current; - + wxControl::Show(show); - + current=m_radioButtonCycle; for (i=0;iShow(show); @@ -348,13 +348,13 @@ bool wxRadioBox::Show(bool show) //------------------------------------------------------------------------------------- // ¥ Show(int, bool) //------------------------------------------------------------------------------------- -// Shows or hides the given button +// Shows or hides the given button void wxRadioBox::Show(int item, bool show) { int i; wxRadioButton *current; - + if ((item < 0) || (item >= m_noItems)) return; i=0; @@ -386,7 +386,7 @@ void wxRadioBox::SetFocus() { int i; wxRadioButton *current; - + i=0; current=m_radioButtonCycle; while (!current->GetValue()) { @@ -408,14 +408,14 @@ void wxRadioBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) { int i; wxRadioButton *current; - + // define the position - + int x_current, y_current; int x_offset,y_offset; int widthOld, heightOld; GetSize(&widthOld, &heightOld); - + x_offset = x; y_offset = y; GetPosition(&x_current, &y_current); @@ -423,18 +423,18 @@ void wxRadioBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) x_offset = x_current; if ((y == -1)&& !(sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) y_offset = y_current; - + // define size - + int charWidth,charHeight; int maxWidth,maxHeight; int eachWidth[128],eachHeight[128]; int totWidth,totHeight; - + GetTextExtent(wxT("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), &charWidth, &charHeight); charWidth/=52; - + maxWidth=-1; maxHeight=-1; for (i = 0 ; i < m_noItems; i++) @@ -445,12 +445,12 @@ void wxRadioBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) if (maxWidthSetSize(x_offset,y_offset,eachWidth[i],eachHeight[i]); current=current->NextInCycle(); - + if (m_windowStyle & wxRA_SPECIFY_ROWS) y_offset += maxHeight ; /*+ charHeight/2;*/ else @@ -514,16 +514,16 @@ wxSize wxRadioBox::DoGetBestSize() const int maxWidth, maxHeight; int eachWidth, eachHeight; int totWidth, totHeight; - + wxFont font = /*GetParent()->*/GetFont(); GetTextExtent(wxT("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), &charWidth, &charHeight, NULL, NULL, &font); charWidth /= 52; - + maxWidth = -1; maxHeight = -1; - + for (int i = 0 ; i < m_noItems; i++) { GetTextExtent(GetString(i), &eachWidth, &eachHeight,NULL, NULL, &font); @@ -532,20 +532,20 @@ wxSize wxRadioBox::DoGetBestSize() const if (maxWidth < eachWidth) maxWidth = eachWidth; if (maxHeight < eachHeight) maxHeight = eachHeight; } - + totHeight = GetRowCount() * (maxHeight ) ; totWidth = GetColumnCount() * (maxWidth + charWidth) ; - + wxSize sz = DoGetSizeFromClientSize( wxSize( totWidth , totHeight ) ) ; totWidth = sz.x ; totHeight = sz.y ; - + // handle radio box title as well GetTextExtent(GetTitle(), &eachWidth, NULL); eachWidth = (int)(eachWidth + RADIO_SIZE) + 3 * charWidth ; - if (totWidth < eachWidth) + if (totWidth < eachWidth) totWidth = eachWidth; - + return wxSize(totWidth, totHeight); } //------------------------------------------------------------------------------------- @@ -583,6 +583,3 @@ int wxRadioBox::GetColumnCount() const } #endif - - - diff --git a/src/mac/classic/radiobox.cpp b/src/mac/classic/radiobox.cpp index 2b0d11d3e9..9fe0e52e8f 100644 --- a/src/mac/classic/radiobox.cpp +++ b/src/mac/classic/radiobox.cpp @@ -59,8 +59,8 @@ wxRadioBox::wxRadioBox() } //------------------------------------------------------------------------------------- -// ¥ wxRadioBox(wxWindow*, wxWindowID, const wxString&, const wxPoint&, -// const wxSize&, int, const wxString[], int, long, +// ¥ wxRadioBox(wxWindow*, wxWindowID, const wxString&, const wxPoint&, +// const wxSize&, int, const wxString[], int, long, // const wxValidator&, const wxString&) //------------------------------------------------------------------------------------- // Contructor, creating and showing a radiobox @@ -75,10 +75,10 @@ wxRadioBox::wxRadioBox() wxRadioBox::~wxRadioBox() { - m_isBeingDeleted = TRUE; + m_isBeingDeleted = true; wxRadioButton *next,*current; - + current=m_radioButtonCycle->NextInCycle(); next=current->NextInCycle(); while (current!=m_radioButtonCycle) { @@ -86,7 +86,7 @@ wxRadioBox::~wxRadioBox() current=next; next=current->NextInCycle(); } - delete current; + delete current; } //------------------------------------------------------------------------------------- @@ -116,25 +116,24 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& label, return false; int i; - + m_noItems = n; m_noRowsOrCols = majorDim; m_radioButtonCycle = NULL; - + if (majorDim==0) m_majorDim = n ; else m_majorDim = majorDim ; - - + Rect bounds ; Str255 title ; - + MacPreControlCreate( parent , id , wxStripMenuCodes(label) , pos , size ,style, val , name , &bounds , title ) ; - - m_macControl = (WXWidget) ::NewControl( MAC_WXHWND(parent->MacGetRootWindow()) , &bounds , title , false , 0 , 0 , 1, + + m_macControl = (WXWidget) ::NewControl( MAC_WXHWND(parent->MacGetRootWindow()) , &bounds , title , false , 0 , 0 , 1, kControlGroupBoxTextTitleProc , (long) this ) ; - + for (i = 0; i < n; i++) { wxRadioButton *radBtn = new wxRadioButton @@ -150,11 +149,11 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& label, m_radioButtonCycle = radBtn ; // m_radioButtonCycle=radBtn->AddInCycle(m_radioButtonCycle); } - + SetSelection(0); MacPostControlCreate() ; - - return TRUE; + + return true; } @@ -167,10 +166,10 @@ 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++) { current->Enable(enable); @@ -184,21 +183,21 @@ bool wxRadioBox::Enable(bool enable) //------------------------------------------------------------------------------------- // Enables or disables an given button -void wxRadioBox::Enable(int item, bool enable) +bool wxRadioBox::Enable(int item, bool enable) { int i; wxRadioButton *current; - + if ((item < 0) || (item >= m_noItems)) - return; - + return false; + i = 0; current = m_radioButtonCycle; while (i != item) { i++; current = current->NextInCycle(); } - current->Enable(enable); + return current->Enable(enable); } //------------------------------------------------------------------------------------- @@ -220,10 +219,10 @@ wxString wxRadioBox::GetString(int item) const { int i; wxRadioButton *current; - + if ((item < 0) || (item >= m_noItems)) return wxEmptyString; - + i = 0; current = m_radioButtonCycle; while (i != item) { @@ -242,14 +241,14 @@ int wxRadioBox::GetSelection() const { int i; wxRadioButton *current; - + i=0; current=m_radioButtonCycle; while (!current->GetValue()) { i++; current=current->NextInCycle(); } - + return i; } @@ -280,7 +279,7 @@ void wxRadioBox::SetString(int item,const wxString& label) { int i; wxRadioButton *current; - + if ((item < 0) || (item >= m_noItems)) return; i=0; @@ -295,14 +294,14 @@ void wxRadioBox::SetString(int item,const wxString& label) //------------------------------------------------------------------------------------- // ¥ SetSelection //------------------------------------------------------------------------------------- -// Sets a button by passing the desired position. This does not cause +// Sets a button by passing the desired position. This does not cause // wxEVT_COMMAND_RADIOBOX_SELECTED event to get emitted void wxRadioBox::SetSelection(int item) { int i; wxRadioButton *current; - + if ((item < 0) || (item >= m_noItems)) return; i=0; @@ -312,21 +311,21 @@ void wxRadioBox::SetSelection(int item) current=current->NextInCycle(); } current->SetValue(true); - + } //------------------------------------------------------------------------------------- // ¥ Show(bool) //------------------------------------------------------------------------------------- -// Shows or hides the entire radiobox +// Shows or hides the entire radiobox bool wxRadioBox::Show(bool show) { int i; wxRadioButton *current; - + wxControl::Show(show); - + current=m_radioButtonCycle; for (i=0;iShow(show); @@ -338,13 +337,13 @@ bool wxRadioBox::Show(bool show) //------------------------------------------------------------------------------------- // ¥ Show(int, bool) //------------------------------------------------------------------------------------- -// Shows or hides the given button +// Shows or hides the given button void wxRadioBox::Show(int item, bool show) { int i; wxRadioButton *current; - + if ((item < 0) || (item >= m_noItems)) return; i=0; @@ -376,7 +375,7 @@ void wxRadioBox::SetFocus() { int i; wxRadioButton *current; - + i=0; current=m_radioButtonCycle; while (!current->GetValue()) { @@ -398,14 +397,14 @@ void wxRadioBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) { int i; wxRadioButton *current; - + // define the position - + int x_current, y_current; int x_offset,y_offset; int widthOld, heightOld; GetSize(&widthOld, &heightOld); - + x_offset = x; y_offset = y; GetPosition(&x_current, &y_current); @@ -413,18 +412,18 @@ void wxRadioBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) x_offset = x_current; if ((y == -1)&& !(sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) y_offset = y_current; - + // define size - + int charWidth,charHeight; int maxWidth,maxHeight; int eachWidth[128],eachHeight[128]; int totWidth,totHeight; - + SetFont(GetParent()->GetFont()); GetTextExtent(wxT("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), &charWidth, &charHeight); charWidth/=52; - + maxWidth=-1; maxHeight=-1; for (i = 0 ; i < m_noItems; i++) @@ -435,10 +434,10 @@ void wxRadioBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) if (maxWidth= 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? + //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; - - current=m_radioButtonCycle; + + current=m_radioButtonCycle; for ( i = 0 ; i < m_noItems; i++) { if (i&&((i%m_majorDim)==0)) // not to do for the zero button! @@ -489,10 +488,10 @@ void wxRadioBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) y_offset += maxHeight ; /*+ charHeight/2;*/ } } - + current->SetSize(x_offset,y_offset,eachWidth[i],eachHeight[i]); current=current->NextInCycle(); - + if (m_windowStyle & wxRA_SPECIFY_ROWS) y_offset += maxHeight ; /*+ charHeight/2;*/ else @@ -506,15 +505,15 @@ wxSize wxRadioBox::DoGetBestSize() const int maxWidth, maxHeight; int eachWidth, eachHeight; int totWidth, totHeight; - + wxFont font = GetParent()->GetFont(); GetTextExtent(wxT("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), &charWidth, &charHeight, NULL, NULL, &font); charWidth /= 52; - + maxWidth = -1; maxHeight = -1; - + for (int i = 0 ; i < m_noItems; i++) { GetTextExtent(GetString(i), &eachWidth, &eachHeight); @@ -523,10 +522,10 @@ wxSize wxRadioBox::DoGetBestSize() const if (maxWidth < eachWidth) maxWidth = eachWidth; if (maxHeight < eachHeight) maxHeight = eachHeight; } - + 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 @@ -535,9 +534,9 @@ wxSize wxRadioBox::DoGetBestSize() const // handle radio box title as well GetTextExtent(GetTitle(), &eachWidth, NULL); eachWidth = (int)(eachWidth + RADIO_SIZE) + 3 * charWidth ; - if (totWidth < eachWidth) + if (totWidth < eachWidth) totWidth = eachWidth; - + return wxSize(totWidth, totHeight); } //------------------------------------------------------------------------------------- @@ -573,8 +572,3 @@ int wxRadioBox::GetColumnCount() const return m_majorDim; } } - - - - - diff --git a/src/motif/radiobox.cpp b/src/motif/radiobox.cpp index 0d6845b5ae..2ddeee2d44 100644 --- a/src/motif/radiobox.cpp +++ b/src/motif/radiobox.cpp @@ -84,7 +84,7 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& title, WXFontType fontType = m_font.GetFontType(XtDisplay(parentWidget)); - if (label1 != "") + if (!label1.empty()) { wxXmString text(label1); m_labelWidget = (WXWidget) @@ -94,7 +94,7 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& title, : xmLabelGadgetClass, (Widget)m_mainWidget, #else - xmLabelWidgetClass, + xmLabelWidgetClass, (Widget)m_mainWidget, #endif wxFont::GetFontTag(), fontType, @@ -107,7 +107,7 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& title, #else XmNchildType, XmFRAME_TITLE_CHILD, #endif - XmNchildVerticalAlignment, + XmNchildVerticalAlignment, XmALIGNMENT_CENTER, NULL); } @@ -149,7 +149,7 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& title, ChangeFont(false); SetSelection (0); - + XtRealizeWidget((Widget)m_mainWidget); XtManageChild (radioBoxWidget); XtManageChild ((Widget)m_mainWidget); @@ -186,7 +186,7 @@ void wxRadioBox::SetString(int item, const wxString& label) return; Widget widget = (Widget) m_radioButtons[item]; - if (label != "") + if (!label.empty()) { wxString label1(wxStripMenuCodes(label)); wxXmString text( label1 ); @@ -253,7 +253,7 @@ void wxRadioBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) if (x > -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) XtVaSetValues ((Widget) m_mainWidget, XmNx, xx, NULL); if (y > -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - XtVaSetValues ((Widget) m_mainWidget, XmNy, yy, NULL); + XtVaSetValues ((Widget) m_mainWidget, XmNy, yy, NULL); if (width > 0) XtVaSetValues ((Widget) m_mainWidget, XmNwidth, width, NULL); @@ -265,12 +265,13 @@ void wxRadioBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) } // Enable a specific button -void wxRadioBox::Enable(int n, bool enable) +bool wxRadioBox::Enable(int n, bool enable) { if ((n < 0) || (n >= m_noItems)) - return; + return false; XtSetSensitive ((Widget) m_radioButtons[n], (Boolean) enable); + return true; } // Enable all controls @@ -299,9 +300,9 @@ void wxRadioBox::Show(int n, bool show) // It's main purpose isn't for allowing Show/Unshow dynamically, // but rather to provide a way to design wxRadioBox such: // - // o Val1 o Val2 o Val3 - // o Val4 o Val6 - // o Val7 o Val8 o Val9 + // o Val1 o Val2 o Val3 + // o Val4 o Val6 + // o Val7 o Val8 o Val9 // // In my case, this is a 'direction' box, and the Show(5,False) is // coupled with an Enable(5,False) @@ -328,7 +329,7 @@ wxString wxRadioBox::GetStringSelection () const if (sel > -1) return this->GetString (sel); else - return wxString(""); + return wxEmptyString; } bool wxRadioBox::SetStringSelection (const wxString& s) diff --git a/src/msw/radiobox.cpp b/src/msw/radiobox.cpp index 6e928f08ad..c1bac089c2 100644 --- a/src/msw/radiobox.cpp +++ b/src/msw/radiobox.cpp @@ -408,12 +408,13 @@ void wxRadioBox::SetFocus() } // Enable a specific button -void wxRadioBox::Enable(int item, bool enable) +bool wxRadioBox::Enable(int item, bool enable) { - wxCHECK_RET( item >= 0 && item < GetCount(), + wxCHECK_MSG( item >= 0 && item < GetCount(), false, wxT("invalid item in wxRadioBox::Enable()") ); ::EnableWindow((*m_radioButtons)[item], enable); + return true; } // Show a specific button @@ -477,7 +478,7 @@ wxSize wxRadioBox::GetTotalButtonSize(const wxSize& sizeBtn) const int width = GetNumHor() * (sizeBtn.x + cx1) + cx1; // Add extra space under the label, if it exists. - if (!wxControl::GetLabel().IsEmpty()) + if (!wxControl::GetLabel().empty()) height += cy1/2; // and also wide enough for its label @@ -561,7 +562,7 @@ void wxRadioBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) y_offset += cy1; // Add extra space under the label, if it exists. - if (!wxControl::GetLabel().IsEmpty()) + if (!wxControl::GetLabel().empty()) y_offset += cy1/2; int startX = x_offset; diff --git a/src/os2/radiobox.cpp b/src/os2/radiobox.cpp index 283fd9cdbf..3e52e2a3a2 100644 --- a/src/os2/radiobox.cpp +++ b/src/os2/radiobox.cpp @@ -75,7 +75,7 @@ wxRadioBox::wxRadioBox() wxRadioBox::~wxRadioBox() { - m_isBeingDeleted = TRUE; + m_isBeingDeleted = true; if (m_ahRadioButtons) { @@ -247,9 +247,9 @@ bool wxRadioBox::ContainsHWND( for (i = 0; i < nCount; i++) { if (GetRadioButtons()[i] == hWnd) - return TRUE; + return true; } - return FALSE; + return false; } // end of wxRadioBox::ContainsHWND bool wxRadioBox::Create( @@ -307,14 +307,14 @@ bool wxRadioBox::Create( ,rVal ,rsName )) - return FALSE; + return false; if (!OS2CreateControl( "STATIC" ,SS_GROUPBOX ,rPos ,rSize ,rsTitle )) - return FALSE; + return false; wxAssociateWinWithHandle(m_hWnd, this); @@ -363,7 +363,7 @@ bool wxRadioBox::Create( ); if (!hWndBtn) { - return FALSE; + return false; } m_ahRadioButtons[i] = (WXHWND)hWndBtn; SubclassRadioButton((WXHWND)hWndBtn); @@ -425,7 +425,7 @@ bool wxRadioBox::Create( ,rSize.x ,rSize.y ); - return TRUE; + return true; } // end of wxRadioBox::Create wxSize wxRadioBox::DoGetBestSize() const @@ -669,15 +669,13 @@ void wxRadioBox::DoSetSize( } } // end of wxRadioBox::DoSetSize -void wxRadioBox::Enable( - int nItem -, bool bEnable -) +bool wxRadioBox::Enable(int nItem, bool bEnable) { - wxCHECK_RET( nItem >= 0 && nItem < m_nNoItems, + wxCHECK_MSG( nItem >= 0 && nItem < m_nNoItems, false, wxT("invalid item in wxRadioBox::Enable()") ); ::WinEnableWindow((HWND) m_ahRadioButtons[nItem], bEnable); + return true; } // end of wxRadioBox::Enable bool wxRadioBox::Enable( @@ -685,10 +683,10 @@ bool wxRadioBox::Enable( ) { if ( !wxControl::Enable(bEnable) ) - return FALSE; + return false; for (int i = 0; i < m_nNoItems; i++) ::WinEnableWindow((HWND)m_ahRadioButtons[i], bEnable); - return TRUE; + return true; } // end of wxRadioBox::Enable int wxRadioBox::FindString( @@ -717,7 +715,7 @@ wxString wxRadioBox::GetLabel( int nItem ) const { - wxCHECK_MSG(nItem >= 0 && nItem < m_nNoItems, wxT(""), wxT("invalid radiobox index") ); + wxCHECK_MSG(nItem >= 0 && nItem < m_nNoItems, wxEmptyString, wxT("invalid radiobox index") ); return wxGetWindowText(m_ahRadioButtons[nItem]); } // end of wxRadioBox::GetLabel @@ -972,7 +970,7 @@ bool wxRadioBox::OS2Command( if (uCmd == BN_CLICKED) { if (wId == GetId()) - return TRUE; + return true; for (int i = 0; i < m_nNoItems; i++) @@ -988,17 +986,17 @@ bool wxRadioBox::OS2Command( // // Just ignore it // - return FALSE; + return false; } if (nSelectedButton != m_nSelectedButton) { m_nSelectedButton = nSelectedButton; SendNotificationEvent(); } - return TRUE; + return true; } else - return FALSE; + return false; } // end of wxRadioBox::OS2Command void wxRadioBox::SendNotificationEvent() @@ -1033,7 +1031,7 @@ bool wxRadioBox::SetFont( // // Nothing to do // - return FALSE; + return false; } // // Also set the font of our radio buttons @@ -1047,7 +1045,7 @@ bool wxRadioBox::SetFont( ); ::WinInvalidateRect(hWndBtn, NULL, FALSE); } - return TRUE; + return true; } // end of wxRadioBox::SetFont void wxRadioBox::SetSelection( @@ -1084,10 +1082,10 @@ bool wxRadioBox::SetStringSelection( if (nSel > -1) { SetSelection(nSel); - return TRUE; + return true; } else - return FALSE; + return false; } // end of wxRadioBox::SetStringSelection bool wxRadioBox::Show( @@ -1095,13 +1093,13 @@ bool wxRadioBox::Show( ) { if (!wxControl::Show(bShow)) - return FALSE; + return false; for (int i = 0; i < m_nNoItems; i++) { ::WinShowWindow((HWND)m_ahRadioButtons[i], (BOOL)bShow); } - return TRUE; + return true; } // end of wxRadioBox::Show // Show a specific button @@ -1160,7 +1158,7 @@ MRESULT wxRadioBtnWndProc( ,QWL_USER ); USHORT uVk = SHORT2FROMMP((MPARAM)lParam); - bool bProcessed = TRUE; + bool bProcessed = true; wxDirection eDir; switch(uVk) @@ -1182,7 +1180,7 @@ MRESULT wxRadioBtnWndProc( break; default: - bProcessed = FALSE; + bProcessed = false; // // Just to suppress the compiler warning diff --git a/src/palmos/control.cpp b/src/palmos/control.cpp index 5f60d345ca..90a0b34af3 100644 --- a/src/palmos/control.cpp +++ b/src/palmos/control.cpp @@ -332,7 +332,7 @@ void wxControl::DoMoveWindow(int x, int y, int width, int height) bool wxControl::Enable(bool enable) { ControlType *control = (ControlType *)GetObjectPtr(); - if( (IsPalmControl()) || (control == NULL)) + if( !IsPalmControl() || (control == NULL)) return false; if( CtlEnabled(control) == enable) return false; @@ -343,7 +343,7 @@ bool wxControl::Enable(bool enable) bool wxControl::IsEnabled() const { ControlType *control = (ControlType *)GetObjectPtr(); - if( (IsPalmControl()) || (control == NULL)) + if( !IsPalmControl() || (control == NULL)) return false; return CtlEnabled(control); } diff --git a/src/palmos/radiobox.cpp b/src/palmos/radiobox.cpp index c089a55501..80ec1b6103 100644 --- a/src/palmos/radiobox.cpp +++ b/src/palmos/radiobox.cpp @@ -110,9 +110,15 @@ IMPLEMENT_DYNAMIC_CLASS(wxRadioBox, wxControl) // wxRadioBox // --------------------------------------------------------------------------- +void wxRadioBox::Init() +{ + m_pos = wxPoint(0,0); + m_size = wxSize(0,0); +} + int wxRadioBox::GetCount() const { - return 0; + return m_radios.GetCount(); } int wxRadioBox::GetColumnCount() const @@ -137,11 +143,6 @@ int wxRadioBox::GetNumHor() const return 0; } -// Radio box item -wxRadioBox::wxRadioBox() -{ -} - bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& title, @@ -155,27 +156,58 @@ bool wxRadioBox::Create(wxWindow *parent, const wxString& name) { // initialize members - m_majorDim = majorDim == 0 ? n : majorDim; - - if(!wxControl::Create(parent, id, pos, size, style, val, name)) + m_majorDim = majorDim == 0 ? n : wxMin(majorDim, n); + if(m_majorDim==0 || n==0) return false; + + // subtype of the native palmOS radio: checkbox or push button? + const bool use_checkbox = style & wxRA_USE_CHECKBOX; + const bool use_cols = style & wxRA_SPECIFY_COLS; + + // 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++; + if(m_size.x==wxDefaultCoord) + m_size.x=36*(use_cols?m_majorDim:minor); + if(m_size.y==wxDefaultCoord) + m_size.y=12*(use_cols?minor:m_majorDim); + if(m_pos.x==wxDefaultCoord) + m_pos.x=0; + if(m_pos.y==wxDefaultCoord) + m_pos.y=0; + + if(!wxControl::Create(parent, id, m_pos, m_size, style, val, name)) return false; - for(int i=0; iSetGroup( id ); - rb->Create( - this, - wxID_ANY, - choices[i], - pos, - size, - ( n == 0 ? wxRB_GROUP : 0 ) | - ( style & wxRA_USE_CHECKBOX ) ? wxRB_USE_CHECKBOX : 0 - ); + for ( int k = 0; k < m_majorDim; k++ ) + { + if(iSetGroup( id ); + rb->Create( + this, + wxID_ANY, + choices[i], + start, + wxSize(end.x-start.x-1,end.y-start.y-1), + ( n == 0 ? wxRB_GROUP : 0 ) | + use_checkbox ? wxRB_USE_CHECKBOX : 0 + ); + m_radios.Put(i,rb); + i++; + } + } } - - SetSize(size); } bool wxRadioBox::Create(wxWindow *parent, @@ -199,6 +231,61 @@ wxRadioBox::~wxRadioBox() { } +wxRadioButton *wxRadioBox::GetRadioButton(int i) +{ + return (wxRadioButton *)m_radios.Get(i); +} + +void wxRadioBox::DoGetPosition( int *x, int *y ) const +{ + *x = m_pos.x; + *y = m_pos.y; +} + +void wxRadioBox::DoGetSize( int *width, int *height ) const +{ + *width = m_size.x; + *height = m_size.y; +} + +void wxRadioBox::DoMoveWindow(int x, int y, int width, int height) +{ + 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++; + + int i = 0; + for ( int j = 0; j < minor; j++ ) + { + for ( int k = 0; k < m_majorDim; k++ ) + { + if(iSetSize(end.x-start.x-1,end.y-start.y-1); + i++; + } + } + } +} + +// get the origin of the client area in the client coordinates +wxPoint wxRadioBox::GetClientAreaOrigin() const +{ + return GetParent()->GetClientAreaOrigin() + GetPosition(); +} + void wxRadioBox::SetString(int item, const wxString& label) { } @@ -240,11 +327,6 @@ wxSize wxRadioBox::DoGetBestSize() const return wxSize(0,0); } -// Restored old code. -void wxRadioBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ -} - void wxRadioBox::SetFocus() { } @@ -255,14 +337,20 @@ bool wxRadioBox::Show(bool show) } // Enable a specific button -void wxRadioBox::Enable(int item, bool enable) +bool wxRadioBox::Enable(int item, bool enable) { + wxRadioButton *btn = GetRadioButton(item); + if(btn) + return btn->Enable(enable); + return false; } -// Enable all controls +// Enable all subcontrols bool wxRadioBox::Enable(bool enable) { - return false; + for(int i=0; iSetLabel(label); } -void wxRadioBox::Enable(int n, bool enable) +bool wxRadioBox::Enable(int n, bool enable) { - wxCHECK_RET( IsValid(n), _T("invalid index in wxRadioBox::Enable") ); + wxCHECK_MSG( IsValid(n), false, _T("invalid index in wxRadioBox::Enable") ); - m_buttons[n]->Enable(enable); + return m_buttons[n]->Enable(enable); } void wxRadioBox::Show(int n, bool show) -- 2.45.2