ccbf0b2f9a
We still can't avoid defining the overload taking NativeFormat due to an
ambiguity that we would have otherwise between converting from
NativeFormat to wxDataFormat or vice versa when comparing them (it would
have been better to avoid implicit conversions in all directions, of
course, but this is how it was done back in e1ee679c2e
(wxDataObejct and
related changes (won't compile right now), 1999-10-21) and it's too late
to change it now), but we can at least define an overload taking
wxDataFormat itself and not wxDataFormatId to make things slightly more
logical and avoid -Wambiguous-reversed-operator clang 12 warnings.
77 lines
2.7 KiB
C++
77 lines
2.7 KiB
C++
///////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/gtk/dataform.h
|
|
// Purpose: declaration of the wxDataFormat class
|
|
// Author: Vadim Zeitlin
|
|
// Modified by:
|
|
// Created: 19.10.99 (extracted from gtk/dataobj.h)
|
|
// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
|
|
// Licence: wxWindows licence
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_GTK_DATAFORM_H
|
|
#define _WX_GTK_DATAFORM_H
|
|
|
|
class WXDLLIMPEXP_CORE wxDataFormat
|
|
{
|
|
public:
|
|
// the clipboard formats under GDK are GdkAtoms
|
|
typedef GdkAtom NativeFormat;
|
|
|
|
wxDataFormat();
|
|
wxDataFormat( wxDataFormatId type );
|
|
wxDataFormat( NativeFormat format );
|
|
|
|
// we have to provide all the overloads to allow using strings instead of
|
|
// data formats (as a lot of existing code does)
|
|
wxDataFormat( const wxString& id ) { InitFromString(id); }
|
|
#ifndef wxNO_IMPLICIT_WXSTRING_ENCODING
|
|
wxDataFormat( const char *id ) { InitFromString(id); }
|
|
#endif
|
|
wxDataFormat( const wchar_t *id ) { InitFromString(id); }
|
|
wxDataFormat( const wxCStrData& id ) { InitFromString(id); }
|
|
|
|
wxDataFormat& operator=(NativeFormat format)
|
|
{ SetId(format); return *this; }
|
|
|
|
// comparison (note that we rely on implicit conversions for comparison
|
|
// with wxDataFormatId, but have to provide them explicitly for comparison
|
|
// with NativeFormat to avoid ambiguity between comparing from it to
|
|
// wxDataFormat or vice versa)
|
|
bool operator==(NativeFormat format) const
|
|
{ return m_format == (NativeFormat)format; }
|
|
bool operator!=(NativeFormat format) const
|
|
{ return m_format != (NativeFormat)format; }
|
|
bool operator==(const wxDataFormat& other) const
|
|
{ return m_format == other.m_format; }
|
|
bool operator!=(const wxDataFormat& other) const
|
|
{ return m_format != other.m_format; }
|
|
|
|
// 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; }
|
|
|
|
void SetId( NativeFormat format );
|
|
|
|
// string ids are used for custom types - this SetId() must be used for
|
|
// application-specific formats
|
|
wxString GetId() const;
|
|
void SetId( const wxString& id );
|
|
|
|
// implementation
|
|
wxDataFormatId GetType() const;
|
|
void SetType( wxDataFormatId type );
|
|
|
|
private:
|
|
// common part of ctors from format name
|
|
void InitFromString(const wxString& id);
|
|
|
|
wxDataFormatId m_type;
|
|
NativeFormat m_format;
|
|
|
|
void PrepareFormats();
|
|
};
|
|
|
|
#endif // _WX_GTK_DATAFORM_H
|