]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/motif/dataform.h
pragma fix for gcc
[wxWidgets.git] / include / wx / motif / dataform.h
index cab0b9d678dd811cdcc4b06ec6d8eb309fb6116f..e6dbcb0a918afb34afe16377e3a88dc44b2664e2 100644 (file)
@@ -1,11 +1,11 @@
 ///////////////////////////////////////////////////////////////////////////////
 // Name:        motif/dataform.h
 // Purpose:     declaration of the wxDataFormat class
 ///////////////////////////////////////////////////////////////////////////////
 // Name:        motif/dataform.h
 // Purpose:     declaration of the wxDataFormat class
-// Author:      Vadim Zeitlin
+// Author:      Robert Roebling
 // Modified by:
 // Created:     19.10.99 (extracted from motif/dataobj.h)
 // RCS-ID:      $Id$
 // Modified by:
 // Created:     19.10.99 (extracted from motif/dataobj.h)
 // RCS-ID:      $Id$
-// Copyright:   (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
+// Copyright:   (c) 1999 Robert Roebling
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
 class wxDataFormat
 {
 public:
 class wxDataFormat
 {
 public:
+    // the clipboard formats under Xt are Atoms
+    typedef Atom NativeFormat;
+
     wxDataFormat();
     wxDataFormat( wxDataFormatId type );
     wxDataFormat( const wxString &id );
     wxDataFormat( const wxChar *id );
     wxDataFormat();
     wxDataFormat( wxDataFormatId type );
     wxDataFormat( const wxString &id );
     wxDataFormat( const wxChar *id );
-    wxDataFormat( const wxDataFormat &format );
-    wxDataFormat( const Atom atom );
+    wxDataFormat( NativeFormat format );
 
 
-    void SetType( wxDataFormatId type );
-    wxDataFormatId GetType() const;
+    wxDataFormat& operator=(NativeFormat format)
+        { SetId(format); return *this; }
 
 
-    /* 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". */
+    // comparison (must have both versions)
+    bool operator==(NativeFormat format) const
+        { return m_format == (NativeFormat)format; }
+    bool operator!=(NativeFormat format) const
+        { return m_format != (NativeFormat)format; }
+    bool operator==(wxDataFormatId format) const
+        { return m_type == (wxDataFormatId)format; }
+    bool operator!=(wxDataFormatId format) const
+        { return m_type != (wxDataFormatId)format; }
 
 
-    wxString GetId() const;
-    void SetId( const wxChar *id );
+    // explicit and implicit conversions to NativeFormat which is one of
+    // standard data types (implicit conversion is useful for preserving the
+    // compatibility with old code)
+    NativeFormat GetFormatId() const { return m_format; }
+    operator NativeFormat() const { return m_format; }
 
 
-    Atom GetAtom();
-    void SetAtom(Atom atom) { m_hasAtom = TRUE; m_atom = atom; }
+    void SetId( NativeFormat format );
 
 
-    // implicit conversion to wxDataFormatId
-    operator wxDataFormatId() const { return m_type; }
+    // string ids are used for custom types - this SetId() must be used for
+    // application-specific formats
+    wxString GetId() const;
+    void SetId( const wxChar *id );
 
 
-    bool operator==(wxDataFormatId type) const { return m_type == type; }
-    bool operator!=(wxDataFormatId type) const { return m_type != type; }
+    // implementation
+    wxDataFormatId GetType() const;
 
 private:
 
 private:
-    wxDataFormatId  m_type;
-    wxString    m_id;
-    bool        m_hasAtom;
-    Atom        m_atom;
+    wxDataFormatId   m_type;
+    NativeFormat     m_format;
+
+    void PrepareFormats();
+    void SetType( wxDataFormatId type );
 };
 
 };
 
+
 #endif // _WX_MOTIF_DATAFORM_H
 
 #endif // _WX_MOTIF_DATAFORM_H