dataobj2.h 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. ///////////////////////////////////////////////////////////////////////////////
  2. // Name: wx/x11/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_X11_DATAOBJ2_H_
  10. #define _WX_X11_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 Init() { m_pngData = NULL; m_pngSize = 0; }
  44. void Clear() { free(m_pngData); }
  45. void ClearAll() { Clear(); Init(); }
  46. size_t m_pngSize;
  47. void *m_pngData;
  48. void DoConvertToPng();
  49. };
  50. // ----------------------------------------------------------------------------
  51. // wxFileDataObject is a specialization of wxDataObject for file names
  52. // ----------------------------------------------------------------------------
  53. class WXDLLIMPEXP_CORE wxFileDataObject : public wxFileDataObjectBase
  54. {
  55. public:
  56. // implement base class pure virtuals
  57. // ----------------------------------
  58. void AddFile( const wxString &filename );
  59. virtual size_t GetDataSize() const;
  60. virtual bool GetDataHere(void *buf) const;
  61. virtual bool SetData(size_t len, const void *buf);
  62. // Must provide overloads to avoid hiding them (and warnings about it)
  63. virtual size_t GetDataSize(const wxDataFormat&) const
  64. {
  65. return GetDataSize();
  66. }
  67. virtual bool GetDataHere(const wxDataFormat&, void *buf) const
  68. {
  69. return GetDataHere(buf);
  70. }
  71. virtual bool SetData(const wxDataFormat&, size_t len, const void *buf)
  72. {
  73. return SetData(len, buf);
  74. }
  75. };
  76. #endif // _WX_X11_DATAOBJ2_H_