X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c801d85f158c4cba50b588807daabdcbd0ed3853..661698e54f2bc599dc1a961ffbae08ccdd6b9b97:/include/wx/generic/imaglist.h?ds=sidebyside diff --git a/include/wx/generic/imaglist.h b/include/wx/generic/imaglist.h index b6e68ef11e..4a1ee4fc7d 100644 --- a/include/wx/generic/imaglist.h +++ b/include/wx/generic/imaglist.h @@ -1,67 +1,80 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: imaglist.h +// Name: wx/generic/imaglist.h // Purpose: // Author: Robert Roebling // Created: 01/02/97 -// Id: -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence +// Id: $Id$ +// Copyright: (c) 1998 Robert Roebling and Julian Smart +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifndef __IMAGELISTH_G__ -#define __IMAGELISTH_G__ +#ifndef _WX_IMAGLISTG_H_ +#define _WX_IMAGLISTG_H_ -#ifdef __GNUG__ -#pragma interface -#endif +#include "wx/list.h" -#include "wx/defs.h" -#include "wx/gdicmn.h" -#include "wx/bitmap.h" -#include "wx/dc.h" +class WXDLLIMPEXP_FWD_CORE wxDC; +class WXDLLIMPEXP_FWD_CORE wxBitmap; +class WXDLLIMPEXP_FWD_CORE wxIcon; +class WXDLLIMPEXP_FWD_CORE wxColour; + + +class WXDLLIMPEXP_CORE wxGenericImageList: public wxObject +{ +public: + wxGenericImageList() { m_width = m_height = 0; } + wxGenericImageList( int width, int height, bool mask = true, int initialCount = 1 ); + virtual ~wxGenericImageList(); + bool Create( int width, int height, bool mask = true, int initialCount = 1 ); + bool Create(); + + virtual int GetImageCount() const; + virtual bool GetSize( int index, int &width, int &height ) const; + + int Add( const wxBitmap& bitmap ); + int Add( const wxBitmap& bitmap, const wxBitmap& mask ); + int Add( const wxBitmap& bitmap, const wxColour& maskColour ); + wxBitmap GetBitmap(int index) const; + wxIcon GetIcon(int index) const; + bool Replace( int index, const wxBitmap &bitmap ); + bool Replace( int index, const wxBitmap &bitmap, const wxBitmap& mask ); + bool Remove( int index ); + bool RemoveAll(); + + virtual bool Draw(int index, wxDC& dc, int x, int y, + int flags = wxIMAGELIST_DRAW_NORMAL, + bool solidBackground = false); + + // Internal use only + const wxBitmap *GetBitmapPtr(int index) const; +private: + wxObjectList m_images; + + int m_width; + int m_height; + + DECLARE_DYNAMIC_CLASS_NO_COPY(wxGenericImageList) +}; + +#ifndef wxHAS_NATIVE_IMAGELIST /* - * wxImageList is used for wxListCtrl, wxTreeCtrl. These controls refer to - * images for their items by an index into an image list. - * A wxImageList is capable of creating images with optional masks from - * a variety of sources - a single bitmap plus a colour to indicate the mask, - * two bitmaps, or an icon. - * - * Image lists can also create and draw images used for drag and drop functionality. - * This is not yet implemented in wxImageList. We need to discuss a generic API - * for doing drag and drop and see whether it ties in with the Win95 view of it. - * See below for candidate functions and an explanation of how they might be - * used. + * wxImageList has to be a real class or we have problems with + * the run-time information. */ -// Flags for Draw -#define wxIMAGELIST_DRAW_NORMAL 0x0001 -#define wxIMAGELIST_DRAW_TRANSPARENT 0x0002 -#define wxIMAGELIST_DRAW_SELECTED 0x0004 -#define wxIMAGELIST_DRAW_FOCUSED 0x0008 - -class wxImageList: public wxObject +class WXDLLIMPEXP_CORE wxImageList: public wxGenericImageList { - DECLARE_DYNAMIC_CLASS(wxImageList) - - public: - - wxImageList(void); - ~wxImageList(void); - bool Create(void); - int GetImageCount(void) const; - int Add( const wxBitmap &bitmap ); - bool Replace( const int index, const wxBitmap &bitmap ); - bool Remove( const int index ); - bool RemoveAll(void); - bool GetSize( const int index, int &width, int &height ) const; - bool Draw(const int index, wxDC& dc, const int x, const int y, - const int flags = wxIMAGELIST_DRAW_NORMAL, const bool solidBackground = FALSE ); - - private: - - wxList m_images; -}; + DECLARE_DYNAMIC_CLASS(wxImageList) + +public: + wxImageList() {} -#endif // __IMAGELISTH_G__ + wxImageList( int width, int height, bool mask = true, int initialCount = 1 ) + : wxGenericImageList(width, height, mask, initialCount) + { + } +}; +#endif // !wxHAS_NATIVE_IMAGELIST +#endif // _WX_IMAGLISTG_H_