1. added SetSelection() to wxItemContainer and removed its declarations

from derived classes
2. made wxItemContainer::Select() non virtual: it simply calls SetSelection()
3. renamed wxListBox::SetSelection(n, select) to DoSetSelection() for all
   ports and defined non virtual SetSelection() overloads in the base class
   to avoid virtual functions hiding


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32004 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2005-02-13 17:08:27 +00:00
parent 1aa3e471fe
commit c6179a847d
32 changed files with 132 additions and 119 deletions

View File

@@ -269,6 +269,15 @@ the new code. This method is only available if wxWidgets was compiled with
future versions. future versions.
\membersection{wxControlWithItems::Select}\label{wxcontrolwithitemsselect}
\func{void}{Select}{\param{int}{ n}}
This is the same as \helpref{SetSelection}{wxcontrolwithitemssetselection} and
exists only because it is slightly more natural for controls which support
multiple selection.
\membersection{wxControlWithItems::SetClientData}\label{wxcontrolwithitemssetclientdata} \membersection{wxControlWithItems::SetClientData}\label{wxcontrolwithitemssetclientdata}
\func{void}{SetClientData}{\param{int}{ n}, \param{void *}{data}} \func{void}{SetClientData}{\param{int}{ n}, \param{void *}{data}}
@@ -310,7 +319,8 @@ pointers had been associated with the control items before.
Sets the selection to the given item \arg{n} or removes the selection entirely Sets the selection to the given item \arg{n} or removes the selection entirely
if \arg{n} $==$ {\tt wxNOT\_FOUND}. if \arg{n} $==$ {\tt wxNOT\_FOUND}.
Note that this does not cause any command events to be emitted. Note that this does not cause any command events to be emitted nor does it
deselect any other items in the controls which support multiple selections.
\wxheading{Parameters} \wxheading{Parameters}

View File

@@ -42,12 +42,6 @@ public:
// all generic methods are in wxControlWithItems // all generic methods are in wxControlWithItems
// single selection logic
virtual void SetSelection(int n) = 0;
// don't override this
virtual void Select(int n) { SetSelection(n); }
// set/get the number of columns in the control (as they're not supported on // set/get the number of columns in the control (as they're not supported on
// most platforms, they do nothing by default) // most platforms, they do nothing by default)
virtual void SetColumns(int WXUNUSED(n) = 1 ) { } virtual void SetColumns(int WXUNUSED(n) = 1 ) { }

View File

@@ -88,7 +88,6 @@ public:
virtual wxString GetString(int) const; virtual wxString GetString(int) const;
virtual void SetString(int, const wxString&); virtual void SetString(int, const wxString&);
virtual int FindString(const wxString&) const; virtual int FindString(const wxString&) const;
virtual void Select(int) {}
virtual int GetSelection() const; virtual int GetSelection() const;
virtual int DoAppend(const wxString&); virtual int DoAppend(const wxString&);
virtual int DoInsert(const wxString&, int); virtual int DoInsert(const wxString&, int);

View File

@@ -82,12 +82,12 @@ protected:
public: public:
// pure virtuals from wxListBoxBase // pure virtuals from wxListBoxBase
virtual bool IsSelected(int n) const; virtual bool IsSelected(int n) const;
virtual void SetSelection(int n, bool select = TRUE);
virtual int GetSelections(wxArrayInt& aSelections) const; virtual int GetSelections(wxArrayInt& aSelections) const;
protected: protected:
virtual void DoInsertItems(const wxArrayString& items, int pos); virtual void DoInsertItems(const wxArrayString& items, int pos);
virtual void DoSetItems(const wxArrayString& items, void **clientData); virtual void DoSetItems(const wxArrayString& items, void **clientData);
virtual void DoSetFirstItem(int n); virtual void DoSetFirstItem(int n);
virtual void DoSetSelection(int n, bool select);
// pure virtuals from wxItemContainer // pure virtuals from wxItemContainer
public: public:
@@ -100,7 +100,6 @@ public:
virtual void SetString(int n, const wxString& s); virtual void SetString(int n, const wxString& s);
virtual int FindString(const wxString& s) const; virtual int FindString(const wxString& s) const;
// selection // selection
virtual void Select(int n);
virtual int GetSelection() const; virtual int GetSelection() const;
protected: protected:
virtual int DoAppend(const wxString& item); virtual int DoAppend(const wxString& item);

View File

@@ -76,7 +76,7 @@ public:
// selection // selection
// --------- // ---------
virtual void Select(int n) = 0; virtual void SetSelection(int n) = 0;
virtual int GetSelection() const = 0; virtual int GetSelection() const = 0;
// set selection to the specified string, return false if not found // set selection to the specified string, return false if not found
@@ -85,6 +85,10 @@ public:
// return the selected string or empty string if none // return the selected string or empty string if none
wxString GetStringSelection() const; wxString GetStringSelection() const;
// this is the same as SetSelection( for single-selection controls but
// reads better for multi-selection ones
void Select(int n) { SetSelection(n); }
// misc // misc
// ---- // ----
@@ -172,6 +176,20 @@ private:
DECLARE_NO_COPY_CLASS(wxControlWithItems) DECLARE_NO_COPY_CLASS(wxControlWithItems)
}; };
// ----------------------------------------------------------------------------
// inline functions
// ----------------------------------------------------------------------------
#if WXWIN_COMPATIBILITY_2_2
inline int wxItemContainer::Number() const
{
return GetCount();
}
#endif // WXWIN_COMPATIBILITY_2_2
#endif // wxUSE_CONTROLS #endif // wxUSE_CONTROLS
#endif // _WX_CTRLSUB_H_BASE_ #endif // _WX_CTRLSUB_H_BASE_

View File

@@ -95,7 +95,6 @@ public:
int GetCount() const; int GetCount() const;
int Number() const { return GetCount(); } int Number() const { return GetCount(); }
void SetSelection( int n ); void SetSelection( int n );
void Select( int n ) { return SetSelection( n ); }
void SetString(int n, const wxString &text); void SetString(int n, const wxString &text);
wxString GetValue() const; wxString GetValue() const;

View File

@@ -81,7 +81,7 @@ public:
virtual int FindString(const wxString& s) const; virtual int FindString(const wxString& s) const;
virtual bool IsSelected(int n) const; virtual bool IsSelected(int n) const;
virtual void SetSelection(int n, bool select = TRUE); virtual void DoSetSelection(int n, bool select);
virtual int GetSelection() const; virtual int GetSelection() const;
virtual int GetSelections(wxArrayInt& aSelections) const; virtual int GetSelections(wxArrayInt& aSelections) const;

View File

@@ -95,7 +95,6 @@ public:
int GetCount() const; int GetCount() const;
int Number() const { return GetCount(); } int Number() const { return GetCount(); }
void SetSelection( int n ); void SetSelection( int n );
void Select( int n ) { return SetSelection( n ); }
void SetString(int n, const wxString &text); void SetString(int n, const wxString &text);
wxString GetValue() const; wxString GetValue() const;

View File

@@ -81,7 +81,7 @@ public:
virtual int FindString(const wxString& s) const; virtual int FindString(const wxString& s) const;
virtual bool IsSelected(int n) const; virtual bool IsSelected(int n) const;
virtual void SetSelection(int n, bool select = TRUE); virtual void DoSetSelection(int n, bool select);
virtual int GetSelection() const; virtual int GetSelection() const;
virtual int GetSelections(wxArrayInt& aSelections) const; virtual int GetSelections(wxArrayInt& aSelections) const;

View File

@@ -65,12 +65,16 @@ public:
// multiple selection logic // multiple selection logic
virtual bool IsSelected(int n) const = 0; virtual bool IsSelected(int n) const = 0;
virtual void SetSelection(int n, bool select = true) = 0; virtual void SetSelection(int n) { DoSetSelection(n, true); }
virtual void Select(int n) { SetSelection(n, true); } void SetSelection(int n, bool select) { DoSetSelection(n, select); }
void Deselect(int n) { SetSelection(n, false); } void Deselect(int n) { DoSetSelection(n, false); }
void DeselectAll(int itemToLeaveSelected = -1); void DeselectAll(int itemToLeaveSelected = -1);
virtual bool SetStringSelection(const wxString& s, bool select = true); virtual bool SetStringSelection(const wxString& s, bool select);
virtual bool SetStringSelection(const wxString& s)
{
return SetStringSelection(s, true);
}
// works for single as well as multiple selection listboxes (unlike // works for single as well as multiple selection listboxes (unlike
// GetSelection which only works for listboxes with single selection) // GetSelection which only works for listboxes with single selection)
@@ -119,6 +123,9 @@ protected:
virtual void DoSetFirstItem(int n) = 0; virtual void DoSetFirstItem(int n) = 0;
virtual void DoSetSelection(int n, bool select) = 0;
DECLARE_NO_COPY_CLASS(wxListBoxBase) DECLARE_NO_COPY_CLASS(wxListBoxBase)
}; };

View File

@@ -92,7 +92,6 @@ class WXDLLEXPORT wxComboBox : public wxControl, public wxComboBoxBase
virtual int GetSelection() const ; virtual int GetSelection() const ;
virtual void SetSelection(int n); virtual void SetSelection(int n);
virtual void Select(int n) { SetSelection(n) ; }
virtual int FindString(const wxString& s) const; virtual int FindString(const wxString& s) const;
virtual wxString GetString(int n) const ; virtual wxString GetString(int n) const ;
virtual wxString GetStringSelection() const ; virtual wxString GetStringSelection() const ;

View File

@@ -97,7 +97,7 @@ public:
virtual int FindString(const wxString& s) const; virtual int FindString(const wxString& s) const;
virtual bool IsSelected(int n) const; virtual bool IsSelected(int n) const;
virtual void SetSelection(int n, bool select = TRUE); virtual void DoSetSelection(int n, bool select);
virtual int GetSelection() const; virtual int GetSelection() const;
virtual int GetSelections(wxArrayInt& aSelections) const; virtual int GetSelections(wxArrayInt& aSelections) const;

View File

@@ -87,7 +87,6 @@ class WXDLLEXPORT wxComboBox : public wxControl, public wxComboBoxBase
virtual int GetSelection() const ; virtual int GetSelection() const ;
virtual void SetSelection(int n); virtual void SetSelection(int n);
virtual void Select(int n) { SetSelection(n) ; }
virtual int FindString(const wxString& s) const; virtual int FindString(const wxString& s) const;
virtual wxString GetString(int n) const ; virtual wxString GetString(int n) const ;
virtual wxString GetStringSelection() const ; virtual wxString GetStringSelection() const ;

View File

@@ -97,7 +97,7 @@ public:
virtual int FindString(const wxString& s) const; virtual int FindString(const wxString& s) const;
virtual bool IsSelected(int n) const; virtual bool IsSelected(int n) const;
virtual void SetSelection(int n, bool select = TRUE); virtual void DoSetSelection(int n, bool select);
virtual int GetSelection() const; virtual int GetSelection() const;
virtual int GetSelections(wxArrayInt& aSelections) const; virtual int GetSelections(wxArrayInt& aSelections) const;

View File

@@ -84,7 +84,7 @@ public:
virtual wxString GetString(int n) const; virtual wxString GetString(int n) const;
// implementation of wxListBoxbase // implementation of wxListBoxbase
virtual void SetSelection(int n, bool select = true); virtual void DoSetSelection(int n, bool select);
virtual void DoInsertItems(const wxArrayString& items, int pos); virtual void DoInsertItems(const wxArrayString& items, int pos);
virtual void DoSetItems(const wxArrayString& items, void **clientData); virtual void DoSetItems(const wxArrayString& items, void **clientData);
virtual void DoSetFirstItem(int n); virtual void DoSetFirstItem(int n);

View File

@@ -91,7 +91,7 @@ public:
virtual int FindString(const wxString& s) const; virtual int FindString(const wxString& s) const;
virtual bool IsSelected(int n) const; virtual bool IsSelected(int n) const;
virtual void SetSelection(int n, bool select = true); virtual void DoSetSelection(int n, bool select);
virtual int GetSelection() const; virtual int GetSelection() const;
virtual int GetSelections(wxArrayInt& aSelections) const; virtual int GetSelections(wxArrayInt& aSelections) const;

View File

@@ -114,8 +114,8 @@ public:
virtual int FindString(const wxString& rsString) const; virtual int FindString(const wxString& rsString) const;
virtual bool IsSelected(int n) const; virtual bool IsSelected(int n) const;
virtual void SetSelection( int n virtual void DoSetSelection( int n
,bool bSelect = TRUE ,bool bSelect
); );
virtual int GetSelection(void) const; virtual int GetSelection(void) const;
virtual int GetSelections(wxArrayInt& raSelections) const; virtual int GetSelections(wxArrayInt& raSelections) const;

View File

@@ -91,7 +91,7 @@ public:
virtual int FindString(const wxString& s) const; virtual int FindString(const wxString& s) const;
virtual bool IsSelected(int n) const; virtual bool IsSelected(int n) const;
virtual void SetSelection(int n, bool select = TRUE); virtual void DoSetSelection(int n, bool select);
virtual int GetSelection() const; virtual int GetSelection() const;
virtual int GetSelections(wxArrayInt& aSelections) const; virtual int GetSelections(wxArrayInt& aSelections) const;

View File

@@ -301,9 +301,8 @@ public:
virtual wxString GetString(int n) const; virtual wxString GetString(int n) const;
virtual void SetString(int n, const wxString& s); virtual void SetString(int n, const wxString& s);
virtual int FindString(const wxString& s) const; virtual int FindString(const wxString& s) const;
virtual void Select(int n); virtual void SetSelection(int n);
virtual int GetSelection() const; virtual int GetSelection() const;
void SetSelection(int n) { Select(n); }
wxCONTROL_ITEMCONTAINER_CLIENTDATAOBJECT_RECAST wxCONTROL_ITEMCONTAINER_CLIENTDATAOBJECT_RECAST

View File

@@ -112,7 +112,7 @@ public:
virtual bool IsSelected(int n) const virtual bool IsSelected(int n) const
{ return m_selections.Index(n) != wxNOT_FOUND; } { return m_selections.Index(n) != wxNOT_FOUND; }
virtual void SetSelection(int n, bool select = true); virtual void DoSetSelection(int n, bool select);
virtual int GetSelection() const; virtual int GetSelection() const;
virtual int GetSelections(wxArrayInt& aSelections) const; virtual int GetSelections(wxArrayInt& aSelections) const;

View File

@@ -117,7 +117,7 @@ bool wxListBox::IsSelected(int n) const
return [GetNSTableView() isRowSelected: n]; return [GetNSTableView() isRowSelected: n];
} }
void wxListBox::SetSelection(int n, bool select) void wxListBox::DoSetSelection(int n, bool select)
{ {
if(select) if(select)
[GetNSTableView() selectRow: n byExtendingSelection:NO]; [GetNSTableView() selectRow: n byExtendingSelection:NO];
@@ -197,7 +197,7 @@ int wxListBox::FindString(const wxString& s) const
} }
// selection // selection
void wxListBox::Select(int n) void wxListBox::SetSelection(int n)
{ {
} }

View File

@@ -64,7 +64,7 @@ bool wxItemContainer::SetStringSelection(const wxString& s)
if ( sel == wxNOT_FOUND ) if ( sel == wxNOT_FOUND )
return false; return false;
Select(sel); SetSelection(sel);
return true; return true;
} }
@@ -167,13 +167,4 @@ wxControlWithItems::~wxControlWithItems()
// this destructor is required for Darwin // this destructor is required for Darwin
} }
#if WXWIN_COMPATIBILITY_2_2
int wxItemContainer::Number() const
{
return GetCount();
}
#endif // WXWIN_COMPATIBILITY_2_2
#endif // wxUSE_CONTROLS #endif // wxUSE_CONTROLS

View File

@@ -1006,7 +1006,7 @@ bool wxListBox::IsSelected( int n ) const
return (GTK_WIDGET(target->data)->state == GTK_STATE_SELECTED) ; return (GTK_WIDGET(target->data)->state == GTK_STATE_SELECTED) ;
} }
void wxListBox::SetSelection( int n, bool select ) void wxListBox::DoSetSelection( int n, bool select )
{ {
wxCHECK_RET( m_list != NULL, wxT("invalid listbox") ); wxCHECK_RET( m_list != NULL, wxT("invalid listbox") );

View File

@@ -1006,7 +1006,7 @@ bool wxListBox::IsSelected( int n ) const
return (GTK_WIDGET(target->data)->state == GTK_STATE_SELECTED) ; return (GTK_WIDGET(target->data)->state == GTK_STATE_SELECTED) ;
} }
void wxListBox::SetSelection( int n, bool select ) void wxListBox::DoSetSelection( int n, bool select )
{ {
wxCHECK_RET( m_list != NULL, wxT("invalid listbox") ); wxCHECK_RET( m_list != NULL, wxT("invalid listbox") );

View File

@@ -440,7 +440,7 @@ void wxListBox::Clear()
MacClear() ; MacClear() ;
} }
void wxListBox::SetSelection(int N, bool select) void wxListBox::DoSetSelection(int N, bool select)
{ {
wxCHECK_RET( N == wxNOT_FOUND || (N >= 0 && N < m_noItems) , wxCHECK_RET( N == wxNOT_FOUND || (N >= 0 && N < m_noItems) ,
wxT("invalid index in wxListBox::SetSelection") ); wxT("invalid index in wxListBox::SetSelection") );
@@ -900,5 +900,5 @@ void wxListBox::OnChar(wxKeyEvent& event)
} }
} }
#endif #endif // !TARGET_API_MAC_OSX

View File

@@ -515,7 +515,7 @@ void wxListBox::Clear()
MacClear() ; MacClear() ;
} }
void wxListBox::SetSelection(int N, bool select) void wxListBox::DoSetSelection(int N, bool select)
{ {
wxCHECK_RET( N >= 0 && N < m_noItems, wxCHECK_RET( N >= 0 && N < m_noItems,
wxT("invalid index in wxListBox::SetSelection") ); wxT("invalid index in wxListBox::SetSelection") );

View File

@@ -337,7 +337,7 @@ void wxListBox::Clear()
m_noItems = 0; m_noItems = 0;
} }
void wxListBox::SetSelection(int N, bool select) void wxListBox::DoSetSelection(int N, bool select)
{ {
m_inSetValue = true; m_inSetValue = true;
if (select) if (select)

View File

@@ -390,7 +390,7 @@ void wxListBox::Free()
} }
} }
void wxListBox::SetSelection(int N, bool select) void wxListBox::DoSetSelection(int N, bool select)
{ {
wxCHECK_RET( N == wxNOT_FOUND || wxCHECK_RET( N == wxNOT_FOUND ||
(N >= 0 && N < m_noItems), (N >= 0 && N < m_noItems),

View File

@@ -415,7 +415,7 @@ void wxListBox::Clear()
m_nNumItems = 0; m_nNumItems = 0;
} // end of wxListBox::Clear } // end of wxListBox::Clear
void wxListBox::SetSelection( void wxListBox::DoSetSelection(
int N int N
, bool bSelect , bool bSelect
) )

View File

@@ -207,7 +207,7 @@ void wxListBox::Free()
{ {
} }
void wxListBox::SetSelection(int N, bool select) void wxListBox::DoSetSelection(int N, bool select)
{ {
} }

View File

@@ -832,7 +832,7 @@ int wxComboBox::FindString(const wxString& s) const
return GetLBox()->FindString(s); return GetLBox()->FindString(s);
} }
void wxComboBox::Select(int n) void wxComboBox::SetSelection(int n)
{ {
wxCHECK_RET( (n >= 0) && (n < GetCount()), _T("invalid index in wxComboBox::Select") ); wxCHECK_RET( (n >= 0) && (n < GetCount()), _T("invalid index in wxComboBox::Select") );

View File

@@ -421,7 +421,7 @@ wxClientData* wxListBox::DoGetItemClientObject(int n) const
// selection // selection
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
void wxListBox::SetSelection(int n, bool select) void wxListBox::DoSetSelection(int n, bool select)
{ {
if ( select ) if ( select )
{ {