// Created: 2007-05-16
// RCS-ID: $Id$
// Copyright: (c) Jaakko Salli
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#include "wx/wxprec.h"
return wxColour();
}
- virtual wxString ColourToString( const wxColour& col, int index ) const
+ virtual wxString ColourToString( const wxColour& col,
+ int index,
+ int argFlags = 0 ) const
{
if ( index == (int)(m_choices.GetCount()-1) )
return wxT("");
- return wxColourProperty::ColourToString(col, index);
+ return wxColourProperty::ColourToString(col, index, argFlags);
}
virtual int GetCustomColourIndex() const
void FormMain::AddTestProperties( wxPropertyGridPage* pg )
{
pg->Append( new MyColourProperty(wxT("CustomColourProperty"), wxPG_LABEL, *wxGREEN) );
- pg->GetProperty(wxT("CustomColourProperty"))->SetFlag(wxPG_PROP_AUTO_UNSPECIFIED);
+ pg->GetProperty(wxT("CustomColourProperty"))->SetAutoUnspecified(true);
pg->SetPropertyEditor( wxT("CustomColourProperty"), wxPGEditor_ComboBox );
pg->SetPropertyHelpString(wxT("CustomColourProperty"),
const int spacing = 8;
wxBoxSizer* topsizer = new wxBoxSizer( wxVERTICAL );
wxBoxSizer* rowsizer = new wxBoxSizer( wxHORIZONTAL );
- wxTextCtrl* ed = new wxTextCtrl(dlg,11,text,
- wxDefaultPosition,wxDefaultSize,wxTE_MULTILINE|wxTE_READONLY);
+ wxTextCtrl* ed = new wxTextCtrl(dlg, 11, text,
+ wxDefaultPosition, wxDefaultSize,
+ wxTE_MULTILINE);
rowsizer->Add( ed, 1, wxEXPAND|wxALL, spacing );
topsizer->Add( rowsizer, 1, wxEXPAND, 0 );
rowsizer = new wxBoxSizer( wxHORIZONTAL );
const int spacing = 8;
wxBoxSizer* topsizer = new wxBoxSizer( wxVERTICAL );
wxBoxSizer* rowsizer = new wxBoxSizer( wxHORIZONTAL );
- wxTextCtrl* ed = new wxTextCtrl(dlg,11,wxEmptyString,
- wxDefaultPosition,wxDefaultSize,wxTE_MULTILINE|wxTE_READONLY);
+ wxTextCtrl* ed = new wxTextCtrl(dlg, 11, wxEmptyString,
+ wxDefaultPosition, wxDefaultSize,
+ wxTE_MULTILINE);
rowsizer->Add( ed, 1, wxEXPAND|wxALL, spacing );
topsizer->Add( rowsizer, 1, wxEXPAND, 0 );
rowsizer = new wxBoxSizer( wxHORIZONTAL );
pgman = m_pPropGridManager;
}
+ {
+ //
+ // Test wxAny<->wxVariant conversion
+ RT_START_TEST(WXVARIANT_TO_WXANY_CONVERSION)
+
+ wxPGProperty* prop;
+ wxAny any;
+
+#if wxUSE_DATETIME
+ prop = pgman->GetProperty("DateProperty");
+ wxDateTime testTime = wxDateTime::Now();
+ any = testTime;
+ prop->SetValue(any);
+ if ( wxANY_AS(prop->GetValue().GetAny(), wxDateTime) != testTime )
+ RT_FAILURE();
+#endif
+
+ prop = pgman->GetProperty("IntProperty");
+ int testInt = 25537983;
+ any = testInt;
+ prop->SetValue(any);
+ if ( wxANY_AS(prop->GetValue().GetAny(), int) != testInt )
+ RT_FAILURE();
+#ifdef wxLongLong_t
+ if ( wxANY_AS(prop->GetValue().GetAny(), wxLongLong_t) != testInt )
+ RT_FAILURE();
+#endif
+
+ prop = pgman->GetProperty("StringProperty");
+ wxString testString = "asd934jfyn3";
+ any = testString;
+ prop->SetValue(any);
+ if ( wxANY_AS(prop->GetValue().GetAny(), wxString) != testString )
+ RT_FAILURE();
+
+ // Test with a type generated with IMPLEMENT_VARIANT_OBJECT()
+ prop = pgman->GetProperty("ColourProperty");
+ wxColour testCol = *wxCYAN;
+ any = testCol;
+ prop->SetValue(any);
+ if ( wxANY_AS(prop->GetValue().GetAny(), wxColour) != testCol )
+ RT_FAILURE();
+
+ // Test with a type with custom wxVariantData defined by
+ // wxPG headers.
+ prop = pgman->GetProperty("Position");
+ wxPoint testPoint(199, 199);
+ any = testPoint;
+ prop->SetValue(any);
+ if ( wxANY_AS(prop->GetValue().GetAny(), wxPoint) != testPoint )
+ RT_FAILURE();
+ }
+
{
RT_START_TEST(GetPropertyValues)
dt2.SetYear(dt2.GetYear()-10);
#endif
+ wxColour colWithAlpha(1, 128, 254, 100);
+ wxString colWithAlphaStr(colWithAlpha.GetAsString(wxC2S_CSS_SYNTAX));
+
#define FLAG_TEST_SET1 (wxCAPTION|wxCLOSE_BOX|wxSYSTEM_MENU|wxRESIZE_BORDER)
#define FLAG_TEST_SET2 (wxSTAY_ON_TOP|wxCAPTION|wxICONIZE|wxSYSTEM_MENU)
wxLogDebug("Did not match: Car.Convertible=%s", pgman->GetPropertyValueAsString("Car.Convertible").c_str());
RT_FAILURE();
}
+
+ // SetPropertyValueString for special cases such as wxColour
+ pgman->SetPropertyValueString("ColourProperty", "(123,4,255)");
+ col << pgman->GetPropertyValue("ColourProperty");
+ if ( col != wxColour(123, 4, 255) )
+ RT_FAILURE();
+ pgman->SetPropertyValueString("ColourProperty", "#FE860B");
+ col << pgman->GetPropertyValue("ColourProperty");
+ if ( col != wxColour(254, 134, 11) )
+ RT_FAILURE();
+
+ pgman->SetPropertyValueString("ColourPropertyWithAlpha",
+ "(10, 20, 30, 128)");
+ col << pgman->GetPropertyValue("ColourPropertyWithAlpha");
+ if ( col != wxColour(10, 20, 30, 128) )
+ RT_FAILURE();
+ if ( pgman->GetPropertyValueAsString("ColourPropertyWithAlpha")
+ != "(10,20,30,128)" )
+ RT_FAILURE();
}
{
RT_ASSERT( !pg->IsPropertySelected(prop3) )
}
+ {
+ //
+ // Test label editing
+ RT_START_TEST(LABEL_EDITING)
+
+ wxPropertyGrid* pg = pgman->GetGrid();
+
+ // Just mostly test that these won't crash
+ pg->MakeColumnEditable(0, true);
+ pg->MakeColumnEditable(2, true);
+ pg->MakeColumnEditable(0, false);
+ pg->MakeColumnEditable(2, false);
+ pg->SelectProperty(wxT("Height"));
+ pg->BeginLabelEdit(0);
+ pg->BeginLabelEdit(0);
+ pg->EndLabelEdit(0);
+ pg->EndLabelEdit(0);
+
+ // Recreate grid
+ CreateGrid( -1, -1 );
+ pgman = m_pPropGridManager;
+ }
+
{
RT_START_TEST(Attributes)
RT_FAILURE();
}
+ {
+ RT_START_TEST(DoubleToString)
+
+ // Locale-specific decimal separator
+ wxString sep = wxString::Format("%g", 1.1)[1];
+
+ wxString s;
+
+ if ( wxPropertyGrid::DoubleToString(s, 123.123, 2, true) !=
+ wxString::Format("123%s12", sep.c_str()) )
+ RT_FAILURE();
+ if ( wxPropertyGrid::DoubleToString(s, -123.123, 4, false) !=
+ wxString::Format("-123%s1230", sep.c_str()) )
+ RT_FAILURE();
+ if ( wxPropertyGrid::DoubleToString(s, -0.02, 1, false) !=
+ wxString::Format("0%s0", sep) )
+ RT_FAILURE();
+ if ( wxPropertyGrid::DoubleToString(s, -0.000123, 3, true) != "0" )
+ RT_FAILURE();
+ }
+
{
wxPropertyGridPage* page1;
wxPropertyGridPage* page2;
wxPGProperty* p;
wxPGProperty* origParent =
- pgman->GetProperty(wxT("Window Styles"))->GetParent();
+ pgman->GetProperty("Window Styles")->GetParent();
- p = pgman->RemoveProperty(wxT("Window Styles"));
+ // For testing purposes, let's set some custom cell colours
+ p = pgman->GetProperty("Window Styles");
+ p->SetCell(2, wxPGCell("style"));
+ p = pgman->RemoveProperty("Window Styles");
pgman->Refresh();
pgman->Update();
pgman->AppendIn(origParent, p);
+ wxASSERT( p->GetCell(2).GetText() == "style");
pgman->Refresh();
pgman->Update();
}
InitPanel();
const int trySplitterPos = 50;
-
+
int style = wxPG_AUTO_SORT; // wxPG_SPLITTER_AUTO_CENTER;
pgman = m_pPropGridManager =
new wxPropertyGridManager(m_panel, wxID_ANY,
wxASSERT(wxPG_EX_INIT_NOCAT == 0x00001000);
- for ( i=12; i<26; i++ )
+ for ( i=12; i<27; i++ )
{
int flag = 1<<i;
RT_MSG(wxString::Format(wxT("ExStyle: 0x%X"),flag));
s = wxString::Format(wxT("%i tests failed!!!"), failures);
#ifdef __WXDEBUG__
else
- s = wxString::Format(wxT("All tests were succesfull, but there were %i warnings!"), wxPGGlobalVars->m_warnings);
+ s = wxString::Format(wxT("All tests were successful, but there were %i warnings!"), wxPGGlobalVars->m_warnings);
#endif
RT_MSG(s)
for ( i=0; i<errorMessages.size(); i++ )
}
else
{
- RT_MSG(wxT("All tests succesfull"))
+ RT_MSG(wxT("All tests successfull"))
retVal = true;
if ( !interactive )