// accessing strings
// -----------------
- virtual int GetCount() const = 0;
+ virtual size_t GetCount() const = 0;
bool IsEmpty() const { return GetCount() == 0; }
virtual wxString GetString(int n) const = 0;
wxArrayString GetStrings() const;
virtual void SetString(int n, const wxString& s) = 0;
- virtual int FindString(const wxString& s) const = 0;
+
+ // finding string natively is either case sensitive or insensitive
+ // but never both so fall back to this base version for not
+ // supported search type
+ virtual int FindString(const wxString& s, bool bCase = false) const
+ {
+ size_t count = GetCount();
+
+ for ( size_t i = 0; i < count ; ++i )
+ {
+ if (GetString(i).IsSameAs( s , bCase ))
+ return i;
+ }
+
+ return wxNOT_FOUND;
+ }
// selection
protected:
// check that the index is valid
- inline bool IsValid(int n) const { return n >= 0 && n < GetCount(); }
+ // FIXME: once api will move to size_t, drop >= 0 check
+ inline bool IsValid(int n) const { return n >= 0 && (size_t)n < GetCount(); }
+ inline bool IsValidInsert(int n) const { return n >= 0 && (size_t)n <= GetCount(); }
};
class WXDLLEXPORT wxItemContainer : public wxItemContainerImmutable
bool HasClientUntypedData() const
{ return m_clientDataItemsType == wxClientData_Void; }
-#if WXWIN_COMPATIBILITY_2_2
- // compatibility - these functions are deprecated, use the new ones
- // instead
- wxDEPRECATED( int Number() const );
-#endif // WXWIN_COMPATIBILITY_2_2
-
protected:
virtual int DoAppend(const wxString& item) = 0;
virtual int DoInsert(const wxString& item, int pos) = 0;
virtual void SetInitialBestSize(const wxSize& WXUNUSED(size)) { }
private:
+ DECLARE_ABSTRACT_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 // _WX_CTRLSUB_H_BASE_
-