X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6f02a879ed7efc5fcf6328ff47a1352ec82812b7..591cc82deb5bc6dd0af6047ecfa7ce7cf4f8d859:/include/wx/dataobj.h diff --git a/include/wx/dataobj.h b/include/wx/dataobj.h index 6c7c1d0d01..1dc04bef55 100644 --- a/include/wx/dataobj.h +++ b/include/wx/dataobj.h @@ -55,7 +55,7 @@ public: typedef NativeFormat; wxDataFormat(NativeFormat format = wxDF_INVALID); - wxDataFormat(const wxChar *format); + wxDataFormat(const wxString& format); wxDataFormat& operator=(NativeFormat format); wxDataFormat& operator=(const wxDataFormat& format); @@ -67,7 +67,7 @@ public: NativeFormat GetType() const; wxString GetId() const; - void SetId(const wxChar *format); + void SetId(const wxString& format); }; */ @@ -83,7 +83,7 @@ public: #elif defined(__WXX11__) #include "wx/x11/dataform.h" #elif defined(__WXMAC__) - #include "wx/mac/dataform.h" + #include "wx/osx/dataform.h" #elif defined(__WXCOCOA__) #include "wx/cocoa/dataform.h" #elif defined(__WXPM__) @@ -92,7 +92,7 @@ public: // the value for default argument to some functions (corresponds to // wxDF_INVALID) -extern WXDLLEXPORT const wxDataFormat& wxFormatInvalid; +extern WXDLLIMPEXP_CORE const wxDataFormat& wxFormatInvalid; // ---------------------------------------------------------------------------- // wxDataObject represents a piece of data which knows which formats it @@ -114,7 +114,7 @@ extern WXDLLEXPORT const wxDataFormat& wxFormatInvalid; // to be supported by SetData() or GetDataHere(). // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxDataObjectBase +class WXDLLIMPEXP_CORE wxDataObjectBase { public: enum Direction @@ -171,7 +171,7 @@ public: #elif defined(__WXGTK__) #include "wx/gtk1/dataobj.h" #elif defined(__WXMAC__) - #include "wx/mac/dataobj.h" + #include "wx/osx/dataobj.h" #elif defined(__WXCOCOA__) #include "wx/cocoa/dataobj.h" #elif defined(__WXPM__) @@ -194,7 +194,7 @@ public: // Otherwise, you should use wxDataObjectComposite or wxDataObject directly. // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxDataObjectSimple : public wxDataObject +class WXDLLIMPEXP_CORE wxDataObjectSimple : public wxDataObject { public: // ctor takes the format we support, but it can also be set later with @@ -261,7 +261,7 @@ private: WX_DECLARE_EXPORTED_LIST(wxDataObjectSimple, wxSimpleDataObjectList); -class WXDLLEXPORT wxDataObjectComposite : public wxDataObject +class WXDLLIMPEXP_CORE wxDataObjectComposite : public wxDataObject { public: // ctor @@ -273,6 +273,12 @@ public: // one if preferred == true void Add(wxDataObjectSimple *dataObject, bool preferred = false); + // Report the format passed to the SetData method. This should be the + // format of the data object within the composite that recieved data from + // the clipboard or the DnD operation. You can use this method to find + // out what kind of data object was recieved. + wxDataFormat GetReceivedFormat() const; + // implement base class pure virtuals // ---------------------------------- virtual wxDataFormat GetPreferredFormat(wxDataObjectBase::Direction dir = Get) const; @@ -301,6 +307,8 @@ private: // one is the preferred) size_t m_preferred; + wxDataFormat m_receivedFormat; + DECLARE_NO_COPY_CLASS(wxDataObjectComposite) }; @@ -316,7 +324,15 @@ private: // wxTextDataObject contains text data // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxTextDataObject : public wxDataObjectSimple +#if wxUSE_UNICODE + #if defined(__WXGTK20__) + #define wxNEEDS_UTF8_FOR_TEXT_DATAOBJ + #elif defined(__WXMAC__) + #define wxNEEDS_UTF16_FOR_TEXT_DATAOBJ + #endif +#endif // wxUSE_UNICODE + +class WXDLLIMPEXP_CORE wxTextDataObject : public wxDataObjectSimple { public: // ctor: you can specify the text here or in SetText(), or override @@ -343,7 +359,7 @@ public: // ---------------------------------- // some platforms have 2 and not 1 format for text data -#if wxUSE_UNICODE && (defined(__WXGTK20__) || defined(__WXMAC__)) +#if defined(wxNEEDS_UTF8_FOR_TEXT_DATAOBJ) || defined(wxNEEDS_UTF16_FOR_TEXT_DATAOBJ) virtual size_t GetFormatCount(Direction WXUNUSED(dir) = Get) const { return 2; } virtual void GetAllFormats(wxDataFormat *formats, wxDataObjectBase::Direction WXUNUSED(dir) = Get) const; @@ -355,7 +371,7 @@ public: size_t GetDataSize(const wxDataFormat& format) const; bool GetDataHere(const wxDataFormat& format, void *pBuf) const; bool SetData(const wxDataFormat& format, size_t nLen, const void* pBuf); -#else +#else // !wxNEEDS_UTF{8,16}_FOR_TEXT_DATAOBJ virtual size_t GetDataSize() const; virtual bool GetDataHere(void *buf) const; virtual bool SetData(size_t len, const void *buf); @@ -372,7 +388,7 @@ public: { return SetData(len, buf); } -#endif +#endif // different wxTextDataObject implementations private: wxString m_text; @@ -384,7 +400,7 @@ private: // wxBitmapDataObject contains a bitmap // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxBitmapDataObjectBase : public wxDataObjectSimple +class WXDLLIMPEXP_CORE wxBitmapDataObjectBase : public wxDataObjectSimple { public: // ctor: you can specify the bitmap here or in SetBitmap(), or override @@ -412,7 +428,7 @@ protected: // data from drag and drop operation. // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxFileDataObjectBase : public wxDataObjectSimple +class WXDLLIMPEXP_CORE wxFileDataObjectBase : public wxDataObjectSimple { public: // ctor: use AddFile() later to fill the array @@ -433,7 +449,7 @@ protected: // It is understood that this data can be copied bitwise. // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxCustomDataObject : public wxDataObjectSimple +class WXDLLIMPEXP_CORE wxCustomDataObject : public wxDataObjectSimple { public: // if you don't specify the format in the ctor, you can still use @@ -494,19 +510,20 @@ private: #if defined(__WXMSW__) #include "wx/msw/ole/dataobj2.h" - // wxURLDataObject defined in msw/ole/dataobj2.h -#else // !__WXMSW__ - #if defined(__WXGTK20__) - #include "wx/gtk/dataobj2.h" - #elif defined(__WXGTK__) +#elif defined(__WXGTK20__) + #include "wx/gtk/dataobj2.h" + // wxURLDataObject defined in msw/ole/dataobj2.h + +#else + #if defined(__WXGTK__) #include "wx/gtk1/dataobj2.h" #elif defined(__WXX11__) #include "wx/x11/dataobj2.h" #elif defined(__WXMOTIF__) #include "wx/motif/dataobj2.h" #elif defined(__WXMAC__) - #include "wx/mac/dataobj2.h" + #include "wx/osx/dataobj2.h" #elif defined(__WXCOCOA__) #include "wx/cocoa/dataobj2.h" #elif defined(__WXPM__) @@ -514,13 +531,18 @@ private: #endif // wxURLDataObject is simply wxTextDataObject with a different name - class WXDLLEXPORT wxURLDataObject : public wxTextDataObject + class WXDLLIMPEXP_CORE wxURLDataObject : public wxTextDataObject { public: + wxURLDataObject(const wxString& url = wxEmptyString) + : wxTextDataObject(url) + { + } + wxString GetURL() const { return GetText(); } void SetURL(const wxString& url) { SetText(url); } }; -#endif // __WXMSW__/!__WXMSW__ +#endif #endif // wxUSE_DATAOBJ