This new function will allow selecting the bitmap of the most suitable size and automatically react to DPI scale changes (although this hasn't been implemented yet) in all controls using image lists. For now, only wxNotebook in wxMSW has been updated to work with it, the other classes and ports will be updated to override OnImagesChanged() instead of SetImageList() later. Also update the notebook sample to use SetImages() rather than SetImageList() -- which means that it doesn't show the icons any longer in non-MSW ports, which haven't been updated yet.
100 lines
2.6 KiB
C++
100 lines
2.6 KiB
C++
///////////////////////////////////////////////////////////////////////////////
|
|
// Name: withimages.h
|
|
// Purpose: Interface of wxWithImages class.
|
|
// Licence: wxWindows licence
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
/**
|
|
A mixin class to be used with other classes that use a wxImageList.
|
|
*/
|
|
class wxWithImages
|
|
{
|
|
public:
|
|
enum
|
|
{
|
|
NO_IMAGE = -1
|
|
};
|
|
|
|
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;
|
|
|
|
/**
|
|
Set the images to use for the items in the control.
|
|
|
|
This function allows to specify the images to use in multiple different
|
|
resolutions, letting the control to select the appropriate one for its
|
|
DPI scaling. For this reason, it should be preferred to using the
|
|
functions taking wxImageList, which has a fixed size, in the new code.
|
|
|
|
@param images Non empty vector of bitmap bundles. Valid image indexes
|
|
for the items in this control are determined by the size of this
|
|
vector.
|
|
|
|
@since 3.1.6
|
|
*/
|
|
void SetImages(const wxVector<wxBitmapBundle>& images);
|
|
|
|
/**
|
|
Sets the image list for the page control and takes ownership of the list.
|
|
|
|
This function exists for compatibility only, please use SetImages() in
|
|
the new code.
|
|
|
|
@see wxImageList, SetImageList()
|
|
*/
|
|
void AssignImageList(wxImageList* imageList);
|
|
|
|
/**
|
|
Sets the image list to use. It does not take ownership of the image
|
|
list, you must delete it yourself.
|
|
|
|
This function exists for compatibility only, please use SetImages() in
|
|
the new code.
|
|
|
|
@see wxImageList, AssignImageList()
|
|
*/
|
|
virtual void SetImageList(wxImageList* imageList);
|
|
|
|
/**
|
|
Returns the associated image list, may be NULL.
|
|
|
|
@see wxImageList, SetImageList()
|
|
*/
|
|
wxImageList* GetImageList() const;
|
|
|
|
protected:
|
|
/**
|
|
Return true if we have a valid image list.
|
|
*/
|
|
bool HasImageList() const;
|
|
|
|
/**
|
|
Return the image with the given index from the image list.
|
|
|
|
If there is no image list or if index == NO_IMAGE, silently returns
|
|
wxNullIcon.
|
|
*/
|
|
wxIcon GetImage(int iconIndex) const;
|
|
};
|