1/////////////////////////////////////////////////////////////////////////////
2// Name:        wx/generic/imaglist.h
3// Purpose:
4// Author:      Robert Roebling
5// Created:     01/02/97
6// Id:
7// Copyright:   (c) 1998 Robert Roebling and Julian Smart
8// Licence:     wxWindows licence
9/////////////////////////////////////////////////////////////////////////////
10
11#ifndef __IMAGELISTH_G__
12#define __IMAGELISTH_G__
13
14#include "wx/defs.h"
15#include "wx/list.h"
16#include "wx/icon.h"
17
18class WXDLLEXPORT wxDC;
19class WXDLLEXPORT wxBitmap;
20class WXDLLEXPORT wxColour;
21
22
23class WXDLLEXPORT wxGenericImageList: public wxObject
24{
25public:
26    wxGenericImageList() { m_width = m_height = 0; }
27    wxGenericImageList( int width, int height, bool mask = true, int initialCount = 1 );
28    virtual ~wxGenericImageList();
29    bool Create( int width, int height, bool mask = true, int initialCount = 1 );
30    bool Create();
31
32    virtual int GetImageCount() const;
33    virtual bool GetSize( int index, int &width, int &height ) const;
34
35    int Add( const wxBitmap& bitmap );
36    int Add( const wxBitmap& bitmap, const wxBitmap& mask );
37    int Add( const wxBitmap& bitmap, const wxColour& maskColour );
38    wxBitmap GetBitmap(int index) const;
39    wxIcon GetIcon(int index) const;
40    bool Replace( int index, const wxBitmap &bitmap );
41    bool Replace( int index, const wxBitmap &bitmap, const wxBitmap& mask );
42    bool Remove( int index );
43    bool RemoveAll();
44
45    virtual bool Draw(int index, wxDC& dc, int x, int y,
46              int flags = wxIMAGELIST_DRAW_NORMAL,
47              bool solidBackground = false);
48
49    // Internal use only
50    const wxBitmap *GetBitmapPtr(int index) const;
51private:
52    wxList  m_images;
53
54    int     m_width;
55    int     m_height;
56
57    DECLARE_DYNAMIC_CLASS(wxGenericImageList)
58};
59
60#ifndef wxHAS_NATIVE_IMAGELIST
61
62/*
63 * wxImageList has to be a real class or we have problems with
64 * the run-time information.
65 */
66
67class WXDLLEXPORT wxImageList: public wxGenericImageList
68{
69    DECLARE_DYNAMIC_CLASS(wxImageList)
70
71public:
72    wxImageList() {}
73
74    wxImageList( int width, int height, bool mask = true, int initialCount = 1 )
75        : wxGenericImageList(width, height, mask, initialCount)
76    {
77    }
78};
79#endif // !wxHAS_NATIVE_IMAGELIST
80
81#endif  // __IMAGELISTH_G__
82
83