X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/41f02b9acc01217e918fa422298840df7cf6de25..ae901b234c4a0aa7c1777b3bd181dd7f8517ad21:/samples/propgrid/propgrid.cpp diff --git a/samples/propgrid/propgrid.cpp b/samples/propgrid/propgrid.cpp index 594c87e51e..092b6c6360 100644 --- a/samples/propgrid/propgrid.cpp +++ b/samples/propgrid/propgrid.cpp @@ -134,21 +134,21 @@ bool wxSampleMultiButtonEditor::OnEvent( wxPropertyGrid* propGrid, if ( event.GetId() == buttons->GetButtonId(0) ) { - // Do something when first button is pressed + // Do something when the first button is pressed wxLogDebug("First button pressed"); - return true; + return false; // Return false since value did not change } if ( event.GetId() == buttons->GetButtonId(1) ) { - // Do something when second button is pressed - wxLogDebug("Second button pressed"); - return true; + // Do something when the second button is pressed + wxMessageBox("Second button pressed"); + return false; // Return false since value did not change } if ( event.GetId() == buttons->GetButtonId(2) ) { - // Do something when third button is pressed - wxLogDebug("Third button pressed"); - return true; + // Do something when the third button is pressed + wxMessageBox("Third button pressed"); + return false; // Return false since value did not change } } return wxPGTextCtrlEditor::OnEvent(propGrid, property, ctrl, event); @@ -477,10 +477,9 @@ wxVectorProperty::wxVectorProperty( const wxString& label, : wxPGProperty(label,name) { SetValue( WXVARIANT(value) ); - SetParentalType(wxPG_PROP_AGGREGATE); - AddChild( new wxFloatProperty(wxT("X"),wxPG_LABEL,value.x) ); - AddChild( new wxFloatProperty(wxT("Y"),wxPG_LABEL,value.y) ); - AddChild( new wxFloatProperty(wxT("Z"),wxPG_LABEL,value.z) ); + AddPrivateChild( new wxFloatProperty(wxT("X"),wxPG_LABEL,value.x) ); + AddPrivateChild( new wxFloatProperty(wxT("Y"),wxPG_LABEL,value.y) ); + AddPrivateChild( new wxFloatProperty(wxT("Z"),wxPG_LABEL,value.z) ); } wxVectorProperty::~wxVectorProperty() { } @@ -526,10 +525,9 @@ wxTriangleProperty::wxTriangleProperty( const wxString& label, : wxPGProperty(label,name) { SetValue( WXVARIANT(value) ); - SetParentalType(wxPG_PROP_AGGREGATE); - AddChild( new wxVectorProperty(wxT("A"),wxPG_LABEL,value.a) ); - AddChild( new wxVectorProperty(wxT("B"),wxPG_LABEL,value.b) ); - AddChild( new wxVectorProperty(wxT("C"),wxPG_LABEL,value.c) ); + AddPrivateChild( new wxVectorProperty(wxT("A"),wxPG_LABEL,value.a) ); + AddPrivateChild( new wxVectorProperty(wxT("B"),wxPG_LABEL,value.b) ); + AddPrivateChild( new wxVectorProperty(wxT("C"),wxPG_LABEL,value.c) ); } wxTriangleProperty::~wxTriangleProperty() { } @@ -1531,6 +1529,40 @@ void FormMain::PopulateWithExamples () // Set value after limiting so that it will be applied pg->SetPropertyValue( wxT("StringProperty"), wxT("some text") ); + // + // Demonstrate "AutoComplete" attribute + pg->Append( new wxStringProperty( "StringProperty AutoComplete", + wxPG_LABEL ) ); + + wxArrayString autoCompleteStrings; + autoCompleteStrings.Add("One choice"); + autoCompleteStrings.Add("Another choice"); + autoCompleteStrings.Add("Another choice, yeah"); + autoCompleteStrings.Add("Yet another choice"); + autoCompleteStrings.Add("Yet another choice, bear with me"); + pg->SetPropertyAttribute( "StringProperty AutoComplete", + "AutoComplete", + autoCompleteStrings ); + + pg->SetPropertyHelpString( "StringProperty AutoComplete", + "AutoComplete attribute has been set for this property " + "(try writing something beginning with 'a', 'o' or 'y')."); + + // Add string property with arbitrarily wide bitmap in front of it. We + // intentionally lower-than-typical row height here so that the ugly + // scaling code wont't be run. + pg->Append( new wxStringProperty( wxT("StringPropertyWithBitmap"), + wxPG_LABEL, + wxT("Test Text")) ); + wxBitmap myTestBitmap(60, 15, 32); + wxMemoryDC mdc; + mdc.SelectObject(myTestBitmap); + mdc.Clear(); + mdc.SetPen(*wxBLACK); + mdc.DrawLine(0, 0, 60, 15); + mdc.SelectObject(wxNullBitmap); + pg->SetPropertyImage( wxT("StringPropertyWithBitmap"), myTestBitmap ); + // this value array would be optional if values matched string indexes //long flags_prop_values[] = { wxICONIZE, wxCAPTION, wxMINIMIZE_BOX, wxMAXIMIZE_BOX }; @@ -1693,11 +1725,12 @@ void FormMain::PopulateWithExamples () // For testing purposes, combine two methods of adding children // - // AddChild() requires that we call this - pid->SetParentalType(wxPG_PROP_MISC_PARENT); - - pid->AddChild( new wxStringProperty(wxT("Latest Release"), wxPG_LABEL, wxT("2.8.8"))); - pid->AddChild( new wxBoolProperty(wxT("Win API"), wxPG_LABEL, true) ); + pid->AppendChild( new wxStringProperty(wxT("Latest Release"), + wxPG_LABEL, + wxT("2.8.10"))); + pid->AppendChild( new wxBoolProperty(wxT("Win API"), + wxPG_LABEL, + true) ); pg->Append( pid );