X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1c4293cb91327247ad69e6ec8d589bfaa299db28..14619f10b0bdb630206607abd0ce0319d45e095a:/samples/propgrid/propgrid_minimal.cpp?ds=sidebyside diff --git a/samples/propgrid/propgrid_minimal.cpp b/samples/propgrid/propgrid_minimal.cpp index cd0b4e0385..3235a91d07 100644 --- a/samples/propgrid/propgrid_minimal.cpp +++ b/samples/propgrid/propgrid_minimal.cpp @@ -4,88 +4,52 @@ // Author: Jaakko Salli // Modified by: // Created: 2008-08-23 -// RCS-ID: $Id: +// RCS-ID: $Id$ // Copyright: (c) Jaakko Salli -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #include "wx/wx.h" #include "wx/propgrid/propgrid.h" +#include "wx/propgrid/advprops.h" -class MyFrame : public wxFrame -{ -public: - MyFrame(wxWindow* parent); - - void OnAction(wxCommandEvent& event); - void OnPropertyGridChange(wxPropertyGridEvent& event); +class MyFrame : public wxFrame +{ +public: + MyFrame(wxWindow* parent); + + void OnAction(wxCommandEvent& event); + void OnPropertyGridChange(wxPropertyGridEvent& event); + void OnPropertyGridChanging(wxPropertyGridEvent& event); private: wxPropertyGrid* m_pg; DECLARE_EVENT_TABLE() }; -// -// Called from propgridsample.cpp -// -void DisplayMinimalFrame(wxWindow* parent) -{ - MyFrame *frame = new MyFrame(parent); - frame->Show(true); -} - BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU(wxID_HIGHEST+1, MyFrame::OnAction) EVT_PG_CHANGED( -1, MyFrame::OnPropertyGridChange ) + EVT_PG_CHANGING( -1, MyFrame::OnPropertyGridChanging ) END_EVENT_TABLE() MyFrame::MyFrame(wxWindow* parent) : wxFrame(parent, wxID_ANY, wxT("PropertyGrid Test")) { - wxMenu *Menu = new wxMenu; - Menu->Append(wxID_HIGHEST+1, wxT("Action")); - wxMenuBar *MenuBar = new wxMenuBar(); - MenuBar->Append(Menu, wxT("Action")); - SetMenuBar(MenuBar); + wxMenu *Menu = new wxMenu; + Menu->Append(wxID_HIGHEST+1, wxT("Action")); + wxMenuBar *MenuBar = new wxMenuBar(); + MenuBar->Append(Menu, wxT("Action")); + SetMenuBar(MenuBar); wxPropertyGrid *pg = new wxPropertyGrid(this,-1,wxDefaultPosition,wxSize(400,400), wxPG_SPLITTER_AUTO_CENTER | wxPG_BOLD_MODIFIED ); m_pg = pg; - for ( int i=0; i< 20; i++ ) - pg->Append(new wxStringProperty(wxString::Format(wxT("Item %i"),i), wxPG_LABEL)); - - wxPGProperty* topId; - wxPGProperty* medId; - wxPGProperty* botId; - - topId = pg->Append( new wxStringProperty(wxT("Top Item"), wxPG_LABEL, wxT("")) ); - pg->LimitPropertyEditing(topId, true); - medId = pg->AppendIn( topId, new wxStringProperty(wxT("Medium Level Item A"), wxPG_LABEL, wxT("")) ); - pg->LimitPropertyEditing(medId, true); - botId = pg->AppendIn( medId, new wxStringProperty(wxT("Position"), wxPG_LABEL, wxT("")) ); - pg->LimitPropertyEditing(botId, true); - pg->AppendIn( botId, new wxFloatProperty(wxT("x"), wxPG_LABEL, 1.0) ); - pg->AppendIn( botId, new wxFloatProperty(wxT("y"), wxPG_LABEL, 2.0) ); - pg->AppendIn( botId, new wxFloatProperty(wxT("z"), wxPG_LABEL, 3.0) ); - pg->AppendIn( medId, new wxStringProperty(wxT("Name"), wxPG_LABEL, wxT("name")) ); - medId = pg->AppendIn( topId, new wxStringProperty(wxT("Medium Level Item B"), wxPG_LABEL, wxT("")) ); - pg->LimitPropertyEditing(medId, true); - botId = pg->AppendIn( medId, new wxStringProperty(wxT("Position"), wxPG_LABEL, wxT("")) ); - pg->LimitPropertyEditing(botId, true); - pg->AppendIn( botId, new wxFloatProperty(wxT("x"), wxPG_LABEL, 1.0) ); - pg->AppendIn( botId, new wxFloatProperty(wxT("y"), wxPG_LABEL, 2.0) ); - pg->AppendIn( botId, new wxFloatProperty(wxT("z"), wxPG_LABEL, 3.0) ); - pg->AppendIn( medId, new wxStringProperty(wxT("Name"), wxPG_LABEL, wxT("name")) ); - medId = pg->AppendIn( topId, new wxStringProperty(wxT("Medium Level Item C"), wxPG_LABEL, wxT("")) ); - pg->LimitPropertyEditing(medId, true); - botId = pg->AppendIn( medId, new wxStringProperty(wxT("Position"), wxPG_LABEL, wxT("")) ); - pg->LimitPropertyEditing(botId, true); - pg->AppendIn( botId, new wxFloatProperty(wxT("x"), wxPG_LABEL, 1.0) ); - pg->AppendIn( botId, new wxFloatProperty(wxT("y"), wxPG_LABEL, 2.0) ); - pg->AppendIn( botId, new wxFloatProperty(wxT("z"), wxPG_LABEL, 3.0) ); - pg->AppendIn( medId, new wxStringProperty(wxT("Name"), wxPG_LABEL, wxT("name")) ); + pg->Append( new wxStringProperty("String Property", wxPG_LABEL) ); + pg->Append( new wxIntProperty("Int Property", wxPG_LABEL) ); + pg->Append( new wxBoolProperty("Bool Property", wxPG_LABEL) ); SetSize(400, 600); } @@ -94,14 +58,32 @@ void MyFrame::OnPropertyGridChange(wxPropertyGridEvent &event) { wxPGProperty* p = event.GetProperty(); - wxLogDebug(wxT("OnPropertyGridChange(%s)"), p->GetName().c_str()); - - if ( p->GetBaseName() == wxT("x") ) + if ( p ) { - wxLogDebug(wxT("double values=%.2f)"), m_pg->GetPropertyValueAsDouble(p)); + wxLogVerbose("OnPropertyGridChange(%s, value=%s)", + p->GetName().c_str(), p->GetValueAsString().c_str()); } + else + { + wxLogVerbose("OnPropertyGridChange(NULL)"); + } +} + +void MyFrame::OnPropertyGridChanging(wxPropertyGridEvent &event) +{ + wxPGProperty* p = event.GetProperty(); + + wxLogVerbose("OnPropertyGridChanging(%s)", p->GetName().c_str()); +} + +void MyFrame::OnAction(wxCommandEvent &) +{ } -void MyFrame::OnAction(wxCommandEvent &) +// Called from propgridsample.cpp +// +void DisplayMinimalFrame(wxWindow* parent) { + MyFrame *frame = new MyFrame(parent); + frame->Show(true); }