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 | #if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
|
---|
15 | #pragma interface "imaglist.h"
|
---|
16 | #endif
|
---|
17 |
|
---|
18 | #include "wx/defs.h"
|
---|
19 | #include "wx/list.h"
|
---|
20 | #include "wx/icon.h"
|
---|
21 |
|
---|
22 | class WXDLLEXPORT wxDC;
|
---|
23 | class WXDLLEXPORT wxBitmap;
|
---|
24 | class WXDLLEXPORT wxColour;
|
---|
25 |
|
---|
26 | /*
|
---|
27 | * wxImageList is used for wxListCtrl, wxTreeCtrl. These controls refer to
|
---|
28 | * images for their items by an index into an image list.
|
---|
29 | * A wxImageList is capable of creating images with optional masks from
|
---|
30 | * a variety of sources - a single bitmap plus a colour to indicate the mask,
|
---|
31 | * two bitmaps, or an icon.
|
---|
32 | *
|
---|
33 | * Image lists can also create and draw images used for drag and drop functionality.
|
---|
34 | * This is not yet implemented in wxImageList. We need to discuss a generic API
|
---|
35 | * for doing drag and drop and see whether it ties in with the Win95 view of it.
|
---|
36 | * See below for candidate functions and an explanation of how they might be
|
---|
37 | * used.
|
---|
38 | */
|
---|
39 |
|
---|
40 | #if !defined(wxIMAGELIST_DRAW_NORMAL)
|
---|
41 |
|
---|
42 | // Flags for Draw
|
---|
43 | #define wxIMAGELIST_DRAW_NORMAL 0x0001
|
---|
44 | #define wxIMAGELIST_DRAW_TRANSPARENT 0x0002
|
---|
45 | #define wxIMAGELIST_DRAW_SELECTED 0x0004
|
---|
46 | #define wxIMAGELIST_DRAW_FOCUSED 0x0008
|
---|
47 |
|
---|
48 | // Flag values for Set/GetImageList
|
---|
49 | enum {
|
---|
50 | wxIMAGE_LIST_NORMAL, // Normal icons
|
---|
51 | wxIMAGE_LIST_SMALL, // Small icons
|
---|
52 | wxIMAGE_LIST_STATE // State icons: unimplemented (see WIN32 documentation)
|
---|
53 | };
|
---|
54 |
|
---|
55 | #endif
|
---|
56 |
|
---|
57 | class WXDLLEXPORT wxGenericImageList: public wxObject
|
---|
58 | {
|
---|
59 | public:
|
---|
60 | wxGenericImageList() { m_width = m_height = 0; }
|
---|
61 | wxGenericImageList( int width, int height, bool mask = true, int initialCount = 1 );
|
---|
62 | ~wxGenericImageList();
|
---|
63 | bool Create( int width, int height, bool mask = true, int initialCount = 1 );
|
---|
64 | bool Create();
|
---|
65 |
|
---|
66 | virtual int GetImageCount() const;
|
---|
67 | virtual bool GetSize( int index, int &width, int &height ) const;
|
---|
68 |
|
---|
69 | int Add( const wxBitmap& bitmap );
|
---|
70 | int Add( const wxBitmap& bitmap, const wxBitmap& mask );
|
---|
71 | int Add( const wxBitmap& bitmap, const wxColour& maskColour );
|
---|
72 | wxBitmap GetBitmap(int index) const;
|
---|
73 | wxIcon GetIcon(int index) const;
|
---|
74 | bool Replace( int index, const wxBitmap &bitmap );
|
---|
75 | bool Remove( int index );
|
---|
76 | bool RemoveAll();
|
---|
77 |
|
---|
78 | virtual bool Draw(int index, wxDC& dc, int x, int y,
|
---|
79 | int flags = wxIMAGELIST_DRAW_NORMAL,
|
---|
80 | bool solidBackground = false);
|
---|
81 |
|
---|
82 | // Internal use only
|
---|
83 | const wxBitmap *GetBitmapPtr(int index) const;
|
---|
84 | private:
|
---|
85 | wxList m_images;
|
---|
86 |
|
---|
87 | int m_width;
|
---|
88 | int m_height;
|
---|
89 |
|
---|
90 | DECLARE_DYNAMIC_CLASS(wxGenericImageList)
|
---|
91 | };
|
---|
92 |
|
---|
93 | #if !defined(__WXMSW__) || defined(__WXUNIVERSAL__)
|
---|
94 | /*
|
---|
95 | * wxImageList has to be a real class or we have problems with
|
---|
96 | * the run-time information.
|
---|
97 | */
|
---|
98 |
|
---|
99 | class WXDLLEXPORT wxImageList: public wxGenericImageList
|
---|
100 | {
|
---|
101 | DECLARE_DYNAMIC_CLASS(wxImageList)
|
---|
102 |
|
---|
103 | public:
|
---|
104 | wxImageList() {}
|
---|
105 |
|
---|
106 | wxImageList( int width, int height, bool mask = true, int initialCount = 1 )
|
---|
107 | : wxGenericImageList(width, height, mask, initialCount)
|
---|
108 | {
|
---|
109 | }
|
---|
110 | };
|
---|
111 | #endif // !__WXMSW__ || __WXUNIVERSAL__
|
---|
112 |
|
---|
113 | #endif // __IMAGELISTH_G__
|
---|
114 |
|
---|