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
This commit is contained in:
Włodzimierz Skiba
2005-02-21 21:02:41 +00:00
parent 1814658d67
commit 1a87edf286
24 changed files with 381 additions and 268 deletions

View File

@@ -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
-----

View File

@@ -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}

View File

@@ -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;

View File

@@ -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 );

View File

@@ -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 );

View File

@@ -67,17 +67,17 @@ 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
void Command(wxCommandEvent& event);

View File

@@ -67,17 +67,16 @@ 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
void Command(wxCommandEvent& event);

View File

@@ -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)
};

View File

@@ -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(); }

View File

@@ -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

View File

@@ -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)
};

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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 )

View File

@@ -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 )

View File

@@ -78,7 +78,7 @@ wxRadioBox::wxRadioBox()
wxRadioBox::~wxRadioBox()
{
m_isBeingDeleted = TRUE;
m_isBeingDeleted = true;
wxRadioButton *next,*current;
@@ -115,7 +115,7 @@ 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;
@@ -164,7 +164,7 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& label,
SetSelection(0);
MacPostControlCreate(pos,size) ;
return TRUE;
return true;
}
@@ -194,13 +194,13 @@ 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;
@@ -208,7 +208,7 @@ void wxRadioBox::Enable(int item, bool enable)
i++;
current = current->NextInCycle();
}
current->Enable(enable);
return current->Enable(enable);
}
//-------------------------------------------------------------------------------------
@@ -583,6 +583,3 @@ int wxRadioBox::GetColumnCount() const
}
#endif

View File

@@ -75,7 +75,7 @@ wxRadioBox::wxRadioBox()
wxRadioBox::~wxRadioBox()
{
m_isBeingDeleted = TRUE;
m_isBeingDeleted = true;
wxRadioButton *next,*current;
@@ -126,7 +126,6 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& label,
else
m_majorDim = majorDim ;
Rect bounds ;
Str255 title ;
@@ -154,7 +153,7 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& label,
SetSelection(0);
MacPostControlCreate() ;
return TRUE;
return true;
}
@@ -184,13 +183,13 @@ 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;
@@ -198,7 +197,7 @@ void wxRadioBox::Enable(int item, bool enable)
i++;
current = current->NextInCycle();
}
current->Enable(enable);
return current->Enable(enable);
}
//-------------------------------------------------------------------------------------
@@ -573,8 +572,3 @@ int wxRadioBox::GetColumnCount() const
return m_majorDim;
}
}

View File

@@ -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)
@@ -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 );
@@ -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
@@ -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)

View File

@@ -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;

View File

@@ -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

View File

@@ -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);
}

View File

@@ -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;
m_majorDim = majorDim == 0 ? n : wxMin(majorDim, n);
if(m_majorDim==0 || n==0) return false;
if(!wxControl::Create(parent, id, pos, size, style, val, name))
// 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; i<n; i++)
int i = 0;
for ( int j = 0; j < minor; j++ )
{
for ( int k = 0; k < m_majorDim; k++ )
{
if(i<n)
{
wxPoint start, end;
start.x = (use_cols ? (k*m_size.x)/m_majorDim : (j*m_size.x)/minor);
start.y = (use_cols ? (j*m_size.y)/minor : (k*m_size.y)/m_majorDim);
end.x = (use_cols ? ((k+1)*m_size.x)/m_majorDim : ((j+1)*m_size.x)/minor);
end.y = (use_cols ? ((j+1)*m_size.y)/minor : ((k+1)*m_size.y)/m_majorDim);
wxRadioButton* rb = new wxRadioButton();
rb->SetGroup( id );
rb->Create(
this,
wxID_ANY,
choices[i],
pos,
size,
start,
wxSize(end.x-start.x-1,end.y-start.y-1),
( n == 0 ? wxRB_GROUP : 0 ) |
( style & wxRA_USE_CHECKBOX ) ? wxRB_USE_CHECKBOX : 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(i<n)
{
wxPoint start, end;
start.x = (use_cols ? (k*m_size.x)/m_majorDim : (j*m_size.x)/minor);
start.y = (use_cols ? (j*m_size.y)/minor : (k*m_size.y)/m_majorDim);
end.x = (use_cols ? ((k+1)*m_size.x)/m_majorDim : ((j+1)*m_size.x)/minor);
end.y = (use_cols ? ((j+1)*m_size.y)/minor : ((k+1)*m_size.y)/m_majorDim);
wxRadioButton* rb = GetRadioButton(i);
if(rb)
rb->SetSize(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; i<GetCount(); i++)
Enable(i, enable);
return true;
}
// Show a specific button

View File

@@ -322,11 +322,11 @@ void wxRadioBox::SetString(int n, const wxString& label)
m_buttons[n]->SetLabel(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)