'wx(U)LongLong << variant' type safety improved (now works even if variant has plain long value). Added << operator and WXVARIANT template specialization for wx(U)LongLong_t as well. Changed WX_PG_DECLARE/IMPLEMENT_VARIANT_DATA so that classname << variant can be customized.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55771 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Jaakko Salli
2008-09-21 16:54:22 +00:00
parent bc35c72867
commit a6162a3eaf
5 changed files with 157 additions and 33 deletions

View File

@@ -755,7 +755,6 @@ bool FormMain::RunTests( bool fullTest, bool interactive )
pgman->SetPropertyValue(wxT("FloatProperty"),1024.0000000001);
pgman->SetPropertyValue(wxT("BoolProperty"),FALSE);
pgman->SetPropertyValue(wxT("EnumProperty"),120);
pgman->SetPropertyValue(wxT("Custom FlagsProperty"),FLAG_TEST_SET1);
pgman->SetPropertyValue(wxT("ArrayStringProperty"),test_arrstr_1);
wxColour emptyCol;
pgman->SetPropertyValue(wxT("ColourProperty"),emptyCol);
@@ -782,8 +781,6 @@ bool FormMain::RunTests( bool fullTest, bool interactive )
RT_FAILURE();
if ( pg->GetPropertyValueAsArrayString(wxT("ArrayStringProperty")) != test_arrstr_1 )
RT_FAILURE();
if ( pg->GetPropertyValueAsLong(wxT("Custom FlagsProperty")) != FLAG_TEST_SET1 )
RT_FAILURE();
wxColour col;
col << pgman->GetPropertyValue(wxT("ColourProperty"));
if ( col != *wxBLACK )
@@ -809,7 +806,6 @@ bool FormMain::RunTests( bool fullTest, bool interactive )
pg->SetPropertyValue(wxT("BoolProperty"),TRUE);
pg->SetPropertyValue(wxT("EnumProperty"),80);
pg->SetPropertyValue(wxT("ArrayStringProperty"),test_arrstr_2);
pg->SetPropertyValue(wxT("Custom FlagsProperty"),FLAG_TEST_SET2);
pg->SetPropertyValue(wxT("ColourProperty"),(wxObject*)wxWHITE);
pg->SetPropertyValue(wxT("Size"),wxSize(300,300));
pg->SetPropertyValue(wxT("Position"),wxPoint(300,300));
@@ -834,8 +830,6 @@ bool FormMain::RunTests( bool fullTest, bool interactive )
RT_FAILURE();
if ( pgman->GetPropertyValueAsArrayString(wxT("ArrayStringProperty")) != test_arrstr_2 )
RT_FAILURE();
if ( pgman->GetPropertyValueAsLong(wxT("Custom FlagsProperty")) != FLAG_TEST_SET2 )
RT_FAILURE();
col << pgman->GetPropertyValue(wxT("ColourProperty"));
if ( col != *wxWHITE )
RT_FAILURE();
@@ -854,6 +848,58 @@ bool FormMain::RunTests( bool fullTest, bool interactive )
if ( pgman->GetPropertyValueAsLongLong(wxT("IntProperty")) != wxLL(-80000000000) )
RT_FAILURE();
//
// Flexible wx(U)LongLong << operator safety conformance tests
wxPGProperty* prop;
wxLongLong ll;
wxULongLong ull;
prop = pgman->GetProperty(wxT("IntProperty"));
prop->SetValue(128);
ll << prop->GetValue();
if ( ll != 128 )
RT_FAILURE();
prop->SetValue(WXVARIANT(wxLL(68719476736)));
ll << prop->GetValue();
if ( ll.GetValue() != wxLL(68719476736) )
RT_FAILURE();
#if wxUSE_LONGLONG_NATIVE
wxLongLong_t ll_t;
ll_t << prop->GetValue();
if ( ll_t != wxLL(68719476736) )
RT_FAILURE();
#endif
prop->SetValue(256);
ll << prop->GetValue();
if ( ll != 256 )
RT_FAILURE();
prop = pgman->GetProperty(wxT("UIntProperty"));
prop->SetValue(128);
ull << prop->GetValue();
if ( ull != 128 )
RT_FAILURE();
prop->SetValue(WXVARIANT(wxULL(68719476739)));
ull << prop->GetValue();
if ( ull.GetValue() != wxULL(68719476739) )
RT_FAILURE();
#if wxUSE_LONGLONG_NATIVE
wxULongLong_t ull_t;
ull_t << prop->GetValue();
if ( ull_t != wxLL(68719476739) )
RT_FAILURE();
#endif
prop->SetValue(256);
ull << prop->GetValue();
if ( ull != 256 )
RT_FAILURE();
// Make sure children of composite parent get updated as well
// Original string value: "Lamborghini Diablo SV; 5707; [300; 3.9; 8.6] 300000"
@@ -891,7 +937,6 @@ bool FormMain::RunTests( bool fullTest, bool interactive )
pgman->SetPropertyValueUnspecified(wxT("BoolProperty"));
pgman->SetPropertyValueUnspecified(wxT("EnumProperty"));
pgman->SetPropertyValueUnspecified(wxT("ArrayStringProperty"));
pgman->SetPropertyValueUnspecified(wxT("Custom FlagsProperty"));
pgman->SetPropertyValueUnspecified(wxT("ColourProperty"));
pgman->SetPropertyValueUnspecified(wxT("Size"));
pgman->SetPropertyValueUnspecified(wxT("Position"));