]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/propgrid/propgrid_minimal.cpp
Support using GetTextExtent() with empty string to get descent in wxOSX.
[wxWidgets.git] / samples / propgrid / propgrid_minimal.cpp
index cd0b4e0385ba76d5da7bade27700c239fe7eff56..3235a91d074d1d4568abc684845f3a34dd37da51 100644 (file)
@@ -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("<composed>")) );
-    pg->LimitPropertyEditing(topId, true);
-    medId = pg->AppendIn( topId, new wxStringProperty(wxT("Medium Level Item A"), wxPG_LABEL, wxT("<composed>")) );
-    pg->LimitPropertyEditing(medId, true);
-    botId = pg->AppendIn( medId, new wxStringProperty(wxT("Position"), wxPG_LABEL, wxT("<composed>")) );
-    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("<composed>")) );
-    pg->LimitPropertyEditing(medId, true);
-    botId = pg->AppendIn( medId, new wxStringProperty(wxT("Position"), wxPG_LABEL, wxT("<composed>")) );
-    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("<composed>")) );
-    pg->LimitPropertyEditing(medId, true);
-    botId = pg->AppendIn( medId, new wxStringProperty(wxT("Position"), wxPG_LABEL, wxT("<composed>")) );
-    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);
 }