home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / wxos2233.zip / wxOS2-2_3_3.zip / wxWindows-2.3.3 / include / wx / artprov.h < prev    next >
C/C++ Source or Header  |  2002-08-31  |  7KB  |  138 lines

  1. /////////////////////////////////////////////////////////////////////////////
  2. // Name:        artprov.h
  3. // Purpose:     wxArtProvider class
  4. // Author:      Vaclav Slavik
  5. // Modified by:
  6. // Created:     18/03/2002
  7. // RCS-ID:      $Id: artprov.h,v 1.10 2002/08/31 11:29:09 GD Exp $
  8. // Copyright:   (c) Vaclav Slavik
  9. // Licence:     wxWindows licence
  10. /////////////////////////////////////////////////////////////////////////////
  11.  
  12. #ifndef _WX_ARTPROV_H_
  13. #define _WX_ARTPROV_H_
  14.  
  15. #if defined(__GNUG__) && !defined(__APPLE__)
  16. #pragma interface "artprov.h"
  17. #endif
  18.  
  19. #include "wx/string.h"
  20. #include "wx/bitmap.h"
  21. #include "wx/icon.h"
  22.  
  23. class WXDLLEXPORT wxArtProvidersList;
  24. class WXDLLEXPORT wxArtProviderCache;
  25.  
  26. // ----------------------------------------------------------------------------
  27. // Types
  28. // ----------------------------------------------------------------------------
  29.  
  30. typedef wxString wxArtClient;
  31. typedef wxString wxArtID;
  32.  
  33. #define wxART_MAKE_CLIENT_ID_FROM_STR(id)  (wxString(id)+_T("_C"))
  34. #define wxART_MAKE_CLIENT_ID(id)           _T(#id) _T("_C")
  35. #define wxART_MAKE_ART_ID_FROM_STR(id)     (id)
  36. #define wxART_MAKE_ART_ID(id)              _T(#id)
  37.  
  38. // ----------------------------------------------------------------------------
  39. // Art clients
  40. // ----------------------------------------------------------------------------
  41.  
  42. #define wxART_TOOLBAR              wxART_MAKE_CLIENT_ID(wxART_TOOLBAR)         
  43. #define wxART_MENU                 wxART_MAKE_CLIENT_ID(wxART_MENU)            
  44. #define wxART_FRAME_ICON           wxART_MAKE_CLIENT_ID(wxART_FRAME_ICON)      
  45.  
  46. #define wxART_CMN_DIALOG           wxART_MAKE_CLIENT_ID(wxART_CMN_DIALOG)      
  47. #define wxART_HELP_BROWSER         wxART_MAKE_CLIENT_ID(wxART_HELP_BROWSER)    
  48. #define wxART_MESSAGE_BOX          wxART_MAKE_CLIENT_ID(wxART_MESSAGE_BOX)     
  49.  
  50. #define wxART_OTHER                wxART_MAKE_CLIENT_ID(wxART_OTHER)           
  51.  
  52. // ----------------------------------------------------------------------------
  53. // Art IDs
  54. // ----------------------------------------------------------------------------
  55.  
  56. #define wxART_ADD_BOOKMARK         wxART_MAKE_ART_ID(wxART_ADD_BOOKMARK)       
  57. #define wxART_DEL_BOOKMARK         wxART_MAKE_ART_ID(wxART_DEL_BOOKMARK)       
  58. #define wxART_HELP_SIDE_PANEL      wxART_MAKE_ART_ID(wxART_HELP_SIDE_PANEL)    
  59. #define wxART_HELP_SETTINGS        wxART_MAKE_ART_ID(wxART_HELP_SETTINGS)      
  60. #define wxART_HELP_BOOK            wxART_MAKE_ART_ID(wxART_HELP_BOOK)          
  61. #define wxART_HELP_FOLDER          wxART_MAKE_ART_ID(wxART_HELP_FOLDER)        
  62. #define wxART_HELP_PAGE            wxART_MAKE_ART_ID(wxART_HELP_PAGE)          
  63. #define wxART_GO_BACK              wxART_MAKE_ART_ID(wxART_GO_BACK)            
  64. #define wxART_GO_FORWARD           wxART_MAKE_ART_ID(wxART_GO_FORWARD)         
  65. #define wxART_GO_UP                wxART_MAKE_ART_ID(wxART_GO_UP)              
  66. #define wxART_GO_DOWN              wxART_MAKE_ART_ID(wxART_GO_DOWN)            
  67. #define wxART_GO_TO_PARENT         wxART_MAKE_ART_ID(wxART_GO_TO_PARENT)       
  68. #define wxART_GO_HOME              wxART_MAKE_ART_ID(wxART_GO_HOME)            
  69. #define wxART_FILE_OPEN            wxART_MAKE_ART_ID(wxART_FILE_OPEN)          
  70. #define wxART_PRINT                wxART_MAKE_ART_ID(wxART_PRINT)              
  71. #define wxART_HELP                 wxART_MAKE_ART_ID(wxART_HELP)               
  72. #define wxART_TIP                  wxART_MAKE_ART_ID(wxART_TIP)                
  73. #define wxART_REPORT_VIEW          wxART_MAKE_ART_ID(wxART_REPORT_VIEW)        
  74. #define wxART_LIST_VIEW            wxART_MAKE_ART_ID(wxART_LIST_VIEW)          
  75. #define wxART_NEW_DIR              wxART_MAKE_ART_ID(wxART_NEW_DIR)            
  76. #define wxART_FOLDER               wxART_MAKE_ART_ID(wxART_FOLDER)             
  77. #define wxART_GO_DIR_UP            wxART_MAKE_ART_ID(wxART_GO_DIR_UP)          
  78. #define wxART_EXECUTABLE_FILE      wxART_MAKE_ART_ID(wxART_EXECUTABLE_FILE)    
  79. #define wxART_NORMAL_FILE          wxART_MAKE_ART_ID(wxART_NORMAL_FILE)        
  80. #define wxART_TICK_MARK            wxART_MAKE_ART_ID(wxART_TICK_MARK)          
  81. #define wxART_CROSS_MARK           wxART_MAKE_ART_ID(wxART_CROSS_MARK)         
  82. #define wxART_ERROR                wxART_MAKE_ART_ID(wxART_ERROR)              
  83. #define wxART_QUESTION             wxART_MAKE_ART_ID(wxART_QUESTION)           
  84. #define wxART_WARNING              wxART_MAKE_ART_ID(wxART_WARNING)            
  85. #define wxART_INFORMATION          wxART_MAKE_ART_ID(wxART_INFORMATION)        
  86.  
  87. // ----------------------------------------------------------------------------
  88. // wxArtProvider class
  89. // ----------------------------------------------------------------------------
  90.  
  91. class WXDLLEXPORT wxArtProvider : public wxObject
  92. {
  93. public:
  94.     // Add new provider to the top of providers stack.
  95.     static void PushProvider(wxArtProvider *provider);
  96.  
  97.     // Remove latest added provider and delete it.
  98.     static bool PopProvider();
  99.  
  100.     // Remove provider. The provider must have been added previously!
  101.     // The provider is _not_ deleted.
  102.     static bool RemoveProvider(wxArtProvider *provider);
  103.     
  104.     // Query the providers for bitmap with given ID and return it. Return
  105.     // wxNullBitmap if no provider provides it.
  106.     static wxBitmap GetBitmap(const wxArtID& id, 
  107.                               const wxArtClient& client = wxART_OTHER,
  108.                               const wxSize& size = wxDefaultSize);
  109.  
  110.     // Query the providers for icon with given ID and return it. Return
  111.     // wxNullIcon if no provider provides it.
  112.     static wxIcon GetIcon(const wxArtID& id,
  113.                           const wxArtClient& client = wxART_OTHER,
  114.                           const wxSize& size = wxDefaultSize);
  115.  
  116.     // Destroy caches & all providers
  117.     static void CleanUpProviders();
  118.  
  119. protected:
  120.     // Derived classes must override this method to create requested 
  121.     // art resource. This method is called only once per instance's
  122.     // lifetime for each requested wxArtID.
  123.     virtual wxBitmap CreateBitmap(const wxArtID& WXUNUSED(id),
  124.                                   const wxArtClient& WXUNUSED(client),
  125.                                   const wxSize& WXUNUSED(size)) = 0;
  126.  
  127. private:
  128.     // list of providers:
  129.     static wxArtProvidersList *sm_providers;
  130.     // art resources cache (so that CreateXXX is not called that often):
  131.     static wxArtProviderCache *sm_cache;
  132.  
  133.     DECLARE_ABSTRACT_CLASS(wxArtProvider)
  134. };
  135.  
  136.  
  137. #endif // _WX_ARTPROV_H_
  138.