X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/cd5bf2a6e3a7d03e8b1f97e989eecdcc63f7151f..f8c4475a3e579655f6a962822824596a7a9cfb66:/include/wx/gtk/dataobj.h diff --git a/include/wx/gtk/dataobj.h b/include/wx/gtk/dataobj.h index 13c80135ca..e8d598e3dd 100644 --- a/include/wx/gtk/dataobj.h +++ b/include/wx/gtk/dataobj.h @@ -32,61 +32,51 @@ class wxPrivateDataObject; class wxFileDataObject; //------------------------------------------------------------------------- -// wxDataFormat +// wxDataFormat (internal) //------------------------------------------------------------------------- -enum wxDataType -{ - wxDF_INVALID = 0, - wxDF_TEXT = 1, /* CF_TEXT */ - wxDF_BITMAP = 2, /* CF_BITMAP */ - wxDF_METAFILE = 3, /* CF_METAFILEPICT */ - wxDF_SYLK = 4, - wxDF_DIF = 5, - wxDF_TIFF = 6, - wxDF_OEMTEXT = 7, /* CF_OEMTEXT */ - wxDF_DIB = 8, /* CF_DIB */ - wxDF_PALETTE = 9, - wxDF_PENDATA = 10, - wxDF_RIFF = 11, - wxDF_WAVE = 12, - wxDF_UNICODETEXT = 13, - wxDF_ENHMETAFILE = 14, - wxDF_FILENAME = 15, /* CF_HDROP */ - wxDF_LOCALE = 16, - wxDF_PRIVATE = 20 -}; - class wxDataFormat : public wxObject { - DECLARE_CLASS( wxDataFormat ) - + DECLARE_CLASS( wxDataFormat ) + public: - - wxDataFormat(); - wxDataFormat( wxDataType type ); - wxDataFormat( const wxString &id ); - wxDataFormat( wxDataFormat &format ); - wxDataFormat( const GdkAtom atom ); - - void SetType( wxDataType type ); - wxDataType GetType() const; - - wxString GetId() const; - void SetId( const wxString &id ); - - GdkAtom GetAtom(); - -private: + wxDataFormat(); + wxDataFormat( wxDataFormatId type ); + wxDataFormat( const wxString &id ); + wxDataFormat( const wxChar *id ); + wxDataFormat( const wxDataFormat &format ); + wxDataFormat( const GdkAtom atom ); + + void SetType( wxDataFormatId type ); + wxDataFormatId GetType() const; + + /* the string Id identifies the format of clipboard or DnD data. a word + * processor would e.g. add a wxTextDataObject and a wxPrivateDataObject + * to the clipboard - the latter with the Id "application/wxword", an + * image manipulation program would put a wxBitmapDataObject and a + * wxPrivateDataObject to the clipboard - the latter with "image/png". */ + + wxString GetId() const; + void SetId( const wxChar *id ); - wxDataType m_type; - wxString m_id; - bool m_hasAtom; - GdkAtom m_atom; + 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; }; //------------------------------------------------------------------------- -// wxDataBroker handles data and ormat negotiation for clipboard and DnD +// wxDataBroker (internal) //------------------------------------------------------------------------- class wxDataBroker : public wxObject @@ -97,36 +87,36 @@ public: /* constructor */ wxDataBroker(); - + /* add data object */ void Add( wxDataObject *dataObject, bool preferred = FALSE ); - -private: - + +private: + /* OLE implementation, the methods don't need to be overridden */ - + /* get number of supported formats */ virtual size_t GetFormatCount() const; - - /* return nth supported format */ + + /* return nth supported format */ virtual wxDataFormat &GetNthFormat( size_t nth ) const; - - /* return preferrd/best supported format */ - virtual wxDataFormat &GetPreferredFormat() const; - + + /* return preferrd/best supported format */ + virtual wxDataFormatId GetPreferredFormat() 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 WriteData(dest) */ virtual void WriteData( wxDataFormat& format, void *dest ) const; - + /* implementation */ public: - + wxList m_dataObjects; size_t m_preferred; }; @@ -138,29 +128,29 @@ public: class wxDataObject : public wxObject { DECLARE_DYNAMIC_CLASS( wxDataObject ) - + public: /* constructor */ wxDataObject(); - + /* destructor */ ~wxDataObject(); - - /* write data to dest */ + + /* write data to dest */ virtual void WriteData( void *dest ) const = 0; - - /* get size of data */ + + /* get size of data */ virtual size_t GetSize() const = 0; - + /* implementation */ - + wxDataFormat &GetFormat(); - - wxDataType GetFormatType() const; + + wxDataFormatId GetFormatType() const; wxString GetFormatId() const; GdkAtom GetFormatAtom() const; - + wxDataFormat m_format; }; @@ -177,27 +167,27 @@ public: /* default constructor. call SetText() later or override WriteData() and GetSize() for working on-demand */ wxTextDataObject(); - + /* constructor */ wxTextDataObject( const wxString& data ); - + /* set current text data */ void SetText( const wxString& data ); - + /* 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, returns length of string as set by constructor or + + /* 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; - + /* implementation */ wxString m_data; @@ -215,20 +205,20 @@ public: /* default constructor */ wxFileDataObject(); - + /* 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; - + /* write list of filenames */ virtual void WriteData( void *dest ) const; - /* return length of list of filenames */ + /* return length of list of filenames */ virtual size_t GetSize() const; - + /* implementation */ wxString m_files; @@ -248,66 +238,21 @@ public: 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; - -}; - -//---------------------------------------------------------------------------- -// wxPrivateDataObject is a specialization of wxDataObject for app specific data -//---------------------------------------------------------------------------- - -class wxPrivateDataObject : public wxDataObject -{ - DECLARE_DYNAMIC_CLASS( wxPrivateDataObject ) -public: - - /* see wxTextDataObject for explanation of functions */ - - wxPrivateDataObject(); - ~wxPrivateDataObject(); - - /* the string Id identifies the format of clipboard or DnD data. a word - * processor would e.g. add a wxTextDataObject and a wxPrivateDataObject - * to the clipboard - the latter with the Id "application/wxword", an - * image manipulation program would put a wxBitmapDataObject and a - * wxPrivateDataObject to the clipboard - the latter with "image/png". */ - - void SetId( const wxString& id ); - - /* get id */ - wxString GetId() const; - - /* set data. will make internal copy. */ - void SetData( const char *data, size_t size ); - - /* returns pointer to data */ - char* GetData() const; - - virtual void WriteData( void *dest ) const; - virtual size_t GetSize() const; - - void WriteData( const char *data, void *dest ) const; - - // implementation - - size_t m_size; - char* m_data; - wxString m_id; }; - -#endif +#endif //__GTKDNDH__