+
+// For wxLongLong and wxULongLong have custom classname << variant
+// implementation for improved flexibility.
+WX_PG_IMPLEMENT_VARIANT_DATA_EXPORTED_NO_EQ_NO_GETTER(wxLongLong, WXDLLIMPEXP_PROPGRID)
+WX_PG_IMPLEMENT_VARIANT_DATA_EQ(wxLongLong, WXDLLIMPEXP_PROPGRID)
+WXDLLIMPEXP_PROPGRID wxLongLong& operator << ( wxLongLong &value, const wxVariant &variant )
+{
+ wxLongLong_t ll;
+ if ( !wxPGVariantToLongLong(variant, &ll) )
+ {
+ wxFAIL_MSG("Cannot convert to wxLongLong");
+ }
+ value = ll;
+ return value;
+}
+WXDLLIMPEXP_PROPGRID wxLongLong_t& operator << ( wxLongLong_t &value, const wxVariant &variant )
+{
+ if ( !wxPGVariantToLongLong(variant, &value) )
+ {
+ wxFAIL_MSG("Cannot convert to wxLongLong");
+ }
+ return value;
+}
+
+WX_PG_IMPLEMENT_VARIANT_DATA_EXPORTED_NO_EQ_NO_GETTER(wxULongLong, WXDLLIMPEXP_PROPGRID)
+WX_PG_IMPLEMENT_VARIANT_DATA_EQ(wxULongLong, WXDLLIMPEXP_PROPGRID)
+WXDLLIMPEXP_PROPGRID wxULongLong& operator << ( wxULongLong &value, const wxVariant &variant )
+{
+ wxULongLong_t ull;
+ if ( !wxPGVariantToULongLong(variant, &ull) )
+ {
+ wxFAIL_MSG("Cannot convert to wxULongLong");
+ }
+ value = ull;
+ return value;
+}
+WXDLLIMPEXP_PROPGRID wxULongLong_t& operator << ( wxULongLong_t &value, const wxVariant &variant )
+{
+ if ( !wxPGVariantToULongLong(variant, &value) )
+ {
+ wxFAIL_MSG("Cannot convert to wxULongLong");
+ }
+ return value;
+}