Hide operator<<() overloads used for wxVariant support too

Add new wxDECLARE_VARIANT_OBJECT_EXPORTED() macro defining these
operators as friend functions inside the class declaration and replace
all uses of DECLARE_VARIANT_OBJECT_EXPORTED() inside the core library
with the new macro to avoid defining any operator<<() overloads in the
global scope.

Also add wxIMPLEMENT_VARIANT_OBJECT() for consistency, even though it is
not really needed.
This commit is contained in:
Vadim Zeitlin 2024-01-06 20:11:30 +01:00
parent 7f56c7c068
commit 09eff033d9
10 changed files with 63 additions and 54 deletions

View file

@ -18,6 +18,7 @@
#include "wx/gdicmn.h"
#include "wx/hashmap.h"
#include "wx/arrstr.h"
#include "wx/variant.h"
#if wxUSE_STREAMS
# include "wx/stream.h"
@ -98,15 +99,6 @@ class WXDLLIMPEXP_FWD_CORE wxImageHandler;
class WXDLLIMPEXP_FWD_CORE wxImage;
class WXDLLIMPEXP_FWD_CORE wxPalette;
//-----------------------------------------------------------------------------
// wxVariant support
//-----------------------------------------------------------------------------
#if wxUSE_VARIANT
#include "wx/variant.h"
DECLARE_VARIANT_OBJECT_EXPORTED(wxImage,WXDLLIMPEXP_CORE)
#endif
//-----------------------------------------------------------------------------
// wxImageHandler
//-----------------------------------------------------------------------------
@ -594,6 +586,9 @@ public:
static HSVValue RGBtoHSV(const RGBValue& rgb);
static RGBValue HSVtoRGB(const HSVValue& hsv);
// wxVariant support
wxDECLARE_VARIANT_OBJECT_EXPORTED(wxImage, WXDLLIMPEXP_CORE);
protected:
static wxList sm_handlers;