home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / wxos2240.zip / wxWindows-2.4.0 / include / wx / artprov.h < prev    next >
C/C++ Source or Header  |  2002-11-04  |  7KB  |  142 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.2.1 2002/11/03 17:18:18 VS 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. class wxArtProviderModule;
  26.  
  27. // ----------------------------------------------------------------------------
  28. // Types
  29. // ----------------------------------------------------------------------------
  30.  
  31. typedef wxString wxArtClient;
  32. typedef wxString wxArtID;
  33.  
  34. #define wxART_MAKE_CLIENT_ID_FROM_STR(id)  (wxString(id)+_T("_C"))
  35. #define wxART_MAKE_CLIENT_ID(id)           _T(#id) _T("_C")
  36. #define wxART_MAKE_ART_ID_FROM_STR(id)     (id)
  37. #define wxART_MAKE_ART_ID(id)              _T(#id)
  38.  
  39. // ----------------------------------------------------------------------------
  40. // Art clients
  41. // ----------------------------------------------------------------------------
  42.  
  43. #define wxART_TOOLBAR              wxART_MAKE_CLIENT_ID(wxART_TOOLBAR)         
  44. #define wxART_MENU                 wxART_MAKE_CLIENT_ID(wxART_MENU)            
  45. #define wxART_FRAME_ICON           wxART_MAKE_CLIENT_ID(wxART_FRAME_ICON)      
  46.  
  47. #define wxART_CMN_DIALOG           wxART_MAKE_CLIENT_ID(wxART_CMN_DIALOG)      
  48. #define wxART_HELP_BROWSER         wxART_MAKE_CLIENT_ID(wxART_HELP_BROWSER)    
  49. #define wxART_MESSAGE_BOX          wxART_MAKE_CLIENT_ID(wxART_MESSAGE_BOX)     
  50.  
  51. #define wxART_OTHER                wxART_MAKE_CLIENT_ID(wxART_OTHER)           
  52.  
  53. // ----------------------------------------------------------------------------
  54. // Art IDs
  55. // ----------------------------------------------------------------------------
  56.  
  57. #define wxART_ADD_BOOKMARK         wxART_MAKE_ART_ID(wxART_ADD_BOOKMARK)       
  58. #define wxART_DEL_BOOKMARK         wxART_MAKE_ART_ID(wxART_DEL_BOOKMARK)       
  59. #define wxART_HELP_SIDE_PANEL      wxART_MAKE_ART_ID(wxART_HELP_SIDE_PANEL)    
  60. #define wxART_HELP_SETTINGS        wxART_MAKE_ART_ID(wxART_HELP_SETTINGS)      
  61. #define wxART_HELP_BOOK            wxART_MAKE_ART_ID(wxART_HELP_BOOK)          
  62. #define wxART_HELP_FOLDER          wxART_MAKE_ART_ID(wxART_HELP_FOLDER)        
  63. #define wxART_HELP_PAGE            wxART_MAKE_ART_ID(wxART_HELP_PAGE)          
  64. #define wxART_GO_BACK              wxART_MAKE_ART_ID(wxART_GO_BACK)            
  65. #define wxART_GO_FORWARD           wxART_MAKE_ART_ID(wxART_GO_FORWARD)         
  66. #define wxART_GO_UP                wxART_MAKE_ART_ID(wxART_GO_UP)              
  67. #define wxART_GO_DOWN              wxART_MAKE_ART_ID(wxART_GO_DOWN)            
  68. #define wxART_GO_TO_PARENT         wxART_MAKE_ART_ID(wxART_GO_TO_PARENT)       
  69. #define wxART_GO_HOME              wxART_MAKE_ART_ID(wxART_GO_HOME)            
  70. #define wxART_FILE_OPEN            wxART_MAKE_ART_ID(wxART_FILE_OPEN)          
  71. #define wxART_PRINT                wxART_MAKE_ART_ID(wxART_PRINT)              
  72. #define wxART_HELP                 wxART_MAKE_ART_ID(wxART_HELP)               
  73. #define wxART_TIP                  wxART_MAKE_ART_ID(wxART_TIP)                
  74. #define wxART_REPORT_VIEW          wxART_MAKE_ART_ID(wxART_REPORT_VIEW)        
  75. #define wxART_LIST_VIEW            wxART_MAKE_ART_ID(wxART_LIST_VIEW)          
  76. #define wxART_NEW_DIR              wxART_MAKE_ART_ID(wxART_NEW_DIR)            
  77. #define wxART_FOLDER               wxART_MAKE_ART_ID(wxART_FOLDER)             
  78. #define wxART_GO_DIR_UP            wxART_MAKE_ART_ID(wxART_GO_DIR_UP)          
  79. #define wxART_EXECUTABLE_FILE      wxART_MAKE_ART_ID(wxART_EXECUTABLE_FILE)    
  80. #define wxART_NORMAL_FILE          wxART_MAKE_ART_ID(wxART_NORMAL_FILE)        
  81. #define wxART_TICK_MARK            wxART_MAKE_ART_ID(wxART_TICK_MARK)          
  82. #define wxART_CROSS_MARK           wxART_MAKE_ART_ID(wxART_CROSS_MARK)         
  83. #define wxART_ERROR                wxART_MAKE_ART_ID(wxART_ERROR)              
  84. #define wxART_QUESTION             wxART_MAKE_ART_ID(wxART_QUESTION)           
  85. #define wxART_WARNING              wxART_MAKE_ART_ID(wxART_WARNING)            
  86. #define wxART_INFORMATION          wxART_MAKE_ART_ID(wxART_INFORMATION)        
  87.  
  88. // ----------------------------------------------------------------------------
  89. // wxArtProvider class
  90. // ----------------------------------------------------------------------------
  91.  
  92. class WXDLLEXPORT wxArtProvider : public wxObject
  93. {
  94. public:
  95.     // Add new provider to the top of providers stack.
  96.     static void PushProvider(wxArtProvider *provider);
  97.  
  98.     // Remove latest added provider and delete it.
  99.     static bool PopProvider();
  100.  
  101.     // Remove provider. The provider must have been added previously!
  102.     // The provider is _not_ deleted.
  103.     static bool RemoveProvider(wxArtProvider *provider);
  104.     
  105.     // Query the providers for bitmap with given ID and return it. Return
  106.     // wxNullBitmap if no provider provides it.
  107.     static wxBitmap GetBitmap(const wxArtID& id, 
  108.                               const wxArtClient& client = wxART_OTHER,
  109.                               const wxSize& size = wxDefaultSize);
  110.  
  111.     // Query the providers for icon with given ID and return it. Return
  112.     // wxNullIcon if no provider provides it.
  113.     static wxIcon GetIcon(const wxArtID& id,
  114.                           const wxArtClient& client = wxART_OTHER,
  115.                           const wxSize& size = wxDefaultSize);
  116.  
  117. protected:
  118.     friend class wxArtProviderModule;
  119.     // Initializes default provider
  120.     static void InitStdProvider();
  121.     // Destroy caches & all providers
  122.     static void CleanUpProviders();
  123.  
  124.     // Derived classes must override this method to create requested 
  125.     // art resource. This method is called only once per instance's
  126.     // lifetime for each requested wxArtID.
  127.     virtual wxBitmap CreateBitmap(const wxArtID& WXUNUSED(id),
  128.                                   const wxArtClient& WXUNUSED(client),
  129.                                   const wxSize& WXUNUSED(size)) = 0;
  130.  
  131. private:
  132.     // list of providers:
  133.     static wxArtProvidersList *sm_providers;
  134.     // art resources cache (so that CreateXXX is not called that often):
  135.     static wxArtProviderCache *sm_cache;
  136.  
  137.     DECLARE_ABSTRACT_CLASS(wxArtProvider)
  138. };
  139.  
  140.  
  141. #endif // _WX_ARTPROV_H_
  142.