Add wxWithImages::GetImageCount() and HasImages() helpers

These functions allow avoiding using wxImageList explicitly in a couple
of places.

No real changes, this just prepares for adding new API not based on
wxImageList.
This commit is contained in:
Vadim Zeitlin
2021-10-31 17:34:44 +01:00
parent 9cc0c9a082
commit 0df49f0a54
4 changed files with 38 additions and 5 deletions

View File

@@ -15,7 +15,7 @@
#include "wx/imaglist.h"
// ----------------------------------------------------------------------------
// wxWithImages: mix-in class providing access to wxImageList.
// wxWithImages: mix-in for classes using indices for image access
// ----------------------------------------------------------------------------
class WXDLLIMPEXP_CORE wxWithImages
@@ -37,6 +37,18 @@ public:
FreeIfNeeded();
}
// Return the number of images, possibly 0.
int GetImageCount() const
{
return m_imageList ? m_imageList->GetImageCount() : 0;
}
// Return true if we have any images at all.
bool HasImages() const
{
return GetImageCount() != 0;
}
// Sets the image list to use, it is *not* deleted by the control.
virtual void SetImageList(wxImageList* imageList)
{

View File

@@ -18,6 +18,27 @@ public:
wxWithImages();
virtual ~wxWithImages();
/**
Return the number of images in this control.
The returned value may be 0 if there are no images associated with the
control.
@see HasImages()
@since 3.1.6
*/
int GetImageCount() const;
/**
Return true if the control has any images associated with it.
@see GetImageCount()
@since 3.1.6
*/
bool HasImages() const;
/**
Sets the image list for the page control and takes ownership of the list.

View File

@@ -157,9 +157,9 @@ wxPanel *CreateInsertPage(wxBookCtrlBase *parent)
int GetIconIndex(wxBookCtrlBase* bookCtrl)
{
if (bookCtrl && bookCtrl->GetImageList())
if (bookCtrl)
{
int nImages = bookCtrl->GetImageList()->GetImageCount();
const int nImages = bookCtrl->GetImageCount();
if (nImages > 0)
{
return bookCtrl->GetPageCount() % nImages;

View File

@@ -412,9 +412,9 @@ int BookWidgetsPage::GetTextValue(wxTextCtrl *text) const
int BookWidgetsPage::GetIconIndex() const
{
if ( m_imageList )
if ( m_book )
{
int nImages = m_imageList->GetImageCount();
const int nImages = m_book->GetImageCount();
if ( nImages > 0 )
{
return m_book->GetPageCount() % nImages;