X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3f480da37ca0840ddbe48b908d511d2e9fc20bf4..0ce742cf092c9244f27957e308c16f3c2631042d:/include/wx/gtk/dataobj.h diff --git a/include/wx/gtk/dataobj.h b/include/wx/gtk/dataobj.h index 4949cf9c51..d79e1b63c8 100644 --- a/include/wx/gtk/dataobj.h +++ b/include/wx/gtk/dataobj.h @@ -37,14 +37,12 @@ class wxFileDataObject; class wxDataFormat : public wxObject { - DECLARE_CLASS( wxDataFormat ) - public: wxDataFormat(); wxDataFormat( wxDataFormatId type ); wxDataFormat( const wxString &id ); wxDataFormat( const wxChar *id ); - wxDataFormat( wxDataFormat &format ); + wxDataFormat( const wxDataFormat &format ); wxDataFormat( const GdkAtom atom ); void SetType( wxDataFormatId type ); @@ -62,11 +60,22 @@ public: GdkAtom GetAtom(); void SetAtom(GdkAtom atom) { m_hasAtom = TRUE; m_atom = atom; } + // implicit conversion to wxDataFormatId + operator wxDataFormatId() const { return m_type; } + + bool operator==(wxDataFormatId type) const { return m_type == type; } + bool operator!=(wxDataFormatId type) const { return m_type != type; } + private: wxDataFormatId m_type; wxString m_id; bool m_hasAtom; GdkAtom m_atom; + + void PrepareFormats(); + +private: + DECLARE_CLASS( wxDataFormat ) }; //------------------------------------------------------------------------- @@ -75,44 +84,41 @@ private: class wxDataBroker : public wxObject { - DECLARE_CLASS( wxDataBroker ) - public: + /* constructor */ + wxDataBroker(); - /* constructor */ - wxDataBroker(); - - /* add data object */ - void Add( wxDataObject *dataObject, bool preferred = FALSE ); + /* add data object */ + void Add( wxDataObject *dataObject, bool preferred = FALSE ); private: + /* OLE implementation, the methods don't need to be overridden */ - /* OLE implementation, the methods don't need to be overridden */ + /* get number of supported formats */ + virtual size_t GetFormatCount() const; - /* get number of supported formats */ - virtual size_t GetFormatCount() const; + /* return nth supported format */ + virtual wxDataFormat &GetNthFormat( size_t nth ) const; - /* return nth supported format */ - virtual wxDataFormat &GetNthFormat( size_t nth ) const; + /* return preferrd/best supported format */ + virtual wxDataFormatId GetPreferredFormat() const; - /* return preferrd/best supported format */ - virtual wxDataFormat &GetPreferredFormat() const; + /* search through m_dataObjects, return TRUE if found */ + virtual bool IsSupportedFormat( wxDataFormat &format ) const; - /* search through m_dataObjects, return TRUE if found */ - virtual bool IsSupportedFormat( wxDataFormat &format ) const; + /* search through m_dataObjects and call child's GetSize() */ + virtual size_t GetSize( wxDataFormat& format ) const; - /* search through m_dataObjects and call child's GetSize() */ - virtual size_t GetSize( wxDataFormat& format ) const; - - /* search through m_dataObjects and call child's WriteData(dest) */ - virtual void WriteData( wxDataFormat& format, void *dest ) const; - - /* implementation */ + /* search through m_dataObjects and call child's WriteData(dest) */ + virtual void WriteData( wxDataFormat& format, void *dest ) const; public: - - wxList m_dataObjects; - size_t m_preferred; + /* implementation */ + wxList m_dataObjects; + size_t m_preferred; + +private: + DECLARE_CLASS( wxDataBroker ) }; //---------------------------------------------------------------------------- @@ -121,31 +127,31 @@ public: class wxDataObject : public wxObject { - DECLARE_DYNAMIC_CLASS( wxDataObject ) - public: + /* constructor */ + wxDataObject(); - /* constructor */ - wxDataObject(); + /* destructor */ + ~wxDataObject(); - /* destructor */ - ~wxDataObject(); + /* write data to dest */ + virtual void WriteData( void *dest ) const = 0; - /* write data to dest */ - virtual void WriteData( void *dest ) const = 0; + /* get size of data */ + virtual size_t GetSize() const = 0; - /* get size of data */ - virtual size_t GetSize() const = 0; - - /* implementation */ - - wxDataFormat &GetFormat(); +public: + /* implementation */ + wxDataFormat m_format; + + wxDataFormat &GetFormat(); - wxDataFormatId GetFormatType() const; - wxString GetFormatId() const; - GdkAtom GetFormatAtom() const; + wxDataFormatId GetFormatType() const; + wxString GetFormatId() const; + GdkAtom GetFormatAtom() const; - wxDataFormat m_format; +private: + DECLARE_DYNAMIC_CLASS( wxDataObject ) }; //---------------------------------------------------------------------------- @@ -154,37 +160,37 @@ public: class wxTextDataObject : public wxDataObject { - DECLARE_DYNAMIC_CLASS( wxTextDataObject ) - public: + /* default constructor. call SetText() later or override + WriteData() and GetSize() for working on-demand */ + wxTextDataObject(); - /* default constructor. call SetText() later or override - WriteData() and GetSize() for working on-demand */ - wxTextDataObject(); - - /* constructor */ - wxTextDataObject( const wxString& data ); + /* constructor */ + wxTextDataObject( const wxString& data ); - /* set current text data */ - void SetText( const wxString& data ); + /* set current text data */ + void SetText( const wxString& data ); - /* get current text data */ - wxString GetText() const; + /* get current text data */ + wxString GetText() const; - /* by default calls WriteString() with string set by constructor or - by SetText(). can be overridden for working on-demand */ - virtual void WriteData( void *dest ) const; + /* by default calls WriteString() with string set by constructor or + by SetText(). can be overridden for working on-demand */ + virtual void WriteData( void *dest ) const; - /* by default, returns length of string as set by constructor or - by SetText(). can be overridden for working on-demand */ - virtual size_t GetSize() const; + /* by default, returns length of string as set by constructor or + by SetText(). can be overridden for working on-demand */ + virtual size_t GetSize() const; - /* write string to dest */ - void WriteString( const wxString &str, void *dest ) const; + /* write string to dest */ + void WriteString( const wxString &str, void *dest ) const; - /* implementation */ +public: + /* implementation */ + wxString m_data; - wxString m_data; +private: + DECLARE_DYNAMIC_CLASS( wxTextDataObject ) }; //---------------------------------------------------------------------------- @@ -193,29 +199,29 @@ public: class wxFileDataObject : public wxDataObject { - DECLARE_DYNAMIC_CLASS( wxFileDataObject ) - public: + /* default constructor */ + wxFileDataObject(); - /* default constructor */ - wxFileDataObject(); + /* add file name to list */ + void AddFile( const wxString &file ); - /* add file name to list */ - void AddFile( const wxString &file ); + /* get all filename as one string. each file name is 0 terminated, + the list is double zero terminated */ + wxString GetFiles() const; - /* get all filename as one string. each file name is 0 terminated, - the list is double zero terminated */ - wxString GetFiles() const; + /* write list of filenames */ + virtual void WriteData( void *dest ) const; - /* write list of filenames */ - virtual void WriteData( void *dest ) const; + /* return length of list of filenames */ + virtual size_t GetSize() const; - /* return length of list of filenames */ - virtual size_t GetSize() const; - - /* implementation */ - - wxString m_files; +public: + /* implementation */ + wxString m_files; + +private: + DECLARE_DYNAMIC_CLASS( wxFileDataObject ) }; //---------------------------------------------------------------------------- @@ -224,27 +230,32 @@ public: class wxBitmapDataObject : public wxDataObject { - DECLARE_DYNAMIC_CLASS( wxBitmapDataObject ) - public: - - /* see wxTextDataObject for explanation */ - - wxBitmapDataObject(); - wxBitmapDataObject( const wxBitmap& bitmap ); - - void SetBitmap( const wxBitmap &bitmap ); - wxBitmap GetBitmap() const; - - virtual void WriteData( void *dest ) const; - virtual size_t GetSize() const; - - void WriteBitmap( const wxBitmap &bitmap, void *dest ) const; - - // implementation - - wxBitmap m_bitmap; - + /* see wxTextDataObject for explanation */ + wxBitmapDataObject(); + wxBitmapDataObject( const wxBitmap& bitmap ); + ~wxBitmapDataObject(); + + void SetBitmap( const wxBitmap &bitmap ); + wxBitmap GetBitmap() const; + + virtual void WriteData( void *dest ) const; + virtual size_t GetSize() const; + void *GetData() const { return (void*)m_pngData; } + + void WriteBitmap( const wxBitmap &bitmap, void *dest ) const; + + void SetPngData( const char *pngData, size_t pngSize ); + +private: + wxBitmap m_bitmap; + size_t m_pngSize; + char *m_pngData; + + void DoConvertToPng(); + +private: + DECLARE_DYNAMIC_CLASS( wxBitmapDataObject ); }; #endif