home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / wxos2240.zip / wxWindows-2.4.0 / include / wx / generic / imaglist.h < prev    next >
C/C++ Source or Header  |  2002-08-31  |  3KB  |  109 lines

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