From 1f6fae0f3f8044af03a5cbeae58afa0a6cd0454e Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Mon, 13 Oct 2014 12:08:10 +0000 Subject: [PATCH] Define unambiguous Is{List,Text}Empty() in wxOwnerDrawnComboBox. Like in wxComboBox itself, it's useful to provide these methods to avoid problems with ambiguous IsEmpty(), inherited from both wxTextEntry and wxItemContainer. Closes #16618. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78015 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/changes.txt | 1 + include/wx/odcombo.h | 4 ++++ interface/wx/odcombo.h | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 38 insertions(+) diff --git a/docs/changes.txt b/docs/changes.txt index 74c5e92749..b45f87a90b 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -82,6 +82,7 @@ All (GUI): - Add wxBitmap ctor from wxCursor. - Always disable wxWizard "Back" button on the starting page (pmgrace30). - Add wxUIActionSimulator::Select(). +- Add wxOwnerDrawnComboBox::Is{List,Text}Empty() methods. wxGTK: diff --git a/include/wx/odcombo.h b/include/wx/odcombo.h index cc47127859..e4695104bc 100644 --- a/include/wx/odcombo.h +++ b/include/wx/odcombo.h @@ -315,6 +315,10 @@ public: virtual void Select(int n); virtual int GetSelection() const wxOVERRIDE; + // See wxComboBoxBase discussion of IsEmpty(). + bool IsListEmpty() const { return wxItemContainer::IsEmpty(); } + bool IsTextEmpty() const { return wxTextEntry::IsEmpty(); } + // Override these just to maintain consistency with virtual methods // between classes. virtual void Clear() wxOVERRIDE; diff --git a/interface/wx/odcombo.h b/interface/wx/odcombo.h index e7fcef6cd5..0cc98c3903 100644 --- a/interface/wx/odcombo.h +++ b/interface/wx/odcombo.h @@ -199,6 +199,39 @@ public: const wxString& name = wxComboBoxNameStr); //@} + /** + IsEmpty() is not available in this class. + + This method is documented here only to notice that it can't be used + with this class because of the ambiguity between the methods with the + same name inherited from wxItemContainer and wxTextEntry base classes. + + Because of this, any attempt to call it results in a compilation error + and you should use either IsListEmpty() or IsTextEmpty() depending on + what exactly do you want to test. + */ + bool IsEmpty() const; + + /** + Returns true if the list of combobox choices is empty. + + Use this method instead of (not available in this class) IsEmpty() to + test if the list of items is empty. + + @since 3.1.0 + */ + bool IsListEmpty() const; + + /** + Returns true if the text of the combobox is empty. + + Use this method instead of (not available in this class) IsEmpty() to + test if the text currently entered into the combobox is empty. + + @since 3.1.0 + */ + bool IsTextEmpty() const; + /** Returns index to the widest item in the list. */