dataobj2.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. ///////////////////////////////////////////////////////////////////////////////
  2. // Name: wx/gtk/dataobj2.h
  3. // Purpose: declaration of standard wxDataObjectSimple-derived classes
  4. // Author: Robert Roebling
  5. // Created: 19.10.99 (extracted from gtk/dataobj.h)
  6. // Copyright: (c) 1998, 1999 Vadim Zeitlin, Robert Roebling
  7. // Licence: wxWindows licence
  8. ///////////////////////////////////////////////////////////////////////////////
  9. #ifndef _WX_GTK_DATAOBJ2_H_
  10. #define _WX_GTK_DATAOBJ2_H_
  11. // ----------------------------------------------------------------------------
  12. // wxBitmapDataObject is a specialization of wxDataObject for bitmaps
  13. // ----------------------------------------------------------------------------
  14. class WXDLLIMPEXP_CORE wxBitmapDataObject : public wxBitmapDataObjectBase
  15. {
  16. public:
  17. // ctors
  18. wxBitmapDataObject();
  19. wxBitmapDataObject(const wxBitmap& bitmap);
  20. // destr
  21. virtual ~wxBitmapDataObject();
  22. // override base class virtual to update PNG data too
  23. virtual void SetBitmap(const wxBitmap& bitmap);
  24. // implement base class pure virtuals
  25. // ----------------------------------
  26. virtual size_t GetDataSize() const { return m_pngSize; }
  27. virtual bool GetDataHere(void *buf) const;
  28. virtual bool SetData(size_t len, const void *buf);
  29. // Must provide overloads to avoid hiding them (and warnings about it)
  30. virtual size_t GetDataSize(const wxDataFormat&) const
  31. {
  32. return GetDataSize();
  33. }
  34. virtual bool GetDataHere(const wxDataFormat&, void *buf) const
  35. {
  36. return GetDataHere(buf);
  37. }
  38. virtual bool SetData(const wxDataFormat&, size_t len, const void *buf)
  39. {
  40. return SetData(len, buf);
  41. }
  42. protected:
  43. void Clear() { free(m_pngData); }
  44. void ClearAll() { Clear(); Init(); }
  45. size_t m_pngSize;
  46. void *m_pngData;
  47. void DoConvertToPng();
  48. private:
  49. void Init() { m_pngData = NULL; m_pngSize = 0; }
  50. };
  51. // ----------------------------------------------------------------------------
  52. // wxFileDataObject is a specialization of wxDataObject for file names
  53. // ----------------------------------------------------------------------------
  54. class WXDLLIMPEXP_CORE wxFileDataObject : public wxFileDataObjectBase
  55. {
  56. public:
  57. // implement base class pure virtuals
  58. // ----------------------------------
  59. void AddFile( const wxString &filename );
  60. virtual size_t GetDataSize() const;
  61. virtual bool GetDataHere(void *buf) const;
  62. virtual bool SetData(size_t len, const void *buf);
  63. // Must provide overloads to avoid hiding them (and warnings about it)
  64. virtual size_t GetDataSize(const wxDataFormat&) const
  65. {
  66. return GetDataSize();
  67. }
  68. virtual bool GetDataHere(const wxDataFormat&, void *buf) const
  69. {
  70. return GetDataHere(buf);
  71. }
  72. virtual bool SetData(const wxDataFormat&, size_t len, const void *buf)
  73. {
  74. return SetData(len, buf);
  75. }
  76. };
  77. // ----------------------------------------------------------------------------
  78. // wxURLDataObject is a specialization of wxDataObject for URLs
  79. // ----------------------------------------------------------------------------
  80. class WXDLLIMPEXP_CORE wxURLDataObject : public wxDataObjectComposite
  81. {
  82. public:
  83. wxURLDataObject(const wxString& url = wxEmptyString);
  84. wxString GetURL() const;
  85. void SetURL(const wxString& url);
  86. private:
  87. class wxTextURIListDataObject* const m_dobjURIList;
  88. wxTextDataObject* const m_dobjText;
  89. wxDECLARE_NO_COPY_CLASS(wxURLDataObject);
  90. };
  91. #endif // _WX_GTK_DATAOBJ2_H_